Turinys:
- Prekės
- 1 žingsnis: nustatykite „Raspberry Pi“
- 2 žingsnis: Elektronikos prijungimas
- 3 žingsnis: duomenų bazės projektavimas
- 4 žingsnis: „Arduino“sąranka
- 5 veiksmas: „Raspberry Pi“pagrindinė programa
- 6 žingsnis: atvejis
Video: Pažadink mane - išmanusis žadintuvas: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
„Wake me up“yra išmanusis žadintuvas, kuris taip pat gali būti naudojamas kaip išmanioji lemputė.
Įmontuota LED juosta imituoja natūralią šviesą, patenkančią į jūsų kambarį. Tai leidžia ramiai, natūraliai pradėti savo dieną.
Žadintuvas taip pat turi 4*7 segmentų ekraną, skirtą laikui skaityti, garsiakalbius, skirtus pabusti su mėgstama muzika, jutiklinį mygtuką, ldr, skirtą LED juostos ryškumui reguliuoti, ir temperatūros jutiklį, kurį galite naudoti norėdami peržiūrėti jūsų kambario temperatūra.
Prekės
Tikslių mano sumokėtų kainų sąrašą rasite čia:
Mikrovaldikliai ir kompiuteriai:
„Raspberry Pi 4I“naudojau „Raspberry pi 4 4GB“, tačiau bet koks „Raspberry Pi“3+ modelis turėtų būti tinkamas
Arduino Uno
„Arduino“naudojamas valdyti 4*7 segmentų laikrodžio ekraną.
Jutikliai:
- TMP36: temperatūros jutiklis
- LDR: nuo šviesos priklausomas rezistorius
Pavaros:
- WS2801: individualiai adresuojama LED juosta
- LCD ekranas: 16*2 LCD ekranas.
- 4*7 segmentų laikrodžio ekranas
IC:
- 74HC595: LCD ekrano perjungimo registras
- MCP3008: 8 bitų analoginis-skaitmeninis keitiklis
- Loginio lygio keitiklis: naudojamas bendrauti tarp raspi ir arduino
Kiti reikalai:
- Adafruit MAX9744 stiprintuvas garsiakalbiams maitinti
- Bet kokiam garsiakalbiui naudojau Visaton 4Ohm 8Watt viso diapazono garsiakalbį (2240 str.)
- 9 voltų maitinimo šaltinis stiprintuvui maitinti
- 5 voltų maitinimo šaltinis, skirtas maitinti šviesos diodų juostą ir kitus komponentus. Atminkite, kad kiekvienas LED juostelėje esantis šviesos diodas gali pakelti 60 mA, todėl įsitikinkite, kad jūsų maitinimo šaltinis yra pakankamas.
- Keli 220 omų rezistoriai
- Maža duonos lentelė, kurią galėsite įdėti į savo dėklą.
Įrankiai:
- Lituoklis.
- Kažkas, kad padarytumėte dėklą (norėdamas gauti medinį efektą, naudojau 3D spausdintuvą su PLA ir PETG ir kai kuriuos vinilo lipdukus.)
1 žingsnis: nustatykite „Raspberry Pi“
Aviečių pi yra pagrindinis mūsų mikrovaldiklis.
„Raspberry pi“valdo mūsų vietinę žiniatinklio serverį, duomenų bazę, valdo šviesos diodų juostą, garsiakalbius,…
1 dalis: Raspbian diegimas
Norėdami įdiegti raspbian, naudokite šią pamoką:
Įsitikinkite, kad SSH įjungtas
2 dalis. Prisijungimas
Norėdami prisijungti prie interneto, turite prisijungti prie savo aviečių pi terminalo. Rekomenduoju naudoti glaistą. Terminalo tipas:
wpa_passphrase "YourNetwork" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
„YourNetwork“yra jūsų „Wi -Fi“tinklo pavadinimas, o „YourSSID“- tinklo slaptažodis.
Pridėję tinklą, pabandykite iš naujo paleisti „Raspberry Pi“.
Įveskite komandą „ping 8.8.8.8“, jei gausite atsakymą, kad jūsų tinklas yra nustatytas ir veikia, jis siunčia paketą „Google“serveriams.
3 dalis: Įdiekite reikalingas programas
Mums reikės įdiegti keletą papildomų programų, kad šis projektas būtų pradėtas vykdyti.
Prieš pradėdami vykdyti šias 2 komandas, kad įsitikintumėte, jog viskas atnaujinta.
sudo apt atnaujinimas
sudo apt atnaujinimas
Tai gali užtrukti.
Apache
sudo apt įdiegti apache2 -y
sudo apt įdiegti php libapache2-mod-php -y
MariaDB
sudo apt įdiegti mariadb-server mariadb-client -y
sudo apt įdiegti php -mysql -y
PHPMyAdmin
sudo apt įdiegti phpmyadmin -y
Python pip
Turime įdiegti „pip“, kad įgalintume kai kurias „python“bibliotekas
pip3 įdiegti „mysql-connector-python“
pip3 įdiegti kolbą-lizdą
pip3 sumontuokite kolbas
pip3 įdiegimo geventas
pip3 įdiegti gevent-websocket
2 žingsnis: Elektronikos prijungimas
Pridėjau 2 schemas, viena yra bandymo lentos schema. Aš rekomenduoju sukurti pirmąją schemą ir pabandyti, kad kodas veiktų.
Aš pridėjau fritzing failus žemiau.
3 žingsnis: duomenų bazės projektavimas
Tai yra mano sukurta duomenų bazės schema. Žodžiai yra olandų kalba, bet aš išsamiai paaiškinsiu kiekvieną lentelę.
1 lentelė: tblMuziek
Tai gana paprastas stalas. Tai išsaugo atlikėjo vardą, dainos pavadinimą ir dainos failo pavadinimą.
2 lentelė: „tblLedstrip“
Ši lentelė stebi esamą LED juostos būseną ir išsaugo LED juostos būseną. Mums to reikia „Smartlight“funkcijai.
3 lentelė: tblSensoren
Šioje lentelėje stebimi mūsų aliarmo jutikliai. Mes saugome jutiklio pavadinimą ir MCP3008 kanalą
4 lentelė. „TblMeting“
Šioje lentelėje saugomos mūsų jutiklių vertės ir jų laikas.
5 lentelė: „tblWekker“
Šioje lentelėje saugomas jūsų žadintuvo (pvz., Miegamojo) slaptažodis ir pavadinimas. Ši lentelė nėra privaloma, bet aš ją pridėjau, nes manau, kad jūsų namuose bus daugiau nei 1 žadintuvas.
6 lentelė: tblAlarm
Tai turbūt svarbiausia lentelė. Jis stebi jūsų nustatytą žadintuvą ir tai, ką turi padaryti laikrodis (kurią dainą paleisti, kokia sekos eilutė, Kokiomis dienomis ji turėtų išsijungti, …). Labai svarbu sekti 2 datas. 1 data naudojama saugoti, kurią valandą žadintuvas turėtų skambėti. Kitas stebi paskutinį kartą suveikusį signalą. Norėdami sužinoti, kuri darbo diena turėtų išsijungti, aš naudoju varchar, kuriame yra 7 skaitmenys. Pirmasis skaitmuo yra pirmadienis, antrasis antradienis,… Jei jis yra 1, jis turėtų išnykti, jei jis yra 0, neturėtų. Pavyzdys: 1111100 tai reiškia, kad šis signalas turėtų skambėti pirmadienį, antradienį, trečiadienį, ketvirtadienį ir penktadienį.
4 žingsnis: „Arduino“sąranka
Šis žingsnis yra labai lengvas. Kitame žingsnyje bus nuoroda į mano „github“, kur galite atsisiųsti arduino failą.
Ką veikia programa?
Programa laukia, kol iš pi pateks serijiniai duomenys.
Kai tik duomenys gaunami, jie analizuoja eilutę ir siunčia pi patvirtinimą.
Eilutė bus maždaug tokia: „1201“, tai reiškia, kad yra 12:01. Aš naudojau įprastą 7 segmentų anodo ekraną, tai reiškia, kad skaitmenys turėtų būti dideli, o A, B, C, D, E, F, G ir DP turėtų būti maži, kad juos įjungtumėte. Jei naudojate įprastą katodą, tiesiog pakeiskite HIGH į LOW ir LOW į HIGH.
Čia yra nuoroda su daugiau informacijos apie tai, kaip veikia 7 segmentų ekranai. (naudojant biblioteką):
www.instructables.com/id/Using-a-4-digit-7…
Štai nuoroda apie 7 segmentų rodinius nenaudojant bibliotekos:
create.arduino.cc/projecthub/SAnwandter1/p…
5 veiksmas: „Raspberry Pi“pagrindinė programa
Mano kodą galite atsisiųsti naudodami „Github“. (https://github.com/VanHevelNico/WakeMeUp)
Kaip įdiegti programą:
Užpakalinė dalis parašyta python naudojant kolbą. Galite sukurti paslaugą, kuri automatiškai paleidžia šią programą (app.py).
Priekinės dalies kodą turėtumėte įdėti į anksčiau atsisiųsto apache serverio html failą. (/var/html)
Kaip veikia programa?
Kai žadintuvas įjungtas, eikite į savo laikrodžio IP adresą (jis bus rodomas LCD)
Kai tik eisite į tą IP adresą savo naršyklėje, jūsų kompiuteris atsiųs „socket.io“užklausą vidinei sistemai, sakydamas, kad klientas prisijungė. Kai užpakalinė programa tai gaus, prasidės kelios temos, kurias paaiškinsiu toliau.
Sąranka
Tai inicializuoja visus reikalingus objektus.
„GetTemp“
Tai nuskaito „mcp3008“kanalą 0 ir konvertuoja dvejetainius duomenis į faktinę temperatūrą ir įtraukia juos į duomenų bazę su dabartine data ir valanda.
GetTempGrafiek
Tai gauna paskutines 20 temperatūros jutiklio verčių ir skleidžia jį priekinei sistemai.
tijd_sturen
Šis metodas nustato dabartinį laiką ir patikrina, ar nepasikeitė minutė. Jei ji pasikeitė, programa siunčia naują laiką „arduino“naudodama nuoseklųjį ryšį
checkAlarmen
Tai yra svarbiausias metodas. Jis gauna visus įjungtus pavojaus signalus ir patikrina, ar kuris nors iš šių signalų turi įsijungti nuo dabar iki 5 minučių (tai yra buferis, užtikrinantis, kad kiekvienas aliarmas įsijungtų, kai reikia). Jei žadintuvas turi išsijungti, paleisime muziką, šviesos diodų juostą,… Mes nuolat skaitome jėgai jautrų rezistorių ir kai vertė nukrenta žemiau 1000 (skaitykite, kad paspaustas fsr) Mes įjungiame signalą ir atnaujiname aliarmą duomenų bazę. Mes nustatėme datą, kai žadintuvas paskutinį kartą skambėjo, iki dabartinės datos.
statusLight
Šis metodas skleidžia LED juostos vertę ir prireikus įjungia LED juostą.
lichtAanpassen
Tai papildomas būdas užtikrinti, kad šviesos diodų juosta ir žadintuvo lemputė nesuderintų.
6 žingsnis: atvejis
Nuorodą į mano failus rasite čia:
Korpusui spausdinti naudojau 3D spausdintuvą. Jis atspausdintas 4 skirtingomis dalimis:
- Priekinė plokštė su skylėmis garsiakalbiui ir kai kurios sienos 7 segmentų ekranui
- Išorinis LED juostos žiedas permatomoje PETG.
- Vidurinė dalis
- Galinė plokštė su skyle LCD ekranui ir anga kabeliams.
Pradiniame modelyje 7 segmentų ekranui nebuvo skylės, tačiau to reikia, nes kitaip 7 segmentų ekrano šviesa nešviečia.
Kaip matote įdėję visus komponentus, aš naudoju vinilo lipdukus su medine išvaizda, kad galutinis rezultatas atrodytų geriau. Laikrodžio ekranas šviečia per lipduką, kuris sukuria labai gražiai atrodantį efektą.
Rekomenduojamas:
5 viename „Arduino“robotas - Sekite mane - Eilutė po - Sumo - Piešimas - Vengti kliūčių: 6 žingsniai
5 viename „Arduino“robotas | Sekite mane | Eilutė po | Sumo | Piešimas | Vengti kliūčių: šioje roboto valdymo plokštėje yra mikrovaldiklis ATmega328P ir variklio tvarkyklė L293D. Žinoma, tai nesiskiria nuo „Arduino Uno“plokštės, tačiau ji yra naudingesnė, nes jai nereikia kito skydo varikliui valdyti! Tai nemokama šokinėti
Sekite mane - „Raspberry Pi“išmaniųjų dronų vadovas: 9 žingsniai
Sekite mane - „Raspberry Pi“išmaniųjų dronų vadovas: Ar visada galvojote, kaip pasigaminti droną iš A -Z? Ši pamoka parodo, kaip žingsnis po žingsnio padaryti 450 mm keturračio kopijavimo aparatą nuo dalių pirkimo iki oro roboto bandymo pirmajam skrydžiui. Be to, naudodami „Raspberry Pi“ir „PiCamera“galite
Apšviesk mane! realaus laiko kelių platformų LED juostos valdymas: 5 žingsniai (su paveikslėliais)
Apšviesk mane! realaus laiko kelių platformų LED juostos valdymas: „LightMeUp“! yra mano sugalvota sistema, skirta realiuoju laiku valdyti RGB LED juostelę, išlaikant mažą kainą ir aukštą našumą. Serveris yra parašytas „Node.js“ir todėl yra tinkamas platformai. Mano pavyzdyje aš naudoju „Raspberry Pi 3B“ilgalaikiam naudojimui
Suspauskite mane: 4 žingsniai
Suspauskite mane: panaudoję ankstesnį nurodymą savo prototipui nustatyti, pradėkite rinkti medžiagas nešiojamam kompiuteriui. Aš nusprendžiau dėvėti švarką su sagomis, nes tai leido man paslėpti daug grandinių/laidų ir atitikti mano tonas
Sekite mane robotas naudojant „NodeMCU“: 4 žingsniai
„Follow Me Robot“naudojant „NodeMCU“: „Follow Me Robot“yra labai paprasta naudojant „NodeMCU“. Jis naudoja NodeMCU HC SR04 atstumo jutiklį, kad pajustų šalia esantį objektą/ žmogų. Kai jis aptiks objektą/ žmogų, jis pradės sekti