Turinys:

Nuo žibintuvėlio iki judesio jutiklio su ESP8266 ir MQTT: 5 žingsniai (su nuotraukomis)
Nuo žibintuvėlio iki judesio jutiklio su ESP8266 ir MQTT: 5 žingsniai (su nuotraukomis)

Video: Nuo žibintuvėlio iki judesio jutiklio su ESP8266 ir MQTT: 5 žingsniai (su nuotraukomis)

Video: Nuo žibintuvėlio iki judesio jutiklio su ESP8266 ir MQTT: 5 žingsniai (su nuotraukomis)
Video: Использование карты Micro SD и регистрация данных с Arduino | Пошаговый курс Arduino, урок 106 2024, Lapkritis
Anonim
Image
Image
Šviesos diodams reikia riboti srovę
Šviesos diodams reikia riboti srovę

Šiame įraše norėčiau pateikti šiuos dalykus:

  • Šviesos diodams reikia ribojančios srovės grandinės
  • kaip pasidaryti žibintuvėlį
  • sukurkite nešiojamąja baterija maitinamą lemputę ir pritemdykite šviesos diodus ESP8266 per MQTT

Vaizdo įrašas yra santrauka ir trumpas paaiškinimas, kaip tai veikia,

Aš planavau įtraukti PIR jutiklį, tačiau pamoka yra gana ilga, todėl PIR jutiklis bus pristatytas antroje šios temos dalyje

Taigi tegul prasideda.

1 žingsnis: šviesos diodams reikia riboti srovę

Pradedantiesiems tai keista, atsižvelgiant į tai, kaip paprastai įjungti kaitinamąją ar fluorescencinę lemputę. Nesijaudinkite, tos LED lemputės lentynoje jau yra su kintamosios srovės ir nuolatinės srovės maitinimo adapteriu ir ribojančia srove. Bet būtų malonu ką nors padaryti nuo nulio.

Vienas raktas šviesos diodui įjungti yra srovės ribojimo grandinė. Tai veikia kaip srovės vožtuvas, todėl, kai šviesos diodui taikoma įtampa tampa laidi, srovė, tekanti per šviesos diodus, negali būti didesnė už tą, kurią reguliuoja grandinė. Šviesos diodai dažniausiai sugenda dėl perkaitimo. Jokia srovės ribojimo grandinė nėra tikras būdas sudeginti šviesos diodus per kelias sekundes. Beje, tvirtinant LED lustus, kurie yra ant aliuminio rėmo, į radiatorių sumažėja LED mikroschema ir paprastai rekomenduojama.

Aš labai krapštydavau galvą, kai tai sužinojau apie 2015 m., Ir vis dar krapštydavau galvą (dėl įvairių priežasčių). Aš išmokau iš šios pamokos ir jo aiškus paaiškinimas išgelbėjo mane.

Grandinė prijungta. Paryškintos linijos žymi pagrindinį įkrovimo kelią, o plonesnės - valdymo mechanizmą, skirtą valdyti pagrindinio maršruto srovę, kuri yra apie 150 mA. Vikipedijoje yra trumpas straipsnis ir keletas nuorodų. Srovės ribojimą galima sukurti naudojant tranzistorių, pakeičiant MOSFET vidutinės srovės apkrovos tranzistoriais, tokiais kaip BD135, BD139.

2 žingsnis: padarykite žibintuvėlį

Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį
Padarykite žibintuvėlį

Reikalingos dalys:

  1. N kanalo MOSFET (IRF540N 1,62 USD/10 vnt., 30N06, 1,75 USD/10 vnt.)
  2. NPN tranzistorius (pvz., S8085)
  3. 3,9 omų - 2 W rezistorius, srovė ribota apie 0,6/3,9 = 153 mA
  4. 100kR (1/4 W) rezistorius
  5. Push-lock jungiklis
  6. Čia yra 0,5 W 8 mm LED, 3,18 USD/100 vnt
  7. 18660 ličio baterija. Keletą jų išgelbėjau iš elektros banko. Nešiojamojo kompiuterio baterija (4, 6, 8 elementai) pagaminta iš 18650 elementų, tačiau atsargiai su tuo.
  8. 1 padidinimas iki 12 V plokštės, kaip ši, 0,56 USD
  9. 1 ličio įkroviklis, toks kaip šis, 0,30 USD

Pagrindinis skirtumas tarp aukščiau pateiktos grandinės yra ličio baterijos (18660) su padidinimo lenta naudojimas vietoj maketuoto 5 V maitinimo adapterio.

Paskutinėje nuotraukoje parodytas galutinis žibintuvėlis ir jis buvo kraunamas iš bet kurio mikro USB šaltinio (> 1A).

3 žingsnis: daiktų internetas naudojant šį žibintuvėlį?

Daiktų internetas su šiuo žibintuvėliu?
Daiktų internetas su šiuo žibintuvėliu?
Daiktų internetas su šiuo žibintuvėliu?
Daiktų internetas su šiuo žibintuvėliu?
Daiktų internetas su šiuo žibintuvėliu?
Daiktų internetas su šiuo žibintuvėliu?

Aš padalinu šią dalį į tris žingsnius:

  • Paruoškite abonentą (šį)
  • Nustatykite MQTT serverį (kitas žingsnis)
  • ir paruošti leidėją (kitą)

Dalys:

Pirma, taip, aš naudoju tą populiarų žodį, dar žinomą kaip IOT, tačiau tai gali būti geras derinys naudojant 2 žingsnio grandinę su ESP8266 ir tada valdyti šviesos intensyvumą MQTT metodu.

Grandinės dalys yra identiškos, išskyrus:

  1. Pakeiskite 12 V padidinimą MT3608 padidinimo lenta, 1,92 USD/5 vnt., Tai gali padidinti 18650 baterijos (apie 3,7 V) įtampą iki 28 V, pakanka 8LED (vietoj 3).
  2. Jungiklio atjungimo padėtis yra prijungta prie GPIO 1 arba 2, esančių ESP8266 PWM signalui.
  3. 8266 ESP, po 1,68 USD. Kaip šis
  4. AMS1117 3,3 V, įtampos reguliatorius, skirtas ESP8266, kai kurie kondensatoriai
  5. USB modulis, skirtas blykstėms ESP8266, 0,78 USD/vnt., Kaip šis

Btw. tos nuorodos yra patogumui.

Litavimas ir įkėlimas:

  • Lituokite dalis kartu ir naudokite aukščiau pateiktas schemas. Kai kurios iš anksto paruoštos 3,3 įtampos grandinės gali sutaupyti šiek tiek laiko (1,38 USD/5 vnt.). Buvau sutrikęs prisimindamas kaištį, kai apverčiau PCB plokštę, ir galų gale patenkinau tam tikrą AMS1117 įtampos reguliatorių.
  • Kitas. Atlikite nedidelį pakeitimą, pvz., Trečioje nuotraukoje, kad laikytumėte nuspaudę GPIO 0 į GND, greitai bakstelėkite RST kaištį su GND kaiščiu, kad įterptumėte ESP8266 į „Flashmode“.
  • Atsisiųskite kodą čia iš „GitHub“ir įkelkite kodą į ESP 8266 naudodami „Arduino IDE“.

Aš paryškinau eilutę, norėdamas parodyti temą, kurią abonentas užsiprenumeravo. Bet koks pranešimas, paskelbtas šia tema, bus perduotas kitiems šios temos klientams (prenumeratoriams). Šios grandinės EPS8266 klausysis temos paskelbto JSON pranešimo ir pašalins, jei trečiasis kanalas buvo pakeistas

* kažkada galvojau, kad galėčiau uždėti ištraukiamą rezistorių (100k), kad įžeminčiau MOSFET vartus, kai nebuvo pristatytas ESP8266. Tai veikia, jei nėra ESP8266, tačiau naudojant ESP8266 rezistorius taip pat traukia GPIO0 arba 2 į GND, todėl jie tampa „Flash“režimu arba neįsijungia (kai GPIO2 yra žemas). Jei taip atsitiks, pamatysite žalią spalvą.

4 veiksmas: nustatykite MQTT serverį

Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį
Nustatykite MQTT serverį

MQTT (Message Queuing Telemetry Transport) yra klaidinimo protokolas, pagrįstas paskelbimo ir prenumeratos metodu. Įrenginio prieglobos MQTT pranešimas įeinant ir išvedant vadinamas tarpininku. Kaip tikras brokeris, jis organizuoja mainus tarp leidėjų (pardavėjų) ir prenumeratorių (pirkėjų). Jokie pinigai nekeičia jų. Tam yra daugybė pamokų.

Čia yra santrauka. „Raspberry Pi“yra populiariausias prietaisas. Frist, įdiek MQTT:

sudo apt-get įdiegti mosquitto mosquitto-klientus

patikrinkite, ar MQTT serveris veikia, atidarydami du „Raspberry“terminalus: vieną įveskite pirmą eilutę, o kitą - kitą:

mosquitto_sub -h localhost -t „tavo tema“

mosquitto_pub -t „tavo tema“-h localost -m „ką nors pasakyti“

Pirmame terminale turėtumėte pamatyti „ką nors pasakyti“. Vala! Tai veikia.

„#“Gali būti naudojamas bet kuriai temai klausytis, „savo temą“pakeiskite „#“

Dabar nenorite, kad kas nors galėtų paskelbti ar užsiprenumeruoti jūsų MQTT serverį, turėtumėte nustatyti slaptažodį, atlikdami šiuos veiksmus:

cd ~

mosquitto_passwrd -c pwfile mqtt_user

„mqtt_user“gali būti kiti jums patinkantys vartotojo vardai, du kartus įveskite slaptažodį ir atnaujinkite.conf failą:

sudo nano /etc/mosquitto/mosquitto.conf

prideda šias dvi eilutes:

allow_anonymous false

password_file/home/pi/pwfile

tada iš naujo paleiskite uodą taip:

sudo systemctl iš naujo paleiskite mosquitto

atlikite testą, įtraukdami vardą ir slaptažodį, pavyzdžiui:

mosquitto_sub -h localhost -t "tavo tema" -u "mqtt_user" -P "123456"

mosquitto_pub -h localhost -t "tavo tema" -u "mqtt_user" -P "123456" -m "ar tai apsaugota?"

Taip pat, jei MQTT atsisako prisijungti, pabandykite tai padaryti, kad MQTT paslauga būtų „Linux“sistemos fone:

uodai -d

Radau, kad šios nuorodos yra geros. Šiandien iš šių dviejų išmokau kažką.

  1. Adafruit:
  2. Stees-internet-guide.com

5 žingsnis: Paruoškite leidėją

Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją
Paruoškite leidėją

Norėdami tai padaryti, sukuriu paprastą prietaisų skydelį, kad nusiųstumėte pranešimą į MQTT serverį. Budėjimo režimu LCD ekrane rodomas laikrodis.

Dalys:

  1. SSD1306 ekrano ekranas, kiekvienas 2,41 USD
  2. „EPS8266 WEMOS D1 Mini“, po 2,53 USD
  3. Potenciometras
  4. Vienas 4 kontaktų slankiojantis jungiklis.
  5. du 3 mm šviesos diodai,
  6. kai kurie rezistoriai

Litavimas:

Čia yra šio terminalo schemos:

Įkelkite kodą:

Su firminiu WEMOS ESP8266 malonu dirbti. Jums reikia tik „micro USB“, paspauskite „Arduino IDE“blykstės įkėlimo mygtuką. Kodas yra čia („GitHub“):

Norėdami paskelbti pranešimą, paspauskite jungiklį, kad įjungtumėte žalią lemputę (ir išjungtumėte raudoną), tada stumkite kaištį aukštyn ir sureguliuokite, ir galiausiai dar kartą paspauskite mygtuką, kad pranešimas būtų perkeltas į MQTT serverį. Prietaisų skydelis galėtų paskelbti JSON pranešimą 4 kanalams.

Pažvelkite į kodo paryškinimą (ekrano kopiją). Tai tema, į kurią prietaisų skydelis siunčia pranešimą, o mūsų šviesos diodai labai nori pamatyti bet kokią naują iš JSON pranešimo

Tai apie tai. Tikiuosi, kad pamoka bus naudinga.

Rekomenduojamas: