Studna: Difference between revisions
(21 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
# Rozpakujte jej, výsledkem musí být soubor '''.img''' | # Rozpakujte jej, výsledkem musí být soubor '''.img''' | ||
# Nahrajte ho na kartu. | # Nahrajte ho na kartu. | ||
# | #* Pod Linuxem (X je písmeno, pod kterým se karta nadetekuje, zjistíte například příkazem '''dmesg'''):<br/> cat Armbian.img > /dev/sdX | ||
#* Po Windows se mi osvědčil program Etcher, ale určitě lze použít i jiné | |||
# | |||
# Zasuňte kartu do soketu Orange. | # 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. | 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. | ||
Line 44: | Line 42: | ||
# Připojte Orange přes kvalitní USB kabel do mikro-B konektoru. | # Připojte Orange přes kvalitní USB kabel do mikro-B konektoru. | ||
# Na počítači se objeví další sériový port: | # 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== | ==Prvotní kongiruace přes sáriovou konzoli TTL== | ||
# Připojte Orange k napájecímu zdroji | # 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. | # 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. | # Propojte převodník a Orange (třípinový header vedle ethernet portu). Nejprve GND, pak křížem RXD s TXD. [[File:OrangePiConsolePinout.jpg]] | ||
[[File:OrangePiConsolePinout.jpg]] | |||
# Pripojte převodník přes USB do PC | # 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'''. | |||
[[Image:orangepi_setup1.png|thumb|none|755px]] | |||
Ihned budete vyzváni ke změně hesla. Zadejte '''1234''' a pak 2x nové heslo, které se pokuste nezapomenout. | |||
[[Image:orangepi_setup2.png|thumb|none|755px]] | |||
Pak zadejte uživatelské jméno neprovilegovaného uživatele. Toho pro tento projekt nebudete potřebovat. | |||
[[Image:orangepi_setup3.png|thumb|none|755px]] | |||
=Nastavení wifi= | |||
Spusťte příkaz '''armbian-config'''. Varování o nedostupné síti ignorujte. | |||
[[Image:orangepi_wifi1.png|thumb|none|755px]] | |||
Vyberte '''Network''', '''wlan0''', '''WiFi'''. | |||
[[Image:orangepi_wifi2.png|thumb|none|755px]] | |||
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ředlohy pro 3D tiskárnu= |
Latest revision as of 18:58, 28 September 2019
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.