- Požadované komponenty:
- Nastavte Raspberry Pi na budík:
- Schéma zapojenia a zapojenia:
- Vysvetlenie programu a práce:
V tejto relácii sa chystáme na prepojenie modulu hodín reálneho času DS1307 s Raspberry PI na výrobu budíka. Raspberry Pi má síce interné hodiny, ale bez pripojenia k internetu sa tieto interné hodiny resetujú po každom reštarte. Aby sme teda dosiahli presný ČAS bez internetového pripojenia, musíme prepojiť RTC modul DS1307 s Raspberry Pi. Modul RTC má na zálohovanie tlačidlovú batériu, takže TIME sa neresetuje. Tiež sme vytvorili budík pomocou Arduina a pomocou mikrokontroléra ATmega32 AVR, skontrolujte ich tiež.
V týchto digitálnych hodinách Raspberry Pi má 16 * 2 znakový LCD displej zobrazovať skutočný čas, čas alarmu a stav alarmu (ON / OFF). Akonáhle program začne bežať v Pi, môžeme odpojiť monitor a pomocou tohto LCD a piatich tlačidiel môžeme nastaviť budík.
Každý zo 17 pinov GPIO môže dodávať alebo odoberať prúd maximálne 15 mA. Nehrajte sa s pinmi GPIO a pred napájaním Raspberry Pi dvakrát skontrolujte pripojenia. Viac informácií o pinoch GPIO a tlačidle prepojenia s Raspberry Pi sa dozviete tu. Skontrolujte tiež našu sériu tutoriálov Raspberry Pi spolu s niekoľkými dobrými projektmi IoT.
Požadované komponenty:
Tu používame Raspberry Pi 2 Model B s Raspbian Jessie OS. Všetky základné hardvérové a softvérové požiadavky sú už predtým diskutované. Môžete si ich vyhľadať v úvode Raspberry Pi a blikaní Raspberry PI LED, okrem toho, čo potrebujeme:
- Raspberry Pi s predinštalovaným OS
- RTC modul DS1307 s batériou
- Zdroj
- 1KΩ rezistor (6 kusov)
- 5 tlačidiel
- 1000uF kondenzátor (2 kusy)
- 16 * 2 znakový LCD
- Tranzistor 2N2222
- Bzučiak
Nastavte Raspberry Pi na budík:
Než pôjdeme ďalej, musíme trochu nakonfigurovať Raspberry Pi a nainštalovať súbor knižnice pre modul RTC, postupujte podľa nasledujúcich krokov:
Krok 1: Najprv choďte do konfiguračného menu Raspberry Pi a povoľte možnosť I2C, ako je uvedené nižšie:
Krok 2: Vytvorte nový priečinok na pracovnej ploche Raspberry Pi a pomenujte ho ako „Budík“
Krok 3: Stiahnite si hlavičkový súbor pre modul RTC z nasledujúceho odkazu:
codeload.github.com/switchdoclabs/RTC_SDL_DS1307/zip/master
Krok 4: Stiahnutý súbor ZIP rozbaľte do priečinka (Budík) vytvoreného na DESKTOPE, ako bolo uvedené v predchádzajúcom kroku.
Krok 5: Otvorte okno terminálu v Raspberry Pi a zadajte príkaz nižšie, potom stlačte kláves Enter:
sudo apt-get nainštalovať i2c-tools
Tento príkaz nainštaluje nástroje I2C potrebné na prepojenie modulu RTC. Potom reštartujte Raspberry pi vydaním príkazu „ sudo reboot“ .
Krok 6: Teraz musíme skontrolovať adresu I2C modulu RTC. Pred skontrolovaním adresy najskôr pripojte modul RTC tak, ako je to znázornené na schéme nižšie.
Potom zadajte nižšie v okne terminálu.
sudo i2cdetect -y 0 ALEBO sudo i2cdetect -y 1
Krok 7: Ak niektorý z vyššie uvedených príkazov funguje, uvidíte niečo také:
Krok 8: Ak je modul RTC správne pripojený, uvidíte adresu I2C 0x68, zaznamenajte hodnotu.
Týmto sa všetky potrebné úpravy vykonajú s konfiguráciou Raspberry Pi.
Schéma zapojenia a zapojenia:
Pripojenia medzi Raspberry Pi a LCD sú zobrazené v nasledujúcej tabuľke:
Spojenia medzi Raspberry Pi a piatimi tlačidlami sú tiež zobrazené v nasledujúcej tabuľke s príslušnou funkciou každého tlačidla:
Vysvetlenie programu a práce:
RTC modul má gombíkovú bunku na zálohovanie napájania, ako bolo uvedené, takže čas bude aktuálny, kým nedôjde k zálohovaniu a my budeme mať presný čas v RTC.
Teraz napíšeme program v jazyku Python, aby sme získali presný čas z modulu RTC DS1307. Tento čas sa ukáže na 16 x 2 LCD. Potom budeme mať v programe napísanú funkciu budíka. Čas budenia sa tiež zobrazí na druhom riadku LCD, po ktorom nasleduje stav ZAPNUTÉ a VYPNUTÉ. Čas alarmu je možné nastaviť pomocou 5 tlačidiel pripojených k Raspberry Pi, ako je uvedené v tabuľke uvedenej vyššie, a nastavenie alarmu je veľmi ľahké. Môžete tiež skontrolovať naše demo video na obsluhu tohto budíka Raspberry Pi. K dispozícii sú 2 tlačidlá pre zvýšenie a zníženie času alarmu, 2 tlačidlá pre zvýšenie a zníženie času alarmu a 1 tlačidlo pre ZAPNUTIE a VYPNUTIE alarmu.
Program Python neustále porovnáva čas alarmu s časom RTC a akonáhle sa čas alarmu zhoduje s časom RTC, PI spustí bzučiak, ktorý je pripojený k GPIO pinu 22 Raspberry Pi cez NPN tranzistor 2N2222. Akonáhle teda nastane čas budíka, vydá zvuk bzučiak.
Kompletný program je uvedený nižšie a je dobre vysvetlený v komentároch. Ak máte pochybnosti, môžete sa opýtať v sekcii komentárov nižšie.