Satura rādītājs:

IoT Mēness lampa: 5 soļi
IoT Mēness lampa: 5 soļi

Video: IoT Mēness lampa: 5 soļi

Video: IoT Mēness lampa: 5 soļi
Video: Я работаю в Страшном музее для Богатых и Знаменитых. Страшные истории. Ужасы. 2024, Novembris
Anonim
IoT Mēness lampa
IoT Mēness lampa

Šajā pamācībā es parādīšu, kā vienkāršu ar akumulatoru darbināmu LED lampu pārvērst par IoT ierīci.

Šajā projektā ietilpst:

  • lodēšana;
  • programmēšana ESP8266 ar Arduino IDE;
  • Android lietojumprogrammas izveide ar MIT App Inventor.

Intereses objekts ir šī mēness formas lampa, kuru es nopirku no gearbest. Bet tiešām šo pamācību var pielāgot jebkurai zemsprieguma ierīcei (ar maiņstrāvu darbināmām ierīcēm ir nepieciešama papildu shēma).

Piegādes

  1. Android viedtālrunis (pārbaudītas Android versijas 7-9).
  2. Lodēšanas instrumenti.
  3. PCB prototipēšana (protoboard).
  4. ESP-12E plate (vai cita devboard ar ESP8266 mikrokontrolleru).
  5. USB sērijas pārveidotājs programmēšanai.
  6. Vairākas dažādas pasīvo komponentu vērtības (rezistori un kondensatori).

(Neobligāti. Skatiet sadaļu "Bloku diagramma")

  1. 3.3V@500mA LDO IC.
  2. 3.3V-5V loģikas līmeņa pārveidotāja plate.
  3. 5 V līdzstrāvas barošanas avots.

1. solis: ideja

Ideja
Ideja

Mēness lampu darbina viena Li-ION 18650 šūna, un tai ir 3 darbības režīmi:

  • izslēgts;
  • rokasgrāmata;
  • auto.

Manuālā režīma lampu kontrolē ar spiedpogu, katra nospiešana maina LED gaismas stāvokli (ieslēgta zila, oranža, abas ieslēgta, izslēgta), gaismas intensitāte mainās, turot nospiestu pogu. Automātiskajā režīmā gaismas diode mainās, pieskaroties vai kratot pašu lampu.

Es nolēmu pievienot ESP8266, lai darbotos kā tīmekļa serveris, kas klausās pieprasījumus un attiecīgi simulē pogu nospiešanu. Es negribēju izjaukt sākotnējo lampu funkcionalitāti, tikai vēlējos pievienot papildu vadības funkcijas, izmantojot WiFi, tāpēc es izvēlējos ESP, lai simulētu pogu nospiešanu, nevis tieši kontrolētu gaismas diodes. Tas arī ļāva man minimāli mijiedarboties ar oriģinālo shēmu.

Kad prototips tika izveidots, tas nepārtraukti vadīja ~ 80 mA no akumulatora izslēgtā stāvoklī (~ 400 mA ar pilnu spilgtumu). Gaidstāves strāva ir augsta, jo ESP8266 darbojas kā serveris un vienmēr ir savienots ar WiFi un klausās pieprasījumus. Akumulators bija izlādējies pēc pusotras dienas tikai izslēgtā stāvoklī, tāpēc vēlāk es nolēmu izmantot lampu USB uzlādes portu, lai barotu visu elektroniku no ārējā 5 V barošanas avota un izlādētu akumulatoru kopā (bet tas nav obligāti).

2. darbība. Bloķēt diagrammu

Blokshēma
Blokshēma

Bloku diagrammā varat redzēt, kāda shēma tiks pievienota un kā tiks pārveidota esošā shēma. Manā gadījumā es pilnībā izņēmu akumulatoru un saīsināju akumulatora lādētāju IC ieeju ar izeju (atkal tas nav obligāti). Caurspīdīgie bloki diagrammā norāda komponentus, kas ir apieti (lai gan spiedpoga joprojām darbojas, kā sākotnēji paredzēts).

Saskaņā ar dokumentāciju ESP8266 pieļauj tikai 3,3 V spriegumu, tomēr ir daudz piemēru, kad ESP8266 darbojas pilnīgi labi ar 5 V spriegumu, tāpēc loģiskā līmeņa pārveidotāju un 3,3 V LDO var izlaist, tomēr es paliku pie labākās prakses un pievienoju šīs sastāvdaļas.

Es izmantoju 3 ESP8266 I/O tapas un ADC tapu. Viena digitālā izvades tapa ir pogas nospiešanas simulēšanai, divas digitālās ieejas ir paredzētas, lai uzzinātu, kādas krāsas gaismas diodes ir ieslēgtas (no tā mēs varam saprast, kādā stāvoklī ir MCU un kurš stāvoklis ir nākamais pēc pogas nospiešanas). ADC tapa mēra ieejas spriegumu (caur sprieguma dalītāju), tā mēs varam uzraudzīt atlikušo akumulatora uzlādes līmeni.

Kā ārēju barošanas avotu es izmantoju veco tālruņa lādētāju 5V@1A (neizmantojiet ātrās uzlādes ierīces).

3. solis: programmēšana

Programmēšana
Programmēšana
Programmēšana
Programmēšana

Īsumā programma darbojas šādi (lai iegūtu vairāk informācijas, skatiet pašu kodu):

ESP8266 izveido savienojumu ar jūsu WiFi piekļuves punktu, kādi akreditācijas dati jāievada koda sākumā pirms programmēšanas, tas saņem IP adresi no jūsu maršrutētāja DHCP servera, lai uzzinātu IP, kas jums būs nepieciešams vēlāk, varat pārbaudīt maršrutētāja tīmekļa saskarnes DHCP iestatījumus vai iestatīt atkļūdošanas karodziņu kodā uz 1, un jūs redzēsit, ko IP ESP ieguva sērijveida monitorā (jums vajadzētu rezervēt šo IP maršrutētāja iestatījumos, lai ESP sāknēšanas laikā vienmēr saņemtu to pašu IP).

Kad inicializēts MCU vienmēr izpilda vienu un to pašu rutīnu uz visiem laikiem:

  1. Pārbaudiet, vai joprojām ir izveidots savienojums ar AP, ja ne, mēģiniet no jauna izveidot savienojumu līdz panākumiem.
  2. Pagaidiet, līdz klients iesniedz HTTP pieprasījumu. Kad notiek pieprasījums:

    1. Pārbaudiet ieejas spriegumu.
    2. Pārbaudiet, kādā stāvoklī ir gaismas diodes.
    3. Saskaņojiet HTTP pieprasījumu ar zināmiem LED stāvokļiem (zils ieslēgts, oranžs ieslēgts, abi ieslēgti, izslēgti).
    4. Simulējiet tik daudz spiedpogas, cik nepieciešams, lai sasniegtu pieprasīto stāvokli.

Es īsi aprakstīšu programmēšanas norādījumus, ja pirmo reizi programmējat ESP8266 MCU, meklējiet padziļinātus norādījumus.

Jums būs nepieciešams Arduino IDE un USB seriālā interfeisa pārveidotājs (piemēram, FT232RL). Lai sagatavotu IDE, izpildiet šos norādījumus.

Izpildiet shēmu, lai programmēšanai pievienotu ESP-12E moduli. Daži padomi:

  • izmantojiet ārēju 3.3V@500mA barošanas avotu (vairumā gadījumu nepietiek ar USB sērijas barošanu);
  • pārbaudiet, vai jūsu USB sērijas pārveidotājs ir saderīgs ar 3.3V loģikas līmeni;
  • pārbaudiet, vai USB sērijas pārveidotāja draiveri ir veiksmīgi instalēti (no Windows ierīču pārvaldnieka), kā arī varat pārbaudīt, vai tas darbojas pareizi, izmantojot IDE, tikai īsas RX un TX tapas, nevis no IDE izvēlieties COM portu, atveriet seriālo monitoru un uzrakstiet kaut ko, ja viss darbojas jums vajadzētu redzēt, ka jūsu sūtītais teksts parādās konsolē;
  • nez kāpēc es varēju programmēt ESP tikai tad, kad es vispirms pievienoju datoram USB seriālo pārveidotāju un pēc tam ieslēdzu ESP no ārējā 3,3 V avota;
  • pēc veiksmīgas programmēšanas neaizmirstiet nākamajā sāknēšanas reizē pacelt GPIO0 augstu.

4. darbība. Shēma un lodēšana

Shēma un lodēšana
Shēma un lodēšana
Shēma un lodēšana
Shēma un lodēšana
Shēma un lodēšana
Shēma un lodēšana

Izpildiet shematiski, lai pielādētu visus komponentus protoboard. Kā minēts iepriekš, daži komponenti nav obligāti. Es izmantoju KA78M33 3.3V LDO IC un šo loģikas līmeņa pārveidotāja plati no sparkfun. Alternatīvi, jūs varat izgatavot pārveidotāju pats, kā parādīts shēmā (BSS138 vietā varat izmantot jebkuru N kanāla mosfet). Ja izmantojat litija jonu akumulatoru, +5V strāvas tīkls būs akumulatora pozitīvais spaile. ESP8266 ADC atsauces spriegums ir 1V, manas izvēlētās rezistoru dalītāja vērtības ļauj izmērīt ieejas spriegumu līdz 5,7V.

Ir jābūt 5 savienojumiem ar oriģinālo lampas PCB: +5V (vai +akumulators), GND, spiedpoga, PWM signāli no lampām MCU, lai kontrolētu zilas un oranžas gaismas diodes. Ja jūs barojat lampu no 5 V avota, kā es to darīju, jūs vēlaties saīsināt akumulatoru lādētāju IC VCC tapu ar OUTPUT tapu, tādējādi visa elektronika tiks barota tieši no +5 V, nevis no akumulatora lādētāja OUTPUT.

Sekojiet otrajam attēlam, lai redzētu visus lodēšanas punktus, kas jums būs jāizveido uz lampām PCB.

PIEZĪMES:

  1. Ja esat nolēmis saīsināt +5V ar akumulatora lādētāja IC izvadi, pirms tā veikšanas pilnībā izņemiet akumulatoru, nevēlaties pievienot +5V tieši akumulatoram.
  2. Pievērsiet uzmanību tam, ar kuru spiedpogas tapu jūs lodējat ESP izeju, jo 2 spiedpogas tapas ir pievienotas zemei un jūs nevēlaties īsslēgt, kad ESP izeja ir AUGSTA, labāk vēlreiz pārbaudīt ar multimetru.

5. darbība: Android lietotne

Android lietotne
Android lietotne
Android lietotne
Android lietotne
Android lietotne
Android lietotne

Android lietotne tika izveidota kopā ar MIT lietotņu izgudrotāju, lai lejupielādētu lietotni un/vai klonētu projektu, dodieties uz šo saiti (lai tai piekļūtu, jums būs nepieciešams Google konts).

Pirmajā palaišanas reizē jums būs jāatver iestatījumi un jāievada ESP8266 IP adrese. Šis IP tiks saglabāts, tāpēc pēc programmas restartēšanas tas nav jāievada vēlreiz.

Lietotne pārbaudīta ar vairākām Android 9 un Android 7 ierīcēm.

Ieteicams: