hamik-octopus63

OctopusLAB 63
Jednoduché letní projekty


Digitální hodiny s modulem ds3231

Projekt hodin s ESP32 jsme už v Hamíkovi popisovali, ale pro jejich nastavení jsme využívali připojení k internetu, ze kterého jsme si pro inicializaci stáhli aktuální čas. Toto řešení se ne vždy hodí (třeba na samotě u lesa bez internetu).
V dnes představovaném zapojení použijeme zajímavý (a zatím dostupný) modul reálného času ds3231.
Tento modul obsahuje:
– Obvod vysoce přesných hodin DS3231
– Paměťový čip: AT24C32 (kapacita EEPROM úložiště 32 KB)
(provozní napětí 3.3 – 5.5 V, teplotní rozsah 0 – 40 °C, přesnost 2 ppm.)

Modul připojte přes I2C k ESP vývojové desce (ROBOTboard, ESP32board nebo DoIt adapter, nově i modul většího displeje Big display). Dejte si pozor na pořadí pinů, často bývají „proházené“ a nedá se použít kabel 1:1. My preferujeme kabely dvoupinové, protože mají delší životnost a jsou spolehlivější. Jednopinový kabel se kroutí a po čase začne „zlobit“.

Základní práce s modulem je velmi jednoduchá – ukázka je v Micropythonu:

from time import sleep
from machine import RTC
from utils.octopus_lib import i2c_init
import ds3231

rtc = RTC()
i2c = i2c_init()
ds = ds3231.DS3231(i2c)

def ds3231_init(ds3231, rtc):
    now = (2022, 6, 21, 6, 16, 20, 0, 0)
    rtc.datetime(now)
    ds3231.save_time()

#ds3231_init(ds, rtc) #použijeme jen pro inicializaci

while True:
   hh = rtc.datetime()[4]
   mm = rtc.datetime()[5]
   print(hh,":",mm)  #vypisování času 
   sleeep(10)




Pro zobrazování na displeji doplníme kód podle typu displeje (OLED, LCD nebo náš oblíbený s osmi sedmisegmentovkami).

Pracovní verze je opět k dispozici na githubu:

https://github.com/octopuslab-cz/hamik_cz/tree/master/clock-disp7-ds3231

Novinkou letošního léta je také Big display. Deska, kterou jsme předělali pro ESP32 (původně byla pro ESP8266).

Pro osazení si můžete vybrat ze dvou velikostí displeje (na obrázku rámečkem označeno A nebo B).

Základem modulu je integrovaný řadič displeje MAXX7912. Pak už stačí jeden odpor (10k-20k) případně je zde místo i pro PIEZZO pípák. Displej pak funguje i samostatně – stejně jako známý čínský modul (menší – na obrázku nahoře).
Po zapájení dvou patnáctipinových konektorů můžete přímo připojit i ESP32 DoIt. A když si připojíte modul reálného času DS3231 přes I2C získáte skvělé digitální hodiny. Stačí jen vymyslet jim nějakou pěknou krabičku.

hamik-octopus62

OctopusLAB 56
Novinky a plány

Původně jsem připravoval článek o dalších našich projektech, ale vývoj většiny z nich je aktuálně v ohrožení. Situace související s celosvětovým nedostatkem některých elektronických součástek (především polovodičových čipů) se nezlepšuje a naopak se začíná nepříjemně projevovat i na skladových zásobách nebo cenách dříve běžně dostupných komponent. Například i náš oblíbený mikrokontrolér ATTiny buď skladem není nebo jeho alternativy se nabízejí i za desetinásobek původní ceny. Rapidně poklesla i nabídka vybraných operačních zesilovačů nebo komunikačních čipů (například FTDI, který používáme s ESP32 ještě nějaké jsou, no nestojí tři, ale deset dolarů!) a občas narazíme i na nedostupnost konektorů či pasivních součástek. Jak se se současnou krizí vypořádáváte vy? Také se vás nedostatek čipů nějak dotkl? Napište nám.


Modul čtyřznakového displeje

Náš kamarád z DtLabu, který používá desky octopusLAB s ESP odladil zapojení pro tento (zatím dostupný) modul displeje s obvodem tm1637. Hodí se pro jednoduchý teploměr nebo hodiny a práce s ním je jednoduchá. Uvedeme zde základní ukázku v našem oblíbeném Micropythonu:

from machine import Pin
import tm1637

# 4 digits display - dot is treated as middle digit
tm = tm1637.TM1637Decimal(clk=Pin(22), dio=Pin(21))
tm.show("1234")

Program po spuštění na displeji zobrazí číslo „1234“. Povšimněte si definování datových pinů, ke kterým je modul připojen.
Celý kód je již tradičně na githubu: https://github.com/octopusengine/octopuslab/blob/master/esp32-micropython/examples/tm1637_display_temp.py

Na obrázku je projekt termostatu, kde snímáme teplotu bezkontaktním infračidlem mlx90614, požadovanou hodnotu nastavujeme otočným potenciometrem (z druhé strany) a teplotu průběžně zobrazujeme na displeji.


Modul displeje s ESP32

Tuto desku jsme si navrhli už před třemi lety a vycházeli jsme z rozšířeného modulu max7219 pro dvě velkosti displejů, kdy se skládají dva čtyřsegmentové k sobě. Původní verze byla navržena pro ESP8266, který používáme pouze výjimečně (rozdíl ceny za lepší ESP32 je pro většinu projektů zanedbatelný), ale nakonec jsme i tento modul předělali na novější ESP (opět preferujeme náš oblíbený 2×15 pinů DoIt). Velkou výhodou je možnost řazení více displejů za sebou. (Máme vyzkoušeny tři kusy a speciálně jsme si upravovali i knihovnu.)

Ukázka použití dvou základních velikostí – moduly se segmentovkami jsou dostupné v různých barvách.

A co naše plány? V nadcházejícím období se začínáme připravovat na dvě větší akce. Již tradičně bychom byli rádi na pražském MakersFaire. A pár drobností chystáme i na CyberTown o kterém vám ještě napíšeme.

cudo21

57. díl – OctopusLAB
ESP32 – kouzelná krabička „ČUDo“


CUDo je zkratka pro Crypto Universal Device – octopus. Ale když se náš kamarád ze Slovenska zeptal, „čo je to za čudo“, měli jsme jasno, že to bude ČUDo!

Vycházeli jsme z poměrně čerstvého projektu postaveném na modulu s ESP32, ke kterému je připojena NFC čtečka, případně klávesnice nebo i akceptor na mince či bankovky. Ke komunikaci s uživatelem či zobrazování QR kódu slouží TFT displej.

V plánu je tradičně hned několik projektů. Například:
kalkulačka, centrála alarmu nebo chytré domácnosti, přístupový systém (na PIN nebo na kartu), výukové a prototypové moduly a podobně. Ale zaměřili jsme se především na některá speciálnější zařízeni pro práci s kryptoměnami (proto je i v názvu slovo crypto).
Využíváme druhou vrstvu bitcoinové sítě, takzvaný Lightning network. Elegantní řešení (LNURL) nám částečně poskytuje i lnbits.com, který provozujeme na vlastních serverech.
Krypto projekty:
PoS (Point of Sale) – obsluha na klávesnici zadá částku, zákazník platí „na“ QR kód zobrazený na displeji.
ATM (Automated Teller Machine) je anglická zkratka pro bankomat. Jedná se o zařízení, které po vložení hotovosti (do akceptoru mincí či bankovek) nebo bezkontaktním přečtení RFID „karty“ odešle jejímu majiteli požadovaný obnos v kryptoměně (formou „výběrového“ QR kódu nebo RFID v mobilu) a další.

Hardware

ESP32 board ¨- základní modul s ESP32
Displays Expander – deska připojení displeje a I2C 16ti bitový expandér
TFT 160×128 – grafický displej SPI
Keypad 4×4 / 4×5 – maticová klávesnice
NFC-RFID PN532 – čtečka RFID

Na hackathonu Hackatoshis flying circuit konaném v pražské Paralelní Polis https://flyingcircuit.com/ , jedné z posledních akcí loňského roku, jsme za naše ČUDo získali první cenu! Na hackathonu jsme měli hned několik prototypů a představili jsme koncept všech projektů, které porotce po právu zaujaly.

Základní koncept – open-source v Micropythonu:
https://github.com/octopuslab-cz/temporary-crypto-universal-device
Také 3D model krabičky ve formátu STL je zdarma ke stažení na Thingiverse:
https://www.thingiverse.com/thing:5142637





co se už asi nevejde nebo co už bylo:



Simple test and example

https://github.com/octopusengine/octopuslab/tree/master/esp32-micropython/examples/displays_expander
Keypad (LED 7segment display) “calculator”
NFC-RFID reader – UART2



Ohlédnutí

OctopusLAB 55
Ohlédnutí za několika roky tvoření

Blíží se konec roku a tak se pokusíme trochu zvolnit tempo. Na předvánočním setkání radioamatérů v NTM jsme se dozvěděli, že naše články jsou dost náročné. Proto si tentokrát jen nostalgicky zavzpomínáme na několik málo okamžiků z téměř pětileté činnosti naší malé tvůrčí laboratoře.

Jako nadšení elektrokutilové zaměření na číslicovou techniku jsme si v jistou chvíli začali vyrábět vlastní vývojové desky. Už jich máme více než deset druhů. Na obrázku je testovací modul FIRST board s I2C expandérem a binárním výstupem.

Velmi brzy jsme vyhověli žádostem o ROBOT board – desku pro robotická vozítka (lze připojit dva motory nebo tři serva).

Na Robotickém dni v Praze jsme předvedli hned několik našich robotických vozítek. Na robotické soutěži průjezd bludištěm (akce Kavárny naživo) jedno z nich skončilo na druhém místě!

Pražský Maker Fair v roce 2019 pro nás byl velmi úspěšný, obdrželi jsme totiž ocenění Maker of Merit, kterého si stále velmi ceníme.

Na hackathonu Hackatoshis flying circuit konaném v PP, jedné z posledních akcí letošního roku, jsme za naše ČUDO (crypto universal device Octopus ) získali první cenu!



Přejeme všem čtenářům především pevné zdraví, ať je příští rok úžasný a plný příjemných překvapení.

Hackathon-pp21

Žijeme ve velmi zajímavé době. Moderní technologie přináší dříve nevídané možnosti a my se snažíme soustředit ne jejich klady.

Vycházíme z úvahy, že téměř vše je víceméně lineárně provázáno (energie, čas, informace, peníze, …) a pokud je to možné, chceme mít možnost tyto entity přesouvat v prostoru (či čase – na delší povídání).


Obraz první:
Je jedno jestli v reálném světě nebo ve virtuální realitě máme možnost převádět hodnotu zboží nebo služeb pomocí LN druhé vrstvy nad BTC.
Jednotlivé „entity“ (nody), které mohu být souborem jedinců, společenství či umělých inteligencí. Chceme zařízení, které nám propojí viruální svět s tím reálným (potenciometr, relé…)

Obraz druhý :
U vodopádu nebo sopky je nově zbudována elektrárna, kde se těží bitcoiny. Místo abychom tahali dráty, posíláme do jiných oblastí vytěžené bitcoiny…

Obraz třetí:
Existují nějaké již poměrně zažité technologie (elektřina, letadla, mobily, internet…) které už umíme běžně používat. Pro další fázi vznikají zařízení, nástroje a služby, které umožní úplně nové pohledy na řešení situací. Kdy stroj umí zaplatit druhému stroji za servis…


V týmu:
Petr Kracík – hlavní vývoj hw+sw
Tomáš Starý – sw
Honza Čopák
Trochu nám pomáhal a nepřekážel Mário Havel.


Universal crypto device Octopus (ČUDO)

Vycházeli jsme poměrně čerstvého projektu. Zařízení s ESP32 ke kterému je připojena NFC čtečka, případně klávesnice nebo i akceptor na mince či bankovky.
Výstupem je displej, pro komunikaci s uživatelem či zobrazování QR kódu.
to nám posloužilo pro základní koncept.
ESP32 s Micropythonem:
https://github.com/octopuslab-cz/temporary-crypto-universal-device

Hardware

ESP32 board
Displays Expander
TFT 160×128
Keypad 4×4 / 4×5
NFC-RFID PN532
Case – 3Dprinted

Case – 3D printed box

Thingiverse STL:
https://www.thingiverse.com/thing:5142637

Simple test and example

https://github.com/octopusengine/octopuslab/tree/master/esp32-micropython/examples/displays_expander
Keypad (LED 7segment display) “calculator”
NFC-RFID reader – UART2

Hackathon devices:


-> https://github.com/agama-point/lnucd | atm | pos | lnswitch
-> https://github.com/agama-point/lnpos

Pro potřeby komunikace pomocí nfc tagů vymýšlíme optimální protokol, jelikož zatím použitelný standard chybí, „vykopli“ jsme vlastní návrh.
CDF-RFC: https://github.com/agama-point/cdf-rfc
Request For Comments – We are trying to design a data format – primary for LN – machine2machine communication.

1. LN lampička

První verze velmi jednoduché dotazování serveru, na kterém se aktualizuje stavový json pomocí lnbits hook přes statický QR Kód.
Provedením LN mikroplatby se rozsvítí lampička, otevře zámek, sepne topení…

Prvotní koncept z roku 2014+ byl ryze na BTC: (Bitcoin Machine)
https://www.agamapoint.com/projekty/

2. LN ATM

Inspirace Bleskomatem,
už máme odladěn akceptor na mince
a testovali jsme připojení akceptoru bankovek

3. LN PoS

point of sale – jednoduchý platební terminál, po zadání částky na klávesnici vytvoří platební QR požadavek

Shrnutí

Poznámky

Pinout

-----
ESP32 board:     [Disp.Exp.]
L-D0             []
L-D1 IO17 (PWM1) [TX2]
L-D2 IO02 (LED2) [TFT1-SC]x - ver.1
L-D3 IO16 (PWM2) [RX2]
R-D0 IO27 (DEV3) []
R-D1 IO25 (PWM3) [TFT1-SC] ver.2
R-D2 IO26 (IO26) [TFT1-DC]
R-D3
TX   IO04
RX   I36

-----
main TFT:
BL - 3V
SC - L-D2
DC - R-D2
RS - 3V 
SDA - MOSI
SCL - SCLK
3V
GND

cs  = 26 # Pin(26, Pin.OUT) #R_D2
dc  = 25 # Pin(2, Pin.OUT)  #L_D2 (ver.1 02 - ver.2 PWM3 25)
rst = 27 # xx > DEv3(27)

spi = SPI(2, baudrate=20000000, polarity=0, phase=0, sck=Pin(pinout.SPI_CLK_PIN), mosi=Pin(pinout.SPI_MOSI_PIN),  miso=Pin(pinout.SPI_MISO_PIN))
tft=TFT(spi, dc, 16, cs)   # tft(dc,rst,cs)

-----
I2C expander
010 = 0x25 
000 = 0x20 (default)

IRQ PIN 39
ver.1: 
| |-|
x x |
 
ver.2:
| | |
~ ~ |

----- 
PN532 - UART (TODO > I2C)

#UART1:

#uart.init(baudrate=115200, tx=pinout.TXD1, rx=pinout.RXD1, timeout=100)
#UART2:
uart.init(baudrate=115200, tx=pinout.PWM1_PIN, rx=pinout.PWM2_PIN, timeout=100)


---







.:.
https://www.octopuslab.cz/esp-pinouts/

esp32-pripojeni

52. díl – OctopusLAB
ESP32 – připojení a instalace systému

O instalaci Micropythonu do ESP32 jsme už psali ve 27. díle (Hamík 184). Tentokrát se zaměříme na některá doplnění či upřesnění a především na zásadní novinky a změny. Na následujícím obrázku jsou varianty modulů s ESP, se kterými běžně pracujeme. Zvýrazněn je název modulu a také jak se hlásí „ovladač“ převodníku UART/USB.

  1. ESP32-WROVER (ESPRESSIF) – „známka“, která dnes existuje už v několika provedeních (verze C2/C3, s rozšířenou pamětí 4/8M).
    My používáme například ESP32-S s přidaným konektorem na externí anténu nebo základní verzi označenou ESP-WROOM-32.
  2. ESP32 – speciální programovací modul s „drátěnými“ konektory, který umožňuje naprogramovat „známku“ ještě před osazením. Na obrázku je verze pro větší modul, klasický má piny rozmístěny po části obvodu ve tvaru „U“.
  3. ESP32 – DoIt (15×2 pinů). Základní a velmi rozšířená verze modulu s USB konektorem, programátorem a vestavěnou LED (a jednou signalizační LED). Plete se s dalšími variantami, které mají pinů více (například 2×19), ty ale nepoužíváme. Hlásí se jako Silicon Labs CP210x to UART Bridge (COMx).
  4. ESP32-WROOM (2×10 pinů). Kompaktní verze, kterou jsme nahradili vlastními deskami.
  5. ESP32board1 – neosazená verze 2 s externím programátorem (6).
  6. Samostatný převodník UART/USB, který používáme k programování.
    Hlásí se také jako Silicon Labs CP210x to UART Bridge (COMx).
  7. ESP32board – částečně osazená verze 6 s FTDI. Hlásí se jako USB Serial Port (COMx), námi předkonfigurováno i jako Octopus Lab.

Správce zařízení vyvoláte výběrem v menu po stisknutí symbolu Windows spolu s X (Win+X). V sekci Porty (COM a LPT) uvidíte jaký ovladač má vaše ESP a jaký COM port byl přidělen. My si ho většinou i dodatečně změníme na COM6, protože pak snadněji kopírujeme připravené skripty. Pokud se ESP nepřipojí nebo se s ním následně nedá komunikovat, bývá velmi častou závadou špatný USB kabel.


Pro stručné shrnutí si připomeňme první dva kroky, co je potřeba stáhnout do počítače (pomocí kterého budeme s ESP pracovat).
1. Nástroj pro inicializaci (mazání) ESP a přesouvání souborů do ESP se jmenuje esptool (dl.espressif.com/dl/esptool-2.6.1-windows.zip
– stáhnout a rozzipovat ve svém pracovním adresáři).
2. Aktuální binární soubor Micropythonu lze použít ve dvou variantách. Pro speciální projekty (s externí pamětí RAM nebo WiFi komunikací pomocí ESP now) můžete vycházet z původního návodu a nainstalovat si náš upravený Micropython: octopusengine.org/download/micropython/micropython-octopus.bin, ale pokud výše uvedená rozšíření pro své projekty nepotřebujete, stáhněte si raději poslední verzi vanilla: micropython.org/download/esp32/.
Celý postup je rozepsán v naší dokumentaci: docs.octopuslab.cz/install_win/.



Pak v příkazovém řádku Windows zadáme postupně:

esptool.exe --chip esp32 -p COM6 erase_flash 
esptool.exe --chip esp32 -p COM6 write_flash -z 0x1000 ./micropython-octopus.bin

Během první části instalace Micropythonu erase_flash, kdy se po spuštění esptool vypisuje sekvence  Connecting........_____....._____.....____,
je někdy nutné na chvíli na ESP zmáčknout tlačítko BOOT.


O možnosti rozšíření Micropythonu o vlastní moduly jsme si již zmínili v původním popisu u metody octopus_initial.setup(). Máme více možností, připomeneme tři základní varianty.

  1. Rozšíření je implementováno do samotného Micropythonu (což využíváme ve forku micropython-octopus).
  2. Máme možnost si přihrát vlastní modul (například do adresáře /lib), což je například celý Octopus FrameWork.
  3. Varianta, na kterou se zaměříme je využití pip (package installer for Python), v případě Micropythonu upip.

53. díl – OctopusLAB
instalujeme octopus framework

Pokud jste postupovali podle návodu v minulém díle, měl by se vám po restartu ESP zobrazit prompt interaktivního Pythonu >>>.
Když je tomu tak, gratulujeme! Máte funkční MicroPython.
Pokud se na obrazovce nic nezobrazuje zmáčkněte ENTER nebo CTRL+D (sw reset) případně CTRL+C (přerušení běhu programu). Některé možnosti terminálového výpisu, který informuje i o aktuální instalované verzi MicroPythonu, jsou zde:

# Verze našeho uPy
MicroPython v1.14-6-gab6d856ac-build-octopusLAB-espnowmod on 2021-02-16; ESP32 module (spiram) with ESP32

# Vanila 1.17
MicroPython v1.17 on 2021-11-22; ESP32 module with ESP32
Type "help()" for more information.
>>>

Ve druhém případě vidíme, že je instalována verze 1.17 z 22. 11. 2021. Nové „nestabilní“ verze jsou vydávány i několikrát týdně. Všechny změny zahrnuté v nové verzi jsou přehledně zaznamenány v příslušném příspěvku (commitu) v MicroPython repozitáři (https://github.com/micropython/micropython/commits/master).

Zkoušíme i různé verze ESP32 a před zapájením do našich modulů se nám osvědčilo je otestovat. Což spočívá v instalci MicroPythonu a provedení několika základních kontrol (paměť, WiFi, BLE…)



Ve starších návodech jsme popisovali jak nainstalovat náš upravený MicroPython. Pokud máme však čistý (vanilla) MicroPython, musíme instalovat dodatečně nejen celý balíček knihoven, ale i základní „instalátor“ (deploy). Pro nahrání Frameworku Octopus do MicroPythonu využijeme balíčkovací metody upip.
Níže uvádíme kompletní kód. Můžete použít copy&paste celého bloku (nezapomeňte si správně vyplnit svoje ssid a heslo). Bez komentářů se jedná pouze o osm řádků kódu!

import network
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect('ssid', 'password')  # aktualizujte pro vaši WiFi

Po připojení k WiFi můžeme přejít ke stažení metody deploy() z octopuslab_installer a následně k samotné instalaci:

import upip
upip.install('micropython-octopuslab-installer')
# počkejte chvíli na dokončení instalace

from lib import octopuslab_installer
octopuslab_installer.deploy()
# sledujte průběh stahování

V tuto chvíli máte připraveno ESP s nejnovější verzí MicroPythonu a aktuálním souborem knihoven pro snadnější vývoj vašich projektů.

Jelikož původní nastavení WiFi bylo jen dočasně uloženo v RAM, je vhodné si WiFi nastavit a do zařízení uložit natrvalo.
Příkazem setup() (je to Python metoda, proto ty závorky) vyvoláme nastavení. Zde zvolením w přejdeme k nastavení (přidání) naší WiFi.
V submenu se po volbě a (add – přidání) nastaví SSID (název sítě) a PASSWORD (heslo do ní). Po cw (connect wifi) by mělo dojít k připojení.











Toto se už nevejde – soukromé poznámky!

pracovní listy – Micropython hamík – pdf – videa + soc insta a twitt.
prompt
setup – device, io, wifi
free ram
ftp
základy s holým esp: teplota, hall, …
shell()

představení EDUKIT1,2 a nová 3! (plán klalkulačka, domovní alarm,
emul MK 14 Science of Cambridge, 1977




4. Instalace Micropythonu – asi i nové video,
celá strana se všemi úskalími a možnostmi

Metodické listy pro kroužky – sada jednoduchých projektů, tutoriály, návody, co a jak. Soutěž? Nabídka desek zdarma za příslib projektu a foto + „dokumentace“.

Maker Faire 2021

O víkendu (10-12/09) se v Praze konal další ročník Maker Faire. Po téměř dvouleté odmlce máme možnost potkat naživo celou řadu zajímavých tvůrců a jejich projektů. Aktivně jsme se minulých ročníků účastnili (i některých mimopražských) a letos se chystáme také. Vřele doporučujeme, přijeďte se podívat, stojí to za to.

Maker Faire je festival plný workshopů, interaktivních aktivit a především nadšených a zvídavých lidí. Své projekty a prototypy zde prezentují tzv. makeři. Maker je inovátor, vynálezce, kutil, designér i nadšenec. Každý, kdo se nespokojí s dostupnými věcmi a službami, vytváří si nové, ale zároveň si je nenechává pro sebe – sdílí je s ostatními. Je to zkrátka kutil 21. století.

Octopus LAB zde bude také. Děkujeme za hezký „medailonek“, který je k dispozici na Facebooku:
facebook.com/MFPrague/photos/a.399775593775823/1239372973149410/

Minulé ročníky:
Plzeň: octopuslab.cz/pilsen-mini-maker-faire-2019/
Mladá Boleslav: octopuslab.cz/2019/09/
Bratislava: octopuslab.cz/2019/11/
Praha: octopuslab.cz/maker-faire-2019/
OtopusLAB obdržel na Maker Faire Prague 2019 ocenění Maker of Merit

Některé projekty které bereme s sebou

  • Turingův stoj
  • Emulátor Intel 4004
  • MQTT teploměr
  • MQTT klávesnice a displej
  • E-ink displej
  • Robotická vozítka
  • Zdroje a měřící moduly
  • a řada dalších

Převažující většina projektů je realizována s ESP32 na vývojových deskách OctopusLAB.

Pokud se chcete i vy stát součástí úžasné komunity makerů v pražském Maker Faire, neváhejte a určitě doražte! Maker Faire Prague je největším kutilským festivalem v Česku. Akce pro celou rodinu, která spojuje kreativitu, umění, řemesla a technologie.


Maker Faire 2021 – jaké to bylo?

Jako vždy skvělé. Kutilové, tvůrci – prostě makeři – bývají zárukou skvělé atmosféry a pozitivní energie. Pro nás je zásadní, že máme možnost se ve dvou dnech potkat s velkým množstvím podobně smýšlejících nadšenců. A jak vystavovatelé tak i většina návštěvníků jistě ocenili skvělou přípravu organizátorů. Alespoň z našeho pohledu vzhledem k situaci proběhlo vše nadstandardně a i touto cestou všem dodatečně děkujeme.

Na našem stánku jste mohli vidět v provozu ESP32 s několika druhy displejů (segmentové LED, RGB maticové LED, e-ink a TFT dotykový). Zájem byl i o robotická vozítka, turingův stroj či emulátor i4004. Stihli jsme zprovoznit i Lightning Network automat s mincovníkem, kde si někteří pokročilejší uživatelé (Agama Point, General Bytes) mohli vyzkoušet druhou vrstvu bitcoinu nákupem za pár desítek korun.

Na naší plně osazenou desku RobotBoard s ESP32 jsme narazili u našich známých z pražského robodoupe.cz! Potěšil nás záměr použít jí v některém kroužku DDM (Domů dětí mládeže).

Na dalších expozicích nás zaujaly některé výborné nápady. Na obrázku vidíte modulární systém brickrknowledge.de/en, který vypadá opravdu zajímavě. Oceňuji možnost stavění i do prostoru a kreativní přístup k propojování, značení i celému konceptu.

Na stánku hwkitchen.cz nás zaujala kolekce několika stavebnic: MAKER BLOCK a Micro:bit TinkerKit od TINKERCADEMY. Vypadají velmi zajímavě a je dobře, že jsou většinou cíleny na úplné začátečníky od nejmenších dětí. Protože komplikované začátky mohou zájemce o moderní technologie poměrně rychle odradit.
Dále se nám líbila stavebnice Boffin magnetic (na stánku 3dsimo – Multilab), která skvělým způsobem vylepšuje původní myšlenku snadného spojování jednoduchých modulů. Domlouvali jsme se i o spolupráci na implementaci některých našich modulů. Bylo by to skvělé.
Samozřejmě jsme se zastavili i na stánku hamíka, kde byla k vidění plně „open-source“ stavebnice Hamík Baby (s pomocí dospělého už pro tříleté děti).

BOFFIN


Moduly octopus a stavebnice BOFFIN

Někteří naši známí používají v kroužcích elektroniky elektronickou stavebnici Boffin. Když nás oslovili s dotazem, jak by se dala tato stavebnice propojit s nějakým pokročilejším modulem připojeným k internetu, jednu jsme si vypůjčili a zkusili nějaké varianty zapojení. Během druhé poloviny prázdnin jsme se rozhodli trochu zvolnit v náročnosti a seznámit vás s i našimi jednoduchými pokusy.

Výrobce stavebnice uvádí:
Elektronické stavebnice Boffin přináší zcela novou úroveň zábavy pro všechny děti od 8 let. Pomůže pochopit základní principy fyziky i elektroniky, a to hravou formou.
Základem všech projektů je deska, na kterou se jednotlivé součástky jednoduše nacvakávají. V manuálu je popsáno, co by projekt měl dělat a co od něj očekávat. Po sestavení si můžete zkontrolovat, jestli všechno funguje.
Se stávajícími součástkami můžete vymyslet stovky dalších projektů, které nejsou popsány v manuálu nebo můžete kombinovat se součástkami a projekty v jiných stavebnicích.

https://www.agatinsvet.cz/recenze-elektronicka-stavebnice-boffin/

Připravili jsme si pár jednoduchých 3D modelů pro kompaktní mechanické propojení našich modulů se stavebnicí. (Postupně doplňujeme na github/octopusengine/hamik_cz…).
Větší oříšek bylo rychlé elegantní a hlavně spolehlivé připojení vodičů. Jelikož Boffin používá speciální patentky, zkusili jsme, zda neuspějeme v klasické galanterii. Měli jsme představu, že pomocí speciálního pájecího roztoku se nám podaří připájet vodiče, kterými bychom pak mohli připojovat naše moduly. Bohužel jsme zatím neuspěli. Ani přímo v podnikové prodejně Kooh-i-nooru se nám nepodařilo sehnat stejný rozměr, nejpodobnější je vyobrazený „knoflík stiskací nýtovací“ s vnějším průměrem 13,5 mm. Ale vyžadoval by trochu úpravy aby se dal použít. Napište nám, jakou máte zkušenost s rozšiřováním stavebice vy.
My jsme zatím využili mosazná očka a také šrouby M4. Lepší variantou by zřejmě bylo dokoupit si samostatně modré „vodičové“ moduly (například dvojici) a ty si podle potřeby upravit. Ale pro číslicovou techniku (například po komunikaci na sběrnici) patentky nemají úplně ideální spojení. V obvodu tlačítko – Ledka to asi nevadí, nějak s tím „zalomcujeme“ aby to šlo, ale pro připojení integrovaného obvodu s mnoha vývody by to určitě nefungovalo spolehlivě. Od toho jsou ale jiné stavebnice.

Jednoduchá zapojení stavebnice Boffin bývají hezky přehledná a pro úplné základy zřejmě postačí. Jednotlivé řady (100, 300, 500, …) na sebe navazují, dají se kombinovat a součástky se dají dokupovat i samostatně. Další výhodou jsou některé již hotové moduly (zvukové efekty, zesilovač a podobně). Sice údajně umožňuje vytvořit velké množství projektů, ale stále jen na poměrně jednoduché úrovni. Trochu mi také chybělo detailnější (nebo občas alespoň nějaké) vysvětlení, proč je něco zapojeno zrovna tak. I kdyby to bylo nepovinné drobným písmem. Domnívám se, že hlubší pochopení umožní nespoutanější samostatné tvoření.


Přímo jsme samozřejmě mohli využít svítivé diody, spínače či tlačítko, ale stejně jsme měli připojeno i nepájivé pole. Někdy totiž potřebujeme tranzistor nebo kondenzátor navíc a koncept úplně nemíří na číslicovou techniku (hradla, displeje a podobně). Propojení s ESP32, především pak možnost komunikace přes Bluetooth či po internetové síti bylo jistě přínosným rozšířením. Ale pro pokročilejší bastlíře mohou mít význam jen některé vybrané moduly. Stavebnice Boffin je tedy spíš pro mladší (kolem deklarovaných osmi let) nebo pro úplné začátečníky. Pokročilejší si potřebných šest součástek zapojí do nepájivého pole.

Zajímá to i úplně nejmenší 😉

Speciální řídící moduly

Speciální řídící moduly 1

V systému „chytrých“ projektů máme velmi často nějakou centrální řídící část. Někdy se ale využívají do jisté míry samostatné (autonomní) prvky. Může to být z důvodu spolehlivosti, bezpečnosti, rychlosti nebo z nějakého specifického jinými metodami velmi těžko realizovatelného zadání. Už jsme psali o obyčejném termostatu (například pro triviální regulaci pokojové teploty). Zde není přínosné, aby se nastavování teploty muselo trvale spoléhat na centrální prvek nebo internetové připojení.

V tomto a ještě v příštím díle si povíme o některých speciálních řídících modulech.

  • PLC (programmable logic controller)
  • PID regulátor
  • MLP – mutilayer percetron

PLC – programovatelný logický automat

PLC je relativně malý průmyslový počítač používaný pro automatizaci procesů v reálném čase – řízení strojů nebo výrobních linek v továrně.

OctopusLAB má ve svém portfoliu unikátní kompaktní model, jehož jádro tvoří námi oblíbený mikrokontrolér ESP32 a open-source firmware máme i ve verzi napsané v MicroPythonu. Zatímco hardwarová část je po roce vývoje už ve třetí verzi, software máme zatím na začátku. Naše základní PLC se vejde do klasické šestimodulové DIN krabičky, disponuje možností připojení k internetu pomocí LAN modulu (kvůli silněji rušeným průmyslovým provozům se nechceme spoléhat na WiFi).

Na desce máme čtveřici galvanicky oddělených vstupů a výstupů. Dále samostatnou zdrojovou část, modul reálného času, externí paměť EEPROM, komunikační 485 modul a možnost rozšíření pomocí sběrnice OCTOBUS.
Na samostatném LAN shieldu je možnost osazení POE modulu (Power over Ethernet – pro napájení po LAN síti).


PID regulátor v chytrém grilu

PID patří mezi spojité regulátory, složený z proporcionální, integrační a derivační části. Oproti jednoduchému zpětnovazebnímu regulátoru (který má jen složku P) při správném nastavení konstant P, I a D nedochází k nežádoucím překmitům, čehož jsme využili při regulaci elektrického grilu. Původní zapojení našeho grilu spínalo klasickým termostatem ale s nežádoucí hysterezí. Nastavovalo se „nějaké číslo“ 1-6 a například pro 3 se to nahřálo na 100, topení vypnulo, stejně se to ale setrvačností dotopilo na 120 a pak to chladlo na 80, než se to zase zapnulo.

Ovládací potenciometr, kterým nastavujeme přímo teplotu, je připojen ke kontrolnímu displeji. Pro vstup jsme použili dva teploměry (testujeme, jak se chovají): Termočlánek typ K a odporový PT1000 (v provedení pro použití na měření vyšších teplot). PLC shield s PID regulátorem řídí topnou spirálu grilu pomocí PWM (pulsně šířkové modulace) přes SSR (elektronické „relé“ – solid state relay).


Knihovna, kterou jsme používali: github.com/octopusengine…/lib/PID.py
Na vedle položením notebooku jsme si nechali vykreslovat jednotlivé PID složky, abychom viděli, jak regulátor pracuje. Vše se podařilo nastavit za poměrně krátkou dobu a gril pracoval už ve zkušebním provozu mnohem lépe, než v původní obyčejné verzi.




Speciální řídící moduly 2

Na obrázku je osazená a oživená „sendvičová“ sestava PLC. Úplně dole je PLC shield (zelená deska), následuje ESP32 board a LAN shield navrchu.
Na LAN shieldu je osazen i POE modul (Power over Ethernet – pro napájení po LAN síti).

Na tomto obrázku je vývojová sestava se dvěma PLC moduly pro kaskádové spínání až osmi stykačů (3 x 25 A, ovládací napětí cívky: 24 V). Počítač Raspberry Pi slouží pro dálkové nahrávání nového firmware (pouze ve vývojové fázi). Sériovou linku 485 využíváme pro odečítání dat z elektroměru.

PLC používáme i v domácí sestavě monitoringu malé solární elektrárny. Aktuálně máme na střeše dva panely o celkovém výkonu 500 Wp (Wattpeak, což udává nominální výkon za ideálních podmínek). Původní 12V olověné akumulátory (trakční 2 x 120 Ah) jsme letos nahradili technologií LiFePo (také 2 x 12V / 110 Ah). Dnes PLC modul slouží pouze k měření napětí a teploty na bateriích a tyto hodnoty následně přes WiFi posílá do naší databáze na cloudu. V plánu je doplnit systém i o řízení solárního regulátoru a distribuci akumulované enegrie.


Pokud vás zajímá beta verze programové část PLC:
github.com/octopusengine/octopuslab/…/components/plc

MLP – neuronová síť

Vycházíme z knihovny MicroMLP a micro artificial neural network multilayer perceptron – kde je trochu nadneseně zmíněn termín artificial (z AI – umělá inteligence) a neural network – což je neuronová síť.

Na jednoduchém příkladu s digitálními vstupy se neuronová síť „naučí“ požadované chování. V našem případě bylo vzorem logické hradlo (logical gate), jako jakási černá skříňka (black box), která má tři vstupy a jeden výstup. Dva vstupy vedou do klasického hradla a jeden slouží k přepínání (OR nebo AND). Toto jednoduché zadání se síť naučí za necelých 30 vteřin. Máme v plánu tento sw modul integrovat spolu s PID i do našeho PLC. Systém by se mohl sám učit a optimalizovat požadované hodnoty řízených procesů. Jsme na úplném začátku, ale doufáme, že dospějeme k nějakým v praxi použitelným výsledkům.

Pro zajímavost můžete prostudovat knihovnu, jak je to naprogramováno: github.com/octopusengine…/lib/microMLP.py
a vyzkoušet si popsaný příklad:
github.com/octopusengine/…/examples/neuronal_netw/and-or-ram.py
Naše MLP si velmi často odkládá data na persistentní paměť. Protože v embedded běžně používaná Flash paměť se při opakovaných zápisech poškozuje, není pro tento účel vhodná. Proto jsme v uvedeném případě testovali pro tento účel RAMdisk.





iot-mqtt-panel

IoT MQTT panel | MQTT explorer

MQTT nám umožňuje poměrně jednoduše nastavit a spolehlivě provozovat velký počet IoT zařízení. Jednou z dalších výhod protokolu MQTT je celá řada dostupných programů a aplikací pro konfiguraci i vlastní ovládání. Stačí si do „chytrého mobilu“ nebo tabletu nainstalovat některou z nich a během chvilky je můžete využívat pro své projekty.

Tentokrát vám představíme aplikaci (pro Android) s názvem IoT MQTT panel (obrázek představuje ikonu, pod kterou jí poznáte). Tato aplikace vám umožní snadno spravovat a vizualizovat jednoduché projekty IoT.
V mobilních aplikacích pro MQTT (a tato není výjimkou) se typicky nastaví přihlášení k brokeru a pak se vytváří množství kontrolních prvků (widgetů) – tyto využívají publish a/nebo subscribe na jednotlivé zprávy, pomocí nichž ovládáte nebo monitorujete jednotlivá zařízení.

Vybrané vlastnosti a funkce:

  • Aplikace běží na pozadí a znovu se připojuje automaticky. Může proto fungovat „24/7“.
  • Podporuje protokol MQTT (TCP) i Websocket.
  • SSL pro bezpečnou komunikaci (zabezpečený protokol).
  • Podpora JSON pro odběr i publikování strukturovaných zpráv.
  • Panely se k odběru přihlašují automaticky a proto se aktualizují v reálném čase.
  • Navrženo pro efektivní práci s veřejným brokerem (pomocí předpony zařízení).
  • Odeslané a přijaté časové razítko (timestamp) od brokera.

Připravili jsme dvě samostatná zařízení EDU_KIT1. Zatímco na jednom využíváme jen vestavěnou LED a displej (na obrázku vlevo), na druhém jsme připojili navíc RGB panel (4×4) a servo. Obě zařízení používají stejný kód:
github.com/octopusengine/…/examples/mqtt/mqtt-edu-kit.py
a ovládací prvky v aplikaci IoT MQTT panel jsme umístili do společného panelu:

Na obrázku vidíte použití některých vybraných komponent (ovládacích a zobrazovacích prvků). Aplikaci připojte ke stejnému MQTT brokeru, jako jednotlivá zařízení. Na základní experimentování můžete opět zkusit veřejně dostupného brokera, kde nastavíte: „mqtt_broker“: „broker.hivemq.com„, „mqtt_ssl“: 0. Připojení je pak signalizováno mráčkem v oranžovém poli nahoře.
Pro každý prvek si definujte takzvaný Topic, což je jednoznačná identifikace jednoho zařízení nebo skupiny zařízení a jejich komponent. Například pro EDU_KIT používáme komponety Led (vestavěná LED dioda), RGB (barevná WS dioda nebo panel 4×4), Button (tlačítko boot na modulu Do-It). Případně se dají přímo použít i Displ7 (pro připojený displej) nebo Servo (jako ve druhém modulu).


Pro lepší porozumění MQTT i snadnější práci a ladění doporučujeme vyzkoušet i desktopovou aplikaci http://mqtt-explorer.com/. Program je ke stažení pro všechny platformy (Linux, Mac i Windows) a práce s ním je poměrně intuitivní, (koukněte se na video z předchozího odkazu). Nejdříve si opět nastavíte MQTT brokera (třeba nějakého veřejného nebo ve vlastním počítači přes Node Red) a pak uvidíte veškeré probíhající „komunikace“. V ukázce jsme se připojili k zařízení (device) „…abb35“ (dáno svým jedinečným identifikačním číslem UID) a pomocí „příkazu“ (klíčového slova) rgb jsme poslali hodnotu #000032, čímž jsme na konkrétním zařízení rozsvítili RGB Led diodu modře. Celý topic je pak:
octopus/device/…abb35/rgb, kde „…abb35“ je celé UID, zde zkracujeme, aby se vešlo.

Máte už nějakou zkušenost s MQTT? Napište nám na info@octopuslab.cz, jaké projekty realizujete a jaké aplikace k tomu používáte. Ozvěte se i pokud vám něco nebylo jasné nebo vám něco nefungovalo.












co se už nevešlo:

Jednoduchá ukázka a uživatelská příručka: snrlab.in/iot/iot-mqtt-panel-user-guide/


Předchozí díly:
https://www.octopuslab.cz/mqtt/
https://www.octopuslab.cz/smart_home/