INHOUDSOPGAWE:

Slim muurkalender: 5 stappe
Slim muurkalender: 5 stappe

Video: Slim muurkalender: 5 stappe

Video: Slim muurkalender: 5 stappe
Video: Sony PlayStation 2 slim ModBo 5 прошивка Matrix 1.93 обзор настройка запуск how to run PS2 usb 2024, November
Anonim
Slim muurkalender
Slim muurkalender

Ek en my vrou het 'n klassieke papiermuurkalender gehad waarop ons belangrike datums gemerk het. Ons gebruik ook die Google -kalender op ons slimfone om geleenthede te merk, dus dit beteken dubbele werk. Daarom het ek besluit om 'n soort slim muurkalender te bou wat ons herinneringe, gebeure en ander data sal vertoon. Aangesien ek verskillende ou elektroniese onderdele rondlê, was my doel om dit soveel as moontlik te hergebruik en die kalender met so min moontlik koste op te stel.

In hierdie tutoriaal sal ek u wys hoe u 'n slim muurkalender kan opstel, met gebeurtenisse uit verskillende Google -rekeninge. Dit sal ook tyd, datum, weer, temperatuur en 'n paar ekstra inligting vertoon. Dit word aangedryf deur 'n Raspberry Pi -rekenaar met 'n Passive Infrared Sensor (PIR) bewegingsensor daaraan, sodat die skerm aanskakel wanneer beweging in die kamer waargeneem word, maar na 'n paar minute se onaktiwiteit uitskakel. Hierdie handleiding is gebaseer op verskeie ander tutoriale wat ek op die internet gevind het, en ek sal die skakels na hulle gee vir 'n beter begrip. 'N Paar basiese kennis van programmering is nodig (HTML, Python, …).

Stap 1: Die hardeware

Soos voorheen genoem, het ek probeer om soveel ou elektroniese onderdele te hergebruik om die koste laag te hou. Sommige items moes ek egter koop, so ek sal 'n lys maak van alles wat nodig is vir die konstruksie.

- 'n Framboos Pi -stel. Aanvanklik het ek my ou model 2 van 'n ander projek gebruik. Dit het gewerk, maar die redigering en herlaai van die webbladsy het my baie tyd geneem, en ek het uiteindelik oorgeskakel na model 3, wat vlotter werk https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = framboos+pi+kit & _sacat = 0

- LCD skerm. Ek het die skerm vanaf my ou skootrekenaar gebruik, en ek hoef net LVDS -bestuurdersbord daarvoor en die kragtoevoer te koop https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ bestuurder+LVDS+bord en _sacat = 0

-Plastiek opbergkas vir elektronika

- Passiewe infrarooi bewegingsensor

- AM2302 temperatuur-/humiditeitsensor

- Swart plastiek-insluitbinder vir LCD-raam

- Verskeie kabels (HDMI, 5,5 mm vir DC -krag, soldeerlose broodbordkabels, …)

Stap 2: Skep die LCD -skerm

Skep die LCD -skerm
Skep die LCD -skerm
Skep die LCD -skerm
Skep die LCD -skerm
Skep die LCD -skerm
Skep die LCD -skerm

Ek het die LCD -skerm van my ou verouderde skootrekenaar gebruik. Daar is verskeie tutoriale oor hoe om dit te doen; ek het hierdie gevolg:

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

Ek het die omslag van my ou skootrekenaar afgehaal, die LCD -skerm uitgehaal en toe die regte LVDS -bestuurdersbord bestel. Ek het die produkkode aan die verkoper verskaf, wat aan die agterkant van die LCD gevind kan word, in my geval is dit LP171WE3 (TL) (A2) - sien die etiket regs onder op die laaste foto, en dan stuur hy vir my die toepaslike LVDS. Let wel: u benodig ook die kragtoevoer vir die skerm, so vra die verkoper om dit ook te stuur. Ek het ook 'n mooi plastiekboks van 14,5 x 7,5 x 2 cm gekoop om die bestuurbord mooi te pas en aan die agterkant van die LCD vas te maak.

Nou het die LCD -skerm 'n metaalraam, wat nie mooi lyk nie. Ek het dit aanvanklik in swart gespuit, maar die verf het begin afskil. Ek het dus vier swart plastiek-insluitbande geneem, wat gewoonlik gebruik word om velle papier vas te bind, en dit dienooreenkomstig afgewerk en dit vasgemaak om die raam te bedek. Dit lyk goed, so ek het al die kabels gekoppel, HDMI aangesluit op my ou Raspberry Pi en Voila - dit het gewerk! Daar was 'n prentjie op die skerm, so ek was gereed om verder te gaan - watter inligting om op die skerm te wys en hoe om dit te wys.

Stap 3: Die opstel van die sagteware

Toe ek op die internet soek na 'n paar leidrade oor hoe om 'n kalender te bou, is ek geïnspireer deur hierdie bladsy https://dakboard.com/site. Hulle bied die finale produk (die skerm, rekenaar en werkende sagteware), maar hulle het ook 'n uitstekende handleiding vir selfdoenoplossings (https://blog.dakboard.com/diy-wall-display/). Ek beveel u aan om hierdie tutoriaal te volg, ten minste vir die eerste deel, met die instruksies oor die voorbereiding en opstel van die stelsel op Framboos, sodat die blaaier die gewenste webblad outomaties laai tydens opstart.

Dit het goed gewerk, maar ek was op soek na 'n oplossing wat volgens my wense meer aangepas kon word. Ek het besluit om my eie webbediener op te stel en 'n webblad te skep wat addisionele inligting behalwe die kalender bevat. Ek het Wordpress.org gekies, aangesien dit goed gedokumenteer is en goeie ondersteuning het en 'n groot gemeenskap om u te help. Hier is die handleiding oor hoe u Wordpress op Raspberry Pi kan installeer: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. Met Wordpress geïnstalleer, was dit tyd om my tuisblad te ontwerp. U kan een van die vele temas gebruik, of van nuuts af ontwerp. In elk geval, hiervoor is 'n bietjie kennis van HTML -programmering nodig.

Ek het my bladsy ontwerp sodat die kalender aan die linkerkant verskyn (https://sl.wordpress.org/plugins/google-calendar-events/), terwyl die tyd en datum aan die regterkant verskyn (https://www.timeanddate.com/clocks/free.html en https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html). Weervoorspelling is van hierdie bladsy (https://www.1a-vreme.si/vremensko-okno/), wat die weervoorspelling vir Sloweense stede bied, maar ek dink widgets vir ander lande kan ook op die internet gevind word. Die temperatuur word versamel met die AM2302 -sensor (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0), soos aan die einde van hierdie hoofstuk verduidelik. Aan die onderkant is 'n eenvoudige daaglikse afteller wat aandui hoeveel dae daar nog 'n gebeurtenis is (interessant vir my kinders om te weet, hoeveel dae moet hulle op iets wag). In die regter boonste rand is die MetaSlider-inprop (https://wordpress.org/plugins/ml-slider/), wat ewekansig na geselekteerde foto's van my gesin gly. Verder het ek die agtergrond-skuif-inprop (https://sl.wordpress.org/plugins/background-slider-master/) gebruik om 'n ewekansige prentjie vir 'n mooier agtergrond te wys.

Soos voorheen genoem, word die binnetemperatuur ingesamel met behulp van die AM2302 -sensor. Daar is baie tutoriale oor hoe om temperatuur te kry, ek het hierdie gevolg: https://www.modmypi.com/blog/am2302-temphumidity-sensor. Later het ek hierdie sensor na 'n ander Raspberry Pi verskuif met Home Assistant daarop, omdat dit makliker is om waardes te lees en te publiseer met die DHT Sensor-komponent (https://www.home-assistant.io/components/sensor.dht/). Home Assistant kan ook buitentemperatuur versamel met behulp van verskillende weerkomponente. Ek het YR.no-komponent gebruik (https://www.home-assistant.io/components/sensor.yr/). Daarmee het ek 'n outomatiseringsskrif geskryf om binne/buite temperatuur van hierdie komponente te versamel en dit na 'n tekslêer te skryf, wat dan op my muurkalender verskyn. Vir meer inligting oor Home Assistant, sien die tuisblad (https://www.home-assistant.io/).

Stap 4: opsioneel - die skerm uitskakel

Nou het ons ons kalender opgestel, net soos ons daarvan hou. Maar ons wil nie hê dat die skerm 24/7 aangeskakel moet word nie. Ons wil dit net aanskakel as iemand tuis is. Ons wil ook nie hê dat dit in die middel van die nag aangeskakel moet word nie, as ons toilet toe gaan, is dit te helder! Ons sal dus 'n infrarooi sensor aanheg om op te let wanneer iemand voor hom staan en 'n paar tydsbeperkings byvoeg wanneer dit moet aanskakel.

Let daarop dat my programmeringsvaardighede taamlik beperk is, sodat die volgende nie optimaal kan wees nie, aangesien ek dit uit verskillende aanlynforums en tutoriale gekies het, maar dit werk in wese. Tog word enige aanbeveling steeds verwelkom. Eerstens begin ons met die toets om die monitor met die hand aan/uit te skakel. Hiervoor skep ons twee lêers (byvoorbeeld monitor_on.sh en monitor_off.sh) en skryf ons 'n kode daarin. Die maklikste manier om dit te doen is om aan te meld by u Framboos met SSH en tik

sudo nano monitor_on.sh

en tik die volgende kode in

tvservice -voorkeur;

startx/usr/bin/graphical_launcher `fgconsole`

Druk CTRL+X om te stoor en af te sluit, en skep dan die tweede lêer

sudo nano monitor_off.sh

en tik die volgende kode in

tvservice -af;

Druk weer CTRL+X om op te slaan en te verlaat. Maak hierdie nuutgeskepte lêers uitvoerbaar:

sudo chmod +x monitor_on.sh

sudo chmod +x monitor_off.sh

Om te probeer of hierdie opdragte werk, tik

sudo./monitor_off.sh

sudo./monitor_on.sh

Die monitor moet nou aan- en uitskakel. Ek het opgemerk dat die monitor op Raspberry Pi 2 amper 10 sekondes geneem het. Op Raspberry Pi 3 neem dit 1-2 sekondes. Vervolgens koppel ons 'n infrarooi sensor wat hierdie skrifte sal aktiveer. Weereens, daar is baie tutoriale oor hoe om Raspberry Pi en PIR op te stel; ek het hierdie een gevolg: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. Skep basies 'n lêer met behulp van nano -redakteur (byvoorbeeld motion_sensor.py) en tik die toepaslike Python -kode daarin. Hieronder is die voorbeeld van my lêer:

voer RPi. GPIO in as GPIOimporteer tydsimport sysimport subprosesimport datetime as dtimport osGPIO.setwarnings (Onwaar) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. IN) #PIRturned_off =_alsast_ time.time () SHUTOFF_DELAY = 180 # sek. SHUTOFF_DELAY): druk "Geen indringers", iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], shell = True) elif i == 1: #Wanneer uitset van bewegingsensor is HOOG, skakel die monitor aan Afdruk "indringer opgespoor", itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () as off_ en dt.datetime.now (). uur> 5 en dt.datetime. nou (). uur <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], shell = True) as _name_ == '_main _': try: main () behalwe KeyboardInterrupt: GPIO.cleanup ()

Let daarop dat "GPIO.setup (17, GPIO. IN)" aandui dat die uitvoerpen van PIR gekoppel is aan pen 17 op Raspberry Pi. Watter pen dit hang, hang af of u GPIO.setmode (GPIO. BOARD) of GPIO.setmode (GPIO. BCM) definieer. Die verskil word hier verduidelik: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering. Ek het # voor GPIO. BOARD, so dit word geïgnoreer en GPIO. BCM word gebruik.

Let op die lyn

SHUTOFF_DELAY = 180 #sekondes

Hier word gesê hoe lank die monitor aangeskakel is sedert die laaste beweging opgespoor is, voordat dit afgeskakel word. Dit is handig omdat ek nie wil hê dat die monitor voortdurend moet aan/uitskakel as ek daar verbyloop nie, maar ek wil dit 'n geruime tyd aanhou voordat dit af is. Ek het die interval van 180 sekondes gekies, sodat die monitor ongeveer 3 minute nadat die laaste beweging opgespoor is, afgeskakel word.

Ten slotte, hierdie reël

as draai_af en dt.datetime.now (). uur> 6 en dt.datetime.now (). uur <23:

sê dat die monitor slegs tussen 6:00 en 23:00 aanskakel, sodat dit my nie in die nag steur nie. Die lyne

druk "Geen indringers", i

en

druk "indringer opgespoor", i

is slegs vir die toets van die script, u kan dit later uitvee as u dit laat werk. Toets nou die skrif:

sudo python motion_sensor.py

U moet die boodskappe "Indringer opgespoor" sien, as u bo die sensor waai, anders is dit "Geen indringers" nie. As hierdie script getoets en werk, stel dit in om by opstart te begin:

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

en voeg die volgende reël by

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

U moet natuurlik die korrekte lêernaam van die Python -script wat u geskep het, spesifiseer.

Stap 5: Hang die kalender op

Met alles gereed, is dit tyd om die kalender aan die muur te hang!

Aanvanklik het ek daaraan gedink om Raspberry Pi agter die LCD -skerm te verberg, sodat slegs een kabel (DC -krag) nodig sou wees. Maar aangesien Framboos op 5V werk en die LCD -skerm op 12V werk, benodig ek 'n ekstra transformator. Die framboos -omhulsel is ook taamlik dik, wat beteken dat die LCD ongeveer 3 sentimeter van die muur af geleë is. Dus het ek dit laat vaar en net LCD -elektronika agter die LCD gelaat, sodat dit nou minder as 1 sentimeter van die muur af is. Ek het twee 5 meter lange kabels aangeskaf, een HDMI en een 5, 5 mm vir DC -kragtoevoer. Albei kabels is wit, soos die muur, wat beteken dat hulle nie veel uitstaan nie. Ek het die LCD op die muur aangebring en Framboos bo -op die yskas teenoor die muur, sodat dit basies verborge is, maar tog maklik toeganklik is.

Aanbeveel: