Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang MQTT at Paano Ito Gumagana
- Hakbang 2: Raspberry Pi
- Hakbang 3: Paano Mag-set up ng Static Ip Address
- Hakbang 4: NodeMCU
- Hakbang 5: Python Script
- Hakbang 6: Mga Koneksyon at Diagram ng Circuit
- Hakbang 7: Resulta
Video: Raspberry Pi Pakikipag-usap sa ESP8266 Paggamit ng MQTT: 8 Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
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
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
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
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
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
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
Tiyaking tumatakbo ang iyong script kung hindi man ay hindi makontrol ang humantong gamit ang mga pindutan.
Inirerekumendang:
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: 6 Hakbang
Pagsubaybay sa Bilis ng Paggamit ng Raspberry Pi at AIS328DQTR Paggamit ng Python: Ang pagpapabilis ay may hangganan, sa palagay ko ayon sa ilang mga batas ng Physics.- Terry Riley Ang isang cheetah ay gumagamit ng kamangha-manghang pagpabilis at mabilis na mga pagbabago sa bilis kapag humabol. Ang pinaka dalubhasang nilalang sa pampang nang minsan ay gumagamit ng pinakamataas na bilis upang mahuli ang biktima. Ang
Neopixel Ws2812 Rainbow LED Glow With M5stick-C - Tumatakbo ang Rainbow sa Neopixel Ws2812 Paggamit ng M5stack M5stick C Paggamit ng Arduino IDE: 5 Hakbang
Neopixel Ws2812 Rainbow LED Glow With M5stick-C | Pagpapatakbo ng Rainbow sa Neopixel Ws2812 Paggamit ng M5stack M5stick C Paggamit ng Arduino IDE: Kumusta mga tao sa mga itinuturo na ito matututunan natin kung paano gamitin ang neopixel ws2812 LEDs o led strip o led matrix o led ring na may m5stack m5stick-C development board na may Arduino IDE at gagawin namin isang pattern ng bahaghari kasama nito
RF 433MHZ Radio Control Paggamit ng HT12D HT12E - Paggawa ng isang Rf Remote Control Paggamit ng HT12E & HT12D Sa 433mhz: 5 Hakbang
RF 433MHZ Radio Control Paggamit ng HT12D HT12E | Ang paggawa ng isang Rf Remote Control Paggamit ng HT12E & HT12D Sa 433mhz: Sa itinuturo na ito ipapakita ko sa iyo kung paano gumawa ng isang remote control ng RADIO gamit ang 433mhz transmitter receiver module na may HT12E encode & HT12D decoder IC. Sa itinuturo na ito maaari kang magpadala at makatanggap ng data gamit ang napaka murang mga KOMPONENS Tulad: HT
Pagdidisenyo ng PCB at Paghiwalay ng Paggamit ng Paggamit lamang ng Libreng Software: 19 Hakbang (na may Mga Larawan)
Pagdidisenyo at Pag-iisa ng PCB Paggamit ng Tanging Libreng Software: Sa Instructable na ito ipapakita ko sa iyo kung paano mag-disenyo at gumawa ng iyong sariling mga PCB, eksklusibong gumagamit ng libreng software na tumatakbo sa Windows pati na rin sa isang Mac. Mga bagay na kailangan mo: computer na may koneksyon sa internet cnc galingan / router, mas tumpak ang pusta
DHT 11 Paggamit ng Paggamit ng Arduino: 5 Hakbang
DHT 11 Gamit ang Paggamit ng Arduino: Hai, Sa itinuturo na ito ay gagawa kami ng DHT 11 gamit ang arduino at serial monitor. Ang DHT11 ay isang pangunahing, sobrang murang digital na temperatura ng digital at sensor ng halumigmig. Gumagamit ito ng capacitive sensor ng kahalumigmigan at isang thermistor upang masukat ang nakapalibot na hangin,