Turinys:

ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui: 9 žingsniai (su paveikslėliais)
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui: 9 žingsniai (su paveikslėliais)

Video: ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui: 9 žingsniai (su paveikslėliais)

Video: ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui: 9 žingsniai (su paveikslėliais)
Video: How to Make 2-Channel ESP8266 ESP-01 Wi-Fi Relay | ESP-01 Home Automation | RemoteXY | FLProg 2024, Liepa
Anonim
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui
ESP8266-01 „IoT“išmanusis laikmatis namų automatizavimui

ATNAUJINIMAI

2018-09-30: programinė įranga atnaujinta į 1.09 versiją. Dabar su „Sonoff Basic“palaikymu

2018-10-01: galima išbandyti programinės aparatinės įrangos 1.10 versijos bandymą naudojant ESP8266-01 su problemomis

Kadangi nauji slapyvardžiai yra daiktų internetas (IoT) ir namų automatika, nusprendžiau pažvelgti į dabartinius elementus namuose ir aplink juos, kurie yra valdomi naudojant tam tikrą įrenginį. Išsiskyrę elementai yra šie:

  • Baseino siurblys
  • Baseino vandens užpildas
  • Baseinas ir aplinkiniai žibintai
  • TV/Pramogų sistemos spintelių žibintai

Įprastas elementas, naudojamas šiems prietaisams valdyti, yra standartiniai sieninio kištuko laikmačiai. Kiekvienas įrenginys turi savo laikmatį ir yra skirtingose vietose. Taigi kodėl aš pasirinkau šiuos elementus, norėdamas pradėti nuo daiktų interneto ar namų automatikos projektų, galite paklausti?

Na, o gyventi Pietų Afrikoje reiškia, kad elektros energijos tiekimas nutrūksta reguliariai. Remiantis savo namų statistika, per pastaruosius metus patyriau 35 elektros energijos tiekimo sutrikimus, iš viso 40 valandų. Paprastai tai nėra problema, nes visi šiuo metu sumontuoti laikmačiai yra su atsarginiu akumuliatoriumi, kad būtų galima išlaikyti laiką elektros energijos tiekimo sutrikimų metu. Tačiau yra keletas problemų:

  • Šios atsarginės baterijos tarnauja tik metus ar dvejus, tada laikmatį reikia pakeisti. Laikmačiai yra sukonstruoti taip, kad laikmatis turi būti sunaikintas, kad būtų galima pasiekti vidinę Ni-Cad bateriją.
  • Kiekvieną kartą, kai nutrūksta maitinimas, laikmačius su sugedusiomis baterijomis reikia perprogramuoti ir nustatyti laiką.
  • Fizinė laikmačio vieta, prijungus jį prie sieninio lizdo, beveik neįskaito LCD ekranų, rodančių laikmatį iš viršaus. Tai reiškia, kad laikmatis turi būti atjungtas nuo elektros tinklo arba aš turiu atsigulti ant grindų, kad nustatyčiau ar sureguliuotumėte laikmačius po elektros energijos tiekimo sutrikimo.

Dėl aukščiau išvardytų priežasčių nusprendžiau išbandyti galimybę pakeisti laikmačius „IoT Smart Timer“, prijungtu prie vietinio namų tinklo.

Idėja buvo sukurti atskirą laikmatį, kuris gali:

  • Automatiškai koreguoti esamą laiką naudojant internetą (IoT)
  • Valdomas be jokių vartotojo veiksmų (išmanusis)
  • Įjunkite/išjunkite išvestį pagal nustatytą laiką (laikmatis)
  • Programuojamas ir valdomas per tinklą (namų automatika)

1 žingsnis: ESP8266-01 dizainas

ESP8266-01 dizainas
ESP8266-01 dizainas
ESP8266-01 dizainas
ESP8266-01 dizainas

