Talaan ng mga Nilalaman:

Raspberry Pi Pakikipag-usap sa ESP8266 Paggamit ng MQTT: 8 Hakbang
Raspberry Pi Pakikipag-usap sa ESP8266 Paggamit ng MQTT: 8 Hakbang

Video: Raspberry Pi Pakikipag-usap sa ESP8266 Paggamit ng MQTT: 8 Hakbang

Video: Raspberry Pi Pakikipag-usap sa ESP8266 Paggamit ng MQTT: 8 Hakbang
Video: БЕСПЛАТНЫЙ и простой проект Arduino IoT с CAYENNE менее чем за 5 минут! 2024, Hulyo
Anonim
Raspberry Pi Nakikipag-usap sa ESP8266 Gamit ang MQTT
Raspberry Pi Nakikipag-usap sa ESP8266 Gamit ang MQTT

Sa proyektong ito, ipapaliwanag ko kung ano ang MQTT protocol at kung paano ito ginagamit upang makipag-usap sa pagitan ng mga aparato. Pagkatapos, bilang isang praktikal na pagpapakita, ipapakita ko kung paano mag-set up ng isang client at brocker system, kung saan ang isang module na ESP8266 pati na rin ang RPi talk sa bawat isa o magpadala ng mensahe kapag ang isang pindutan ay naitulak.

Kailangan ng materyal

1. Raspberry Pi 3

2. NodeMCU

3. LED

4. Button

5. Mga Resistor (10k, 475 ohm)

Hakbang 1: Ano ang MQTT at Paano Ito Gumagana

MQTT

Ang MQTT ay isang machine-to-machine (M2M) na data transfer protocol. Ang MQTT ay nilikha na may layunin na mangolekta ng data mula sa maraming mga aparato at pagkatapos ay ihatid ang data na iyon sa imprastraktura ng IT. Ito ay magaan, at samakatuwid ay mainam para sa malayuang pagsubaybay, lalo na sa mga koneksyon sa M2M na nangangailangan ng isang maliit na bakas ng code o kung saan limitado ang network bandwidth.

Paano gumagana ang MQTT

Ang MQTT ay isang publish / subscribe protocol na nagpapahintulot sa mga edge-of-network na aparato na mai-publish sa isang broker. Kumokonekta ang mga kliyente sa broker na ito, na pagkatapos ay namamagitan sa komunikasyon sa pagitan ng dalawang aparato. Ang bawat aparato ay maaaring mag-subscribe, o magrehistro, sa mga partikular na paksa. Kapag ang ibang kliyente ay naglathala ng isang mensahe sa isang naka-subscribe na paksa, ipinapasa ng broker ang mensahe sa sinumang kliyente na nag-subscribe.

Ang MQTT ay mapagpatawad, at nagpapanatili ng stateful na kamalayan sa session. Kung ang isang edge-of-network na aparato ay nawalan ng pagkakakonekta, ang lahat ng mga kliyente na naka-subscribe ay aabisuhan sa tampok na "Huling Kalooban at Tipan" ng MQTT server upang ang sinumang awtorisadong kliyente sa system ay maaaring mag-publish ng isang bagong halaga pabalik sa edge-of- aparato sa network, pinapanatili ang pagkakakonekta ng bidirectional.

Ang proyekto ay nahahati sa 3 bahagi

Una, lumilikha kami ng MQTT server sa RPi at nag-i-install ng ilang mga aklatan.

Pangalawa, mag-i-install kami ng mga aklatan sa Arduino IDE para sa NodeMCU upang gumana sa MQTT, i-upload ang code at suriin kung gumagana ang server o hindi.

Sa wakas, lumilikha kami ng isang script sa Rpi, i-upload ang kinakailangang code sa NodeMCU at patakbuhin ang python script upang makontrol ang mga leds mula sa magkabilang server at client side. Dito, ang server ay RPi at ang kliyente ay NodeMCU.

Hakbang 2: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

1. Upang mai-install ang pinakabagong MQTT server at client sa RPi, upang magamit ang bagong repository dapat mo munang i-import ang key ng pag-sign ng package ng repository.

wget https://repo.mosquitto.org/debian/mosquitto-repo.gpg.keysudo apt-key idagdag ang mosquitto-repo.gpg.key

2. Gawing magagamit ang repository sa apt.

cd /etc/apt/source.list.d/

3. Nakasalalay sa aling bersyon ng Debian ang iyong ginagamit.

sudo wget https://repo.mosquitto.org/debian/mosquitto-wheezy.listsudo wget

sudo wget

sudo apt-get update

4. I-install ang Mosquitto server gamit ang utos.

sudo apt-get install mosquitto

Kung nakakakuha ka ng mga pagkakamali sa pag-install ng Mosquitto tulad nito.

#################################################################

Ang mga sumusunod na pakete ay may hindi natutugunan na mga dependency: mosquitto: Depende: libssl1.0.0 (> = 1.0.1) ngunit hindi ito mai-install Nakasalalay: libwebsockets3 (> = 1.2) ngunit hindi ito mai-install E: Hindi maitama ang mga problema, nahawak mo mga pakete.

#################################################################

Pagkatapos ay gamitin ang utos na ito upang ayusin ang mga isyu.

sudo apt --maayos na sirang pag-install

5. Matapos mai-install ang MQTT server, i-install ang client gamit ang command

sudo apt-get install Mosquitto-kliyente

Maaari mong suriin ang mga serbisyo gamit ang utos.

status ng systemctl mosquitto.service

Tulad ng aming MQTT server at client ay naka-install. Ngayon, maaari naming suriin ito gamit ang pag-subscribe at pag-publish. Para sa pag-subscribe at pag-publish maaari mong suriin ang mga utos o bisitahin ang website tulad ng ibinigay sa ibaba.

Mosquitto Sub

Mosquitto Pub

Upang mai-install ang paho-mqtt library gamitin ang utos sa ibaba.

sudo pip install paho-mqtt

Paho

Hakbang 3: Paano Mag-set up ng Static Ip Address

Paano Mag-set up ng Static Ip Address
Paano Mag-set up ng Static Ip Address

Pumunta sa direktoryo cd / etc at buksan ang file dhcpcd.conf gamit ang anumang editor. Sa huli, isulat ang apat na linya na ito.

interface eth0 static ip_address = 192.168.1.100 // ip nais mong gamitin

interface wlan0

static ip_address = 192.168.1.68

static router = 192.168.1.1 // iyong Default na gateway

static domain_name_servers = 192.168.1.1

Pagkatapos nito ay i-save ito at i-reboot ang iyong pi.

Hakbang 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

I-install ang mga kinakailangang aklatan sa Arduino IDE para sa NodeMCU

1. Pumunta sa Sketch ==> Isama ang library ==> Pamahalaan ang mga aklatan.

2. Maghanap para sa mqtt at i-install ang library ng Adafruit o maaari kang mag-install ng anumang library.

3. Ito ay nakasalalay sa library ng sleepydog kaya kailangan din natin ang library na ito.

Ang programa ay ibinibigay sa itaas, para lamang sa pagsuri kung gumagana ito o hindi. Dito hindi ako nakalikha ng anumang iskrip sa RPi. Gumagamit lang kami ng mga utos upang mag-subscribe at mag-publish. Lilikha kami ng script para sa pagkontrol sa paglaon.

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "ON"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "OFF"

mosquitto_pub -h raspberrypi -t "/ leds / pi" -m "TOGGLE"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "ON"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "OFF"

mosquitto_pub -h raspberrypi -t "/ leds / esp8266" -m "TOGGLE"

-h ==> host name-t ==> paksa

-m ==> mensahe

Matapos suriin ang programang Mqtt_check mag-upload ng kumpletong programa sa NodeMCU

Hakbang 5: Python Script

Python Script
Python Script
Python Script
Python Script

Tulad ng tinalakay ko sa itaas kailangan namin ng script ng sawa para sa pagkontrol ng mga leds gamit ang mga pindutan. Kaya, lilikha kami ng script. Ang script ay ibinigay sa itaas.

Kapag pinatakbo mo ang script ng iyong script ay dapat magmukhang tulad ng ipinakita sa imahe, kung ang resulta ng code ay hindi zero pagkatapos ang kanilang ay isang error maaari mong suriin ang error sa paho website.

Hakbang 6: Mga Koneksyon at Diagram ng Circuit

Mga Koneksyon at Circuit Diagram
Mga Koneksyon at Circuit Diagram
Mga Koneksyon at Circuit Diagram
Mga Koneksyon at Circuit Diagram

Pag-interface ng pindutan, LED sa NodeMCU

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> Cathode (-ve)

GPIO5 (D1) ===> Anode (+ ve)

Pag-interface ng pindutan, LED na may RPi

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> Cathode (-ve)

GPIO 24 ===> Anode (+ ve)

Hakbang 7: Resulta

Image
Image
Resulta
Resulta

Tiyaking tumatakbo ang iyong script kung hindi man ay hindi makontrol ang humantong gamit ang mga pindutan.

Inirerekumendang: