I já jsem se tedy rozhodl si tuto úlohu vyzkoušet a trochu prostudovat, co je vlastně s GPIO možné.
GPIO je zkratka pro General Purpose Input/Output. Jedná se o ty dvě řady pinů na okraji „maliny“. Je s nimi možné rozsvěcet LED diody, připojovat k nim různé sensory a ovládat další věci.
Rozložení pinů.
Obsah:
2x 5V napájení
2x 3,3V napájení
8x Uzemnění
28x Datový pin
Jak to bude fungovat?
Načítání dat ze senzorů bude řešeno v jazyce Python, protože pro tento jazyk jsem na internetu našel mnoho příkladů. Je v něm možné se připojit k databázi MySQL i PostgreSQL pro ukládání dat. Využití databáze pro ukládání dat umožňuje sběr dat z více meteostanic na jednom místě. Není tedy nutné, aby meteostanice sloužila zároveň jako webserver a byla přístupná z internetu. Zcela postačí, když bude umožňovat SSH přístup z vnitřní sítě.
Z databáze se pak budou data načítat a zobrazovat na jednoduché PHP stránce. Pro PHP existují i různé frameworky usnadňující zaznamenání dat do grafu.
Výsledné hodnoty naměřené meteostanicí a zanesené do grafu mohou pak vypadat například takto.
Co bude potřeba?
1. Raspberry Pi (buď plnohodnotný model B nebo Zero)
2. Senzory (např. Sense Hat, teplotní čidlo DS18B20, vlhkostní čidlo DHT22, čidlo atmosferického tlaku MPL3115A2, …)
3. Rezistory (4k7 nebo 10k)
4. Pájku s příslušenstvím
5. Kabely na propojení
6. Kamerový modul (pokud by meteostanice měla fungovat i jako webkamera 😉
Na webovém serveru je potřeba v databázi vytvořit tabulku pro ukládání dat.
PostgreSQL
create table weather(date_time timestamp not null);
MySQL
CREATE TABLE `weather` (`date_time` datetime NOT NULL) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci;
Tabulka bude zatím obsahovat jen sloupec s datem a časem. Ostatní sloupce budou doplněny až podle toho, jaká čidla budeme k meteostanici připojovat.
V následujících několika článcích proberu připojení jednotlivých čidel k Raspberry a postupy jak z nich číst data.