Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Naršydamas „thingiverse“pamačiau šią visiškai nuostabią „Wave Lamp“lempą ir turėjau ją sukurti.
www.thingiverse.com/thing:774456
Lempa yra labai gerai suprojektuota ir spausdina be jokių atramų (reikia atspausdinti šone)
Taip pat yra lempos pagrindas, kuriam reikia LED juostelių
Ir, žinoma, negalėjau tiesiog palikti lempos prie lovos. Turėjau padaryti „wifi“ir parodyti orą. Taigi, naudoju visur esantį ESP8266 modulį su WS2812B šviesos diodais, kad galėčiau valdyti žibintų spalvą pagal šiandienos prognozę. Be to, šviesa automatiškai išsijungia 22:00 ir įsijungia 6:00.
1 žingsnis: Reikalavimai
Norėdami sukurti šią bangos lempą, jums reikės šių elementų:
Įrankiai:
- 3D spausdintuvas - tas, kuris gali atspausdinti bent 30-35 cm
- USB-TTL modulis ESP-12E programavimui
- Karšto klijų pistoletas
- Lituoklis
Eksploatacinės medžiagos:
- PLA - balta lempai ir kita spalva pagrindui
- 30 WS2812B Adresuojami RGB šviesos diodai
- ESP8266 - 12E
- 74HCT245N
- 5V maitinimo šaltinis
- 5V-3.3V galios keitiklis
- Keletas antgalių kaiščių ir rezistorių
- Lituoklis
2 žingsnis: 3D spausdinimas
3D spausdinkite toliau nurodytus elementus
Lempa
- Spausdinkite naudodami baltą PLA, pasuktą šone
- Atramos ir plaustai nereikalingi
- Nors aš naudojau 5 mm kraštą, kad spausdinimo metu jis liktų prilipęs prie lovos
-
Aš naudoju šiuos nustatymus:
- 0,8 mm ugnikalnio antgalis ir 0,3 mm sluoksnio aukštis.
- 2 perimetrai
- 100% užpildymas (tai tikrai nesvarbu, nes gabalai yra tokie ploni, bet kokiu atveju jie užpildomi)
- Būkite įspėti - tai didžiulis spausdinimas ir užima daug laiko. Taigi, jei jums nepatogu palikti spausdintuvą nakčiai (arba kelioms naktims), tai ne jums. Atsispausdinkite jį naudodami „3Dhubs“. Mano užtruko ~ 30 valandų
Stovas
- Aš pakeičiau stovą naudodamas „TinkerCAD“, kad sukurtų ertmę elektronikos pagrinde. Ją galite atsisiųsti čia:
-
Spausdinkite naudodami spalvotą PLA (aš naudoju medienos užpildą):
- 0,8 mm ugnikalnio antgalis ir 0,3 mm sluoksnio aukštis.
- 2 perimetrai
- 20% užpildas
- Tačiau būkite įspėti - mano sukurta ertmė neturi jokių atramų, o vidus tampa šiek tiek netvarkingas (ypač naudojant malkinę PLA, kuri nėra gerai sujungta)
Viršus
Tai yra neprivalomas gabalas. Sukūriau ją TinkerCAD, kad paslėpčiau skylę lempos viršuje. Tai nieko puiku, bet veikia.
- https://www.tinkercad.com/things/5aD6V4O0jpy
- Atramos ir plaustai nereikalingi
-
Aš naudoju šiuos nustatymus:
- 0,8 mm ugnikalnio antgalis ir 0,3 mm sluoksnio aukštis.
- 2 perimetrai
- 30% užpildas
3 žingsnis: elektroninė grandinė
Šiai lempai naudojama grandinė yra labai paprasta ir jei jūsų WS2812B (kai kurie veikia, kai kurie ne) veikia esant 3,3 V signalui, tai dar paprasčiau, nes tuomet galite išvengti 74HCT245N.
Pagrindinė grandinė (žr. Schemą aukščiau):
-
ESP-12E (galite praleisti šiuos veiksmus, jei naudojate vieną iš iš anksto sukurtų „Adafruit“, „Sparkfun“ir tt modulių):
- Prijunkite 3 ir 8 kaiščius prie 3.3V
- Prijunkite 1, 11 ir 12 kaiščius prie 3.3V per 10k rezistorių
- Prijunkite 9 ir 10 kaiščius prie GND
- Prijunkite 12 kaištį prie GND per atvirą 2 kontaktų jungtį. Šiuos kaiščius galima sujungti kartu, kad būtų galima programuoti ESP-12E
- Prijunkite 15 ir 16 kaiščius prie antgalių kaiščių (tai yra RX ir TX kaiščiai, naudojami programuoti ESP-12E)
-
74HCT245N (ignoruokite tai, jei jūsų WS2812B šviesos diodai veikia tiesiogiai esant 3,3 V įtampai)
- Prijunkite 1 ir 20 kaiščius prie +5 V.
- Prijunkite 10 ir 19 kaiščius prie GND
- Prijunkite 2 kaištį prie ESP-12E 13 kaiščio
-
WS2812B
- Prijunkite +5V ir GND prie atitinkamai +5V ir GND kaiščių
- Prijunkite DIN prie 74HCT245N 18 kaiščio
- Jei praleidžiate 74HCT245N, prijunkite DIN prie ESP-12E 13 kaiščio
Įsitikinkite, kad visi GND yra sujungti. Įsitikinkite, kad neprisijungėte +5 arba +3,3 prie GND.
Turėjau keletą lentų, gulinčių iš ankstesnio projekto, ir tiesiog jas panaudojau (vaizdai aukščiau)
github.com/dushyantahuja/ESP8266-RGB-W-LED…
4 žingsnis: ESP-12E programavimas
Aš naudoju „Arduino IDE“, norėdamas įkelti kodą į ESP-12E. Prieš tai galite atlikti tam tikrą sąranką.
„Arduino IDE“nustatymas
Naujausia „Arduino IDE“versija palengvino šių plokščių programavimą ir jums nebereikia pereiti kelių lankų, kad ji veiktų su ESP8266 plokštėmis.
Žingsniai yra tokie:
- Atsisiųskite naujausią IDE iš
- Atidarykite IDE ir eikite į Įrankiai -> Lentos -> Lentų tvarkytuvė …
- Ieškokite ESP8266 ir spustelėkite įdiegti (žr. Paveikslėlį aukščiau)
Modulio programavimas
Šiame modulyje nėra USB sąsajos, todėl USB ryšiui su kompiuteriu tvarkyti reikia naudoti USB-TTL modulį / arduino. Galite nusipirkti bet kurį pigų modulį, kurį galima rasti „ebay“(https://www.ebay.com/sch/i.html?_from=R40&_sacat=0&…) - viskas veikia taip pat - tik įspėjame, kad reikia rasti tinkamas tvarkykles kad jūsų kompiuteris aptinka modulį.
Sujungimai yra gana paprasti:
- Prijunkite GND iš USB-TTL prie kaiščio, pažymėto GND ant ESP-12E
- Prijunkite 3.3V iš USB-TTL prie kaiščio, pažymėto VCC ant ESP-12E
- Prijunkite TX iš USB-TTL prie kaiščio, pažymėto RX ant ESP-12E
- Prijunkite RX iš USB-TTL prie kaiščio, pažymėto TX ant ESP-12E
- Sutrumpinkite programos antraštę, kad PIN 12 prisijungtų prie GND
Modulis yra paruoštas užprogramuoti.
5 žingsnis: Kodas
Kodas labai priklauso nuo „Random Nerd Tutorials“mokymo programos https://randomnerdtutorials.com/esp8266-weather-fo…-iš tikrųjų oro bitai yra tik nukopijuoti iš ten.
-
Įdiekite šias bibliotekas:
- „FastLED“(https://fastled.io)
- „ArduinoOTA“(https://github.com/esp8266/Arduino/tree/master/libraries/ArduinoOTA)
- „ArduinboJSON“(https://github.com/bblanchon/ArduinoJson)
- Gaukite „OpenWeatherMap“API (https://openweathermap.org/api)
- Atsisiųskite kodą iš „github“:
-
Atlikite šiuos pakeitimus:
- „Wi -Fi“ir slaptažodis 56 ir 57 eilutėse
- Miestas ir API raktas 23 ir 24 eilutėse
- Įkelti į ESP-12E
Jei viskas gerai, kodas įkeliamas, modulis prisijungia prie „Wi -Fi“maršrutizatoriaus ir rodo orą. Šiuo metu aš sukūriau taip:
- Jei bus debesuota / lyja - mėlyna
- Jei snigs / griaudės - Raudona -mėlyna
- Jei aišku - žalia
- Kita vaivorykštė - atsižvelgti į ypatingas sąlygas / klaidas
Galite pakeisti 365-377 eilutes, kad jas pakeistumėte. Naudojamos paletės yra 70–82 eilutėse
6 žingsnis: Surinkite
Surinkite šiuos gabalus:
- Apvyniokite LED juostelę prie LED stovo ir priklijuokite karštais klijais
- Įdėkite grandinės modulį apačioje ir pritvirtinkite karštais klijais
- Stumkite bangų lemputę ant LED stovo viršaus
- Padėkite viršutinę dalį ant viršaus
Įjunkite 5 V maitinimo šaltinį ir mėgaukitės
7 žingsnis: ateities planai
Šiuo metu jis veikia, tačiau planuoju pridėti šias funkcijas:
- Įtraukite MQTT, kad jį būtų galima susieti su „OpenHAB“
- Galbūt sukurkite tam tikrą pranešimo funkciją apie praleistus skambučius / žinutes
- Pabusk šviesa
Pasiūlymai laukiami. Ir jei jį sukuriate, būtinai paskelbkite čia vaizdą.