Difference between revisions of "Studna"

From Tučňák Wiki
Jump to: navigation, search
(Instalace software)
 
(32 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=
 +
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|orangepi+zero+h2+512mb|OrangePi Zero H2+ 512MB}}
 
* {{AliSearch|orangepi+zero+h2+512mb|OrangePi Zero H2+ 512MB}}
 
* {{AliSearch|OLED+0.96+SSD1306|OLED displej 0.96" 128x64}}
 
* {{AliSearch|OLED+0.96+SSD1306|OLED displej 0.96" 128x64}}
Line 9: Line 20:
 
* [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.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]
 
* [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=
 
=Předlohy pro 3D tiskárnu=
 
[[Image:Studna.png|thumb|none|900px|Krabička]]  
 
[[Image:Studna.png|thumb|none|900px|Krabička]]  
  
[[File:Studna.stl|Předloha STL]]
+
[[: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]]
 
[[Image:Cidlo.png|thumb|none|900px|Držák čidla]]
  
[[File:Cidlo.stl|Předloha STL]]
+
[[:File:Cidlo.stl|Předloha Cidlo.STL]]

Latest revision as of 19: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.

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

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č.

Nástroje

Sestavení

  1. Stáhněte si [obraz Armbianu pro Orange Pi Zero]. Můj obraz už má nainstalovaný balíček ziautils který některé kroky zjednoduší.
  2. Rozpakujte jej, výsledkem musí být soubor .img
  3. 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é
  4. 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.

  1. Připojte Orange přes kvalitní USB kabel do mikro-B konektoru.
  2. 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
  3. Spusťte sériový emulátor terminálu (putty, minicom) a připojte se na port (115200 baud bez parity)
  4. 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

  1. Připojte Orange k napájecímu zdroji
  2. Použijte převodník USB->TTL (3V). Mě se osvědčily převodníky s čipem CP2102. Odkaz viz výše.
  3. Propojte převodník a Orange (třípinový header vedle ethernet portu). Nejprve GND, pak křížem RXD s TXD. OrangePiConsolePinout.jpg
  4. Pripojte převodník přes USB do PC
  5. 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
  6. Spusťte sériový emulátor terminálu (putty, minicom) a připojte se na port (115200 baud bez parity)
  7. Připojte napájecí zdroj. Nic dalšího nepřipojujte.


Prvotní konfigurace přes ethernet

  1. Připojte Orange ethernetem k hubu. Na síti musí být DHCP server
  2. Připojte napájecí zdroj. Nic dalšího nepřipojujte.
  3. Počkejte cca 1-2 minuty, než Orange naběhne
  4. 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)
  5. 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.

Orangepi setup1.png

Ihned budete vyzváni ke změně hesla. Zadejte 1234 a pak 2x nové heslo, které se pokuste nezapomenout.

Orangepi setup2.png

Pak zadejte uživatelské jméno neprovilegovaného uživatele. Toho pro tento projekt nebudete potřebovat.

Orangepi setup3.png

Nastavení wifi

Spusťte příkaz armbian-config. Varování o nedostupné síti ignorujte.

Orangepi wifi1.png

Vyberte Network, wlan0, WiFi.

Orangepi wifi2.png

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

Krabička

Předloha Studna.STL Doporučuji PETG, vrstva 0.2mm. Doba tisku asi 5.5h.


Držák čidla

Předloha Cidlo.STL