Dizainas buvo atliktas naudojant ESP8266-01 „WiFi“modulį, nes tai turėjau. Paprasčiausiu pavidalu ESP8266-01 yra keturi įvesties/išvesties kaiščiai:

  • GPIO0
  • GPIO2
  • TX
  • RX

ESP8266-01 Maitinimo režimai

Įvesties/išvesties kaiščių loginė būsena naudojama nustatyti, kokiu režimu ESP8266-01 bus paleistas. Pirmasis žingsnis buvo nustatyti, kuris iš įvesties/išvesties kaiščių gali būti naudojamas išvesties relės valdymui.

  • Norint normaliai įjungti, GPIO0 ir GPIO2 turi būti nustatyti į logiką HIGH. Taigi akivaizdu, kad šių dviejų kaiščių negalima naudoti kaip skaitmeninės išvesties.
  • „Tx“kaištis nustatytas kaip išėjimas įjungus, o išėjimas nustatytas kaip aukštas. Šis Tx kaištis taip pat perduoda kai kuriuos serijinius duomenis įjungimo metu. Taigi, šis kaištis taip pat negali būti naudojamas kaip išvestis.

Liko tik Rx kaištis. Šis kaištis yra nustatytas kaip įvestis įjungus, o įjungimo metu jo nereikia traukti aukštai. Taigi šis kaištis yra tinkamiausias naudoti kaip išvesties kaištis.

Įkėlimas

Siekiant užtikrinti teisingą ESP8266-01 įkrovos režimą įjungimo metu, naudojant 10K rezistorius, aukštai ištraukiami šie kaiščiai:

  • GPIO0
  • GPIO2
  • RST
  • CH_PD

Tai užtikrina, kad įrenginys kiekvieną kartą tinkamai įsijungs.

Išėjimo relė

RX yra vienintelis kaištis, tinkamas naudoti kaip išvestis. Taigi šis kaištis naudojamas išvesties relės valdymui per NPN tranzistorių. Pridėti standartiniai smagračio diodai ir tranzistorių baziniai rezistoriai.

MODE/SET mygtukas

Mygtukas prijungtas prie GPIO2, o atleidus mygtuką 10K rezistorius pakels GPIO2 aukštį. Paspaudus mygtuką, GPIO2 ištraukiamas iki 0 V.

Šis mygtukas naudojamas dviem funkcijoms:

  • Pradinis įrenginio prijungimas prie vietinio „WiFi“tinklo
  • Norėdami rankiniu būdu valdyti išvestį įprastų operacijų metu

Indikacinis šviesos diodas

Šviesos diodas prijungtas prie GPIO0 ir rodo šiuos dalykus:

  • Įjungus pirmą kartą, mirksi FAST, kad būtų nurodytas „WiFi“sąrankos režimas
  • Mirksi lėtai, kai nenustatytas įrenginio laikas
  • rodo išėjimo relės įjungimo/išjungimo būseną

2 žingsnis: maitinimo šaltinis

Maitinimo šaltinis
Maitinimo šaltinis
Maitinimo šaltinis
Maitinimo šaltinis
Maitinimo šaltinis
Maitinimo šaltinis

„IoT Smart Timer“naudosiu skirtingais įtampos lygiais, todėl yra dvi maitinimo galimybės:

12 - 24V DC

Naudojamas nuolatinės srovės keitiklis tinkamas tiekti iki 28 V nuolatinės srovės. Keitiklio išėjimas yra reguliuojamas ir nustatytas į 5 V. Tai reikia padaryti prieš prijungiant ESP8266 modulį.

Pridedamas diodas, apsaugantis nuo atvirkštinio maitinimo įvesties poliškumo.

Naudojant šią parinktį, „eBay“pavyko gauti nedidelį 220V/5V jungiklio režimo maitinimo šaltinį.

Nepriklausomai nuo įėjimo įtampos, „IoT Smart Timer“reikia dviejų maitinimo šaltinių:

5V geležinkelis

Naudojant abi parinktis, 5 V nuolatinė srovė gaunama iš perjungto režimo maitinimo šaltinio, o ne iš linijinio reguliatoriaus. Tai reiškia, kad maitinimo šaltinis išskiria minimalią šilumą. 5 V naudojamas išėjimo relės valdymui

3.3V geležinkelis

3.3V ESP8266-01 gaunamas iš ASM1117 3.3 reguliatoriaus. ASM1117 3.3 yra linijinis reguliatorius ir gali valdyti iki 500 mA. Tačiau susidariusią šilumą lems įėjimo įtampa į ASM1117. Siekiant sumažinti šilumą, ASM1117 maitinamas iš 5 V bėgio.

Triukšmo filtravimas

Siekiant sumažinti ESP8266-01 įtampos pulsavimą, 3,3 V bėgyje sumontuotas 100 - 1000uf kondensatorius. Tiek 5V, tiek 3,3 V bėgiai taip pat yra apsaugoti nuo aukšto dažnio trukdžių 0,1uf kondensatoriais.

3 žingsnis: PC plokštės surinkimas

PC plokštės surinkimas
PC plokštės surinkimas
PC plokštės surinkimas
PC plokštės surinkimas
PC plokštės surinkimas
PC plokštės surinkimas

Kompiuterių plokštė buvo sukurta naudojant nemokamą „Eagle“versiją. Tai vienpusė plokštė, kurią galima lengvai pasigaminti namuose naudojant dažų perkėlimo metodą.

Sukūrę kompiuterio plokštę, surinkite kompiuterio plokštę tokia tvarka:

  • Lituokite ASM1117 reguliatorių ir tris 0,1uf SMD komponentus prie plokštės litavimo pusės
  • Pridėkite vieną trumpiklį prie plokštės komponento pusės
  • Lituokite rezistorius ir diodus
  • Pridėkite modulio ESP8266-01 antraštes
  • Pridėkite šviesos diodo ir mygtuko antraštės kaiščius
  • Pridėkite varžtų gnybtus
  • Naudodami antraštės kaiščius, prijunkite DC/DC keitiklį prie plokštės.
  • Lituokite relę į vietą
  • Užpildykite plokštę lituodami tranzistorių ir 100uf kondensatorių.

Kai visi komponentai bus prilituoti prie plokštės, patikrinkite visus litavimo taškus ir įsitikinkite, kad tarp trinkelių nėra trumpojo jungimo.

! ! ! SVARBI PASTABA! ! ! Norėdami užtikrinti, kad kompiuterio plokštė galėtų valdyti dideles sroves išvesties kontaktuose, uždėkite tinkamą litavimo kiekį ant takelių tarp relės kontaktų ir varžtų gnybtų

4 žingsnis: PC plokštės testavimas

PC plokštės testavimas
PC plokštės testavimas

! ! ! Prieš pradėdami naudoti galią! ! !

Išimkite ESP8266-01 modulį iš įrenginio. Tai daroma siekiant išvengti ASM1117 reguliatoriaus perkaitimo prieš sureguliuojant 5 V maitinimą.

Bandymų, kuriuos galima atlikti po surinkimo, nėra daug. Svarbiausias žingsnis yra užtikrinti teisingą įtampos lygį.

  • Įrenginį įtvirtinkite 12 - 24 V DC.
  • Išmatuokite DC/DC keitiklio išėjimo įtampą
  • Nustatykite keitiklio išvestį nuo 5,0 iki 5,5 V.
  • Tada išmatuokite 3,3 V maitinimą.
  • Jei maitinimo šaltiniai yra tinkami, išjunkite maitinimą iš įrenginio

Dabar į pateiktas antraštes galite įterpti modulį ESP8266-01.

! ! ! Pastaba!

