Moje Raspberry Pi - odeslání e-mailu z Pythonu přes gmail

raspipidi

Pro automat zalévače jsem potřeboval odesílat stavový email (co se děje), buď s přílohou, nebo bez přílohy... Pozor soubor se nesmí jmenovat email.py (způsobovalo by to chybu - soubor nemůže mít stejný název jako modul v Pythonu).

Číst dál...

Měření výšky hladiny studny čidlem tlaku

Pro OSPy jsem potřeboval nahradit měření hladiny studny (nyní ultrazvuk) za jiný princip (ultrazvuk je použitelný do cca 4m, další problém je široký vyzařovací úhel pro měření v jímce, nebo studni). Nalezl jsem čidlo TL136 (které Chiňan prodává pod různým označením https://www.aliexpress.com/w/wholesale-Level-Transmitter-Water-Level-.html?spm=a2g0o.detail.search.0 pro různé výšky hladiny (např: 0-10m, viděl jsem i do 200m vrtu) a různé výstupy 4-20mA, RS485, 0-10V...) Výhoda průmyslového rozvodu 4-20mA je v možnosti použít dlouhé vedení a malé rušení (stačí 2 vodiče).

Mám studnu hlubokou 7m, hladina vody ve studni se pohybuje 0-3m. Použiji snímač v rozsahu 0-4m s 5m kabelem. OSPy systém, který léta provozuji má možnost připojení I2C. Na webu jsem nenalezl přímo převodník 4-20mA na I2C. Proto použiji moduly, které budou zapojeny následovně:

  • tlakové čidlo 4-20mA zapojené do desky převodníku 4-20mA a převedené na 0-5V
  • deska převodníku bude napájena měničem 5V (z I2C napájení sběrnice) na 24V
  • výstup 0-5V z převodníku bude následně digitalizován I2C A/D převodníkem
  • data z A/D převodníku dále zpracuje plugin pro měření hladiny, který v OSPy řeší hladinu (https://github.com/martinpihrt/OSPy-plugins/tree/master/plugins/tank_monitor)

Pro "šťoury" ano mohl bych použít jen A/D převodník a rezistor na kterém budu měřit úbytek napětí s ohledem na tekoucí proud, ale stejně bych potřeboval měnič 5V -> 24V (nechci kvůli čidlu dávat další zdroj 230V/24V, OSPy má 5V). Takhle to je zcela bez práce, pouze propojím pár modulků. Možná uvidím dle toho jak to bude fungovat udělám svoji PCB (rovnou pro 4 tlaková čidla se vstupem 4-20mA a výstupem na I2C).

Principy měření hladiny (anglicky) https://www.automation24.biz/level-measurement-principles

Čidlo pro měření hladiny na principu měření rozdílu tlaků TL136: https://allegro.cz/nabidka/tl136-snimac-hladiny-kapaliny-0-4m-5m-14778280836

Specifikace:
  • Napájecí napětí: DC 24V
  • Měření hladiny: 0-4m
  • Délka kabelu: 5m

Měnič napájení z 5V DC na 24V DC pro napájení proudové smyčky: https://www.laskakit.cz/step-up-boost-menic-s-mt3608/

Specifikace:

  • Čip: MT3608
  • Vstupní napětí: 2-24V
  • Výstupní napětí: 2-24V
  • Regulace napětí odporovým trimrem
  • Výstupní proud: 0,5A, s chlazením až 1A
  • Účinnost: 93% (max)
  • Rozměry: 36x17x14mm
  • Váha: 4g

Vyvarujte se stavu kdy je na vstupních svorkách vyšší napětí než nastavené na výstupních! Může dojít k poškození měniče!
Před prvním použitím je tedy nutné použít vstupní napětí 2V a nastavit požadované výstupní napětí. Potom lze na vstup připojit zamýšlené nižší vstupní napětí.

Převodník 4-20mA na 0-5V: https://dratek.cz/arduino/51644-prevodnik-napeti.html

Po připojení 4-20mA zařízení na vstup - convertor převede proudový vstup na 0-10V výstupní signál, vhodné využití při měření a regulaci v řídicích systémech, snímačích teploty, tlaku atd. Převodník lze kalibrovat.

Specifikace:
  • Napájecí napětí: DC 7-35V
  • Výstupní signál: 0-3,3V (zdroj napájení minimálně 5V); 0-5V (zdroj min 7V); 0-10V (zdroj min 12V)
  • Nastavení rozsahu výstupného signálu: 2x jumper propojka (J1 1-2 spojeno, J2 3-4 spojeno pro rozsah 0-5V)
  • Vstupní měřený proud: 4-20mA (0 - 20mA)
  • Velikost desky: 33x25 mm
  • Nulový bod (ZERO) a celý rozsah (SPAN) může být nastaven dvěma trimry.

I2C A/D převodník 0-5V na číslo: https://www.laskakit.cz/4-kanalovy-i2c-adc-prevodnik--ads1115/

Specifikace:

  • Čip: ADS1115
  • Počet kanálů: 4 samostatné, nebo 2 diferenční
  • Vzorkovací rychlost: 8-860vzorků/s
  • Rozlišení: 16bit
  • Napětí: 2,0-5,5V
  • Rozhraní: I2C
  • I2C adresa: 0x48 - 0x4B nastavitelná (bez připojení pinu adresy je výchozí adresa 0x48)
  • Rozměry: 26×10mm


Dnes 2.10.2024 dorazila čidla tlaku (objednal jsem dva kusy)

Krásně zabalené i s rudou hvězdou výstupní kontroly. Mechanické provedení čidla (na první pohled) vypadá pěkně.

Předně vysvětlím dotaz "proč jsem objednal čidlo pro rozsah 0-4m s kabelem 5m, když mám studnu hlubokou 7m". Vysvětlení jsem se pokusil vložit do obrázku níže (studna celkem 7m, voda min-max hladina je 3m, měřená hladina 0-4m tj. metr nad maximum, kabel 5m k montážní krabici kde je napojení do domu tj. 2 metry nad maximální hladinou. Nemá smysl měřit 7m, když je rozptyl hladiny 3m).

Nastavení převodníku 4-20mA na 0-5V (rozsah 0-5V)

1) na DC zdroji jsem nastavil 24V. Na desce převodníku jsou zapojeny oba propojovací kolíky (jumper) jako na obrázku níže

2) do desky jsem zapojil do proudové smyčky rezistor 6K OHM (2x12K paralelně) a trimrem "zero" nastavil na výstupu převodníku 0V (tj proud čidlem 4mA)

3) do desky jsem zapojil do proudové smyčky rezistor 1,2K OHM a trimrem "span" nastavil na výstupu převodníku 5V (tj proud čidlem 20mA)

Upozornění: při rozpojení proudové smyčky se na výstupu objevuje záporné napětí. Jelikož výstup z převodníku 4-20mA zapojíme do A/D převodníku, tak se nesmí při provozu proudová smyčka rozpojit (může dojít k poškození vstupu A/D převodníku)!

První test

Po zapnutí napájení převodníku se snímačem TL-136 jsem naměřil (když snímač ležel rozmotaný na zemi 20mV). Do kbelíku 10l jsem napustil vodu a ponořil snímač na dno (pod hladinou cca 25-30cm) -> na výstupu snímače bylo cca 200mV. Při pohybu k hladině se napětí plynule snižovalo až k 20mV. Půjde tedy krásně rozlišit i malý rozsah změny hladiny.


Na desku měniče jsem připojil 2,5V z DC zdroje, na výstup jsem připojil jako zátěž rezistor 1,2 KOhm. Nastavil jsem na výstupu napětí 24V, následně jsem zvedl napájení na 5V. Po otestování jsem propojil desku měniče do desky převodníku.

Vyvarujte se stavu kdy je na vstupních svorkách vyšší napětí než nastavené na výstupních! Může dojít k poškození měniče!
Před prvním použitím je tedy nutné použít vstupní napětí 2V a nastavit požadované výstupní napětí. Potom lze na vstup připojit zamýšlené nižší vstupní napětí.


Výstup z desky převodníku 4-20mA jsem připojil na vstup A/D převodníku (vstup A0). Propojil jsem z OSPy 4-pinový I2C konektor s A/D převodníkem SDA-SDA a SCL-SCL. +5V a 0V jsem spojil se vstupem do měniče 5V na 24V jako na obrázku. Konektor z OSPy je v pořadí: +5V, SDA, SCL, 0V.

A/D převodník umožňuje měřit pouze v rozsahu 0-4.096V (dáno zesílením = 1). Nemůžeme tedy využít celý rozsah 0-5V. V reálu bude ve studni například čidlo pro 0-5m, ale budeme měřit jen 0-4m. Chce to koupit si čidlo vždy s rezervou!

V OSPy jsem spustil balíček "systémové informace" kde se vypisují dostupná zařízení, nebo můžeme v konzoli otestovat přes "sudo i2cdetect -y 1". Když je A/D převodník nalezen uvidíme dostupnou adresu 0x48.

nebo přes například SSH putty...


Pro otestování funkce jsem napsal kód v pythonu (v příloze jako test.py). Po spuštění se vypisuje napětí ze všech 4 kanálů (AD0 - AD3) a přepočítaná hladina v zásobníku jako 0-100% (pokud je správně v programu vyplněno napětí pro 0% a pro 100%).

Teď již zbývá napsat nový plugin do OSPy a navrhnout desku pro 4 snímače (zdroj 5-24V, 4x převodník 4-20mA, I2C AD převodník)...

Aktualizace 12.11.2024

V systému OSPy je již nyní plugin dostupný, měří, zobrazuje, loguje a zasílá e-mail. Na integraci automatizace se pracuje (spuštění programu, stanice, zastavení programu...)

Attachments:
Download this file (ads1115.pdf)ADS1115[Katalogový list]1722 kB14 Downloads2024-10-03 14:47
Download this file (MT3608.pdf)MT3608[Katalogový list]597 kB8 Downloads2024-10-03 14:47
Download this file (test.zip)Testovací program pro načtení z ADS1115[Python3]1 kB11 Downloads2024-10-03 14:44

Moje WiFi ESP8266 - časomíra 1024 LED matrix

Časomíra slouží jako zobrazovací panel pro různé soutěže. Na panelu se zobrazuje čas od startu, čas do konce a textové zprávy (například název soutěže). Pomocí obvodu ESP8266 je vytvořen Wi-Fi AP bod, ke kterému se lze připojit telefonem. Na webové stránce lze měnit další parametry.

Číst dál...

 logo  logo logo logo logo logo