Pro spouštění programů, které jsou v OSPy (Open Sprinkler Python) nastaveny, jsem si postavil dálkový ovladač. Firma https://m5stack.com/ vyrábí za levný peníz neskutečně dobrý a variabilní hardware. Zakoupil jsem desku M5STICK-C a na ní založil ovladač pro ovládání svého OSPy systému. Po zapnutí napájení jsem schopen spustit program do cca 10 vteřin (připojení k Wi-Fi, stažení NTP a programů), nemusím "lovit" mobil a pokud jsem v dosahu Wi-Fi, tak není problém si sputit co je třeba. Zařízení je cca stejně velké jako zapalovač.
open-source software, tak jako OSPy -> zapojte se do projektu OSPy https://github.com/martinpihrt/OSPy
Pohled na modul
Parametry modulu dle prodejce (https://rpishop.cz/m5stack/2772-m5stack-m5stickc-esp32-pico-mini-iot-vyvojovy-kit.html)
M5Stack M5StickC ESP32-PICO Mini IoT vývojový kit
Mini M5Stack založený na ESP32, což je 2,4 GHz kombo čip s Wi-Fi a Bluetooth s integrovanou 4 MB SPI flash pamětí. Jedná se o přenosnou jednoduše použitelnou open source vývojovou IoT desku. Co všechno umí? Tento malý blok je schopen realizovat vaše nápady, pracovat s vaší kreativitou a ve velmi krátké době Vám pomoci s IoT prototypováním. Ušetříte si tak spoustu těžkostí spojených s procesem vývoje. M5stickC je jedním z nejdůležitějších zařízení v produktové řadě M5Stack.
M5StickC ESP32-PICO Mini IoT vývojový kit je součástí neustále rostoucího hardwarového a softwarového ekosystému m5Stack. Má spousty kompatibilních modulů a jednotek, otevřený zdrojový kód a velkou uživatelskou komunitu. Všechny tyto výhody Vám pomohou maximalizovat proces vývoje.
Aplikace
Správce terminálu pro IoT (Internet of Things)
Nositelné periferie
Stem vzdělávací produkt
DIY tvoření
Vlastnosti
Založen na ESP32
Integrovaný 6osý IMU
Červená LED
IR vysílač
Mikrofon
Tlačítka, LCD displej (0.96")
Integrovaná Lipo baterie
Rozšiřitelná zásuvka
Nositelné zařízení nebo možno upevnit na zeď
Programovací platformy: UIFlow, MicroPython, Arduino
Specifikace
ESP32: dvě jádra 240MHz, 600 DMIPS, 520KB SRAM, Wi-Fi, dva režimy Bluetooth
Flash paměť: 4MB
Napájecí zdroj: 5V / 500mA
Porty: USB-C x 1, GROVE (I2C+I/0+UART) x 1
LCD obrazovka: 0.96", 80 x 160 barevný TFT LCD, ST7735S
Tlačítko: Programovatelné tlačítko x 2
LED: Červená LED
MEMS: MPU6886
IR: Infračervený přenos
MIC: SPM1423
RTC: BM8563
PMU: AXP192
Baterie: 95 mAh @ 3.7V
Anténa: 2.4G 3D anténa
Piny: G0, G26, G36
Operační teplota: 0°C to 40°C
Rozměry: 48.2 x 25.5 x 13.7mm
Váha: 14g
Podpora
Produktová dokumentace - M5Stack (EN)
Obsah balení
1x M5StickC
1x USB-C kabel (20cm)
Uvedený e-shop ho prodává za 389,- (za tyto peníze bych to nepostavil ani za nic - náklonoměr, mikrofon, LCD...)
Jak je to uděláno?
Vzal jsem tedy tento "modulek" a nahrál do něho svůj kód, který se přihlásí (jako uživatel) do OSPy API a následně spouští programy.
Dle dokumentace OSPy API (https://github.com/martinpihrt/OSPy/blob/master/api/docs/Details.md) je potřeba se do OSPy přihlásit v hlavičce http dotazu.
http(s)://[ip|name]:[port]/api/..
V hlavičce pro http GET/POST žádosti: Header("Authorization", "Basic " "Username:Password") výchozí jméno je "admin" a heslo je "opendoor".
Pro spuštění například programu 8 (runnow) zašleme žádost "https://192.168.88.247:8080/api/programs/7 POST do=runnow". Následně dojde ke spuštění tohoto programu stejně jako když se na webu klikne na "spustit program".
Nejprve je potřeba do M5 nahrát program
- Program nalezneme ve složce OSPy (je jeho součástí), nebo na Githubu: https://github.com/martinpihrt/OSPy/tree/master/hardware_pcb/remote_controllers_fw
- Nainstalujeme prostředí Arduino (https://arduino.cc) s podporou desek ESP32 (podporu přidáme do správce desek (https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json)
- Otevřeme v Arduino aktuální verzi programu pro ovladač (aktuálně FW:1.00), zvolíme ve správci desek desku "M5STICK-C" a port (com-xx)
- Klikneme na tlačítko "nahrát"
- Po nahrání kódu ihned uvidíme na LCD, jak se ovladač snaží připojit k Wi-Fi síti. To se mu samozřejmě nepodaří, protože ještě není nastaveno kam se má připojit a co má ovládat
Nastavení pomocí AP manažeru
Nejlépe to vystihuje toto video na Youtube
- Zařízení vypneme bočním tlačítkem (podržet cca 6 vteřin)
- Stiskneme protilehlé tlačítko "select OSPy program/AP" (držíme ho) a stiskneme boční napájecí tlačítko (cca 2 vteřiny)
- Až se na LCD zobrazí nápis AP manažer, tak boční tlačítko pustíme
Na nastavení máme 10 minut (po této době se ovladač sám restartuje).
Přihlašovací údaje AP režim
- Výchozí název SSID Wi-Fi sítě je "OSPy-Controller-M5stick" a výchozí heslo je "ospy-m5stick-c"
- Adresa pro webový prohlížeč je "http://192.168.1.1"
- Heslo pro změnu FW v ovladači je "fg4s5b.s,trr7sw8sgyvrDfg"
AP je nastaveno co dál?
Po restartu (po nastavení AP) se ovladač připojí k Wi-Fi síti, stáhne si síťový NTP čas a stáhne si z OSPy seznam programů (názvy a počet programů).
HW s ESP32 má náklonoměr, tak se nám bude LCD displej sám otáčet o 180 stupňů (user-friendly :-) )
- Výběr programů se provádí bočním tlačítkem a spuštění se provede horním tlačítkem s nápisem "M5"
Neduhy
- LCD neumí UTF8 a tak pokud máme jméno programu s diakritikou bude zobrazeno místo háčků a čárek podtržítko _
- Řešením je si v OSPy programy přejmenovat
- FW je ve verzi 1.00 a může trpět nějakým problémem (zatím jsem na nic nenarazil)
HW docs
https://docs.m5stack.com/en/core/m5stickc
RED LED & IR Transmitter & BUTTON A & BUTTON B
ESP32 | GPIO10 | GPIO9 | GPIO37 | GPIO39 |
RED LED | LED Pin | |||
IR Transmitter | Transmitter Pin | |||
BUTTON A | Button Pin | |||
BUTTON B | Button Pin |
TFT LCD
Driver IC:ST7735S
Resolution:80 * 160
ESP32 | GPIO15 | GPIO13 | GPIO23 | GPIO18 | GPIO5 |
TFT LCD | TFT_MOSI | TFT_CLK | TFT_DC | TFT_RST | TFT_CS |
GROVE PORT
ESP32 | GPIO33 | GPIO32 | 5V | GND |
GROVE port | SCL | SDA | 5V | GND |
MIC (SPM1423)
ESP32 | GPIO0 | GPIO34 |
MICPHONE | SCL | SDA |
6-Axis posture sensor (SH200Q/MPU6886) & power management IC (AXP192)
ESP32 | GPIO22 | GPIO21 |
6-Axis IMU sensor | SCL | SDA |
power management IC | SCL | SDA |
AXP192
Microphone | RTC | TFT backlight | TFT IC | ESP32/3.3V MPU6886/SH200Q | 5V GROVE |
LDOio0 | LDO1 | LDO2 | LDO3 | DC-DC1 | IPSOUT |
Charging current measured value
charging current | Fully charged current(Power OFF) | Fully charged current(Power ON) |
0.488A | 0.066A | 0.181A |