Բովանդակություն:

ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT ՝ 4 քայլ
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT ՝ 4 քայլ

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT ՝ 4 քայլ

Video: ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT ՝ 4 քայլ
Video: Home Automation based on Local MQTT server using Raspberry Pi and NodeMCUBoard | ESP8266 Projects 2024, Նոյեմբեր
Anonim
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT
ESP-NOW Home Automation Esp8266 Raspberry Pi MQTT

Այս Instructable- ում ես ձեզ ցույց եմ տալիս, թե ինչպես եմ ես օգտագործել ESP-NOW- ը իմ տան ավտոմատացման մեջ: Սխեմատիկայում կարող եք տեսնել հաղորդակցության հոսքերը

Ես ձեզ ցույց եմ տալիս.

  • ինչպես է աշխատում ուղարկողը
  • ինչպես է աշխատում ստացողը
  • ինչպես է աշխատում Raspberry Pi- ի հետ սերիական հաղորդակցությունը

Ես չեմ ցույց տալիս, թե ինչպես է աշխատում 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): Programsրագրերը ուղարկում են ինչպես MQTT տան ավտոմատացման թեման, այնպես էլ հաղորդագրությունը մեկ համակցված ESP-NOW հաղորդագրության մեջ, որը համակցված է «&» նշանի հետ ՝ ստացողի մոտ հեշտ պառակտման համար:

Ես պատրաստել եմ երկու տարբեր հեռակառավարիչ/ուղարկող ՝

Ուղարկող 1. Esp8266- ը խոր քնի մեջ է և ակտիվացված է վերագործարկմամբ: Կոճակի լուսարձակը լուսավորվում և մարում է, երբ մոդուլն ավարտված է: Եթե մարտկոցի լարումը ցածր է, led- ը թարթում է: Եթե ESP-NOW- ը ձախողվեց, led- ը թարթում է նախքան WiFi/MQTT միացումներին անցնելը: Esp8266- ը սնուցվում է LiPo մարտկոցից ՝ HT7333 լարման կարգավորիչով մինչև 3.3 Վ

Ուղարկող 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- ին:

Սխեմատիկայում պարզ կապերը ցուցադրվում են.

  • Esp-01- ի RX- ը RasPi- ի TX- ին
  • Esp-01- ի TX- ը RasPi- ի RX- ին
  • GND- ից GND
  • Esp-01 VCC- ն սնուցվում է Raspi- ի 3.3V պինով
  • Esp-01- ի վրա և՛ RST- ը, և՛ CH_PD- ն բարձր են քաշված:

Ես պատրաստեցի ինտերֆեյսի միակցիչ ՝ այն հեշտությամբ տեղադրելու համար

Մեկ նկարում դուք կարող եք տեսնել իմ մետաղալար կապերը իմ Raspberry Pi 3 -ի հետ (որն ունի նույն ծակոցը, բայց CH_PD- ին միանալու համար ես օգտագործել եմ մեկ այլ 3.3V քորոց):

Esp-01- ը ծրագրված էր այնպես, ինչպես ցույց է տրված իմ մյուս Instructable- ում (տես քայլ 3):

Քայլ 4: Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)

Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)
Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)
Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)
Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)
Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)
Ստացողը `ծրագրակազմ (սերիական, կարմիր հանգույց, MQTT)

Esրագիր esp8266- ում

Esp-01 ստացողի ծրագիրը գտնվում է իմ Github- ում (Master_sender.ino): Programրագիրը իսկապես պարզ է, այն միայն տպում է ստացված ESP-NOW հաղորդագրությունը Սերիական նավահանգստում ՝ Raspberry Pi- ին:

Սերիական նավահանգիստ

Raspberry Pi- ում դուք պետք է ակտիվացնեք Սերիական նավահանգիստը (raspbian- ով, կատարեք 'sudo raspi-config') նորմալ սերիական հաղորդակցության համար:

Սերիական նավահանգստի անվանումն է.

  • Ազնվամորի Pi Zero: /dev /ttyAMA0
  • Ազնվամորի Pi 3: /dev /ttyS0

Դուք կարող եք ստուգել սերիական նավահանգիստը ՝ գործարկելով «dmesg | grep tty 'կամ' ls /dev '

Կարմիր հանգույց

Կարմիր հանգույցում ընտրեք հաջորդական մուտքի հանգույցը և կարգավորեք սերիայի նավահանգիստը (տե՛ս կից նկարները): Նկատի ունեցեք սերիական կապի բաուդրատը, այն պետք է համապատասխանի բաուդրաթելին, ինչպես ծրագրված է esp8266- ում:

Սերիական հանգույցի ելքը փոխակերպվում է գործառական հանգույցի միջոցով, որը պառակտում է հաղորդագրությունը '&' նշանի վրա և սահմանում է msg.topic և msg.payload: Ֆունկցիայի ելքը տանում է դեպի mqtt ելքային հանգույց, որն ուղարկում է հաղորդագրությունը MQTT սերվերին: Ուշադրություն դարձրեք, որ mqtt հանգույցի թեման դաշտը դատարկ է, քանի որ թեման դրված է հաղորդագրության մեջ:

Խորհուրդ ենք տալիս: