Talaan ng mga Nilalaman:

IoT Moon Lamp: 5 Hakbang
IoT Moon Lamp: 5 Hakbang

Video: IoT Moon Lamp: 5 Hakbang

Video: IoT Moon Lamp: 5 Hakbang
Video: I'm Yours - Jason Mraz | Tropavibes Reggae Cover (Ft. Jason Park) 2024, Nobyembre
Anonim
IoT Moon Lamp
IoT Moon Lamp

Sa itinuturo na ito ipinapakita ko kung paano i-convert ang isang simpleng lampara na pinapatakbo ng baterya sa isang aparatong IoT.

Kasama sa proyektong ito ang:

  • paghihinang;
  • programa ng ESP8266 kasama ang Arduino IDE;
  • paggawa ng android application kasama ang MIT App Inventor.

Ang object ng interes ay ang ilaw na hugis ng buwan na binili ko mula sa gearbest. Ngunit talagang ang tutorial na ito ay maaaring iakma sa anumang mababang aparato ng boltahe ng DC (ang mga aparatong pinalakas ng AC ay nangangailangan ng karagdagang circuitry).

Mga gamit

  1. Android smartphone (nasubukan ang mga bersyon ng 7-9 na android).
  2. Mga tool sa paghihinang.
  3. Prototyping PCB (protoboard).
  4. ESP-12E board (o iba pang devboard na may ESP8266 microcontroller).
  5. USB-serial converter para sa programa.
  6. Maraming iba't ibang mga halaga ng mga passive na bahagi (resistors at capacitors).

(Opsyonal. Tingnan ang seksyon na "I-block ang Diagram")

  1. 3.3V@500mA LDO IC.
  2. 3.3V-5V antas ng converter ng antas ng lohika.
  3. 5V DC power supply.

Hakbang 1: Ideya

Idea
Idea

Ang lampara ng buwan ay pinalakas ng isang Li-ION 18650 cell at mayroon itong 3 mga mode ng pagpapatakbo:

  • off;
  • manwal;
  • awtomatiko

Sa manual mode lamp ay kinokontrol ng pindutan ng push, ang bawat pindutin ay nagbabago ng LED light state (asul, orange, parehong naka-on, naka-off), nagbabago ang intensity ng ilaw habang pinipindot ang pindutan ng push. Sa auto mode na LED light ay nagsasaad ng mga pagbabago sa pamamagitan ng pag-tap o pag-alog ng lampara mismo.

Napagpasyahan kong idagdag ang ESP8266 upang kumilos bilang isang web server na nakikinig sa mga kahilingan at nang naaayon sa paggaya ng mga pagpindot sa pindutan. Hindi ko nais na basagin ang orihinal na pag-andar ng lampara, nais lamang na magdagdag ng mga karagdagang tampok sa kontrol sa paglipas ng WiFi, kaya pinili ko ang ESP upang gayahin ang mga pagpindot sa pindutan sa halip na direktang pagkontrol sa mga LED. Pinapayagan din akong makipag-ugnay ng kaunti sa orihinal na circuitry.

Kapag nagawa ang prototype ay nagdulot ito ng ~ 80mA na patuloy mula sa baterya na naka-off estado (~ 400mA sa buong ningning). Ang kasalukuyang standby ay mataas sapagkat ang ESP8266 ay gumagana bilang isang server at palaging nakakakonekta sa WiFi at nakikinig ng mga kahilingan. Ang baterya ay naubos pagkatapos ng isa at kalahating araw lamang sa off state, kaya kalaunan ay napagpasyahan kong gumamit ng mga lamp na USB singilin ang port para sa pagpapatakbo ng lahat ng electronics mula sa panlabas na suplay ng kuryente na 5V at pinagsama-sama ang baterya (ngunit opsyonal ito).

Hakbang 2: I-block ang Diagram

I-block ang Diagram
I-block ang Diagram

Sa block diagram maaari mong makita kung ano ang maidaragdag sa circuitry at kung paano mababago ang mayroon nang circuitry. Sa aking kaso tinanggal ko ang baterya nang buo at naikli ang mga charger ng baterya ng pag-input ng IC na may output (muli, opsyonal ito). Ang mga transparent na bloke sa diagram ay nagpapahiwatig ng mga bahagi na na-bypass (kahit na ang pindutan ng push ay gumagana pa rin bilang orihinal na nilalayon).

Ayon sa dokumentasyon ang ESP8266 ay nagpaparaya lamang sa 3.3V, subalit mayroong maraming mga halimbawa kung ang ESP8266 ay gumagana nang ganap na may 5V, kaya ang antas ng lohika na converter at 3.3V LDO ay maaaring iwanang, subalit nanatili ako sa pinakamahusay na kasanayan at idinagdag ang mga sangkap.

Gumamit ako ng 3 ESP8266 I / O pin at ADC pin. Ang isang digital output pin ay para sa pagtulad sa mga pagpindot sa pindutan, dalawang mga digital na input ay para sa pagtuklas kung anong mga kulay ng LED ang nasa (mula dito maaari nating malaman kung aling estado ang MCU at kung aling estado ang susunod pagkatapos pindutin ang pindutan). Sinusukat ng ADC pin ang boltahe ng pag-input (sa pamamagitan ng isang divider ng boltahe), iyan kung paano namin masusubaybayan ang natitirang antas ng singil ng baterya.

Bilang panlabas na supply ng kuryente gumagamit ako ng lumang charger ng telepono 5V @ 1A (huwag gumamit ng mga mabilis na charger).

Hakbang 3: Programming

Programming
Programming
Programming
Programming

Sa isang maikling sabi, gumagana ang program na ito (para sa karagdagang impormasyon tingnan ang code mismo):

Ang ESP8266 ay kumokonekta sa iyong access point ng WiFi kung aling mga kredensyal ang dapat mong ipasok sa simula ng code bago ang programa, nakakakuha ito ng IP address mula sa iyong mga server ng DHCP ng router, upang malaman ang IP na kakailanganin mo sa paglaon, maaari mong suriin ang mga setting ng router ng web interface ng DHCP o itakda pag-debug ng bandila sa code sa 1 at makikita mo kung ano ang nakuha ng IP ESP sa serial monitor (dapat mong ipareserba ang IP sa iyong mga setting ng mga router upang ang ESP ay palaging makakakuha ng parehong IP sa boot).

Kapag pinasimulan ang MCU ay laging nagpapatupad ng parehong gawain magpakailanman:

  1. Suriin kung nakakonekta pa rin sa AP, kung hindi subukang kumonekta muli hanggang sa tagumpay.
  2. Hintaying maghiling ang HTTP ng kliyente. Kapag nangyari ang kahilingan:

    1. Suriin ang boltahe ng pag-input.
    2. Suriin kung aling mga estado ng LED ang.
    3. Itugma ang kahilingan sa HTTP sa mga kilalang LED state (asul sa, orange sa, pareho on, off).
    4. Gayahin ang napakaraming mga pagpindot sa pindutan ng push kung kinakailangan upang makamit ang hiniling na estado.

Maikli kong ilalarawan ang mga tagubilin sa pag-program, kung ito ang iyong unang pagkakataon sa pag-program ng ESP8266 MCU na maghanap ng higit pang malalim na mga tagubilin.

Kakailanganin mo ang Arduino IDE at USB-serial interface converter (halimbawa FT232RL). Upang maihanda ang IDE sundin ang mga tagubiling ito.

Sundin ang circuit diagram upang ikonekta ang module na ESP-12E para sa pag-program. Ilang payo:

  • gumamit ng panlabas na 3.3V@500mA power supply (sa karamihan ng mga kaso ay hindi sapat ang USB-serial power supply);
  • suriin kung ang iyong USB-serial converter ay tugma sa antas ng lohika na 3.3V;
  • suriin kung ang mga driver ng USB-serial converter ay matagumpay na na-install (mula sa windows device manager) maaari mo ring suriin kung gumagana ito nang tama mula sa IDE, maikli lamang ang mga pin ng RX at TX, kaysa mula sa IDE piliin ang COM port, buksan ang serial monitor at magsulat ng isang bagay, kung gumagana ang lahat dapat mong makita ang teksto na iyong ipinapakita na lilitaw sa console;
  • sa ilang kadahilanan nagawa kong mag-program ng ESP lamang noong una kong nakakonekta ang USB-serial converter sa PC at pagkatapos ay pinalakas sa ESP mula sa panlabas na mapagkukunan ng 3.3V;
  • pagkatapos ng matagumpay na programa huwag kalimutan na hilahin ang GPIO0 mataas sa susunod na boot.

Hakbang 4: Schematic at Soldering

Skematika at Paghihinang
Skematika at Paghihinang
Skematika at Paghihinang
Skematika at Paghihinang
Skematika at Paghihinang
Skematika at Paghihinang

Sundin ang eskematiko upang maghinang ng lahat ng mga bahagi sa protoboard. Tulad ng nabanggit bago ang ilang mga bahagi ay opsyonal. Ginamit ko ang KA78M33 3.3V LDO IC at ang antas ng converter level ng lohika na ito mula sa sparkfun, bilang kahalili, maaari mong gawin ang iyong converter mismo tulad ng ipinapakita sa eskematiko (maaari mong gamitin ang anumang N-channel mosfet sa halip na BSS138). Kung sakaling manatili ka sa paggamit ng baterya ng Li-ION, ang + 5V power network ay magiging positibo sa terminal ng baterya. Ang boltahe ng sanggunian ng ESP8266 ADC ay 1V, pinapayagan ang aking napiling mga halaga ng resistor divider na sukatin ang input boltahe na kasing taas ng 5.7V.

Dapat mayroong 5 mga koneksyon sa orihinal na lampara PCB: + 5V (o + Baterya), GND, pindutan ng push, signal ng PWM mula sa mga ilawan MCU para sa pagkontrol ng mga asul at kahel na LED. Kung pinapagana mo ang lampara mula sa mapagkukunan ng 5V, tulad ng ginawa ko, gugustuhin mong maikli ang mga charger ng baterya ng IC VCC pin na may OUTPUT pin, sa ganoong paraan ang lahat ng electronics ay direktang mapapatakbo mula sa + 5V at hindi mula sa OUTPUT ng charger ng baterya.

Sundin ang pangalawang imahe para sa lahat ng mga solder point na kakailanganin mong gawin sa mga lampara PCB.

TANDAAN:

  1. Kung nagpasya kang paikliin ang + 5V gamit ang output ng charger ng baterya, alisin ang baterya nang kumpleto bago gawin ito, hindi mo nais na ikonekta ang + 5V nang direkta sa isang baterya.
  2. Magbayad ng pansin sa aling pindutan ng push button na maghinang ka ng output ng ESP, dahil ang 2 mga pin ng isang pindutan ng itulak ay konektado sa lupa at hindi mo nais na mag-short circuit kapag ang output ng ESP ay napakataas, mas mahusay na i-double check sa multimeter.

Hakbang 5: Android App

Android App
Android App
Android App
Android App
Android App
Android App

Ang Android app ay ginawa gamit ang imbentor ng MIT app, upang mag-download ng isang app at / o i-clone ang proyekto para sa iyong sarili, pumunta sa link na ito (kakailanganin mo ang google account upang ma-access ito).

Sa unang paglunsad kakailanganin mong buksan ang mga setting at ipasok ang iyong ESP8266 IP address. Ang IP na ito ay nai-save kaya hindi na kailangang ipasok muli ito pagkatapos ng pag-restart ng programa.

Sinubukan ang app na may maraming mga Android 9 at android 7 na aparato.

Inirerekumendang: