Obsah:
- Krok 1: Hardware
- Krok 2: Vytvoření LCD displeje
- Krok 3: Nastavení softwaru
- Krok 4: Volitelné - Vypnutí displeje
- Krok 5: Zavěste kalendář
Video: Chytrý nástěnný kalendář: 5 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Moje žena a já jsme měli klasický papírový nástěnný kalendář, na který jsme označili důležitá data. Kalendář Google na našich chytrých telefonech používáme také k označování událostí, takže to znamenalo dvojí práci. Rozhodl jsem se tedy vytvořit nějaký inteligentní nástěnný kalendář, který bude zobrazovat naše připomenutí, události a některá další data. Vzhledem k tomu, že se mi povalují různé staré elektronické součástky, bylo mým cílem znovu jich použít co nejvíce a sestavit kalendář s co nejmenšími náklady.
V tomto tutoriálu vám ukážu, jak vytvořit inteligentní nástěnný kalendář, zobrazující události z několika účtů Google. Zobrazí také čas, datum, počasí, teplotu a některé další informace. Bude poháněn počítačem Raspberry Pi s připojeným pohybovým senzorem PIR (Passive Infrared Sensor), takže se displej zapne, když je v místnosti detekován pohyb, ale vypne se po několika minutách nečinnosti. Tento tutoriál je založen na několika dalších tutoriálech, které jsem našel na internetu, a poskytnu na ně odkazy pro lepší pochopení. Jsou nutné základní znalosti programování (HTML, Python, …).
Krok 1: Hardware
Jak již bylo zmíněno dříve, pokusil jsem se znovu použít tolik starých elektronických součástek, abych udržel nízké náklady. Nicméně některé položky jsem musel koupit, takže uvedu vše, co je pro stavbu nutné.
- Sada Raspberry Pi. Zpočátku jsem použil svůj starý model 2 z jiného projektu. Fungovalo to, ale úpravy a opětovné načtení webové stránky mi zabraly spoustu času, takže jsem nakonec přešel na model 3, který funguje plynuleji https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313 & _nkw = malina+pi+sada & _sacat = 0
- LCD obrazovka. Použil jsem obrazovku ze svého starého notebooku, takže jsem k ní potřeboval koupit pouze ovladač LVDS a napájecí zdroj https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=hdmi+ ovladač+LVDS+deska & _sacat = 0
-Plastový úložný box na elektroniku
- Pasivní infračervený snímač pohybu
- Senzor teploty/vlhkosti AM2302
- Černý plastový nasouvací pořadač pro rámeček LCD
- Různé kabely (HDMI, 5,5 mm pro stejnosměrné napájení, pájecí propojovací kabely bez páječky, …)
Krok 2: Vytvoření LCD displeje
Použil jsem LCD obrazovku ze svého starého zastaralého notebooku. Existuje několik návodů, jak to udělat, následoval jsem tento:
www.instructables.com/id/How-to-reuse-the-old-LCD-Screen-of-your-broken-Lap/
Demontoval jsem kryt svého starého notebooku, vytáhl LCD displej a poté objednal správnou desku ovladače LVDS. Poskytl jsem prodejci kód produktu, který lze nalézt na zadní straně LCD, v mém případě je to LP171WE3 (TL) (A2) - viz štítek vpravo dole na posledním obrázku, a poté mi poslal příslušný LVDS. Vezměte prosím na vědomí, že budete také potřebovat napájecí zdroj pro displej, proto požádejte prodejce, aby jej také poslal. Také jsem koupil pěkný plastový box o rozměrech 14,5 × 7,5 × 2 cm, aby pěkně zapadl na desku řidiče a připevnil jej k zadní straně LCD.
Nyní má LCD displej kovový rám, který nevypadá hezky. Zpočátku jsem to nastříkal černou barvou, ale barva se začala odlupovat. Vzal jsem tedy čtyři černé plastové nasouvací pořadače, které se obvykle používají pro vazbu listů papíru, podle toho je ořízl a připevnil, aby zakryl rám. Vypadalo to dobře, tak jsem připojil všechny kabely, zapojil HDMI do svého starého Raspberry Pi a Voila - fungovalo to! Na displeji se zobrazoval obrázek, takže jsem byl připraven přejít k dalšímu kroku - jaké informace zobrazit na displeji a jak je zobrazit.
Krok 3: Nastavení softwaru
Když jsem hledal na internetu nějaké vodítka, jak sestavit kalendář, inspirovala mě tato stránka https://dakboard.com/site. Poskytují hotový produkt (displej, počítač a pracovní software), ale mají také vynikající výukový program pro kutilské řešení (https://blog.dakboard.com/diy-wall-display/). Doporučuji vám tento tutoriál dodržet, alespoň u první části s pokyny k přípravě a nastavení systému na Raspberry, aby prohlížeč při načítání automaticky načítal požadovanou webovou stránku.
To fungovalo dobře, ale hledal jsem nějaké řešení, které by bylo možné více přizpůsobit podle mých přání. Rozhodl jsem se nastavit svůj vlastní webový server a vytvořit webovou stránku, která bude kromě kalendáře zobrazovat další informace. Vybral jsem Wordpress.org, protože je dobře zdokumentovaný a má dobrou podporu a velkou komunitu, která vám pomůže. Zde je návod, jak nainstalovat Wordpress na Raspberry Pi: https://projects.raspberrypi.org/en/projects/lamp-web-server-with-wordpress. S nainstalovaným Wordpressem bylo načase navrhnout moji domovskou stránku. Můžete použít jedno z mnoha poskytnutých motivů nebo navrhnout úplně od začátku. Každopádně jsou k tomu potřeba určité znalosti programování HTML.
Vytvořil jsem svou stránku tak, aby se na levé straně zobrazoval kalendář (https://sl.wordpress.org/plugins/google-calendar-events/), zatímco na pravé straně se zobrazoval čas a datum (https://www.timeanddate.com/clocks/free.html a https://www.arclab.com/en/kb/htmlcss/display-date-time-javascript-php-ssi.html). Předpověď počasí je z této stránky (https://www.1a-vreme.si/vremensko-okno/), která poskytuje widget předpovědí pro slovinská města, ale myslím, že widgety pro jiné země lze nalézt také na internetu. Teplota se zaznamenává pomocí senzoru AM2302 (https://www.ebay.com/sch/i.html?_from=R40&_trksid=m570.l1313&_nkw=AM2302+&_sacat=0), jak je vysvětleno na konci této kapitoly. Ve spodní části je jednoduchý denní odpočítávací časovač, který zobrazuje, kolik dní zbývá do nějaké události (zajímavé pro mé děti vědět, kolik dní budou muset na něco čekat). V pravém horním okraji je plugin MetaSlider (https://wordpress.org/plugins/ml-slider/), který náhodně přejde na vybrané obrázky mé rodiny. Navíc jsem použil plugin Background Slider (https://sl.wordpress.org/plugins/background-slider-master/), aby mi ukázal nějaký náhodný obrázek pro hezčí pozadí.
Jak již bylo zmíněno dříve, vnitřní teplota se snímá pomocí senzoru AM2302. Existuje mnoho návodů, jak dosáhnout teploty, sledoval jsem tento: https://www.modmypi.com/blog/am2302-temphumidity-sensor. Později jsem tento senzor přesunul na jiný Raspberry Pi s běžícím Home Assistant, protože je snazší číst a publikovat hodnoty pomocí jeho komponenty DHT Sensor (https://www.home-assistant.io/components/sensor.dht/). Home Assistant může také shromažďovat venkovní teplotu pomocí různých komponent počasí, já jsem použil komponentu YR.no (https://www.home-assistant.io/components/sensor.yr/). S tím jsem napsal automatizační skript, který shromažďuje vnitřní/venkovní teplotu z těchto komponent a zapisuje je do textového souboru, který se pak zobrazí v mém nástěnném kalendáři. Další informace o Home Assistant naleznete na domovské stránce (https://www.home-assistant.io/).
Krok 4: Volitelné - Vypnutí displeje
Nyní máme svůj kalendář nastavený a spuštěný, přesně tak, jak ho máme rádi. Nechceme však mít displej zapnutý 24/7. Chceme, aby se zapínala pouze tehdy, když je někdo doma. Také nechceme, aby byl zapnutý uprostřed noci, když jdeme na toaletu, je příliš jasné! Připojíme tedy infračervený senzor, aby si všiml, když před ním někdo stojí, a přidáme nějaké časové limity, kdy by se měl zapnout.
Vezměte prosím na vědomí, že moje programovací schopnosti jsou poměrně omezené, takže následující nemůže být optimální, protože jsem jej vybral z různých online fór a tutoriálů, ale v zásadě funguje. Přesto je jakékoli doporučení stále vítáno. Nejprve začneme testem pro ruční zapnutí/vypnutí monitoru. Za tímto účelem vytvoříme dva soubory (například monitor_on.sh a monitor_off.sh) a napíšeme do nich nějaký kód. Nejjednodušší způsob, jak to udělat, je přihlásit se do vašeho Raspberry pomocí SSH a zadat
sudo nano monitor_on.sh
a zadejte následující kód
tvservice -doporučováno;
startx/usr/bin/graphical_launcher `fgconsole`
Stisknutím kláves CTRL+X uložte a ukončete program a poté vytvořte druhý soubor
sudo nano monitor_off.sh
a zadejte následující kód
tvservice --off;
Opět stiskněte CTRL+X pro uložení a ukončení. Nastavit tyto nově vytvořené soubory jako spustitelné:
sudo chmod +x monitor_on.sh
sudo chmod +x monitor_off.sh
Nyní zkuste, zda tyto příkazy fungují, zadejte
sudo./monitor_off.sh
sudo./monitor_on.sh
Monitor by se nyní měl odpovídajícím způsobem vypnout a zapnout. Všiml jsem si, že na Raspberry Pi 2 trvalo téměř 10 sekund, než se monitor zapnul. Na Raspberry Pi 3 to trvá 1–2 sekundy. Dále připojíme infračervený senzor, který spustí tyto skripty. Opět existuje mnoho návodů, jak nastavit Raspberry Pi a PIR, následoval jsem tento: https://www.instructables.com/id/PIR-Sensor-Interfacing-With-Raspberry-Pi/. V zásadě vytvořte soubor pomocí nano editoru (například motion_sensor.py) a zadejte do něj příslušný kód Pythonu. Níže je uveden příklad mého souboru:
import RPi. GPIO jako GPIOimport timeimport sysimport subprocessimport datetime jako dtimport osGPIO.setwarnings (False) # GPIO.setmode (GPIO. BOARD) GPIO.setmode (GPIO. BCM) GPIO.setup (17, GPIO. IN) #PIRturned_off = Falselast_mot time.time () SHUTOFF_DELAY = 180 # sekund mezitím True: i = GPIO.input (17) pokud i == 0: # Když je výstup ze snímače pohybu NÍZKÝ, vypněte monitor, pokud není vypnutý_off a time.time ()> (last_motion_time + SHUTOFF_DELAY): tisk "Žádní vetřelci", iturned_off = Truetime.sleep (1) subprocess.call (['/home/pi/monitor_off.sh'], shell = True) elif i == 1: #Při výstupu ze snímače pohybu je VYSOKÝ, zapněte monitor ONprint „Detekován narušitel“, itime.sleep (1) last_motion_time = time.time () sys.stdout.flush () pokud je vypnuto_vypnuto a dt.datetime.now (). hodina> 5 a dt.datetime. now (). hour <23: turn_off = Falsesubprocess.call (['/home/pi/monitor_on.sh'], shell = True) if _name_ == '_main _': try: main () kromě KeyboardInterrupt: GPIO.cleanup ()
Všimněte si, že „GPIO.setup (17, GPIO. IN)“znamená, že výstupní pin z PIR je připojen ke kolíku 17 na Raspberry Pi. Který pin to závisí, zda definujete GPIO.setmode (GPIO. BOARD) nebo GPIO.setmode (GPIO. BCM). Rozdíl je vysvětlen zde: https://raspberrypi.stackexchange.com/questions/12966/what-is-the-difference-between-board-and-bcm-for-gpio-pin-numbering. Mám # před GPIO. BOARD, takže je ignorováno a používá se GPIO. BCM.
Všimněte si řádku
SHUTOFF_DELAY = 180 #sekund
Zde je uvedeno, jak dlouho je monitor zapnutý od detekce posledního pohybu, než se vypne. To je užitečné, protože nechci, aby se monitor neustále vypínal/zapínal, když kolem něj procházím, ale chtěl bych ho nechat nějakou dobu zapnutý, než se vypne. Zvolil jsem interval 180 sekund, takže se monitor vypne asi 3 minuty po detekci posledního pohybu.
Nakonec tento řádek
je -li vypnuto_vypnuto a dt.datetime.now (). hodina> 6 a dt.datetime.now (). hodina <23:
uvádí, že se monitor zapíná pouze mezi 6:00 a 23:00, takže mě v noci neruší. Čáry
tisknout „Žádní vetřelci“, t
a
vytisknout „Detekován narušitel“, t
jsou určeny pouze k testování skriptu, můžete je později smazat, až to bude fungovat. Nyní otestujte skript:
sudo python motion_sensor.py
Pokud zamáváte nad senzorem, měli byste vidět zprávy „Detekován narušitel“, jinak to bude „Žádní vetřelci“. Když je tento skript testován a funguje, nastavte ho tak, aby začínal při spuštění:
sudo nano ~/.config/lxsession/LXDE-pi/autostart
a přidejte následující řádek
@sudo/usr/bin/python /home/pi/motion_sensor.py
Samozřejmě musíte zadat správný název souboru skriptu Python, který jste vytvořili.
Krok 5: Zavěste kalendář
Když je vše nastaveno, je čas zavěsit kalendář na zeď!
Zpočátku jsem uvažoval o skrytí Raspberry Pi za LCD displej, takže bude potřeba pouze jeden kabel (stejnosměrné napájení). Ale protože Raspberry běží na 5V a LCD displej běží na 12V, potřeboval bych další transformátor. Pouzdro Raspberry je také poměrně silné, což znamená, že LCD bude od zdi vzdáleno asi 3 centimetry. Opustil jsem to a nechal jsem za LCD pouze elektroniku LCD, takže je nyní méně než 1 centimetr od zdi. Získal jsem dva 5 metrů dlouhé kabely, jeden HDMI a jeden 5, 5 mm pro napájení stejnosměrným proudem. Oba kabely jsou bílé, jako zeď, což znamená, že příliš nevyčnívají. Namontoval jsem LCD na zeď a položil Raspberry na chladničku na protější stěně, takže je v podstatě skrytý, ale přesto snadno přístupný.
Doporučuje:
Tajný nástěnný domácí automatizační tablet: 6 kroků
Tajný nástěnný domácí automatizační tablet: Tento návod se bude zabývat tím, jak vytvořit držák pro tablet openHAB (https://www.openhab.org/), ze kterého lze tablet kdykoli vyjmout a kde se bude nabíjet bez kabel a nechte zeď vypadat zcela normálně, když žádný tablet není
Praktický bezdrátový nástěnný LED páskový ovladač Arduino ESP32: 6 kroků
Praktický bezdrátový nástěnný LED páskový ovladač Arduino ESP32: Jedná se o velmi praktický bezdrátový nástěnný výstupní ovladač DIY pro levné LED pásky. Nahrazuje levné wifi ovladače prodávané na EBay. Fungují dobře s RGB LED pásy. Ovladač EBay Wifi není konstruován dobře a snadno se rozbije. Také
Akustický nástěnný modul SonicMoiré: 8 kroků
Akustický nástěnný modul SonicMoiré: Tento nástěnný modul " SonicMoir é " je navržen tak, aby byl kompatibilní s wikihousy, hodláme ho použít jako součást fasády. Jeho předchozím účelem bylo odfiltrovat určité frekvence ze spektra hluku, a tím snížit expozici hluku
Digitální nástěnný kalendář a domácí informační centrum: 24 kroků (s obrázky)
Digitální nástěnný kalendář a domácí informační centrum: V tomto Instructable zapnu starou TV s plochou obrazovkou na digitální nástěnný kalendář a domácí informační centrum s dřevěným rámem poháněným Raspberry Pi. Cílem bylo mít na první pohled přístup k relevantní informace pro všechny členy
Raspberry Pi: Nástěnný kalendář a centrum oznámení: 5 kroků (s obrázky)
Raspberry Pi: Nástěnný kalendář a centrum oznámení: Před digitálním věkem ” mnoho rodin používalo nástěnné kalendáře k zobrazení měsíčního pohledu na nadcházející události. Tato moderní verze nástěnného kalendáře obsahuje stejné základní funkce: Měsíční program Synchronizace aktivace členů rodiny