Software pro Z-Button je ve skutečnosti docela jednoduchý, ostatně nechce se od něj nic jiného, než aby na stisk tlačítka udělal HTTP request plus nějaká konfigurační omáčka kolem. Ve skutečnosti je ta konfigurační omáčka v podstatě to nejsložitější.
Software je psaný pro Arduino core for ESP8266. Kromě standardních knihoven FS a ESP8266WiFi používám jenom dvě bežné platformně nezávislé knihovny, Pushbutton a ArduinoJson. První z nich se stará o debouncing stisku tlačítka a druhá o parsování JSON datové struktury. Obě používám čistě z pohodlnosti, jak debouncing tak ukládání konfigurace bych si dokázal napsat sám, ale tyhle knihovny mi ušetří práci a zdrojů má ESP8266 k dispozici dost, takže proč se utápět v sebemrskačství.
Kompletní popis kódu najdete ve videu výše, zdrojové kódy - včetně předchozích proof of concept verzí - pak na GitHubu.
Asi nejsložitější kód se týká práce s konfigurací. Zařízení si musí pamatovat pár konfiguračních hodnot (jsou popsány v dokumentaci), zejména pak vlastní identitu (client ID a secret), adresu kterou má volat v případě stisku tlačítka a samozřejmě název a heslo WiFi sítě. Nastavování konfiguračních hodnot pak probíhá přes sériovou linku. Dá se dělat buďto manuálně, anebo pomocí software pro provisioning, o kterém bude řeč v dalším pokračování.