Turinys:

„IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika: 10 žingsnių (su paveikslėliais)
„IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika: 10 žingsnių (su paveikslėliais)

Video: „IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika: 10 žingsnių (su paveikslėliais)

Video: „IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika: 10 žingsnių (su paveikslėliais)
Video: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan 2024, Lapkritis
Anonim
„IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika
„IoT“tinklo valdiklis. 9 dalis. Daiktų internetas, namų automatika

Atsisakymas

PERSKAITYKITE PIRMĄ

Šioje instrukcijoje išsamiai aprašomas projektas, kuriame naudojama elektros energija (šiuo atveju JK 240 VAC RMS), nors buvo stengiamasi naudoti saugią praktiką ir gerus projektavimo principus, dirbant su šiomis maitinimo įtampomis visada kyla mirtino elektros smūgio pavojus. kurių autorius negali prisiimti jokios atsakomybės, jei stebint jo turinį įvyksta asmens sužalojimas ar turtinė žala. Todėl jūs kuriate šį projektą savo rizika.

Preambulė

Šis 9 -asis namų automatikos serijos straipsnis dokumentuoja, kaip sukurti ir integruoti „Sonoff 10A IoT“tinklo valdiklį į esamą namų automatikos sistemą, įskaitant visas būtinas programinės įrangos funkcijas, kad būtų galima sėkmingai įdiegti buitinėje aplinkoje.

Įvadas

Kaip minėta aukščiau, šioje instrukcijoje išsamiai aprašoma, kaip sukurti ir integruoti IoT tinklo valdiklį naudojant „iToff“„Sonoff 10A“. Pats prietaisas yra nurodytas kaip 10 amperų @ 90 ~ 250 VAC, tačiau šis įgyvendinimas sumažina jį iki 5 amperų per lydytąjį kištuką, kuris užtikrina vietinį JK 240 VAC RMS tiekimą.

Projektavimo metodika sklandžiai integruojama į MQTT/OpenHAB pagrįstą IoT tinklą, išsamiai aprašytą šioje serijoje apie namų automatikos kūrimą naudojant pakartotinai naudojamą kodą, paimtą iš čia. Jis taip pat gali atlaikyti bet kokio IoT tinklo elemento praradimą ir yra visiškai valdomas atskirai. Esant autonominiam režimui, prietaisas valdomas paprasčiausiai paspaudus valdymo mygtuką, esantį korpuso viršuje, kuris perjungia tolesnį tiekimą.

Norėdami įjungti šį vietinį „Sonoff“įrenginio valdymą, GPIO14 išimamas iš dėklo ir naudojamas kaip trigerio įvestis. Siekiant užtikrinti saugumą, ši įvestis tiekiama per optinio jungimo grandinę ir laikoma plastikiniame korpuse taip, kad operatorius niekada nebūtų veikiamas elektros tinklo įtampos.

Galiausiai prozoje taip pat aprašoma, kaip perprogramuoti ESP8266 įrenginį „Sonoff 10A“naudojant „Arduino IDE“, ir pateikiama išsami informacija apie įrenginį, kurį galima naudoti norint patikimai užprogramuoti tikslinį kodą.

Kokių dalių man reikia?

„Sonoff“tinklo valdiklis

  1. 1 nuolaida Sonoff 10A čia
  2. 1 išjungtas 7805L 5v įtampos reguliatorius
  3. 1 išjungtas 240/6VAC 1.5VA transformatorius čia
  4. 2 išjungti 0,1 keraminius kondensatorius
  5. 1 nuolaida 1000uF @25v elektrolitinis kondensatorius čia
  6. 1 išjungti 2W01 tilto lygintuvą čia
  7. Čia yra 2 išjungti 4K7 rezistoriai
  8. Čia yra 1 išjungtas 330R rezistorius
  9. 1 išjungimo SPST mygtukas čia
  10. 1 nuolaida „Mulitcomp BM12W ABS“korpusui čia
  11. 1 nuolaida TIL111 opto-coupler čia
  12. Čia yra 1 išjungtas 3 krypčių gnybtų blokas
  13. 1 išjungta 2 krypčių koduota „Molex“jungtis čia/čia
  14. 1 išjungta 3 krypčių koduota „Molex“jungtis čia/čia
  15. 1 išjungta 5 krypčių koduota „Molex“jungtis čia/čia
  16. Čia yra 1 išjungtas 5 krypčių molex kaištis
  17. 1 nuolaida „Winbond SPI Flash“(W25Q32FVSIG) čia
  18. Čia yra 1 išjungtas 20 mm saugiklio laikiklis + dangtelis
  19. Čia yra 1 išjungtas 20 mm greitas 500 mA saugiklis
  20. 2 išjungti poliamido kabelių sandarikliai
  21. 1 išjungtas JK maitinimo kištukas (BS1363/A) čia
  22. 1 nuolaida JK pagrindiniam lizdui (BS1363/A) čia
  23. 7 M3 16 mm CS nailoniniai varžtai (įskaitant 10 veržlių) čia/čia
  24. 2 „Zip“kaklaraiščiai čia
  25. 1 išjungta veroboard (0,1 "žingsnis) čia
  26. 1 nuolaida Čia įvairaus ilgio 22swg alavuota varinė viela
  27. Čia yra 1 išjungtas 3M White UK maitinimo kabelis
  28. Čia yra 10 „Molex“lizdų gofruotųjų elementų

„Sonoff“programuotojas

  1. 1 išjungtas LD33CV 3v3 įtampos reguliatorius
  2. 1 nuolaida TO-220 radiatoriui čia
  3. 1 nuolaida Šildytuvo pasta čia
  4. 1 išjungtas 10uF @16v elektrolitinis kondensatorius čia
  5. 1 išjungtas 0,1 keraminis kondensatorius
  6. 1 išjungti SPDT mygtuką čia
  7. Čia yra 1 išjungtas 4K7 rezistorius
  8. 1 išjungta 2 krypčių koduota „Molex“jungtis čia/čia
  9. 1 išjungta 3 krypčių koduota „Molex“jungtis čia/čia
  10. Čia yra 5 „Molex“lizdų gofruotės
  11. 1 išjungtas 6 krypčių molex lizdas
  12. 1 išjungimo SPST mygtukas čia
  13. 1 išjungtas 2,1 mm PSU lizdas
  14. 1 išjungta veroboard (0,1 "žingsnis) čia
  15. 1 išjungtas USB į nuoseklųjį adapterį (FTDI)

Kokios programinės įrangos man reikia?

  1. „Arduino IDE 1.6.9“čia
  2. „Arduino IDE“sukonfigūruotas programuoti ESP8266. Pažiūrėk čia; „Arduino IDE“nustatymas programuoti ESP8266-01

Kokių įrankių man reikia?

  1. Lituoklis,
  2. Gręžtuvas ir įvairūs antgaliai (įskaitant pakopinį skylių pjoviklį kabelių sandarikliams ir valdymo mygtuką),
  3. Atsuktuvai (įvairūs),
  4. Reguliuojami veržliarakčiai (du išjungti, žandikaulio plotis> 25 mm, kabelių movoms),
  5. Failai (įvairūs),
  6. Tvirta yda,
  7. Šilumos pistoletas,
  8. DMM (pageidautina CAT IV).

Kokių įgūdžių man reikia?

  1. Geras elektronikos ir namų elektros saugos supratimas/dizainas/laidai ir tt,
  2. Žinios apie Arduino ir jo IDE,
  3. Geri gamybos įgūdžiai (litavimas, dildymas, gręžimas ir kt.),
  4. Šiek tiek kantrybės,
  5. Tam tikras jūsų namų tinklo supratimas.

Aptartos temos

  • Įvadas
  • Grandinės apžvalga
  • „Sonoff RetroMods“
  • Konstrukcijos ir surinkimo detalės
  • „Sonoff“programavimo adapteris
  • Programinės įrangos sistemos apžvalga
  • Programinės įrangos apžvalga
  • „OpenHAB“konfigūracija
  • „IoT“įrenginio bandymas
  • Išvada
  • Naudotos nuorodos

Serijų nuorodos

Į 8 dalį: „WiFi“interneto temperatūros ir drėgmės jutiklis. Dalis: 8 daiktų internetas, namų automatika

Į 10 dalį: IR nuotolinis valdymas per IoT. 10 dalis Daiktų internetas, namų automatika

1 žingsnis: grandinės apžvalga

Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga
Grandinės apžvalga

Apžvalga

Kaip minėta aukščiau esančiame įvade, norint įjungti ir išjungti maitinimo tinklo valdiklį vietoje, reikia įvesties į įmontuotą „Sonoff“ESP8266. Norint įvesti tokį išorinį įvestį, reikia pažeisti „Sonoff“ABS korpusą, todėl kyla galimo smūgio pavojus. Norėdami tai įveikti, aš naudojau optinę izoliaciją, kad nebūtų galimybės patekti į elektros tinklą už tinklo valdiklio sistemos korpuso ribų.

Toliau pateikiamas optinės izoliacijos grandinės aprašymas (1 paveikslėlyje aukščiau).

Grandinės informacija

Optinio izoliacijos grandinė gauna maitinimą tiesiai iš įrenginio maitinimo tinklo. 240 VAC RMS yra taikomas pakopiniam/izoliaciniam transformatoriui TR1 per J1 a „Pheonix“kontaktą MKDSN2, 5/3-5.08 poliamido 3 krypčių gnybtas, kurio įtampa yra 16A esant 400 V įtampai, galinti perkelti 2,5 mm (kv.) CSA kabelį ir F1-500 mA 20 mm greito pūtimo saugiklis. 6VAC, esanti antrinėse TR1 apvijose, yra visa banga, ištaisyta diodiniu tiltu B1.

Ši visos bangos ištaisyta išvestis tada stabilizuojama ir reguliuojama C1, C2 C3, R3 ir IC1 7805L serijos šunto reguliatoriumi, užtikrinančiu gerą, švarų 5 V maitinimo bėgelį.

Tada 5 V bėgelis naudojamas valdyti įvestį į OK1 TIL111 optinį izoliatorių per išoriškai sumontuotą baltą SPST mygtuką, prijungtą prie J3. „TIL111“išėjimas yra prijungtas prie „Sonoff GPIO14“įvesties per R2 ir 4K7 traukimo rezistorių. Taigi pasiekiama geresnė izoliacija nei 340 V (ty didžiausia įtampa = (240 VAC*sqroot (2))).

2 žingsnis: „Sonoff RetroMods“

„Sonoff RetroMods“
„Sonoff RetroMods“
„Sonoff RetroMods“
„Sonoff RetroMods“
„Sonoff RetroMods“
„Sonoff RetroMods“

Norint integruoti „Sonoff 10A“įrenginį, būtina atlikti retrospektyvius pakeitimus.

Pirmasis yra pridėti 5 krypčių 0,1 "žingsnio molex jungtį, kaip parodyta 1 paveiksle. Tai leidžia pasiekti" Sonoff "GPIO14, kai apsauginis dangtelis yra pakeistas, kaip parodyta 2 ir 3 paveikslėliuose aukščiau.

Nors neparodyta aukščiau, aš taip pat išvedžiau serijines TX/RX linijas, kad galėčiau programuoti vietoje (žr. Kabelio laidus SK1..3 1 žingsnyje aukščiau).

Antrasis pakeitimas yra padidinti SPI „Flash“įrenginio dydį nuo numatytojo 1 MB iki 4 MB, kad būtų pakankamai vietos daiktų interneto žiniatinklio serverio failams laikyti SPIFFS.

Aš nusipirkau „SMD SPI flash“įrenginį (W25Q32FVSIG) iš „Ebay“čia

Norėdami pakeisti blykstę, laikinai pašalinau „Sonoff“šviesos diodą, kaip parodyta 4 paveiksle, kad būtų lengviau pasiekti SMD įrenginį. Norėdami išlydyti blykstę, naudoju šilumos pistoletą, kaip parodyta 5 paveikslėlyje aukščiau. Tada iš naujo lituokite atitinkamai 4 MB blykstę ir šviesos diodą (6 pav.).

3 žingsnis: konstrukcijos ir surinkimo detalės

Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės
Konstrukcijos ir surinkimo detalės

Maitinimo tinklo valdiklį įdėjau į „Mulitcomp BM12W ABS“dėžutę (1 pav. Aukščiau). Šiame korpuse yra izoliuoti žalvariniai M3 įdėklai, leidžiantys daugkartinio priėjimo prie įrenginio nepažeidžiant tvirtinimo sriegių, kad prireikus būtų galima pakeisti vidinį saugiklį arba laikui bėgant atlikti vidinį patikrinimą (to negalima pasakyti apie „Sonoff“įrenginį, kuris iš tikrųjų uždaromas tik vieną kartą naudojant savisriegius).

Pagrindinis maitinimo kabelio įtempimo mažinimas buvo pasiektas naudojant M16 nailono/poliamido 6/6 baltą kabelio sandariklį, palaikantį kabelį OD Min/Max 5mm/10mm.

Antrinis įtempimas buvo pašalintas per vieną užtrauktuką, pritvirtintą ant kabelio, jei būtų pernelyg įtempta, o kabelio sandariklis sugestų, užtrauktukas pritvirtins kabelį vietoje.

Kad tilptų kabelių įvorės ir būtų pakankamai vietos montuoti „Sonoff“ir optoizoliacinę elektroniką, aš pašalinau vidines PCB tvirtinimo briaunas, kaip parodyta aukščiau (2 pav.).

Visa elektronika buvo tvirtai pritvirtinta naudojant M3 nailoninius CS varžtus, kad būtų užtikrinta izoliacija nuo korpuso išorės. Optoizoliacinė elektronika yra sumontuota su 5 tvirtinimo taškais, kad būtų užtikrintas patikimas mechaninis stiprumas, jei įrenginys būtų numestas, taip neleidžiant izoliacijos transformatoriaus masės sulaužyti plokštės grandinės.

Įrenginys buvo tiekiamas naudojant JK standartinę spalvotą baltos spalvos 3 gyslų PVC izoliuotą maitinimo tinklą iš kelių gyslų (32/0,2 mm kv) kabelio 1 mm (kv.) CSA. kurių OD yra 7,2 mm, galintis nešti 10A.

Prietaisas buvo prijungtas prie JK tinklo (240 VAC RMS) per standartinį 3 kontaktų apsauginį kištuką (BS 1363/A). Kištukas buvo prijungtas prie 5A.

Visi maitinimo kabeliai prie optinės izoliacijos grandinės buvo prijungti per „Pheonix“kontaktinį MKDSN2, 5/3-5.08 poliamido gnybtus, kurių įtampa yra 16A esant 400 V įtampai, galinčius pernešti 2,5 mm (kv. kiekviena pozicija.

Maitinimo kabeliai nebuvo skardinti, tik susukti, kad būtų išvengta šerdžių išsiliejimo prieš įkišant į jungčių bloką. Tinklo kabelių skardinimas yra pavojinga praktika, nes lydmetalis laikui bėgant „atsipalaiduoja“, todėl kabelis netenka jungties bloko.

Pastaba:

  • OD = išorinis skersmuo.
  • VAC = voltų kintamoji srovė
  • RMS = šaknies vidurkis
  • CSA = skerspjūvio plotas
  • CS = nuskendęs skaitiklis

4 žingsnis: „Sonoff“programavimo adapteris

„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris
„Sonoff“programavimo adapteris

Perprogramuojant „Sonoff 10A“per „Arduino IDE“reikia atsižvelgti į du aspektus;

  1. „Arduino IDE“konfigūravimas programuoti ESP8266,
  2. Pats aparatinės įrangos programavimas.

„Arduino IDE“konfigūravimas programuoti ESP8266

Norėdami sukonfigūruoti „Ardino IDE“, vadovaukitės čia pateiktomis instrukcijomis „Arduino IDE“nustatymas programuoti ESP8266-01

Techninės įrangos programavimas

Tai yra daugiapakopis procesas, kaip ir visais atvejais naudojant ESP8266. Čia „Sonoff“maitinimas į plokštę tiekiamas per išorinį stabilizuotą 3v3 nuolatinės srovės šaltinį, o ne iš maitinimo tinklo. Norint siųsti ir gauti duomenis į „Sonoff“ir iš jo, reikės USB į nuoseklųjį įrenginį. Prijunkite TX ir RX, kaip parodyta 2 ir 4 paveikslėliuose.

Programavimo veiksmai (bendrieji)

  1. Pirmiausia įsitikinkite, kad „Sonoff“nėra prijungtas prie išorinio maitinimo šaltinio,
  2. Paspauskite ir palaikykite „Sonoff“įrenginio mygtuką. (1 pav. aukščiau, pažymėtas pakartotinio blykstės mygtukas),
  3. Prie 1 kaiščio uždėkite išorinį DC 3v3 maitinimą (2 pav. Aukščiau),
  4. Atleiskite Sonoff mygtuką,
  5. Dabar prietaisą galima perprogramuoti įprastu būdu per „Arduino IDE“.

Kad viskas būtų šiek tiek lengviau, sukūriau aukščiau esantį programavimo įrenginį (3 ir 4 paveikslai), kuris buvo sujungtas su „Sonoff“per laidus SK1… 3 (kaip aprašyta šiame instrukciniame 1 veiksme). Tai leido lengviau programuoti ESP8266. Ji taip pat suteikė galimybę išbandyti GPIO14 kaip įvestį naudojant R1, 4K7 ištraukiamąjį rezistorių ir mygtuką S1.

Naudodami aukščiau esantį programavimo įrenginį (3 ir 4 nuotraukos) Programavimo žingsniai yra

  1. Paspauskite ir palaikykite „Sonoff“pakartotinio blykstės mygtuką,
  2. Impulsuokite 3v3 maitinimą akimirksniu paspausdami S2,
  3. Atleiskite pakartotinio blykstės mygtuką,
  4. Prietaisą dabar galima užprogramuoti.

PASTABA - ĮSPĖJIMAS

Jokiomis aplinkybėmis „Sonoff“perprogramavimo metu maitinimas neturėtų būti tiekiamas iš elektros tinklo

5 veiksmas: programinės įrangos sistemos apžvalga

Programinės įrangos sistemos apžvalga
Programinės įrangos sistemos apžvalga
Programinės įrangos sistemos apžvalga
Programinės įrangos sistemos apžvalga

Šiame „IoT“tinklo valdiklio įrenginyje dažniausiai yra tie patys šeši pagrindiniai programinės įrangos komponentai, kaip ir „Instructable WiFi IoT“temperatūros ir drėgmės jutiklyje. Dalis: 8 daiktų internetas, namų automatizavimas ir parodyta 1 paveiksle aukščiau, šiek tiek pritaikant.

SPIFFS

Tai yra (atnaujinta iki 4 MB) integruota SPI „Flash Filing“sistema ir naudojama šiai informacijai saugoti (žr. 2 pav. Aukščiau);

  • Piktogramos ir „Pagrindinio valdiklio konfigūracijos pagrindinis puslapis“html: aptarnaujamas „IoT“įrenginio, kai jis negali prisijungti prie jūsų „IoT WiFi“tinklo (dažniausiai dėl neteisingos saugos informacijos) ir suteikia vartotojui galimybę nuotoliniu būdu konfigūruoti tinklo valdiklį be poreikis perprogramuoti arba įkelti naują SPIFFS turinį.
  • Saugos informacija: joje saugoma informacija, kurią įjungus „IoT“įrenginys prisijungia prie jūsų „IoT WiFi“tinklo ir „MQTT Broker“. Informacija, pateikta per „Mains Controller Configuration Home Page“, yra įrašoma į šį failą („secvals.txt“).

Pastaba: Norėdami iš pradžių nustatyti įrenginį, čia rasite išsamios informacijos apie tai, kaip naudoti SPIFFS su „Arduino IDE“.

mDNS serveris

Ši funkcija naudojama, kai „IoT“įrenginiui nepavyksta prisijungti prie „WiFi“tinklo kaip „WiFi“stoties, o jis tapo „WiFi“prieigos tašku, panašiu į vietinį „WiFi“maršrutizatorių. Tokio maršrutizatoriaus atveju paprastai prie jo prisijungtumėte įvesdami panašaus 192.168.1.1 IP adresą (paprastai atspausdintą ant etiketės, pritvirtintos prie dėžutės) tiesiai į naršyklės URL juostą, į kurią gausite prisijungimo puslapį vartotojo vardą ir slaptažodį, kad galėtumėte konfigūruoti įrenginį. Jei ESP8266 veikia AP režimu (prieigos taško režimu), numatytasis įrenginio IP adresas yra 192.168.4.1, tačiau, kai veikia mDNS serveris, naršyklės URL juostoje turite įvesti tik žmonėms draugišką pavadinimą „MAINSCON.local“, kad pamatytumėte „Pagrindinis tinklo valdiklio konfigūracijos puslapis“.

MQTT klientas

MQTT klientas suteikia visas reikalingas funkcijas; prisijunkite prie savo IoT tinklo MQTT brokerio, užsiprenumeruokite pasirinktas temas ir paskelbkite naudingus krovinius tam tikrai temai. Trumpai tariant, jame numatytos pagrindinės daiktų interneto funkcijos.

HTTP žiniatinklio serveris

Kaip minėta aukščiau, jei „IoT“įrenginys negali prisijungti prie „WiFi“tinklo, kurio SSID, P/W ir tt yra apibrėžti saugos informacijos faile, esančiame SPIFFS, įrenginys taps prieigos tašku. Prisijungus prie „WiFi“tinklo, kurį teikia prieigos taškas, HTTP žiniatinklio serveris leidžia tiesiogiai prisijungti prie įrenginio ir pakeisti jo konfigūraciją naudojant HTTP žiniatinklio naršyklę, kurios tikslas yra aptarnauti pagrindinio valdiklio konfigūraciją Pagrindinis puslapis “tinklalapis, kuris taip pat saugomas SPIFFS formatu.

WiFi stotis

Ši funkcija suteikia „IoT“įrenginiui galimybę prisijungti prie vietinio „WiFi“tinklo naudojant saugos informacijos failo parametrus, be to jūsų „IoT“įrenginys negalės užsiprenumeruoti/paskelbti „MQTT Broker“

„WiFi“prieigos taškas

Galimybė tapti „WiFi“prieigos tašku yra priemonė, kuria „IoT“įrenginys leidžia prisijungti prie jo ir keisti konfigūraciją per „WiFi“stotį ir naršyklę (pvz., „Safari“„Apple iPad“). Šis prieigos taškas transliuoja SSID = "MAINSCON" + paskutinius 6 IoT įrenginio MAC adreso skaitmenis. Šio uždaro tinklo slaptažodis išgalvotai pavadintas „PASSWORD“.

6 veiksmas: programinės įrangos apžvalga

Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga
Programinės įrangos apžvalga

Norėdami sėkmingai sukompiliuoti šį šaltinio kodą, jums reikės šių papildomų bibliotekų;

PubSubClient.h

  • Autorius: Nickas O'Leary
  • Tikslas: leidžia įrenginiui skelbti arba užsisakyti MQTT temas su tam tikru tarpininku
  • Iš:

Atšokti2.h

  • Autorius: Thomas O Fredericks
  • Tikslas: programinės įrangos įvesties jungiklis neveikia
  • Iš:

Kodo apžvalga

Programinė įranga naudoja būsenos mašiną, kaip parodyta 1 paveiksle aukščiau (visa šaltinio kopija pateikta žemiau). Yra 5 pagrindinės būsenos:

  • INIT

    Ši inicijavimo būsena yra pirmoji būsena, įvesta po maitinimo įjungimo

  • NOCONFIG

    Ši būsena įvedama, jei įjungus aptinkamas netinkamas arba trūkstamas failas secvals.txt

  • LAUKIA NW

    Ši būsena yra laikina, įvesta, kol nėra „WiFi“tinklo ryšio

  • LAUKIA MQTT

    Ši būsena yra laikina, įvesta užmezgus „WiFi“tinklo ryšį ir kol nėra ryšio su „MQTT“tarpininku tame tinkle

  • AKTYVUS

    Tai yra įprasta veikimo būsena, įvesta sukūrus ir „WiFi“tinklo ryšį, ir „MQTT Broker“ryšį. Būtent šios būsenos metu tinklo valdiklis paskelbs „MQTT Broker“ir gaus komandas per prenumeruojamas temas

Įvykiai, kontroliuojantys perėjimus tarp būsenų, aprašyti aukščiau esančiame 1 paveiksle. Perėjimus tarp būsenų taip pat reglamentuoja šie „SecVals“parametrai;

  • 1 -asis MQTT brokerio IP adresas. Taškinėje dešimtainėje formoje AAA. BBB. CCC. DDD
  • 2 -asis MQTT tarpininkų uostas. Sveiko skaičiaus forma.
  • Trečiasis „MQTT Broker“ryšys bando prisijungti prieš pereinant iš STA režimo į AP režimą. Sveiko skaičiaus forma.
  • 4 -asis „WiFi“tinklo SSID. Laisvos formos tekstu.
  • 5 -asis „WiFi“tinklo slaptažodis. Laisvos formos tekstu.

Kaip minėta aukščiau, jei „IoT“įrenginys negali prisijungti kaip „WiFi“stotis prie „WiFi“tinklo, kurio SSID ir P/W yra apibrėžti SPIFFS esančiame secvals.txt, įrenginys taps prieigos tašku. Prisijungęs prie šio prieigos taško, jis pateiks „Tinklo valdiklio konfigūracijos pagrindinį puslapį“, kaip parodyta aukščiau 2 paveiksle (į naršyklės URL adreso juostą įvedant „MAINSCON.local“arba 192.168.4.1). Šis pagrindinis puslapis leidžia perkonfigūruoti tinklo valdiklį per HTTP naršyklę.

MQTT Temos pavadinimo konvencija

Aukščiau pateiktame 3 paveiksle aprašyta pavadinimo sutartis, naudojama MQTT temoms, ir ji atitinka ankstesniame „Instructable“(čia 5 veiksmas) modelį.

MQTT temos, naudojamos šiame daiktų interneto įrenginyje

Aiškumo dėlei užfiksavau (4 pav.) Temas ir susijusias pranešimų sekas, kurias šis įrenginys skelbia/prenumeruoja. Paveikslėlyje taip pat pavaizduota sąveika su baltu valdymo mygtuku korpuso išorėje (nors ironiškai mygtukas rodomas raudonai).

Nuotolinė konfigūracijos prieiga būdama AKTYVUS

Prisijungus prie „MQTT Broker“, galima nuotoliniu būdu iš naujo konfigūruoti įrenginio saugos parametrus per MQTT teminius leidinius. Susijęs failas secvals.txt turi tik rašymo prieigą.

Naudotojo derinimas

Įkrovos seanso metu „Sonoff“įrenginio šviesos diodas pateikia šiuos atsiliepimus apie derinimą, nors reikia pažymėti, kad norėdami tai pamatyti, turėsite nuimti dangtelį ir atskleisti grandinę, todėl patartina tai daryti tik kuriant kodą ir maitinant įrenginį su 3v3 maitinimu;

  • 1 Trumpa blykstė: nėra konfigūracijos failo, esančio SPIFFS (secvals.txt),
  • 2 trumpi mirksėjimai: „IoT“įrenginys bando prisijungti prie „WiFi“tinklo,
  • Nuolatinis apšvietimas: „Sonoff IoT“įrenginys bando prisijungti prie „MQTT Broker“,
  • Išjungta: įrenginys aktyvus ir prijungtas prie „MQTT Broker“.

1 pastaba: „Tinklo valdiklio konfigūracijos pagrindiniame puslapyje“nenaudojami saugūs lizdai, todėl jūsų tinklas yra saugus.

2 pastaba: norint užprogramuoti kelis daiktų interneto įrenginius, prieš atsisiunčiant į kiekvieną įrenginį reikės redaguoti MQTT eilutę. Taip yra todėl, kad tinklo valdiklio ID numeris buvo įterptas į MQTT temos eilutę. t.y. paskelbtoje programinėje įrangoje pasirinkau 100 reikšmę: „WFD/MainsCont/100/Relay/Command/1“, o 2 įrenginiams jie yra atitinkamai sunumeruoti 1 ir 2.

  • „WFD/MainsCont/1/Relay/Command/1“
  • „WFD/MainsCont/2/Relay/Command/1“

3 pastaba. Siekiant išsamumo, esant aktyviai būsenai, daiktų interneto programinė įranga leidžia valdyti „Sonoff“šviesos diodą ir skelbti pakartotinio blykstės mygtuko būseną. Nors jie yra vertingi tik derinimo proceso metu, nes nė vienas iš jų nėra veikiamas vartotojo įprasto veikimo metu.

7 veiksmas: „OpenHAB“konfigūracija

„OpenHAB“konfigūracija
„OpenHAB“konfigūracija
„OpenHAB“konfigūracija
„OpenHAB“konfigūracija
„OpenHAB“konfigūracija
„OpenHAB“konfigūracija

Bandymų tikslais nusprendžiau savo namų „gyvenamajame kambaryje“sumontuoti du tinklo valdiklius. Šį „OpenHAB“puslapį galima pasiekti per pagrindinį svetainės puslapį, kaip parodyta 1 paveiksle.

Aš pakeičiau „OpenHAB.sitemap“konfigūraciją, pateiktą ankstesniame „Instructable“(čia), ir pridėjau atskirus „Mains Controller 1“ir „Mains Controller 2“įrašus (2 pav. Aukščiau). Taip pat pridėjau įrašų („Living Room Mains Cont. 1 & 2“), kad būtų rodomos dviejų naujų daiktų interneto įrenginių imtuvo RSSI tendencijos (3 pav.).

Galiausiai pridėjau įrašų prie.rules ir.items failų, kad būtų galima dinamiškai sinchronizuoti „Sonoff“būseną ir atnaujinti/pagyvinti mano prastą bandymą perjungti grafiką (jungiklis uždaromas, kai aktyvus, ir atidaromas, kai neaktyvus). 2 paveiksle pateikiamas MC1 aktyvaus ir MC2 neaktyvaus pavyzdys.

1 pastaba: Jei nesate tikri, kaip naudoti „OpenHAB“, skaitykite čia „OpenHAB nustatymas ir konfigūravimas“. 6 dalis. Daiktų internetas, namų automatika “

2 pastaba: Žemiau esančiame ZIP faile pateikiama pakeistos svetainės schemos, taisyklių ir elementų failų, piktogramų ir kt. Kopija.

3 pastaba: RSSI = gauto signalo stiprumo indikacija. Tai yra matas, kaip „IoT“įrenginys gali matyti jūsų „WiFi“tinklą.

8 veiksmas: išbandykite savo „IoT“įrenginį

Image
Image
„IoT“įrenginio bandymas
„IoT“įrenginio bandymas

Kaip aprašyta instrukciniame „WiFi IoT“temperatūros ir drėgmės jutiklyje. 8 dalis. IoT, namų automatizavimas 7 veiksmas, pradinis daiktų interneto įrenginio bandymas buvo atliktas naudojant MQTT ryšį per „MQTT Spy“(kaip parodyta aukščiau esančioje 1 schemoje) baltas išorinis mygtukas) ir derinkite srautą serijinėje sąsajoje. Tai leido man pasinaudoti visomis turimomis prenumeruojamomis temomis ir patikrinti paskelbtus atsakymus. Nors vėlgi, tai buvo atlikta rankiniu būdu ir užima daug laiko, nors tai leido 100% aprėpti pranešimus/teminius leidinius.

Kadangi pagrindinė programinės įrangos būsenos mašina (6 veiksmas aukščiau) buvo paveldėta iš ankstesnio „Instructable“(8 dalis), išskyrus protingumo tikrinimą, programinė įranga galėjo prisijungti prie „WiFi N/W“ir „MQTT Broker“, manoma, kad tai veikia tinkamai.

Tada buvo atliktas visas sistemos lygio bandymas naudojant tinklo valdiklį ir daiktų interneto infrastruktūrą (vėl 1 pav.), Šį kartą naudojant „OpenHAB“sąveikai su „IoT“įrenginiu valdyti. „IoT“aparatinės įrangos ir netikros apkrovos nustatymą galima pamatyti 2 paveikslėlyje aukščiau.

Vaizdo įraše pateikiama išsami informacija apie sistemos testus ir aiškiai parodyta sinchronizacija tarp „OpenHAB“įrenginių (kompiuteris/„Chrome“ir „iPad“/„OpenHAB APP“) realiuoju laiku. Jame taip pat rodomi tiesioginiai pranešimai į tinklo valdiklius naudojant MQTTSpy (daugiau informacijos rasite čia. MQTT brokerio nustatymas. 2 dalis: Daiktų internetas, namų automatizavimas) ir „OpenHAB“sistemos žurnalas iš aviečių pi serverio per PuTTY SSH ryšį (toliau žr. Čia išsami informacija „OpenHAB“nustatymas ir konfigūravimas. 6 dalis: Daiktų internetas, namų automatizavimas).

Pastaba: derinimo srautas buvo surinktas galutiniam programinės įrangos leidimui.

9 žingsnis: Išvada

Generolas

Projektas buvo gana lengvai užbaigtas ir gerai veikė. Įterptąją programinę įrangą buvo paprasta sukurti, nes ji buvo sumažinta kodo versija, naudojama šios serijos 8 dalies temperatūros ir drėgmės jutikliams.

Iš pradžių ketinau įsigyti tik baltų komponentų vien dėl jų estetinės kokybės. Aš tai pasiekiau visais, išskyrus valdymo mygtuką, pabandykite kaip galėjau, nesugebėjau gauti gero/pigaus visiškai balto mygtuko.

„Sonoff 10A“įrenginys

Žemiau išvardijau, kas, mano manymu, buvo pagrįsti „Sonoff“įrenginio pliusai ir minusai

Argumentai "už"

  • Pigu.
  • Gera bendruomenės parama.
  • Galima perprogramuoti per „Arduino IDE“.

Minusai

  • Trapus gaubtas.
  • Minimalus įvestis/išvestis (išvedama į tinkamas jungtis).
  • Ramiai veikia.
  • Bute yra tik 1 MB baito SPI blykstė.
  • Ar PITA turi būti perprogramuota, kai prijungta vietoje.
  • Įtraukiant naują kodą į „Sonoff“bandymus, relės uždarymas buvo problemiškas, nes relė yra 5v, o „Sonoff“programavimui tiekiamas tiekimas yra 3v3. Relės įjungimas yra tik juntamas ausiai.

Susirūpinimas

  • Jis nekeičia neutralios linijos. Naudoja SPST relę.
  • Nėra sulydytas.
  • Prastas kabelio įtempimo mažinimas.
  • PCB nėra apsaugotas Sonoff gaubte.

Komentuokite inžinerinį dizainą

Atsižvelgiant į tai, kad šis daiktų interneto įrenginys turėjo būti naudojamas JK elektros tinklui perjungti (240 VAC RMS), laikiausi geros mechaninės ir elektrinės projektavimo praktikos ir užtikrinau, kad smūgio rizika būtų sumažinta, neatskleidžiant jokių elektrai laidžių medžiagų, nurodant visus komponentus, išėjimo apkrova, saugiklių apsauga tiek maitinimo tinklo valdikliui, tiek opto jungties posistemiui, geras nenutrūkstamas įžeminimas ir optinė/galvaninė izoliacija.

Galimas patobulinimas

Žvelgiant į priekį, būtų buvę naudinga įtraukti vaizdinį indikatorių, kad maitinimo tinklo valdiklio išėjimas buvo aktyvus (LED arba neoninis). Nors tai nėra kasdienio naudojimo problema, atsižvelgiant į įprastą praktiką, prieš atliekant bet kokią techninę priežiūrą, reikia atskirti apkrovą nuo maitinimo šaltinio arba tiesiog paspaudus vietinį valdymo mygtuką, išjungiama išvestis, jei lemputė gali užsidegti, kai yra prijungta.

Galutinė pastaba

Jei norite pamatyti du labai prastus pavyzdžius, kaip elgtis su elektros tinklu, peržiūrėkite toliau pateiktas nuorodas. Esu tikras, kad jų Darvino apdovanojimai bus paskelbti labai greitai;

  • „Mad Scientist“prailginimo laidas
  • Bendruomenės atsiliepimai 03 - Energijos saugos problemos!

10 veiksmas: naudojamos nuorodos

Aš naudoju šiuos šaltinius, kad sujungčiau šią instrukciją;

PubSubClient.h

  • Autorius: Nickas O'Leary
  • Tikslas: leidžia įrenginiui skelbti arba užsisakyti MQTT temas su tam tikru tarpininku
  • Iš:

Atšokti2.h

  • Autorius: Thomas O Fredericks
  • Tikslas: programinės įrangos įvesties jungiklis neveikia
  • Iš:

SPIFFS

https://esp8266.github.io/Arduino/versions/2.0.0/do…

„Sonoff“blykstės atnaujinimas

  • https://www.andremiller.net/content/upgrading-sonof…
  • https://tech.scargill.net/32mb-esp01/
  • https://www.andremiller.net/content/upgrading-sonof…

Sonoff grandinės schema

https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf

USB UART modulis (dar žinomas kaip FTDI)

https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e: g: QVUAAOSw71BXP92B

Darvino apdovanojimai (lengvas reljefas)

https://www.darwinawards.com/

TIL111 Opto-izoliatoriaus duomenų lapas

Rekomenduojamas: