Სარჩევი:

ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT: 4 ნაბიჯი
ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT: 4 ნაბიჯი

ვიდეო: ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT: 4 ნაბიჯი

ვიდეო: ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT: 4 ნაბიჯი
ვიდეო: როგორ გავაკეთოთ 2-არხიანი ESP8266 ESP-01 Wi-Fi რელე | ESP-01 სახლის ავტომატიზაცია | RemoteXY 2024, ნოემბერი
Anonim
ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT
ESP-NOW სახლის ავტომატიზაცია Esp8266 Raspberry Pi MQTT

ამ ინსტრუქციებში მე გაჩვენებთ თუ როგორ გამოვიყენე ESP-NOW ჩემი სახლის ავტომატიზაციაში. სქემატურ რეჟიმში შეგიძლიათ ნახოთ საკომუნიკაციო ნაკადები

Მე შენ გაჩვენებ:

  • როგორ მუშაობს გამგზავნი
  • როგორ მუშაობს მიმღები
  • როგორ მუშაობს სერიული კომუნიკაცია ჟოლოს პითან

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

კრედიტები: ეს ინსტრუქცია შთაგონებულია:

ვიდეო #172 ანდრეას სპისეს მიერ

www.esploradores.com/practica-6-conexion-es…

ნაბიჯი 1: სარეზერვო ასლი WiFi და MQTT საშუალებით

სარეზერვო ასლი WiFi და MQTT საშუალებით
სარეზერვო ასლი WiFi და MQTT საშუალებით

აღმოვაჩინე, რომ ESP-NOW არის ძალიან სწრაფი და საკმაოდ საიმედო, მაგრამ ზოგჯერ ვერ ხერხდება. ჩემს პროგრამაში დავამატე სარეზერვო საშუალება ჩვეულებრივი WiFi და MQTT კავშირის საშუალებით.

ნაბიჯი 2: დისტანციური/გამგზავნი

დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი
დისტანციური/გამგზავნი

პირველ სქემაში ხედავთ როგორ მუშაობს გამგზავნის პროგრამა:

  1. Esp8266 იწყება ჩართვიდან ან გადატვირთვიდან
  2. ESP-NOW ინიციალიზებულია
  3. მოდული აგზავნის ESP-NOW განსაზღვრული დროით
  4. მოდული ამოწმებს მიიღო თუ არა ESP-NOW შეტყობინება მიმღებმა მიმღების მიერ დარეკვის ფუნქციაში.

    1. თუ ESP-NOW შეტყობინება იქნა მიღებული, მოდული მიდის დაბალი სიმძლავრის ღრმა ძილში
    2. თუ ESP-NOW შეტყობინება არ იქნა მიღებული, მოდული იწყებს WiFi კავშირს და MQTT კავშირს, როგორც სარეზერვო კავშირს.

გამომგზავნის პროგრამა ჩემს Github- შია (Master_sender.ino). პროგრამები აგზავნის როგორც თემას, ასევე შეტყობინებას MQTT სახლის ავტომატიზაციისთვის ერთ კომბინირებულ ESP-NOW შეტყობინებაში, რომელიც შერწყმულია "&" ნიშნით ადრესატის ადვილ გაყოფაზე.

მე გავაკეთე ორი განსხვავებული პულტი/გამგზავნი:

გამგზავნი 1: esp8266 ღრმა ძილშია და გააქტიურებულია გადატვირთვით. ღილაკზე მიმაგრებული მოდული კეთდება და ანათებს. თუ ბატარეის ძაბვა დაბალია, led ციმციმებს. თუ ESP-NOW ვერ მოხერხდა, led აციმციმდება სანამ შეცვლით WiFi/MQTT კავშირებს. Esp8266 იკვებება LiPo ბატარეიდან HT7333 ძაბვის რეგულატორით 3.3V– მდე

გამგზავნი 2: esp8266 გამორთულია და იკვებება ღილაკის დაჭერით. ჩვეულებრივ ESP-NOW კავშირი ხდება ღილაკზე "დაწკაპუნების" შემდეგ. Esp8266 იკვებება პირდაპირ LiPo ბატარეიდან. არ ვიცი დაზიანდება თუ არა esp8266 სრულად დამუხტული ბატარეის მაღალი ძაბვით (4.2 ვ -მდე), როდესაც ის იკვებება სულ რაღაც 100 ms. ის უფრო მაღალია ვიდრე სპეციფიკაციები (3.0 - 3.6V).

