Turinys:
- Prekės
- 1 žingsnis: idėja
- 2 žingsnis: Blokinė diagrama
- 3 žingsnis: programavimas
- 4 žingsnis: schema ir litavimas
- 5 veiksmas: „Android“programa
Video: „IoT“mėnulio lempa: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šioje instrukcijoje parodysiu, kaip paprastą baterija maitinamą LED lemputę paversti daiktų interneto įrenginiu.
Šis projektas apima:
- litavimas;
- programavimas ESP8266 su „Arduino IDE“;
- kuriant „Android“programą su „MIT App Inventor“.
Domėjimosi objektas yra ši mėnulio formos lempa, kurią nusipirkau iš „Gearbest“. Bet iš tikrųjų ši pamoka gali būti pritaikyta bet kuriam žemos nuolatinės įtampos įrenginiui (kintamosios srovės maitinimo įrenginiams reikia papildomų grandinių).
Prekės
- „Android“išmanusis telefonas (išbandytos „Android“versijos 7–9).
- Litavimo įrankiai.
- PCB prototipų kūrimas (protoboard).
- ESP-12E plokštė (arba kita devboard su ESP8266 mikrovaldikliu).
- USB serijos keitiklis programavimui.
- Kelios skirtingos pasyvių komponentų vertės (rezistoriai ir kondensatoriai).
(Neprivaloma. Žr. Skyrių „Blokinė diagrama“)
- 3.3V@500mA LDO IC.
- 3.3V-5V loginio lygio keitiklio plokštė.
- 5 V nuolatinės srovės maitinimo šaltinis.
1 žingsnis: idėja
Mėnulio lempa maitinama iš vieno Li-ION 18650 elemento ir turi 3 veikimo režimus:
- išjungtas;
- vadovas;
- automatinis.
Rankinio režimo lemputė valdoma mygtuku, kiekvienas paspaudimas keičia šviesos diodų būseną (įjungta mėlyna, oranžinė, tiek įjungta, išjungta), šviesos intensyvumas keičiasi laikant nuspaustą mygtuką. Įjungus automatinį režimą, šviesos diodų lemputės keičiasi paliečiant arba purtant pačią lempą.
Aš nusprendžiau pridėti ESP8266, kad jis veiktų kaip žiniatinklio serveris, kuris klauso užklausų ir atitinkamai imituoja mygtukų paspaudimus. Nenorėjau nutraukti originalios lempos funkcionalumo, tiesiog norėjau pridėti papildomų „WiFi“valdymo funkcijų, todėl pasirinkau ESP, kad imituotų mygtukų paspaudimus, o ne tiesiogiai valdytų šviesos diodus. Taip pat tai leido man minimaliai sąveikauti su originalia grandine.
Kai buvo atliktas prototipas, jis nuolat varė ~ 80 mA iš išjungtos baterijos (~ 400 mA esant visam ryškumui). Budėjimo srovė yra didelė, nes ESP8266 veikia kaip serveris ir visada yra prijungtas prie „WiFi“ir klausosi užklausų. Baterija išsikrovė po pusantros paros tik išjungtoje būsenoje, todėl vėliau nusprendžiau naudoti lempų USB įkrovimo prievadą, kad galėčiau maitinti visą elektroniką iš išorinio 5 V maitinimo šaltinio ir išardytą akumuliatorių (bet tai neprivaloma).
2 žingsnis: Blokinė diagrama
Blokinėje diagramoje galite pamatyti, kokia grandinė bus pridėta ir kaip bus modifikuota esama schema. Mano atveju aš visiškai išėmiau akumuliatorių ir sutrumpinau akumuliatorių įkroviklių IC įvestį su išvestimi (vėlgi, tai neprivaloma). Skaidrūs blokai diagramoje rodo komponentus, kurie yra apeiti (nors mygtukas vis tiek veikia taip, kaip iš pradžių buvo numatyta).
Remiantis dokumentais, ESP8266 toleruoja tik 3,3 V įtampą, tačiau yra daug pavyzdžių, kai ESP8266 veikia visiškai gerai su 5 V įtampa, todėl galima atsisakyti loginio lygio keitiklio ir 3,3 V LDO, tačiau aš pasilikau prie geriausios praktikos ir pridėjau tuos komponentus.
Aš naudoju 3 ESP8266 įvesties/išvesties kaiščius ir ADC kaištį. Vienas skaitmeninis išvesties kaištis skirtas mygtukų paspaudimams imituoti, du skaitmeniniai įėjimai yra skirti nustatyti, kokios spalvos šviesos diodai dega (iš to galime išsiaiškinti, kokioje būsenoje yra MCU ir kokia būsena po mygtuko paspaudimo). ADC kaištis matuoja įėjimo įtampą (per įtampos skirstytuvą), taip galime stebėti likusį akumuliatoriaus įkrovimo lygį.
Kaip išorinį maitinimo šaltinį naudoju seną telefono įkroviklį 5V@1A (nenaudokite greitųjų įkroviklių).
3 žingsnis: programavimas
Trumpai tariant, programa veikia taip (daugiau informacijos rasite pačiame kode):
ESP8266 prisijungia prie jūsų „WiFi“prieigos taško, kuriuos kredencialus turite įvesti kodo pradžioje prieš programavimą, jis gauna IP adresą iš jūsų maršrutizatoriaus DHCP serverio, norėdami sužinoti IP, kurio jums prireiks vėliau, galite patikrinti maršrutizatoriaus žiniatinklio sąsajos DHCP nustatymus arba nustatyti derinimo vėliava kode iki 1 ir pamatysite, ką IP ESP gavo serijiniame monitoriuje (turėtumėte rezervuoti tą IP savo maršrutizatoriaus nustatymuose, kad ESP visada gautų tą patį IP).
Kai inicijuotas MCU, visada atlieka tą pačią procedūrą amžinai:
- Patikrinkite, ar vis dar prijungtas prie AP, jei ne, pabandykite iš naujo prisijungti, kol nepavyks.
-
Palaukite, kol klientas pateiks HTTP užklausą. Kai atsiranda prašymas:
- Patikrinkite įėjimo įtampą.
- Patikrinkite, kokios būsenos šviesos diodai yra.
- Suderinkite HTTP užklausą su žinomomis šviesos diodų būsenomis (mėlyna, oranžinė, įjungta, išjungta).
- Imituokite tiek daug mygtukų paspaudimų, kiek reikia norimai būsenai pasiekti.
Trumpai aprašysiu programavimo instrukcijas, jei pirmą kartą programuojate ESP8266 MCU, ieškokite išsamesnių instrukcijų.
Jums reikės „Arduino IDE“ir USB nuosekliosios sąsajos keitiklio (pavyzdžiui, FT232RL). Norėdami paruošti IDE, vykdykite šias instrukcijas.
Sekite schemą, kad programavimui prijungtumėte ESP-12E modulį. Keletas patarimų:
- naudoti išorinį 3.3V@500mA maitinimo šaltinį (daugeliu atvejų nepakanka USB serijos maitinimo šaltinio);
- patikrinkite, ar jūsų USB serijos keitiklis suderinamas su 3,3 V logikos lygiu;
- patikrinkite, ar sėkmingai įdiegtos USB serijos keitiklio tvarkyklės (iš „Windows“įrenginių tvarkyklės), taip pat galite patikrinti, ar jis veikia tinkamai iš IDE, tik trumpų RX ir TX kaiščių, nei iš IDE pasirinkite COM prievadą, atidarykite nuoseklųjį monitorių ir parašykite ką nors, jei viskas veikia konsolėje turėtumėte matyti siunčiamą tekstą;
- kažkodėl galėjau programuoti ESP tik tada, kai pirmą kartą prijungiau USB nuoseklųjį keitiklį prie kompiuterio, o tada įjungiau ESP iš išorinio 3,3 V šaltinio;
- po sėkmingo programavimo nepamirškite kitą kartą paleisti GPIO0 aukštai.
4 žingsnis: schema ir litavimas
Vykdykite schemą, kad visi komponentai būtų prilituoti prie protoboard. Kaip minėta anksčiau, kai kurie komponentai yra neprivalomi. Aš naudojau KA78M33 3.3V LDO IC ir šią loginio lygio keitiklio plokštę iš „sparkfun“, taip pat galite patys pasidaryti keitiklį, kaip parodyta schemoje (vietoj BSS138 galite naudoti bet kurį N kanalo „mosfet“). Jei naudosite Li-ION bateriją, +5 V maitinimo tinklas bus teigiamas akumuliatoriaus gnybtas. ESP8266 ADC etaloninė įtampa yra 1 V, mano pasirinktos rezistoriaus daliklio vertės leidžia išmatuoti iki 5,7 V įėjimo įtampą.
Prie originalios lempos PCB turi būti 5 jungtys: +5 V (arba +baterija), GND, mygtukas, PWM signalai iš lempų MCU, skirti valdyti mėlynus ir oranžinius šviesos diodus. Jei įjungsite lemputę iš 5 V šaltinio, kaip ir aš, norėsite trumpinti akumuliatorių įkroviklių IC VCC kaištį su OUTPUT kaiščiu, todėl visa elektronika bus maitinama tiesiai iš +5 V, o ne iš akumuliatoriaus įkroviklio OUTPUT.
Sekite antrą paveikslėlį, kuriame rasite visus litavimo taškus, kuriuos turėsite padaryti ant lempų PCB.
PASTABOS:
- Jei nusprendėte trumpinti +5V su akumuliatoriaus įkroviklio IC išvestimi, prieš tai darydami visiškai išimkite akumuliatorių, nenorite tiesiogiai prijungti +5V prie akumuliatoriaus.
- Atkreipkite dėmesį į tai, prie kurio mygtuko kaiščio lituojate ESP išvestį, nes 2 mygtuko kaiščiai yra prijungti prie žemės ir nenorite trumpojo jungimo, kai ESP išėjimas yra AUKŠTAS, geriau dar kartą patikrinkite naudodami multimetrą.
5 veiksmas: „Android“programa
„Android“programa buvo sukurta kartu su „MIT“programų išradėju, norėdami atsisiųsti programą ir (arba) klonuoti projektą, eikite į šią nuorodą (norint ją pasiekti reikės „Google“paskyros).
Pirmą kartą paleidę turėsite atidaryti nustatymus ir įvesti ESP8266 IP adresą. Šis IP bus išsaugotas, todėl paleidus programą iš naujo jo įvesti nereikia.
Programa išbandyta su keliais „Android 9“ir „Android 7“įrenginiais.
Rekomenduojamas:
Trafaretinė lempa - viena lempa Daug atspalvių: 5 žingsniai
Trafaretinė lempa - viena lempa, daug atspalvių: ši instrukcija parodys, kaip padaryti paprastą lempą su perjungiamais atspalviais (jos abažūris)
Perdirbta Mėnulio fazės lempa: 15 žingsnių
Perdirbta Mėnulio fazės lempa: Ši lempa pagaminta iš plastikinio indelio ir įsijungia, kai priveržiate dangtį. Galite pakeisti siluetą, kad būtų rodomos skirtingos mėnulio fazės
Mėnulio laikrodis su drakonu: 8 žingsniai (su nuotraukomis)
Mėnulio laikrodis su drakonu: *** Įrašas mano tinklaraštyje https://blog.familie-fratila.de/bone-dragon-moonlight-clock/ *** Prieš kurį laiką aš pastatiau laikrodį savo svetainei, nes neradau nieko pirkti, kurio dizainas būtų bent jau toleruojamas :-) Žinoma, mano sūnus, matydamas tai, turėjo poreikį
Mėnulio skraidyklė 64: 3 žingsniai
Lunar Lander 64: Ši pamoka skirta kompiuteriniam žaidimui, kurį parašiau prieš 34 metus, 1984 m., Kai man buvo 14 metų. Jis buvo parašytas „Commodore 64“namų kompiuteryje, prijungtame prie nešiojamojo televizoriaus mano miegamajame, dar gerokai prieš „Windows“kompiuterių laikus. Kompiuterio kalba
Mumijos lempa - „WiFi“valdoma išmanioji lempa: 5 žingsniai (su nuotraukomis)
Mumijos lempa - „WiFi“valdoma išmanioji lempa: Maždaug prieš 230 tūkst. Galime pasakyti, kad tai yra patalpų apšvietimo pradžia. Dabar aš