Difference between revisions of "Studna"
(→Komponenty) |
(→Instalace software) |
||
(39 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | 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. | ||
+ | |||
+ | [[Image:StudnaFotka.png|thumb|none|400px|Měření v akci]] | ||
+ | |||
+ | =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= | =Komponenty= | ||
− | * {{AliSearch|orangepi zero h2+ 512mb|OrangePi Zero H2+ 512MB}} | + | 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č. |
− | * {{AliSearch|OLED 0.96 SSD1306|OLED displej}} | + | |
+ | * {{AliSearch|orangepi+zero+h2+512mb|OrangePi Zero H2+ 512MB}} | ||
+ | * {{AliSearch|OLED+0.96+SSD1306|OLED displej 0.96" 128x64}} | ||
* {{AliSearch|JSN-SR04T|Vodotěsné ultrazvukové čislo JSN-SR04T}} | * {{AliSearch|JSN-SR04T|Vodotěsné ultrazvukové čislo JSN-SR04T}} | ||
− | * {{AliSearch|dupont female to female 10cm|Propojovací kablíky}} | + | * {{AliSearch|dupont+female+to+female+10cm|Propojovací kablíky female-female}} |
− | * {{AliSearch|logic level converter 3.3v 5v|Převodník úrovní}} | + | * {{AliSearch|logic+level+converter+3.3v+5v|Převodník úrovní}} |
* [https://www.alza.cz/raspberry-pi-2-5a-d4191252.htm Napájecí zdroj 5V 2.5A USBµB] | * [https://www.alza.cz/raspberry-pi-2-5a-d4191252.htm Napájecí zdroj 5V 2.5A USBµB] | ||
− | * [https://www.alza.cz/sandisk-micro-sdhc-16gb-ultra-android-class-10-a1-uhs-i-sd-adapter-d5102729.htm | + | * [https://www.alza.cz/sandisk-micro-sdhc-16gb-ultra-android-class-10-a1-uhs-i-sd-adapter-d5102729.htm SDHC karta SanDisk 16GB A1] |
+ | * [https://www.tme.eu/cz/katalog/?search=B2.5X6%2FBN82428 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ě {{AliSearch|CP2102 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'''):<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. | ||
+ | |||
+ | 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. [[File:OrangePiConsolePinout.jpg]] | ||
+ | # 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= | ||
+ | [[Image:Studna.png|thumb|none|900px|Krabička]] | ||
+ | |||
+ | [[:File:Studna.stl|Předloha Studna.STL]] Doporučuji PETG, vrstva 0.2mm. Doba tisku asi 5.5h. | ||
+ | |||
+ | |||
+ | [[Image:Cidlo.png|thumb|none|900px|Držák čidla]] | ||
+ | |||
+ | [[:File:Cidlo.stl|Předloha Cidlo.STL]] |
Latest revision as of 20: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.
Contents
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.