Სარჩევი:

Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით: 8 ნაბიჯი
Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით: 8 ნაბიჯი

ვიდეო: Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით: 8 ნაბიჯი

ვიდეო: Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით: 8 ნაბიჯი
ვიდეო: BTT GTR v1.0/M5 v1.0 - Basics 2024, ივლისი
Anonim
Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით
Raspberry Pi საუბარი ESP8266– თან MQTT– ის გამოყენებით

ამ პროექტში მე აგიხსნით რა არის MQTT პროტოკოლი და როგორ გამოიყენება იგი მოწყობილობებს შორის კომუნიკაციისთვის. შემდეგ, როგორც პრაქტიკული დემონსტრაცია, მე ვაჩვენებ, თუ როგორ უნდა დავაყენოთ კლიენტი და ბროკერი სისტემა, სადაც ESP8266 მოდული, ასევე RPi საუბარი ერთმანეთს ან გაუგზავნეთ შეტყობინება ღილაკის დაჭერისას.

საჭირო მასალა

1. ჟოლო პი 3

2. NodeMCU

3. LED

4. ღილაკი

5. რეზისტორები (10k, 475 ohm)

ნაბიჯი 1: რა არის MQTT და როგორ მუშაობს იგი

MQTT

MQTT არის მონაცემთა გადაცემის პროტოკოლი მანქანა-მანქანამდე (M2M). MQTT შეიქმნა მრავალი მოწყობილობიდან მონაცემების შეგროვების და შემდგომ მონაცემების IT ინფრასტრუქტურაში გადატანის მიზნით. ეს არის მსუბუქი და, შესაბამისად, იდეალურია დისტანციური მონიტორინგისთვის, განსაკუთრებით M2M კავშირებში, რომლებიც საჭიროებენ მცირე კოდის ნაკვალევს ან სადაც ქსელის გამტარობა შეზღუდულია.

როგორ მუშაობს MQTT

MQTT არის გამოქვეყნების/გამოწერის პროტოკოლი, რომელიც საშუალებას აძლევს ქსელის კიდეებს გამოაქვეყნონ ბროკერზე. კლიენტები აკავშირებენ ამ ბროკერს, რომელიც შემდეგ შუამავლობს ორ მოწყობილობას შორის კომუნიკაციას. თითოეულ მოწყობილობას შეუძლია გამოიწეროს ან დაარეგისტრიროს კონკრეტული თემები. როდესაც სხვა კლიენტი აქვეყნებს შეტყობინებას გამოწერილ თემაზე, ბროკერი აგზავნის შეტყობინებას ნებისმიერ კლიენტს, რომელმაც გამოიწერა.

MQTT არის ორმხრივი და ინარჩუნებს ცნობიერებას სხდომის შესახებ. თუ ქსელის პირას მოწყობილობა დაკარგავს კავშირს, ყველა გამოწერილ კლიენტს ეცნობება MQTT სერვერის "ბოლო ნება და აღთქმის" ფუნქცია, რათა სისტემაში ნებისმიერ უფლებამოსილ კლიენტს შეეძლოს გამოაქვეყნოს ახალი მნიშვნელობა ზღვარზე. ქსელის მოწყობილობა, ორმხრივი კავშირის შენარჩუნება.

პროექტი დაყოფილია 3 ნაწილად

პირველ რიგში, ჩვენ ვქმნით MQTT სერვერს RPi– ზე და ვაყენებთ რამდენიმე ბიბლიოთეკას.

მეორეც, ჩვენ დავაყენებთ ბიბლიოთეკებს Arduino IDE– ში, რათა NodeMCU იმუშაოს MQTT– ით, ავტვირთოთ კოდი და შევამოწმოთ სერვერი მუშაობს თუ არა.

დაბოლოს, ჩვენ ვქმნით სკრიპტს Rpi– ში, ვტვირთავთ საჭირო კოდს NodeMCU– ში და ვუშვებთ პითონის სკრიპტს სერვერისა და კლიენტის მხრიდან led– ების გასაკონტროლებლად. აქ, სერვერი არის RPi და კლიენტი არის NodeMCU.

ნაბიჯი 2: ჟოლო პი

ჟოლო პი
ჟოლო პი
ჟოლო პი
ჟოლო პი
ჟოლო პი
ჟოლო პი
ჟოლო პი
ჟოლო პი

1. უახლესი MQTT სერვერის და კლიენტის RPi– ში დასაყენებლად, ახალი საცავის გამოსაყენებლად, ჯერ უნდა შეიტანოთ საცავის პაკეტის ხელმოწერის გასაღები.

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

2. გახადეთ საცავი apt.

cd /etc/apt/sources.list.d/

3. იმისდა მიხედვით, თუ რომელი ვერსიის Debian იყენებთ.

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

sudo wget

sudo apt-get განახლება

4. დააინსტალირეთ Mosquitto სერვერი ბრძანების გამოყენებით.

sudo apt-get დააინსტალირეთ კოღო

თუ თქვენ იღებთ შეცდომებს Mosquitto– ს მსგავსი ინსტალაციისას.

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

შემდეგ პაკეტებს აქვთ დაუმთავრებელი დამოკიდებულებები: mosquitto: დამოკიდებულია: libssl1.0.0 (> = 1.0.1) მაგრამ ის არ არის ინსტალაციადი დამოკიდებულია: libwebsockets3 (> = 1.2) მაგრამ არ არის ინსტალაცია E: პრობლემების გამოსწორება შეუძლებელია, თქვენ გატეხილი გაქვთ პაკეტები.

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

შემდეგ გამოიყენეთ ეს ბრძანება პრობლემების გადასაჭრელად.

sudo apt-დაფიქსირებული გატეხილი ინსტალაცია

5. MQTT სერვერის დაყენების შემდეგ დააინსტალირეთ კლიენტი ბრძანების გამოყენებით

sudo apt-get დააინსტალირეთ კოღო-კლიენტები

თქვენ შეგიძლიათ შეამოწმოთ მომსახურება ბრძანების გამოყენებით.

systemctl სტატუსი mosquitto.service

როგორც ჩვენი MQTT სერვერი და კლიენტი დაყენებულია. ახლა ჩვენ შეგვიძლია შევამოწმოთ იგი გამოწერის და გამოქვეყნების გამოყენებით. გამოწერისა და გამოქვეყნებისათვის შეგიძლიათ შეამოწმოთ ბრძანებები ან ეწვიოთ ვებ გვერდს, როგორც ქვემოთ მოცემულია.

Mosquitto Sub

Mosquitto Pub

Paho-mqtt ბიბლიოთეკის დასაყენებლად გამოიყენეთ ქვემოთ მოცემული ბრძანება.

sudo pip დააინსტალირეთ paho-mqtt

პაჰო

ნაბიჯი 3: როგორ დავაყენოთ სტატიკური IP მისამართი

როგორ დავაყენოთ სტატიკური IP მისამართი
როგორ დავაყენოთ სტატიკური IP მისამართი

გადადით დირექტორია cd /etc და გახსენით ფაილი dhcpcd.conf ნებისმიერი რედაქტორის გამოყენებით. დასასრულს, ჩაწერეთ ეს ოთხი სტრიქონი.

ინტერფეისი eth0 სტატიკური ip_address = 192.168.1.100 // ip, რომლის გამოყენებაც გსურთ

ინტერფეისი wlan0

სტატიკური ip_address = 192.168.1.68

სტატიკური მარშრუტიზატორები = 192.168.1.1 // თქვენი ნაგულისხმევი კარიბჭე

დომენის_სახელის_სტატიკური სერვერი = 192.168.1.1

ამის შემდეგ შეინახეთ და გადატვირთეთ თქვენი pi.

ნაბიჯი 4: NodeMCU

NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU
NodeMCU

დააინსტალირეთ საჭირო ბიბლიოთეკები Arduino IDE– ში NodeMCU– სთვის

1. გადადით ჩანახატზე ==> ბიბლიოთეკის ჩართვა ==> ბიბლიოთეკების მართვა.

2. მოძებნეთ mqtt და დააინსტალირეთ ბიბლიოთეკა Adafruit– ის მიერ, ან შეგიძლიათ დააინსტალიროთ ნებისმიერი ბიბლიოთეკა.

3. ეს დამოკიდებულია sleepydog ბიბლიოთეკაზე, ამიტომ ჩვენ გვჭირდება ეს ბიბლიოთეკაც.

პროგრამა მოცემულია ზემოთ, მხოლოდ იმის შესამოწმებლად, მუშაობს თუ არა ის. აქ მე არ შემქმნია არცერთი სკრიპტი RPi– ში. ჩვენ უბრალოდ ვიყენებთ ბრძანებებს ხელმოწერისა და გამოქვეყნების მიზნით. ჩვენ შემდგომში შევქმნით სკრიპტს კონტროლისთვის.

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 ==> მასპინძლის სახელი-t ==> თემა

-m ==> შეტყობინება

Mqtt_check პროგრამის შემოწმების შემდეგ ატვირთეთ სრული პროგრამა NodeMCU– ში

ნაბიჯი 5: პითონის სკრიპტი

პითონის სკრიპტი
პითონის სკრიპტი
პითონის სკრიპტი
პითონის სკრიპტი

როგორც ზემოთ განვიხილე, ჩვენ გვჭირდება პითონის სკრიპტი ღილაკების გამოყენებით led- ების გასაკონტროლებლად.ასე, ჩვენ ვაპირებთ შევქმნათ სკრიპტი. სკრიპტი მოცემულია ზემოთ.

როდესაც სკრიპტს აწარმოებთ, თქვენი სკრიპტი უნდა გამოიყურებოდეს ისე, როგორც სურათზეა ნაჩვენები, თუ შედეგის კოდი არ არის ნული, მაშინ ეს არის შეცდომა, რომლის შეცდომის შემოწმება შეგიძლიათ paho ვებსაიტზე.

ნაბიჯი 6: კავშირები და სქემის დიაგრამა

კავშირები და წრიული დიაგრამა
კავშირები და წრიული დიაგრამა
კავშირები და წრიული დიაგრამა
კავშირები და წრიული დიაგრამა

ღილაკის, LED კავშირი NodeMCU– თან

NodeMCU ===> ButtonGnd ===> Gnd

3.3V ===> PIN1

GPIO4 (D2) ===> PIN2

NodeMCU ===> LED

Gnd ===> კათოდი (-ვე)

GPIO5 (D1) ===> ანოდი (+ve)

ღილაკის, LED- ის RPi– სთან დაკავშირება

RPi ===> ButtonGnd ===> PIN1

GPIO 23 ===> PIN2

RPi ===> LED

Gnd ==> კათოდი (-ve)

GPIO 24 ===> ანოდი (+ve)

ნაბიჯი 7: შედეგი

Image
Image
შედეგი
შედეგი

დარწმუნდით, რომ სკრიპტი გაშვებულია, წინააღმდეგ შემთხვევაში მას არ შეუძლია აკონტროლოს led ღილაკები.

გირჩევთ: