Turinys:
- 1 žingsnis: Aparatūra
- 2 žingsnis: LCD ekrano kūrimas
- 3 veiksmas: nustatykite programinę įrangą
- 4 veiksmas: pasirinktinai - išjunkite ekraną
- 5 veiksmas: pakabinkite kalendorių
Video: Išmanusis sieninis kalendorius: 5 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:48
Su žmona turėjome klasikinį popierinį sieninį kalendorių, kuriuo pažymėjome svarbias datas. Taip pat savo išmaniuosiuose telefonuose naudojame „Google“kalendorių įvykiams žymėti, todėl tai reiškė dvigubą darbą. Taigi nusprendžiau sukurti tam tikrą išmanųjį sienų kalendorių, kuriame bus rodomi mūsų priminimai, įvykiai ir kai kurie kiti duomenys. Kadangi aš turiu įvairių senų elektroninių dalių, mano tikslas buvo jas kuo daugiau panaudoti ir sukurti kalendorių su kuo mažesnėmis išlaidomis.
Šioje pamokoje aš jums parodysiu, kaip sukurti išmanųjį sienos kalendorių, rodant įvykius iš kelių „Google“paskyrų. Taip pat bus rodomas laikas, data, oras, temperatūra ir tam tikra papildoma informacija. Jį maitins „Raspberry Pi“kompiuteris su pasyviu infraraudonųjų spindulių (PIR) judesio jutikliu, kad ekranas įsijungtų, kai kambaryje aptinkamas judesys, bet išsijungia po kelių minučių neveikimo. Ši pamoka yra pagrįsta keliomis kitomis pamokomis, kurias radau internete, ir pateiksiu nuorodas į jas, kad geriau suprastumėte. Reikia tam tikrų pagrindinių programavimo žinių (HTML, Python, …).
1 žingsnis: Aparatūra
Kaip minėta anksčiau, bandžiau pakartotinai naudoti tiek pat senų elektroninių dalių, kad išlaidos būtų mažos. Tačiau kai kuriuos daiktus turėjau nusipirkti, todėl išvardinsiu viską, kas reikalinga statybai.
- „Raspberry Pi“rinkinys. Iš pradžių naudojau seną 2 modelį iš kito projekto. Tai pavyko, tačiau tinklalapio redagavimas ir perkrovimas užtruko daug laiko, todėl galiausiai perėjau prie 3 modelio, kuris veikia sklandžiau https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = avietė+pi+rinkinys & _sacat = 0
- LCD ekranas. Ekraną naudojau iš seno nešiojamojo kompiuterio, todėl man reikėjo tik nusipirkti LVDS tvarkyklės plokštę ir maitinimo šaltinį https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ tvarkyklė+LVDS+plokštė & _sacat = 0
-Plastikinė elektronikos laikymo dėžutė
- Pasyvus infraraudonųjų spindulių judesio jutiklis
- AM2302 temperatūros/drėgmės jutiklis
- Juodas plastikinis užsegamas rišiklis LCD rėmeliui
- Įvairūs kabeliai (HDMI, 5,5 mm nuolatinei srovei, be litavimo duonos lentos jungiamieji kabeliai, …)
2 žingsnis: LCD ekrano kūrimas
Aš naudoju LCD ekraną iš savo seno pasenusio nešiojamojo kompiuterio. Yra keletas pamokų, kaip tai padaryti, aš sekiau šį:
www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/
Išmontuoju seno nešiojamojo kompiuterio dangtelį, išėmiau skystųjų kristalų ekraną ir tada užsisakiau tinkamą LVDS tvarkyklę. Pateikiau pardavėjui produkto kodą, kurį galima rasti galinėje skystųjų kristalų ekrano pusėje, mano atveju tai yra LP171WE3 (TL) (A2) - žr. Apatinę dešinę etiketę paskutinėje nuotraukoje, tada jis atsiuntė man atitinkamą LVDS. Atminkite, kad jums taip pat reikės ekrano maitinimo šaltinio, todėl paprašykite pardavėjo jį atsiųsti. Aš taip pat nusipirkau gražią 14,5 × 7,5 × 2 cm plastikinę dėžę, kad ji puikiai tilptų vairuotojo plokštę ir pritvirtintų prie galinės LCD pusės.
Dabar LCD ekranas turi metalinį rėmą, kuris neatrodo gražiai. Iš pradžių dažiau purkštuvu iki juodos spalvos, bet dažai pradėjo luptis. Taigi aš paėmiau keturis juodus plastikinius užsegamus segtuvus, kurie paprastai naudojami popieriaus lapams įrišti, atitinkamai juos apkarpiau ir pritvirtinau, kad uždengtų rėmą. Tai atrodė gerai, todėl prijungiau visus laidus, prijungiau HDMI prie senosios „Raspberry Pi“ir „Voila“- tai pavyko! Ekrane buvo rodoma nuotrauka, todėl buvau pasiruošęs pereiti prie kito žingsnio - kokią informaciją rodyti ekrane ir kaip ją parodyti.
3 veiksmas: nustatykite programinę įrangą
Kai internete ieškojau užuominų, kaip sukurti kalendorių, mane įkvėpė šis puslapis https://dakboard.com/site. Jie pateikia gatavą produktą (ekraną, kompiuterį ir veikiančią programinę įrangą), tačiau taip pat turi puikią „pasidaryk pats“sprendimo pamoką (https://blog.dakboard.com/diy-wall-display/). Aš rekomenduoju jums vadovautis šia pamoka, bent jau pirmoje dalyje su instrukcijomis, kaip paruošti ir nustatyti sistemą „Raspberry“, kad naršyklė automatiškai įkeltų norimą tinklalapį.
Tai puikiai pavyko, tačiau aš ieškojau sprendimo, kuris galėtų būti labiau pritaikytas pagal mano pageidavimus. Aš nusprendžiau sukurti savo žiniatinklio serverį ir sukurti tinklalapį, kuriame, be kalendoriaus, bus rodoma papildoma informacija. Aš pasirinkau „Wordpress.org“, nes jis yra gerai dokumentuotas ir turi gerą palaikymą bei didelę bendruomenę, kuri jums padės. Štai pamoka, kaip įdiegti „Wordpress“„Raspberry Pi“: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. Įdiegus „Wordpress“, atėjo laikas sukurti savo pagrindinį puslapį. Galite naudoti vieną iš daugelio pateiktų temų arba kurti nuo nulio. Bet kokiu atveju tam reikia tam tikrų HTML programavimo žinių.
Sukūriau savo puslapį taip, kad kairėje pusėje būtų rodomas kalendorius (https://sl.wordpress.org/plugins/google-calendar-events/), o dešinėje-laikas ir data (https://www.timeanddate.com/clocks/free.html ir https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html). Orų prognozė yra iš šio puslapio (https://www.1a-vreme.si/vremensko-okno/), kuriame pateikiamas Slovėnijos miestų prognozių valdiklis, tačiau manau, kad kitų šalių valdiklius taip pat galima rasti internete. Temperatūra renkama naudojant AM2302 jutiklį (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0), kaip paaiškinta šio skyriaus pabaigoje. Apačioje yra paprastas dienos skaičiavimo laikmatis, rodantis, kiek dienų liko iki kokio nors įvykio (mano vaikams įdomu žinoti, kiek dienų jie turės kažko laukti). Viršutiniame dešiniajame krašte yra „MetaSlider“papildinys (https://wordpress.org/plugins/ml-slider/), kuris atsitiktine tvarka nuslenka į pasirinktas mano šeimos nuotraukas. Be to, naudoju „Background Slider“papildinį (https://sl.wordpress.org/plugins/background-slider-master/), kad galėčiau parodyti atsitiktinę nuotrauką, kad būtų gražesnis fonas.
Kaip minėta anksčiau, patalpų temperatūra renkama naudojant AM2302 jutiklį. Yra daug pamokų, kaip gauti temperatūrą, aš laikiausi šios: https://www.modmypi.com/blog/am2302-temphumidity-sensor. Vėliau šį jutiklį perkėliau į kitą „Raspberry Pi“su „Home Assistant“, nes jame lengviau skaityti ir publikuoti vertes naudojant jo DHT jutiklio komponentą (https://www.home-assistant.io/components/sensor.dht/). „Home Assistant“taip pat gali rinkti lauko temperatūrą naudodamas įvairius oro komponentus, aš naudoju „YR.no“komponentą (https://www.home-assistant.io/components/sensor.yr/). Dėl to aš parašiau automatikos scenarijų, kad surinkčiau patalpų/lauko temperatūrą iš šių komponentų ir įrašyčiau juos į tekstinį failą, kuris vėliau bus rodomas mano sieniniame kalendoriuje. Daugiau informacijos apie „Home Assistant“rasite pagrindiniame puslapyje (https://www.home-assistant.io/).
4 veiksmas: pasirinktinai - išjunkite ekraną
Dabar mes turime savo kalendorių ir jis veikia taip, kaip mums patinka. Bet mes nenorime, kad ekranas būtų įjungtas visą parą. Mes norime, kad tai įjungtų tik tada, kai kas nors yra namuose. Taip pat nenorime, kad jis būtų įjungtas vidury nakties, kai einame į tualetą, jis yra per šviesus! Taigi mes pritvirtinsime infraraudonųjų spindulių jutiklį, kad pastebėtume, kai kažkas stovi priešais jį, ir pridėsime tam tikrus laiko apribojimus, kada jis turėtų įsijungti.
Atminkite, kad mano programavimo įgūdžiai yra gana riboti, todėl šie dalykai negali būti optimalūs, nes aš juos pasirinkau iš įvairių internetinių forumų ir vadovėlių, tačiau iš esmės tai veikia. Vis dėlto bet kokia rekomendacija vis dar laukiama. Pirmiausia pradėsime nuo bandymo rankiniu būdu įjungti/išjungti monitorių. Tam mes sukursime du failus (pavyzdžiui, monitor_on.sh ir monitor_off.sh) ir parašysime jame tam tikrą kodą. Lengviausias būdas tai padaryti yra prisijungti prie „Raspberry“naudojant SSH ir įvesti
sudo nano monitor_on.sh
ir įveskite šį kodą
TV paslauga -pageidautina;
startx/usr/bin/graphical_launcher `fgconsole`
Norėdami išsaugoti ir išeiti, paspauskite CTRL+X, tada sukurkite antrąjį failą
sudo nano monitor_off.sh
ir įveskite šį kodą
televizijos paslauga -išjungta;
Dar kartą paspauskite CTRL+X, kad išsaugotumėte ir išeitumėte. Padarykite šiuos naujai sukurtus failus vykdomuosius:
sudo chmod +x monitor_on.sh
sudo chmod +x monitor_off.sh
Dabar pabandykite, ar šios komandos veikia, įveskite
sudo./monitor_off.sh
sudo./monitor_on.sh
Dabar monitorius turėtų atitinkamai išsijungti ir įjungti. Pastebėjau, kad „Raspberry Pi 2“užtruko beveik 10 sekundžių, kol monitorius įsijungė. „Raspberry Pi 3“trunka 1-2 sekundes. Toliau prijungsime infraraudonųjų spindulių jutiklį, kuris suaktyvins šiuos scenarijus. Vėlgi, yra daug vadovėlių, kaip nustatyti „Raspberry Pi“ir „PIR“, aš vadovavausi šiuo: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. Iš esmės sukurkite failą naudodami nano redaktorių (pvz., Motion_sensor.py) ir įveskite jame atitinkamą „Python“kodą. Žemiau yra mano failo pavyzdys:
importuoti RPi. GPIO kaip GPIOimportuoti laikoimportąsysimportuoti subprocessimportuoti datos laiką kaip dtimportuoti osGPIO.setwarnings (klaidinga) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. IN) #PIRturned_off = False time.time () SHUTOFF_DELAY = 180 # secondswhile Tiesa: i = GPIO.input (17), jei i == 0: #Kai judesio jutiklio išvestis yra LOW, išjunkite monitorių, jei jis nėra išjungtas ir time.time ()> (last_motion_time + SHUTOFF_DELAY): atspausdinkite „Nėra įsibrovėlių“, iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], apvalkalas = tiesa) elif i == 1: #Kai išvedamas iš judesio jutiklio yra HIGH, įjunkite monitorių ONprint „Aptiktas įsibrovėlis“, itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () if turn_off and dt.datetime.now (). hour> 5 and dt.datetime. dabar (). valanda <23: Turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], apvalkalas = tiesa), jei _name_ == '_main _': try: main () išskyrus KeyboardInterrupt: GPIO.cleanup ()
Atminkite, kad „GPIO.setup (17, GPIO. IN)“rodo, kad išvesties kaištis iš PIR yra prijungtas prie „Raspberry Pi“17 kaiščio. Kuris kaištis priklauso nuo to, ar apibrėžiate GPIO.setmode (GPIO. BOARD), ar GPIO.setmode (GPIO. BCM). Skirtumas paaiškinamas čia: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering. Prieš GPIO. BOARD turiu #, todėl jis ignoruojamas ir naudojamas GPIO. BCM.
Atkreipkite dėmesį į eilutę
SHUTOFF_DELAY = 180 #sekundžių
Čia nurodyta, kiek laiko monitorius įjungtas nuo paskutinio judesio aptikimo, kol jis išjungiamas. Tai naudinga, nes nenoriu, kad monitorius nuolat išsijungtų/įjungtų, kai einu pro jį, bet noriu, kad jis kurį laiką būtų įjungtas, kol jis neišjungiamas. Aš pasirinkau 180 sekundžių intervalą, kad monitorius išsijungtų praėjus maždaug 3 minutėms po paskutinio judesio aptikimo.
Galiausiai, ši eilutė
jei išjungta_ ir dt.datetime.now (). valanda> 6 ir dt.datetime.now (). valanda <23:
teigia, kad monitorius įsijungia tik nuo 6:00 iki 23:00, todėl jis man netrukdo nakties metu. Linijos
spausdinti „Jokių įsibrovėlių“, t
ir
spausdinti „Aptiktas įsibrovėlis“, t
yra skirti tik scenarijui išbandyti, galite juos ištrinti vėliau, kai tik jis veiks. Dabar išbandykite scenarijų:
sudo python motion_sensor.py
Jei banguojate virš jutiklio, turėtumėte matyti pranešimus „Aptiktas įsibrovėlis“, kitaip bus „Jokių įsibrovėlių“. Kai šis scenarijus yra išbandytas ir veikia, nustatykite jį paleisti paleidžiant:
sudo nano ~/.config/lxsession/LXDE-pi/autostart
ir pridėkite šią eilutę
@sudo/usr/bin/python /home/pi/motion_sensor.py
Žinoma, turite nurodyti teisingą sukurto „Python“scenarijaus failo pavadinimą.
5 veiksmas: pakabinkite kalendorių
Kai viskas paruošta, laikas pakabinti kalendorių ant sienos!
Iš pradžių galvojau paslėpti Raspberry Pi už LCD ekrano, kad prireiktų tik vieno kabelio (nuolatinės srovės). Bet kadangi „Raspberry“veikia 5 V, o LCD ekranas - 12 V, man reikia papildomo transformatoriaus. Be to, „Raspberry“dėklas yra gana storas, o tai reiškia, kad skystųjų kristalų ekranas bus maždaug 3 centimetrų atstumu nuo sienos. Taigi aš atsisakiau to ir palikau tik LCD elektroniką už LCD, todėl dabar ji yra mažiau nei 1 centimetro atstumu nuo sienos. Aš įsigijau du 5 metrų ilgio kabelius, vieną HDMI ir vieną 5, 5 mm nuolatinės srovės maitinimo šaltinį. Abu kabeliai yra balti, kaip ir siena, o tai reiškia, kad jie nelabai išsiskiria. Aš pritvirtinau skystųjų kristalų ekraną ant sienos ir padėjau avietę ant šaldytuvo ant priešingos sienos, todėl jis iš esmės yra paslėptas, tačiau vis tiek lengvai pasiekiamas.
Rekomenduojamas:
Daiktu internetu pagrįstas išmanusis sodininkystė ir išmanusis žemės ūkis naudojant ESP32: 7 žingsniai
Daiktu internetu pagrįstas išmanusis sodininkystė ir išmanusis žemės ūkis naudojant ESP32: pasaulis keičiasi kaip laikas ir žemės ūkis. Šiais laikais žmonės integruoja elektroniką visose srityse, o žemės ūkis nėra išimtis. Šis elektronikos sujungimas žemės ūkyje padeda ūkininkams ir žmonėms, kurie tvarko sodus. Tai
Išmanusis telefonas valdomas išmanusis pirkinių krepšelis: 7 žingsniai
Išmanusis telefonas valdomas išmanusis pirkinių krepšelis: lankytis prekybos centruose gali būti smagu. Tačiau pirkinių krepšelio vilkimas, kai jį užpildote daiktais, yra labai erzinantis dalykas. Skausmas stumiant jį per tuos siaurus praėjimus, darant tuos staigius posūkius! Taigi, čia (savotiškas) pasiūlymas, kurį jūs
Išmanusis rinkimas - automatiškai taisantis išmanusis tradicinis telefonas: 8 žingsniai
„Smart Dial“-automatinis taisomasis išmanusis tradicinis telefonas: „Smart Dial“yra intelektualus automatiškai taisomas telefonas, sukurtas senjorams, turintiems specialių poreikių, ir leidžia senjorams rinkti tiesiogiai iš įprastų telefonų, prie kurių jie yra įpratę. Tik savanoriaudamas vietos senjorų priežiūros centre aš
Skaitmeninis sieninis kalendorius ir namų informacijos centras: 24 žingsniai (su paveikslėliais)
Skaitmeninis sieninis kalendorius ir namų informacijos centras: Šioje instrukcijoje aš įjungiu seną plokščiaekranį televizorių prie medinio rėmo skaitmeninio sieninio kalendoriaus ir namų informacijos centro, kurį maitina „Raspberry Pi“. Tikslas buvo iš pirmo žvilgsnio pasiekti aktuali informacija visiems
„Raspberry Pi“: sieninis kalendorius ir pranešimų centras: 5 žingsniai (su nuotraukomis)
„Raspberry Pi“: prie sienos montuojamas kalendorius ir pranešimų centras: prieš “ skaitmeninį amžių “ daugelis šeimų naudojo sieninius kalendorius, kad kas mėnesį rodytų būsimų įvykių vaizdą. Ši moderni sieninio kalendoriaus versija apima tas pačias pagrindines funkcijas: mėnesio darbotvarkė Šeimos narių veiklos sinchronizavimas