შენიშვნა: თუ ბატარეის სიმძლავრე დაბალია, ESP-NOW ვერ ხერხდება.

ნაბიჯი 3: მიმღები - აპარატურა (esp8266 და Raspberry Pi)

მიმღები - აპარატურა (esp8266 და Raspberry Pi)
მიმღები - აპარატურა (esp8266 და Raspberry Pi)
მიმღები - აპარატურა (esp8266 და Raspberry Pi)
მიმღები - აპარატურა (esp8266 და Raspberry Pi)
მიმღები - აპარატურა (esp8266 და Raspberry Pi)
მიმღები - აპარატურა (esp8266 და Raspberry Pi)

მიმღების აღწერილობა ორ ნაწილად იყოფა:

  1. ტექნიკა
  2. პროგრამული უზრუნველყოფა

აპარატურა

მიმღები esp-01 უკავშირდება ჩემს Raspberry Pi Zero- ს, რომელიც მართავს ჩემი სახლის ავტომატიზაციის სისტემას (Openhab2) და Node Red.

სქემატურ რეჟიმში ნაჩვენებია მარტივი კავშირები:

  • RX of esp-01 to TX of RasPi
  • TX of esp-01 to RX of RasPi
  • GND to GND
  • Esp-01 VCC იკვებება Raspi– ს 3.3V პინით
  • Esp-01– ზე ორივე RST და CH_PD მაღალია.

მე გავაკეთე ინტერფეისის კონექტორი, რომ ადვილად დავამონტაჟო

ერთ სურათზე თქვენ ხედავთ ჩემს მავთულხლართებს ჩემს Raspberry Pi 3 -თან (რომელსაც აქვს იგივე pinout, მაგრამ მე გამოვიყენე სხვა 3.3V პინი CH_PD– ს დასაკავშირებლად).

Esp-01 იყო დაპროგრამებული, როგორც ეს ნაჩვენებია ჩემს სხვა ინსტრუქციებში (იხ. ნაბიჯი 3).

ნაბიჯი 4: მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)

მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)
მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)
მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)
მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)
მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)
მიმღები - პროგრამული უზრუნველყოფა (სერიული, წითელი კვანძი, MQTT)

პროგრამა esp8266– ზე

Esp-01 მიმღების პროგრამა არის ჩემს Github– ში (Master_sender.ino). პროგრამა მართლაც მარტივია, ის მხოლოდ დაბეჭდავს მიღებულ შეტყობინებას ESP-NOW სერიულ პორტზე Raspberry Pi- ზე.

სერიული პორტი

Raspberry Pi– ზე თქვენ უნდა გაააქტიუროთ სერიული პორტი (raspbian– ზე, შეასრულეთ „sudo raspi-config“) ნორმალური სერიული კომუნიკაციისთვის.

სერიული პორტის სახელია:

  • Raspberry Pi Zero: /dev /ttyAMA0
  • ჟოლო Pi 3: /dev /ttyS0

თქვენ შეგიძლიათ შეამოწმოთ სერიული პორტი 'dmesg | grep tty 'ან' ls /dev '

კვანძი წითელი

წითელ კვანძში აირჩიეთ სერიული შეყვანის კვანძი და დააყენეთ სერიული პორტი (იხილეთ თანდართული სურათები). მიაქციეთ ყურადღება სერიული კავშირის ბაუდრატს, ეს უნდა ემთხვეოდეს ბაუდრატს, როგორც ეს არის დაპროგრამებული esp8266- ში.

სერიული კვანძის გამომუშავება გარდაიქმნება ფუნქციური კვანძით, რომელიც გაყოფს შეტყობინებას '&' ნიშანზე და ადგენს msg.topic და msg.payload. ფუნქციის გამომუშავება მიდის mqtt გამომავალი კვანძში, რომელიც აგზავნის შეტყობინებას MQTT სერვერზე. გაითვალისწინეთ, რომ mqtt კვანძის თემის ველი ცარიელია, რადგან თემა მითითებულია შეტყობინებაში.

გირჩევთ: