Turinys:

„Pasidaryk pats“šviesos žadintuvas: 7 žingsniai
„Pasidaryk pats“šviesos žadintuvas: 7 žingsniai

Video: „Pasidaryk pats“šviesos žadintuvas: 7 žingsniai

Video: „Pasidaryk pats“šviesos žadintuvas: 7 žingsniai
Video: Кто-нибудь из вас слышал о полуночной игре? Страшные истории. Мистика. Ужасы 2024, Liepa
Anonim
„Pasidaryk pats“šviesos žadintuvas
„Pasidaryk pats“šviesos žadintuvas
„Pasidaryk pats“šviesos žadintuvas
„Pasidaryk pats“šviesos žadintuvas
„Pasidaryk pats“šviesos žadintuvas
„Pasidaryk pats“šviesos žadintuvas

Ar kada nors norėjote pažadinti vieną iš tų puošnių žadintuvų, kurie imituoja saulėtekį? Ar norite savo kambariui pridėti spalvotų žibintų? Ar norite visa tai valdyti iš bet kurio įrenginio su interneto naršykle? Tada peržiūrėkite šį žadintuvą, kurį sukūriau naudodamas tai, ką išmokau kurdamas automatinį žuvų tiektuvą.

Pagrindinis šviesos signalo tikslas yra užtikrinti, kad pabudus mano kambaryje būtų šviesa, ypač žiemą, kai paprastai dar tamsu. Šviesa išblėsta iš anksto nustatytam laikui, kuris baigiasi visu ryškumu nustatytu žadintuvo laiku. Bet tai tik pirmasis režimas, galima žaisti dar 7 apšvietimo režimus!

Šviesos aliarmas valdomas per HTML puslapį, kuris yra ESP-8266-12e plokštėje. Jį galima pasiekti iš jūsų namų tinklo arba sukonfigūruoti taip, kad būtų prieinama iš bet kurios interneto vietos naudojant prievadų peradresavimą.

1 žingsnis: medžiagos:

  • ESP-8266-12e (NodeMCU) plokštė
  • Naujausias „Arduino IDE“
  • Įdiegtam kodui reikalingos bibliotekos
  • „Notepad ++“(jei norite redaguoti HTML)
  • Naršyklė (naudojau „Chrome“, bet bet kuri turėtų veikti, ypač jei ji leidžia matyti, kaip veikia html kodas)
  • 3D spausdintuvas, kurio konstrukcijos plotas yra mažiausiai 150 mm x 150 mm
  • Baltas arba skaidrus plastikinis siūlas (atspalviui tvirtinimas gali būti bet kokios spalvos)
  • 4 skaitmenų 7 segmentų ekranas su TM1637 mikroschema, aš naudoju vieną iš jų
  • 1 metro adresinė RGBW LED juostelė, sk6812. Mano juostelė turi 60LED/metrą, bet nebėra parduodama. „Arduino“kodas yra nustatytas RGBW, todėl turėsite jį perrašyti, jei norite naudoti RGB juostą. Aš rekomenduočiau juostelę su mažiausiai 60LED.
  • Jei juostelė neturi lipnios pagrindo: lipni juosta ir super klijai
  • Protoboard plokštės tvirtinimui
  • 24AWG viela (rekomenduoju kelias spalvas)
  • Mažiausiai 6 pėdų vielos, skirtos maitinimui. Rekomenduoju naudoti viską, ką parduoda vietinė techninės įrangos parduotuvė stalinėms lempoms.
  • 5 V maitinimo šaltinis, aš naudoju šį
  • Nepamirškite maitinimo šaltinio adapterių
  • Lituoklis
  • USB kabelis programuoti plokštę
  • karšti klijai
  • Antraštės kaiščiai (vyriškos ir moteriškos)
  • Kantrybės

2 žingsnis: valdybos programavimas

Valdyboje bus du kodų rinkiniai: įprastas paleidžiamas arduino kodas ir HTML kodas, kurį ji siunčia į jūsų naršyklę. Įkeliate „arduino“kodą, kaip ir naudodami bet kurią kitą lentą. Tačiau norint įkelti į lentos SPIFF atmintį, HTML reikia papildinio.

Norėdami sužinoti, kaip naudoti SPIFF, žr.

Norėdami įkelti HTML kodą, žr. Https://www.esp8266.com/viewtopic.php?f=32&t=10081, norėdami tai padaryti, turėsite įdiegti „arduino“papildinį.

HTML reikia išsaugoti aplanke, esančiame „arduino“projekto aplanke, paprasčiausiai vadinamame „data“.

HTML įkėlimas užtrunka porą minučių. Laukdamas galėjau žaisti internetines lenktynes ar dvi „Mario Kart 8“. Dėl šios priežasties, jei keičiate HTML, naudokite užrašų knygelę ++, norėdami redaguoti failą ir nuleisti jį į naršyklę, pvz., „Chrome“.

3 veiksmas: kaip veikia kodas

Kaip veikia kodeksas
Kaip veikia kodeksas
Kaip veikia kodeksas
Kaip veikia kodeksas

Šio projekto kodas yra padalintas į du failus: lentos vykdomas kodas ir lentos atmintyje saugomas HTML, kurį ji siunčia į naršyklę, kai naršote tinklalapį.

Kai prijungiate plokštę prie maitinimo, prasideda lentos kodas, kaip ir bet kuris arduino. Jis prisijungia prie jūsų namų „WiFi“ir tada susisiekia su NIST serveriu, kad gautų dabartinį laiką vidiniam laikrodžiui nustatyti. Nustačius laikrodį, paleidžiamas žiniatinklio serveris ir galite prisijungti naudodami mėgstamą naršyklę.

Turite prisijungti pagal plokštės IP adresą, todėl būtinai rezervuokite statinį IP maršrutizatoriuje. Aš taip pat pakeičiau savo lempos prievadą, todėl norėdamas prisijungti, einu į 192.168.0.170:301/. Jei norite prisijungti prie savo lempos iš bet kurios pasaulio vietos, turėsite nustatyti maršrutizatoriaus prievadų persiuntimą. Tada turėsite prisijungti prie IP adreso, kurį matote prisijungdami prie https://www.whatsmyip.org/, ir prievado, kuriame nustatėte lempos vietinį IP.

Kai prisijungsite, lenta siunčia HTML failą į jūsų naršyklę, kuri jį dekoduoja ir parodo puslapį. Atlikti pakeitimai nepaveiks lentos, kol nepaspausite vieno iš mygtukų. tinklalapyje. Kai paspausite mygtuką, jūsų naršyklė siunčia html formą į lentą su esamais nustatymais, o lenta priima tuos nustatymus ir nustato ekranus.

Nustatymai yra gana tiesiai į priekį. Puslapis keičiasi pagal jūsų naršyklės plotį ir atrodo šiek tiek geriau mobiliesiems. Norėdami pakeisti nustatymų puslapio išvaizdą, turėsite redaguoti HTML, o internete yra daug kitų pamokų. Kadangi tai buvo pirmas kartas, kai naudoju HTML, daugiausia išmokau naudodamas

Kai puslapis įkeliamas, pamatysite keturis mygtukus, slankiklį ir išskleidžiamąjį meniu. Viršutinis mygtukas yra pagrindinis mygtukas „įvesti“arba „įjungti“. Kiti du mygtukai perjungia skaitmeninį laiko rodymą ir tai, ar laikas rodomas 12, ar 24 valandų formatu. Slankiklis valdo skaitmeninio laikrodžio ryškumą ir atnaujinamas kiekvieną kartą, kai perjungiate ekrano režimą arba įjungiate laikrodį. Paskutinis mygtukas turėtų išjungti visas šviesas, tačiau dėl tam tikrų priežasčių jis neveikia su šia kodo versija. Vietoj to, paspaudus mygtuką „Įjungti“, nepasirinkus jokių nustatymų, lemputės užges.

Išskleidžiamajame meniu yra 7 sistemos režimai, pasirinkus vieną, bus rodomi būtini nustatymai žemiau.

  • 1 režimas: aliarmas. Įveskite laiką, kuriuo norite, kad šviesa pasiektų visą ryškumą, ir kiek laiko norite, kad išblukimas būtų sveikas minutes. Numatytasis yra 6:00:00 ir 15 minučių. Šviesa išliks visišku ryškumu tiek pat laiko, kiek užges, prieš automatiškai išsijungdama. Numatytasis gali būti pakeistas HTML kode.
  • 2 režimas: analoginis laikrodis. Pasirinkite tris spalvas, vaizduojančias analoginio laikrodžio valandas, minutes ir antrąsias rodykles. Slankiklis virš trijų spalvų parinkiklių automatiškai įjungs iš anksto nustatytas šaltas arba šiltas spalvas, jei bus nustatytas atitinkamai į kairę arba į dešinę. Jei slankiklis nustatytas kairėn arba dešinėn, tada grąžintas į centrą, tada spalvų parinkikliai yra nustatyti į juodą (0, 0, 0, 0) [R, G, B, W]. Kai į lentą siunčiama visiškai nulinė spalva, ji atsitiktine tvarka. * Dėl to lemputės gali per daug mirksėti.* Jei norite, kad lemputė neužsidegtų, nustačius bet kurią reikšmę 1, bus rodoma „juoda“(visos reikšmės pagal numatytuosius nustatymus yra 1 (01, 01, 01, 01), kai spalvų parinkikliai yra inicijuota). Spalvų parinkiklis ir RGB slankikliai yra susieti, o W slankiklis yra nepriklausomas.
  • 3 režimas: spalva. Pasirinkite vieną spalvą, kad įjungtumėte lemputes. Tai liks tol, kol vartotojas nepakeis.
  • 4 režimas: spalvų ciklas. Pasirinkite tris spalvas, kurias norite pereiti, ir įveskite laiką, kol laikysitės kiekvienos spalvos. Spalvų parinkimui naudojami tie patys metodai, kaip ir 2 režime. Šiame režime geriausiai tinka atsitiktinės spalvos.
  • 5 režimas: spalvotas cilindras. Pasirinkite tris spalvas (tas pats kaip ir ankstesnes) ir cilindro apsisukimus. Šviesos bus rodomos kaip juostos, besisukančios aplink ašį. pasirinktu RPM. Numatytasis PTP yra 60 arba 1 aps/min. Dėl atsitiktinių spalvų lemputės gali mirksėti!
  • 6 režimas: spalvų sūkurys. Nustatykite tris spalvas ir RPM. Šis režimas nėra tobulas, tačiau idėja yra tokia, kad šviesos sukasi visą parą. Yra įmontuotas atsitiktinumas, todėl geriausia tiesiog naudoti temperatūros slankiklį, kad pasirinktumėte, ar sūkurys prasideda šiltas ar vėsus.
  • 7 režimas: vaivorykštė. Nustatykite ciklo greitį, RPM čia yra gana nenaudingas. Tai buvo iš anksto paruoštas pavyzdys iš „Neopixel“bibliotekos su kai kuriais pakeitimais, kad lenta vis tiek galėtų reaguoti į vartotojo įvestis.

Pasirinkus nustatymus, paspaudus bet kurį mygtuką, lentai bus išsiųsta HTML forma, kuri naudoja formos reikšmes ekrano nustatymams keisti. Mygtukas „Įjungti“siunčia visus nustatymus, o du laikrodžio mygtukai - tik laikrodžio ryškumą. Mygtukas „išjungti“turėtų tiesiog išjungti šviesos diodų juostą, tačiau yra klaida, kuri neleidžia tai veikti. Atrodo, kad paspaudus „Įjungti“, nepakeičiant jokių nustatymų, jis veikia. Kai lenta išanalizuos nustatymus, ji peradresuos jūsų naršyklę į pradinį HTML puslapį.

Pastaba: nustačius žadintuvo laiką, sistemos režimas pasikeičia į 1, kuris sustabdys bet kurį anksčiau veikusį režimą ir atkurs visus nustatymus. Tačiau įjungus kitą režimą nustačius žadintuvo laiką, jūsų nustatytas laikas nesikeičia, todėl galite nustatyti žadintuvą ir pradėti naują režimą. Jei naujasis režimas neišjungiamas, kol žadintuvas neprasideda baltoje šviesoje, tai gali sukelti mirksėjimą. Norėdami to išvengti, plokštė yra užkoduota, kad išjungtų visas šviesas ir nustatytų sistemos režimą į 1 (žadintuvas) 2 val., Nekeičiant nustatyto žadinimo laiko. Šį sunkų nutraukimo laiką galima pakeisti „arduino“kode.

4 veiksmas: tinklo nustatymas ir prisijungimas

Tinklo nustatymas ir prisijungimas
Tinklo nustatymas ir prisijungimas

Šis žingsnis yra šiek tiek neaiškus, nes kiekvienas maršrutizatorius yra skirtingas. „Google“ieškokite konkretaus maršrutizatoriaus modelio, kad surastumėte reikiamus parametrus.

Turite prisijungti prie maršrutizatoriaus ir tikriausiai įjungti išplėstinį režimą. Savo maršrutizatoriuje turiu eiti į DHCP serverį ir rezervuoti IP adresą. Raskite savo ESP8266 MAC adresą; tai bus tas, kuris yra DHCP klientų sąraše (arba jūsų maršrutizatoriaus atitikmenyje), kuris išnyks, kai atjungsite ESP.

Norėdami rezervuoti lempos IP adresą, naudokite MAC adresą. Įsitikinkite, kad įrašas įjungtas, jei maršrutizatorius turi tokį nustatymą.

Jei norite prisijungti ne iš savo asmeninio tinklo, turėsite ieškoti „Google“maršrutizatoriuje, kad sužinotumėte, kaip nustatyti prievado peradresavimą.

5 žingsnis: 3D spausdintos dalys

Atspausdintos dalys turėtų tilpti daugelyje spausdintuvų. Yra dvi dalys: laikiklis ir šešėlis.

Šviesos diodų juostelė yra apvyniota spirale, o jo skersmuo yra toks, kad 60 LED 1 metro juostelė turėtų apvynioti 3 kartus, o visi šviesos diodai-ašimi. Jei naudojate juostą, kurioje šviesos diodai yra išdėstyti skirtingai ir nesiderina ant laikiklio taip, kaip turėtų, pakeiskite skersmenį su pateiktais modeliais. Skersmuo yra C/pi, kur C yra apskritimas ir yra 1/3 juostos ilgio. Pusapvalės angos laikiklio sienoje leidžia praeiti maitinimo kabeliui ir oro srautui. Kryžminiai petnešos suteikia standumo ir paviršiaus, prie kurio pritvirtinamos komandinės juostos.

Šešėlis turi trintį su laikikliu, ir yra išpjova, kad atspalvis būtų suderintas su laikikliu. Įpjova turi būti 12 arba 6 valandos padėtyje, kai montuojama ant sienos, o 7 segmentų laikrodžio ekranas turi būti suderintas su išpjova. Šešėlis veikia kaip žibintų difuzorius ir dėl to yra labai plonas. Aš atspausdinau jį su.5 mm antgaliu, o dauguma komercinių spausdintuvų yra su.4 mm antgaliais, todėl problemų turėtų kilti nedaug, tačiau būtinai patikrinkite pjaustyklę, kad įsitikintumėte, jog atspalvis bus atspausdintas tinkamai. Taip pat atspalviui būtinai naudokite baltą ar kitaip permatomą plastiką. Kitos spalvos iškraipys žibintų spalvas arba užblokuos per daug šviesos.

Būtinai patikrinkite, ar jūsų naudojamas skaitmeninis laikrodžio ekranas tinka šešėlyje. Jis suprojektuotas taip, kad būtų tinkamas trinčiai ir pakankamai vietos laikrodžio laidams. Norėdami pakeisti laikrodžio laikiklį, naudokite modelius. Keisdami atspalvio modelį, įsitikinkite, kad priekinio paviršiaus storis yra mažesnis nei 1 mm, kad laikrodis būtų matomas per jį mažai sklaidant.

6 žingsnis: laidai ir plokštės surinkimas

Laidai ir plokštės surinkimas
Laidai ir plokštės surinkimas
Laidai ir plokštės surinkimas
Laidai ir plokštės surinkimas
Laidai ir plokštės surinkimas
Laidai ir plokštės surinkimas

Lenta ir laidai yra daug mažiau sudėtingi nei mano žuvų tiektuvas. Tiesiog prilituokite porą eilučių antgalių kaiščių prie protobooto, kad būtų galima įsitaisyti ESP-8266-12e, taip pat dvi eilutes vyriškų galvos smeigtukų, kad būtų galima prijungti maitinimą. Aš lituodavau du laikrodžio duomenų laidus ir LED juostos duomenų laidą prie atitinkamų kaiščių protoboate, o visi maitinimo ir įžeminimo laidai buvo lituojami prie atitinkamų maitinimo bėgių, kuriuos padariau plokštės gale.

Kita šių laidų pusė turėtų būti laikrodžio moteriškos antraštės ir LED juostos jungtis. Jums gali tekti lituoti kaiščius prie laikrodžio ir aš rekomenduoju tam kampinius kaiščius. Šviesos diodų juostos laidai ir maitinimo laidai turi būti nukreipti į plokštės sienelę (į šoną su ESP), o laikrodžio laidai - į priekinę pusę (kur yra visos litavimo jungtys).

Maitinimo linijai naudojau 6 pėdų 16-26 gyslų varinę vielą. Jis buvo šiek tiek storas, todėl kiekvieną laidą padalinau tarp trijų kaiščių, kad prisijungčiau prie maitinimo ir įžeminimo bėgių. Kita pusė turėtų būti bet kokia maitinimo šaltinio jungtis.

Karštai klijuokite visas atviras lydmetalio jungtis (ypač ant maitinimo kabelio ir Ypač jei yra vario, kaip mano), kad izoliuotumėte viską nuo atsitiktinių šortų. Taip pat galite karštuoju būdu priklijuoti laikrodį prie plokštės (laikrodžio nugarėlė iki plokštės lydmetalio pusės), tačiau pastebėjau, kad tai buvo silpna jungtis ir viskas nebuvo būtina, kai viskas buvo sumontuota.

Apvyniokite LED juostelę aplink laikiklio išorę. Būtinai patikrinkite juostelę 2 režimu ir patikrinkite, ar analoginis laikrodis juda teisinga kryptimi. Būtinai palikite ~ 5 mm tarpą nuo priekinio krašto atspalviui. Pirmasis juostos šviesos diodas (šviesos diodas sekundžių spalva pasirodo kiekvienos minutės viršuje, viename juostelės gale) užsidega 12 valandos padėtyje. kai lempa pritvirtinta prie sienos. Jei turite LED juostelę, naudokite lipnią pagrindą (jei tokia yra) arba klijus, kad pritvirtintumėte prie laikiklio. Super klijai geriausiai tinka, jei juostelė neturi lipnios pagrindo. Naudokite lipnią juostelę, kad bandymo metu ir klijai išdžiūtų, juostelę laikykite vietoje.

Sujunkite šviesos diodų laidus per pusapvalius skyles į laikiklį, kad prijungtumėte prie plokštės. Maitinimo kabelis taip pat yra sriegiuotas, būtinai pasirinkite skylę, kurios kabelis neįtrauks dėl gravitacijos ar atsitiktinio traukimo.

7 žingsnis: montavimas

Norėdami pritvirtinti prie sienos, tiesiog naudokite 3-4 3M komandų juostas arba tiek, kiek norite. Naudokite laikiklio įpjovą, kad patikrintumėte, ar jis yra lygus. Sumontavus laikiklį, prijunkite maitinimo kabelį ir LED laidus prie plokštės ir įstatykite laikrodį į šešėlį. Tada tiesiog uždėkite šešėlį ant laikiklio ir prijunkite maitinimo kabelį prie maitinimo šaltinio!

Rekomenduojamas: