Turinys:
- 1 žingsnis: šviesos diodams reikia riboti srovę
- 2 žingsnis: padarykite žibintuvėlį
- 3 žingsnis: daiktų internetas naudojant šį žibintuvėlį?
- 4 veiksmas: nustatykite MQTT serverį
- 5 žingsnis: Paruoškite leidėją
Video: Nuo žibintuvėlio iki judesio jutiklio su ESP8266 ir MQTT: 5 žingsniai (su nuotraukomis)
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Š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į
Reikalingos dalys:
- N kanalo MOSFET (IRF540N 1,62 USD/10 vnt., 30N06, 1,75 USD/10 vnt.)
- NPN tranzistorius (pvz., S8085)
- 3,9 omų - 2 W rezistorius, srovė ribota apie 0,6/3,9 = 153 mA
- 100kR (1/4 W) rezistorius
- Push-lock jungiklis
- Čia yra 0,5 W 8 mm LED, 3,18 USD/100 vnt
- 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.
- 1 padidinimas iki 12 V plokštės, kaip ši, 0,56 USD
- 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į?
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:
- 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).
- Jungiklio atjungimo padėtis yra prijungta prie GPIO 1 arba 2, esančių ESP8266 PWM signalui.
- 8266 ESP, po 1,68 USD. Kaip šis
- AMS1117 3,3 V, įtampos reguliatorius, skirtas ESP8266, kai kurie kondensatoriai
- 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į
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ą.
- Adafruit:
- Stees-internet-guide.com
5 žingsnis: 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:
- SSD1306 ekrano ekranas, kiekvienas 2,41 USD
- „EPS8266 WEMOS D1 Mini“, po 2,53 USD
- Potenciometras
- Vienas 4 kontaktų slankiojantis jungiklis.
- du 3 mm šviesos diodai,
- 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:
„Pasidaryk pats“automatinė judesio jutiklio LED naktinė lemputė: 6 žingsniai (su nuotraukomis)
„Pasidaryk pats“automatinė judesio jutimo LED naktinė lemputė: Sveiki, vaikinai, kviečiame į dar vieną pamokomą dalyką, kuris visada padės jums kasdieniame gyvenime ir suteiks jums patogumo, kad jūsų gyvenimas būtų lengvas. Kartais tai gali būti gelbėtojas senatvės žmonėms, kuriems tenka stengtis atsikelti iš lovos
Didelis nuotolis, 1,8 km, nuo Arduino iki Arduino belaidis ryšys su HC-12: 6 žingsniai (su nuotraukomis)
Didelis nuotolis, 1,8 km, nuo Arduino iki Arduino belaidis ryšys su HC-12: Šioje instrukcijoje sužinosite, kaip bendrauti tarp „Arduinos“dideliu atstumu iki 1,8 km lauke. HC-12 yra belaidis nuoseklusis prievadas komunikacijos modulis, kuris yra labai naudingas, labai galingas ir paprastas naudoti. Pirmiausia sužinosite
Nuo 1A iki 40A dabartinis BOOST keitiklis iki 1000 W nuolatinės srovės varikliui: 3 žingsniai
Nuo 1A iki 40A dabartinis BOOST keitiklis iki 1000 W nuolatinės srovės varikliui: Sveiki! Šiame vaizdo įraše sužinosite, kaip sukurti srovės stiprintuvo grandinę, skirtą didelės galios nuolatinės srovės varikliams iki 1000 W ir 40 amperų su tranzistoriais ir centrinio čiaupo transformatoriumi. srovė išėjime yra labai didelė, bet įtampa bus r
Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: 5 žingsniai
Kas yra prie mano durų? PIR judesio jutiklio/diapazono jutiklio projektas: Mūsų projekto tikslas yra pajusti judesį per PIR ir atstumo jutiklius. „Arduino“kodas skleis vaizdo ir garso signalą, kad vartotojui būtų pranešta, kad kažkas yra šalia. MATLAB kodas atsiųs el. Pašto signalą, kad įspėtų vartotoją, kad kažkas yra šalia. Šis įrenginys
Judesio jutiklio aktyvuota LED juostelė su laikmačiu: 6 žingsniai (su nuotraukomis)
Judėjimo jutiklio aktyvuota LED juostelė su laikmačiu: Sveiki visi! Labai džiaugiuosi, kad dabar galiu parašyti dar vieną pamokomą dalyką. Šis projektas atsirado, kai prieš keletą mėnesių su manimi susisiekė kolega instruktorius (?!) (Davidas @dducicas), prašydamas pagalbos dėl dizaino. Taigi čia buvo originali specifikacija: & q