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 | 
 
                  
                              