Išbandę IoT laikmatį ir jis veikia, naudokite skaidrų laką, kad padengtumėte kompiuterio plokštės litavimo pusę. Taip išvengsite takelių oksidacijos ir papildomos izoliacijos tarp relės kontaktų ir likusios grandinės

5 žingsnis: gaubtas

Aptvaras
Aptvaras
Aptvaras
Aptvaras
Aptvaras
Aptvaras

Korpusas nėra toks svarbus, kol kompiuterio plokštė ir visi laidai tvarkingai ir saugiai telpa į ją.

Kad konstrukcija būtų lengvesnė, sukūriau kabelį, prie kurio prijungtas šviesos diodas ir MODE/SETUP mygtukas. Tai suteikė man daugiau lankstumo montuojant šviesos diodą ir mygtuką prie korpuso. Tada šis kabelis prijungiamas prie kompiuterio plokštės antraštės.

Nuotraukose parodytas vienas iš 12V įrenginių, naudojamų LED žibintams.

6 veiksmas: ESP8266-01/NodeMCU programavimas

ESP8266-01/NodeMCU programavimas
ESP8266-01/NodeMCU programavimas
ESP8266-01/NodeMCU programavimas
ESP8266-01/NodeMCU programavimas
ESP8266-01/NodeMCU programavimas
ESP8266-01/NodeMCU programavimas

Norėdami užprogramuoti ESP8266-01, pirmiausia turite nustatyti „Arduino IDE“. Nesigilinu į šią informaciją, nes šia tema yra daug puikių instrukcijų. Aš pasirinkau šias nuorodas „Instructables“nuorodoms, be jokio konkretaus užsakymo autoriams. Ačiū už jų individualias instrukcijas.

Vykdykite šį ESP8266 ir „Arduino IDE“, kad nustatytumėte „Arduino IDE“ESP8266 moduliui.

Tada jums reikės programuotojo, kuris užprogramuotų ESP8266. Čia yra dvi nuorodos:

Naudojant „Arduino Uno“

„Pasidaryk pats“programavimo taryba

Bibliotekos

Norėdami sudaryti kodą, turėsite įdiegti papildomas bibliotekas. Dar kartą žiūrėkite šią instrukciją:

Įdiekite ir naudokite „Arduino“bibliotekas

Neprisimenu, kurias bibliotekas turėjau įdiegti, bet žinau, kad „WiFiManager“reikia atsisiųsti atskirai. Įtraukiau jas į „Libraries.zip“failą.

7 veiksmas: sąranka pirmą kartą

Pirmą kartą sąranka
Pirmą kartą sąranka
Pirmą kartą sąranka
Pirmą kartą sąranka
Pirmą kartą sąranka
Pirmą kartą sąranka

Pirmą kartą naudojant „IoT Smart Timer“reikia prijungti prie „WiFi“tinklo. Ši užduotis atliekama naudojant „WiFiManager“biblioteką, todėl į kodą nereikia įvesti jokių SSID ar slaptažodžių.

Atlikite šiuos kelis veiksmus:

  • Įjunkite įrenginį
  • Šviesos diodas pradės greitai mirksėti
  • Paspauskite MODE/SETUP mygtuką
  • Kai šviesos diodas išsijungia, atleiskite mygtuką
  • Palaukite kelias sekundes, tada atidarykite išmaniojo telefono ar įrenginio „WiFi“ryšius
  • Bus matomas naujas „WiFi“tinklo žodis, pavadintas „IoT Timer“
  • Pasirinkite šį prieigos tašką
  • Prisijunkite prie „IoT Timer“(slaptažodžio nereikia)
  • Palaukite, kol jūsų prietaisas bus prijungtas prie „IoT Timer“tinklo
  • Atidarykite bet kurią interneto naršyklę
  • Adreso juostoje įveskite šį IP adresą - 192.168.4.1
  • Bus atidaryta „WiFiManager“konsolė
  • Pasirinkite Konfigūruoti „WiFi“
  • Bus rodomas galimų „WiFi“tinklo taškų sąrašas
  • Pasirinkite reikiamą „WiFi“tinklą ir įveskite slaptažodį
  • Tada įveskite IP adresą, kurį norite naudoti prisijungdami prie „IoT Timer“
  • Įveskite numatytąjį šliuzo IP adresą, po to - kaukę
  • Atlikę visus nustatymus, spustelėkite mygtuką Išsaugoti
  • Atsidarys naujas langas, patvirtinantis, kad nauji įgaliojimai buvo išsaugoti
  • Uždarykite naršyklę

Išsaugojus „IoT Timer“tinklas išsijungs, o įrenginys bandys prisijungti prie „WiFi“tinklo.

  • Prijunkite savo išmanųjį telefoną ar įrenginį prie to paties „WiFi“tinklo, kuris buvo naudojamas „IoT Timer“.
  • Atidarykite naršyklę
  • Adreso juostoje įveskite savo „IoT Timer“IP adresą
  • Atsidarys „IoT Timer“konfigūracijos puslapis

„IoT Timer“dabar paruoštas naudoti

8 veiksmas: „IoT Timer“sąranka

„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka
„IoT Timer“sąranka

Įdiegtą „IoT Timer“tinklalapį sudaro penki skyriai:

Būsena

Tai rodo įrenginio pavadinimą, taip pat esamą laiką ir laikmačio išvesties būseną

Be to, šiame skyriuje nustatytas laikmačio darbo režimas. Yra trys režimai:

  • Automatinis išėjimas bus valdomas naudojant skirtingas laikmačio programas
  • Įjungta - išvestis priverstinai įjungta ir liks, kol bus pakeistas režimas
  • Išjungta - išvestis priverstinai išjungta ir liks išjungta, kol nebus pakeistas režimas.

Programos

Šiame skyriuje pateikiamas laikmačio įjungimo ir išjungimo laikas. Yra septynios programos, ir kiekvieną programą galima nustatyti atskirai.

Prieš keisdami kitą programą, paspauskite SAVE mygtuką, kad išsaugotumėte visus dabartinės programos pakeitimus.

Mygtuko funkcija

Mygtuku MODE/SETUP galima valdyti išėjimo relę įprasto darbo metu. Čia pasirinkite, ką mygtukas turi daryti paspaudus.

Pažymėkite langelį „Atnaujinti mygtuko funkciją“prieš paspausdami mygtuką Išsaugoti, kad išsaugotumėte naujus nustatymus.

Konfigūracija

Čia galite pakeisti daiktų interneto laikmačio pavadinimą. Tai leidžia lengvai atskirti kelis laikmačius.

Laikas įrenginyje gaunamas iš interneto per NTP laiko serverį. Norėdami rodyti teisingą laiką, atnaujinkite laiko juostą į savo regioną.

Jei norite naudoti kitą NTP laiko serverį, įveskite naują IP adresą į jam skirtą vietą.

Pažymėkite langelį „Atnaujinti konfigūraciją“prieš paspausdami mygtuką Išsaugoti, kad išsaugotumėte naujus nustatymus.

PASTABA

Keičiant laiko juostą, naujas laikas bus nustatytas teisingai tik per kitą laiko užklausą. Įrenginys nustatytas atnaujinti laiką kas 5 minutes.

Laiko koregavimas

Kartais nutinka taip, kad NTP laiko serveris neatsako į kiekvieną užklausą. Jei per NTP serverį laikas bus nustatytas per ilgai, laiką ir datą galite įvesti rankiniu būdu.

Pažymėkite langelį „Atnaujinti laiką“prieš paspausdami mygtuką Išsaugoti, kad išsaugotumėte naują laiką ir datą.

Laiko sinchronizavimas

Paskutinėje puslapio dalyje nurodomas laikas ir data, kada paskutinis laikas buvo sinchronizuotas per NTP laiko serverį.

Rekomenduojamas: