Studna
Hlavní funkcí popisované konstrukce je měření objemu vody ve studni. Principem je měření výšky hladiny ultrazvukovým čidlem a přepočet na litry. Spolu s tím je možné měřit teplotu a vlhkost ze dvou čidel - vnitřního a vnějšího. Hodnoty se spolu s aktuálním časaem zobrazují na malém OLED displeji, zapisují do vnitřní databáze a je možné je posílat přes WiFi na internetový server a zobrazovat v grafech.
Základní popis
Jádrem je Orange Pi Zero. Ze SDHC karty na něm běží Linux (Armbian).
Ultrazvukové čidlo je připojeno přes převodník 5V/3.3V na GPIO piny Orange. Čidlo umí být ovládáno i po sériové lince, ale to se mi neosvědčilo, výstup měl příliš nízké rozlišení. Proto jsem použil tradiční rozhraní - Orange pošle startovací puls a měří délku přijatého pulzu, která odpovídá době šíření ultrazvuku (asi 33cm/ms).
Komponenty
Pokud se chcete pustit do stavby, je dobré začít objednáním komponent, protože jejich dodání zabere nějaký ten týden. Celkově vyjdou komponenty kolem 1000 Kč.
- OrangePi Zero H2+ 512MB
- OLED displej 0.96" 128x64
- Vodotěsné ultrazvukové čislo JSN-SR04T
- Propojovací kablíky female-female
- Převodník úrovní
- Napájecí zdroj 5V 2.5A USBµB
- SDHC karta SanDisk 16GB A1
- Vruty do plastu
- Stíněný kablík pro prodloužení kablíku k čidlu
Nástroje
- Čtečka mikro SDHC (SD) karet nebo notebook s integrovanou čtečkou
- Volitelně MICRO USB to UART TTL Module USB->TTL převodník
Sestavení
- Stáhněte si [obraz Armbianu pro Orange Pi Zero]. Můj obraz už má nainstalovaný balíček ziautils který některé kroky zjednoduší.
- Rozpakujte jej, výsledkem musí být soubor .img
- Nahrajte ho na kartu.
- Pod Linuxem (X je písmeno, pod kterým se karta nadetekuje, zjistíte například příkazem dmesg):
cat Armbian.img > /dev/sdX - Po Windows se mi osvědčil program Etcher, ale určitě lze použít i jiné
- Pod Linuxem (X je písmeno, pod kterým se karta nadetekuje, zjistíte například příkazem dmesg):
- Zasuňte kartu do soketu Orange.
Teď je potřeba rozhodnout se, zda budete prvotní konfiguraci provádět přes sériovou konzoli USB, přes sériovou konzoli TTL nebo přes ethernet. Výběr bude vycházet z toho, co máte k dispozici a s čím máte zkušenosti.
Prvotní konfigurace přes sériovou konzoli USB
Budete potřebovat kvalitní USB kabel s konektorem mikro-B. Ideální je od telefonu, který umí rychlé nabíjení proudem alespoň 2A. POZOR, Orange může ve špičkách překračovat maximální povolený odběr USB portu. Proto k němu nic dalšího nepřipojujte. Bude-li se Orange chovat divně, použijte jinou metodu konfigurace.
- Připojte Orange přes kvalitní USB kabel do mikro-B konektoru.
- Na počítači se objeví další sériový port:
- Pod Linuxem to bude /dev/ttyUSBn, kde n je číslo od nuly výše
- Pod Windows to bude COM3 a výše
- Spusťte sériový emulátor terminálu (putty, minicom) a připojte se na port (115200 baud bez parity)
- Pokud Orange naběhne rychleji, než se připojíte, přijdete o počáteční texty. Zkuste stisknout Enter, zobrazí se výzva k přihlášení.
Prvotní kongiruace přes sáriovou konzoli TTL
- Připojte Orange k napájecímu zdroji
- Použijte převodník USB->TTL (3V). Mě se osvědčily převodníky s čipem CP2102. Odkaz viz výše.
- Propojte převodník a Orange (třípinový header vedle ethernet portu). Nejprve GND, pak křížem RXD s TXD.
- Pripojte převodník přes USB do PC
- Na počítači se objeví další sériový port:
- Pod Linuxem to bude /dev/ttyUSBn, kde n je číslo od nuly výše
- Pod Windows to bude COM3 a výše
- Spusťte sériový emulátor terminálu (putty, minicom) a připojte se na port (115200 baud bez parity)
- Připojte napájecí zdroj. Nic dalšího nepřipojujte.
Prvotní konfigurace přes ethernet
- Připojte Orange ethernetem k hubu. Na síti musí být DHCP server
- Připojte napájecí zdroj. Nic dalšího nepřipojujte.
- Počkejte cca 1-2 minuty, než Orange naběhne
- Podívejte se do seznamu klientů (leases) DHCP serveru a najděte Orange. Patrně bude mít MAC adresu začínající 12:42. Alternativně můžete použít skener sítě (např. nmap)
- Spusťte SSH klienta (ssh, putty) a připojte se k Orange na standardní TCP port 22
Společná část konfigurace
Po připojení se objeví výzva k přihlášení.
Zadejte uživatelské jméno root a heslo 1234.
Ihned budete vyzváni ke změně hesla. Zadejte 1234 a pak 2x nové heslo, které se pokuste nezapomenout.
Pak zadejte uživatelské jméno neprovilegovaného uživatele. Toho pro tento projekt nebudete potřebovat.
Nastavení wifi
Spusťte příkaz armbian-config. Varování o nedostupné síti ignorujte.
Vyberte Network, wlan0, WiFi.
Vyberte vaši WiFi síť a zadejte heslo.
Opusťte nastavení Quit a 2x Cancel.
V příkazové řádce spusťte příkaz:
ifconfig wlan0
Vypíše se něco takového:
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet xxx.xxx.xxx.xxx netmask 255.255.255.0 broadcast 192.168.1.255 inet6 fe80::27cd:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link> ether 12:42:ad:xx:xx:xx txqueuelen 1000 (Ethernet)
Zapamatujte si IP adresu pro pozdější připojení přes WiFi.
Aktualizace a nastavení Armbianu
V příkazové řádce spusťte:
apt update
a pak
apt upgrade
Pokud bude tvrdit ...is another process using it?, tak se spustila automatická aktualizace a musíte nějaký čas počkat. Můžete spustit příkaz top a jednou za čas se podívat, jestli load average klesne k nule. Pak ho ukončete Ctrl+C.
Nastavte lokální časovou zónu:
dpkg-reconfigure tzdata
A vyberte nejlépe Europe/Prague.
Přidejte I2C sběrníci na PA11 a PA12 a restartujte.
zaddoverlay i2c0 shutdown -r now
Instalace software
apt-get install studna
Upravte konfiguraci
nano /etc/studnarc
Pokud nemáte připojená čidla, přepište hodnoty u řádek DHTIN či DHTOUT na 0. Uložte stiskem Ctrl+X.
Zapněte autostart démona studna a spusťte jej:
systemctl enable studna systemctl start studna
Konfigurace Apache
Co přesně znemená první řádka, nevím, nejsem tu od toho, abych všechno věděl :-) Následuje povolení PHP modulu v apache a následný restart.
a2dismod mpm_event a2enmod php7.0 systemctl restart apache2
Předlohy pro 3D tiskárnu
Předloha Studna.STL Doporučuji PETG, vrstva 0.2mm. Doba tisku asi 5.5h.