Përmbajtje:

Kalendari i Murit të zgjuar: 5 hapa
Kalendari i Murit të zgjuar: 5 hapa

Video: Kalendari i Murit të zgjuar: 5 hapa

Video: Kalendari i Murit të zgjuar: 5 hapa
Video: 5 Gjera qe deri sot i keni bere gabim 2024, Nëntor
Anonim
Kalendari i Murit të Zgjuar
Kalendari i Murit të Zgjuar

Unë dhe gruaja ime kishim kalendar klasik të murit prej letre, në të cilin shënuam data të rëndësishme. Ne gjithashtu përdorim kalendarin Google në telefonat tanë inteligjentë për shënimin e ngjarjeve, kështu që kjo nënkuptonte punë të dyfishtë. Kështu që vendosa të ndërtoj një lloj kalendari të zgjuar të murit, i cili do të shfaqë kujtimet tona, ngjarjet dhe disa të dhëna të tjera. Meqenëse unë kam pjesë të ndryshme të vjetra elektronike të shtrira përreth, qëllimi im ishte t'i ripërdorja ato sa më shumë që të ishte e mundur dhe të ndërtoja kalendarin me sa më pak kosto.

Në këtë tutorial do t'ju tregoj, si të ndërtoni kalendar të zgjuar të murit, duke shfaqur ngjarje nga disa llogari të Google. Gjithashtu do të shfaqë kohën, datën, motin, temperaturën dhe disa informacione shtesë. Ai do të mundësohet nga një kompjuter Raspberry Pi me një sensor lëvizjeje Sensor Pasiv Infrared (PIR) të bashkangjitur në të, kështu që ekrani ndizet, kur lëvizja zbulohet në dhomë, por fiket pas disa minutash pasiviteti. Ky tutorial bazohet në disa mësime të tjera që gjeta në internet dhe do t'i jap lidhjet për ta për një kuptim më të mirë. Nevojiten disa njohuri themelore të programimit (HTML, Python,…).

Hapi 1: Hardueri

Siç u përmend më parë, unë u përpoqa të ripërdor sa më shumë pjesë elektronike të vjetra për të mbajtur kostot e ulëta. Sidoqoftë, disa artikuj më duhej të blija, kështu që unë do të listoj gjithçka që është e nevojshme për ndërtimin.

- Një çantë Raspberry Pi. Fillimisht kam përdorur modelin tim të vjetër 2 nga ndonjë projekt tjetër. Ajo funksionoi, por redaktimi dhe ngarkimi i faqes në internet më mori shumë kohë, kështu që përfundimisht kalova në modelin 3, i cili punon më rrjedhshëm https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = mjedër+pi+kit & _sacat = 0

- Ekran LCD. Kam përdorur ekranin nga laptopi im i vjetër, kështu që më duhej vetëm të blija bordin e drejtuesit LVDS për të dhe furnizimin me energji https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ shoferi+bordi LVDS+& _sacat = 0

-Kuti plastike për ruajtjen e elektronikës

- Sensori i lëvizjes me rreze infra të kuqe

- Sensori i temperaturës/lagështisë AM2302

- Lidhës plastik i zi me rrëshqitje për kornizën LCD

- Kabllo të ndryshëm (HDMI, 5.5mm për energji DC, kabllo kërcyes të panjohur pa saldim,…)

Hapi 2: Krijimi i ekranit LCD

Krijimi i ekranit LCD
Krijimi i ekranit LCD
Krijimi i ekranit LCD
Krijimi i ekranit LCD
Krijimi i ekranit LCD
Krijimi i ekranit LCD

Kam përdorur ekranin LCD nga laptopi im i vjetër i vjetëruar. Ka disa mësime se si ta bëni këtë, unë ndoqa këtë:

www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/

Unë çmontova kapakun e laptopit tim të vjetër, nxora ekranin LCD dhe pastaj urdhërova tabelën e duhur të drejtuesit LVDS. I dhashë shitësit kodin e produktit, i cili mund të gjendet në anën e pasme të LCD, në rastin tim është LP171WE3 (TL) (A2) - shiko etiketën poshtë djathtas në foton e fundit, dhe më pas ai më dërgoi LVDS -në e duhur. Ju lutemi vini re, do t'ju duhet gjithashtu furnizimi me energji elektrike për ekranin, kështu që kërkoni nga shitësi ta dërgojë edhe atë. Bleva gjithashtu një kuti plastike të bukur 14.5 × 7.5 × 2 cm për t'iu përshtatur bukur tabelës së shoferit dhe për ta bashkangjitur në anën e pasme të LCD.

Tani ekrani LCD ka kornizë metalike, e cila nuk duket bukur. Fillimisht e lyeja me llak me ngjyrë të zezë, por boja filloi të zhvishej. Kështu që mora katër lidhëse plastike të zeza me rrëshqitje, të cilat zakonisht përdoren për lidhjen e fletëve të letrës, i shkurtova në përputhje me rrethanat dhe i bashkova për të mbuluar kornizën. Kjo dukej mirë, kështu që unë lidha të gjithë kabllot, të kyçur në HDMI me Raspberry Pi dhe Voila -n time të vjetër - funksionoi! Kishte një fotografi që shfaqet në ekran, kështu që unë isha gati të kaloja në hapin tjetër - çfarë informacioni të shfaqet në ekran dhe si ta shfaq atë.

Hapi 3: Vendosja e Softuerit

Kur po kërkoja në internet për disa të dhëna se si të krijoj kalendar, u frymëzova nga kjo faqe https://dakboard.com/site. Ato ofrojnë produktin e përfunduar (ekranin, kompjuterin dhe softuerin e punës), por ato gjithashtu kanë një udhëzues të shkëlqyeshëm për zgjidhjen DIY (https://blog.dakboard.com/diy-wall-display/). Unë ju rekomandoj të ndiqni këtë tutorial, të paktën për pjesën e parë me udhëzimet për përgatitjen dhe konfigurimin e sistemit në Raspberry, në mënyrë që shfletuesi të ngarkojë automatikisht faqen e internetit të dëshiruar në nisje.

Kjo funksionoi bukur, megjithatë unë po kërkoja një zgjidhje, e cila mund të personalizohej më shumë sipas dëshirave të mia. Kam vendosur të krijoj serverin tim në internet dhe të krijoj një faqe në internet, e cila do të tregojë informacion shtesë përveç kalendarit. Unë kam zgjedhur Wordpress.org, pasi është i dokumentuar mirë dhe ka mbështetje të mirë dhe komunitet të madh për t'ju ndihmuar. Këtu keni mësimin se si të instaloni Wordpress në Raspberry Pi: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. Me Wordpress të instaluar, ishte koha për të hartuar faqen time. Ju mund të përdorni një nga temat e shumta të ofruara, ose dizajn nga e para. Gjithsesi, për këtë nevojiten disa njohuri të programimit HTML.

Unë kam hartuar faqen time, në mënyrë që në anën e majtë të shfaqet kalendari (https://sl.wordpress.org/plugins/google-calendar-events/), ndërsa në anën e djathtë tregohen koha dhe data (https://www.timeanddate.com/clocks/free.html dhe https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html). Parashikimi i motit vjen nga kjo faqe (https://www.1a-vreme.si/vremensko-okno/), e cila siguron widget parashikues për qytetet sllovene, por mendoj se widget-et për vendet e tjera mund të gjenden gjithashtu në internet. Temperatura mblidhet duke përdorur sensorin AM2302 (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0), siç shpjegohet në fund të këtij kapitulli. Në fund është një kohëmatës i thjeshtë i numërimit ditor, i cili tregon sa ditë kanë mbetur për ndonjë ngjarje (interesante që fëmijët e mi të dinë, sa ditë do të duhet të presin për diçka). Në skajin e sipërm të djathtë është shtojca MetaSlider (https://wordpress.org/plugins/ml-slider/), e cila rrëshqet rastësisht në fotografitë e zgjedhura të familjes sime. Për më tepër, kam përdorur shtojcën Background Slider (https://sl.wordpress.org/plugins/background-slider-master/) për të më treguar një fotografi të rastësishme për një sfond më të bukur.

Siç u përmend më parë, temperatura e brendshme mblidhet duke përdorur sensorin AM2302. Ka shumë mësime se si të merrni temperaturën, unë ndoqa këtë: https://www.modmypi.com/blog/am2302-temphumidity-sensor. Më vonë e transferova këtë sensor në një Raspberry Pi tjetër me Home Assistant që funksionon mbi të, sepse është më e lehtë të lexosh dhe publikosh vlera duke përdorur përbërësin e tij DHT Sensor (https://www.home-assistant.io/components/sensor.dht/) Me Home Assistant gjithashtu mund të mbledhë temperaturën e jashtme duke përdorur përbërës të ndryshëm të motit, kam përdorur përbërës YR.no (https://www.home-assistant.io/components/sensor.yr/). Me këtë, unë shkrova një skenar automatizimi për të mbledhur temperaturën e brendshme/të jashtme nga këto përbërës dhe i shkruaj ato në një skedar teksti, i cili më pas shfaqet në kalendarin tim të murit. Për më shumë informacion mbi Home Assistant, shihni faqen kryesore (https://www.home-assistant.io/).

Hapi 4: Opsional - Fikja e Ekranit

Tani ne kemi vendosur kalendarin tonë dhe funksionon, ashtu siç na pëlqen. Por ne nuk duam që ekrani të ndizet 24/7. Ne duam që ajo të vazhdojë, kur dikush është në shtëpi. Gjithashtu ne nuk duam që të ndizet në mes të natës, kur shkojmë në tualet, është shumë e ndritshme! Pra, ne do të bashkojmë një sensor infra të kuqe për të vënë re, kur dikush qëndron para tij, dhe shtojmë disa afate kohore, kur duhet të ndizet.

Ju lutemi vini re se aftësitë e mia të programimit janë mjaft të kufizuara, kështu që sa vijon nuk mund të jenë optimale, pasi e kam zgjedhur nga forume dhe mësime të ndryshme në internet, por në thelb funksionon. Sidoqoftë, çdo rekomandim është akoma i mirëpritur. Së pari do të fillojmë me testin për të aktivizuar/fikur manualisht monitorin. Për këtë, ne do të krijojmë dy skedarë (për shembull monitor_on.sh dhe monitor_off.sh) dhe do të shkruajmë ndonjë kod në të. Mënyra më e lehtë për ta bërë këtë është të regjistroheni në Raspberry tuaj duke përdorur SSH dhe shkruani

sudo nano monitor_on.sh

dhe shkruani kodin e mëposhtëm

tvservice -e preferuar;

startx/usr/bin/graphical_launcher `fgconsole`

Shtypni CTRL+X për të ruajtur dhe dalur, pastaj krijoni skedarin e dytë

sudo nano monitor_off.sh

dhe shkruani kodin e mëposhtëm

tvservice -off;

Përsëri, shtypni CTRL+X për të ruajtur dhe dalur. Bëni këto skedarë të krijuar rishtazi të ekzekutueshëm:

sudo chmod +x monitor_on.sh

sudo chmod +x monitor_off.sh

Tani për të provuar nëse këto komanda po funksionojnë, shkruani

sudo./monitor_off.sh

sudo./monitor_on.sh

Tani monitori duhet të fiket dhe ndizet në përputhje me rrethanat. Kam vënë re se në Raspberry Pi 2 u deshën gati 10 sekonda që monitori të ndizet. Në Raspberry Pi 3 duhen 1-2 sekonda. Tjetra ne do të lidhim një sensor infra të kuqe, i cili do të shkaktojë këto skripte. Përsëri, ka shumë mësime se si të vendosni Raspberry Pi dhe PIR, unë ndoqa këtë: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. Në thelb, krijoni një skedar duke përdorur redaktues nano (për shembull motion_sensor.py) dhe shkruani kodin e duhur Python në të. Më poshtë është shembulli i skedarit tim:

importo RPi. GPIO si GPIOimport kohëimport sysimport nënprocesimport data e kohës si dtimport osGPIO.setwarnings (false) koha.kohë () SHUTOFF_DELAY = 180 # sekonda ndërsa e vërtetë: i = GPIO.input (17) nëse i == 0: # Kur dalja nga sensori i lëvizjes është LOW, fikeni monitorin OFFNëse nuk është fikur dhe fikur. SHUTOFF_DELAY): printoni "Pa ndërhyrës", iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], shell = True) elif i == 1: #Kur dalja nga sensori i lëvizjes është LART, kthejeni monitorin ONprint "Intruder zbuluar", itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () nëse është kthyer_off dhe dt.datetime.now (). orë> 5 dhe dt.datetime. tani (). ora <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], shell = E vërtetë) nëse _name_ == '_main _': provo: kryesore () përveç KeyboardInterrupt: GPIO.cleanup ()

Vini re se "GPIO.setup (17, GPIO. IN)" tregon se kunja dalëse nga PIR është e lidhur me pin 17 në Raspberry Pi. Cila kunj varet nga fakti nëse përcaktoni GPIO.setmode (GPIO. BOARD) ose GPIO.setmode (GPIO. BCM). Dallimi shpjegohet këtu: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-bet--board-and-bcm-for-gpio-pin-numbering. Unë kam # para GPIO. BOARD, kështu që është injoruar dhe GPIO. BCM përdoret.

Vëreni vijën

SHUTOFF_DELAY = 180 #sekonda

Këtu thuhet, sa kohë është ndezur monitori që nga zbulimi i lëvizjes së fundit, para se të fiket. Kjo është e dobishme sepse nuk dua që monitori të fiket/ndizet vazhdimisht kur eci pranë tij, por dua ta mbaj të ndezur për ca kohë, para se të fiket. Unë kam zgjedhur intervalin prej 180 sekondash, në mënyrë që monitori të fiket rreth 3 minuta pasi u zbulua lëvizja e fundit.

Më në fund, kjo linjë

nëse është fikur dhe dt.datetime.now (). orë> 6 dhe dt.datetime.now (). orë <23:

thotë se monitori ndizet vetëm midis orës 6:00 dhe 23:00, kështu që nuk më shqetëson gjatë natës. Linjat

shtyp "Pa ndërhyrës", i

dhe

print "Zbulohet ndërhyrës", i

janë vetëm për të testuar skriptin, mund t'i fshini më vonë, kur ta keni të funksionojë. Tani provoni skriptin:

sudo python motion_sensor.py

Ju duhet të shihni mesazhet "Ndërhyrës u zbulua", nëse tundni mbi sensor, përndryshe do të jetë "Pa ndërhyrës". Kur ky skript është testuar dhe është duke punuar, vendoseni që të fillojë në nisje:

sudo nano/.config/lxsession/LXDE-pi/autostart

dhe shtoni rreshtin e mëposhtëm

@sudo/usr/bin/python /home/pi/motion_sensor.py

Sigurisht që duhet të specifikoni emrin e saktë të skedarit të shkrimit Python që keni krijuar.

Hapi 5: Varni Kalendarin

Me gjithçka të rregulluar, është koha për të varur kalendarin në mur!

Fillimisht po mendoja të fshihja Raspberry Pi pas ekranit LCD, në mënyrë që të nevojitej vetëm një kabllo (fuqi DC). Por meqenëse mjedra funksionon në 5V dhe ekrani LCD funksionon në 12V, do të më duhej një transformator shtesë. Gjithashtu, kutia e Mjedrës është mjaft e trashë, që do të thotë se LCD do të ndahet rreth 3 centimetra nga muri. Kështu që unë e braktisa këtë dhe lashë vetëm elektronikë LCD pas LCD, kështu që tani është më pak se 1 centimetër larg nga muri. Bleva dy kabllo 5 metra të gjatë, një HDMI dhe një 5, 5 mm për furnizimin me energji DC. Të dy kabllot janë të bardhë, si muri, që do të thotë se nuk dallohen shumë. Unë kam vendosur LCD në mur dhe kam vënë Mjedër në majë të frigoriferit në murin e kundërt, kështu që është në thelb e fshehur, por akoma lehtësisht e arritshme.

Recommended: