Whitecat ESP32 N1
Introducció
La Whitecat ESP32 N1 (https://whitecatboard.org/) és una placa de prototipat desenvolupada al Citilab (https://www.citilab.eu/) de Cornellà basada en el chip ESP32 de Espressif i el mòdul LoRa RFM95 de HopeRF.
La placa es pot connectar fàcilment a una placa de prototipat (breadboard) o es pot fer servir la carrier que venen ells mateixos i que disposa de sortides per cada GPIO a més d'específiques per I2C o SPI.
Requeriments
La Whitecat ESP32 N1 es programa des del navegador. Per disposar de l'entorn funcional caldrà:
- Disposar d'una versió actual de Google Chrome (només funciona amb aquest navegador, de moment)
- Instal·lar el Whitecat Agent (veure instruccions aquí: https://github.com/whitecatboard/whitecat-create-agent/wiki)
- Optionalment (recomanat) actualitzar el firmware amb la utilitat wcc (veure instruccions aquí: https://github.com/whitecatboard/whitecat-console)
Un cop fet farem doble click a la icona del Whitecat Agent que es quedarà a la safata d'inici. Des de l'agent es pot obrir l'IDE en el navegador. Si tinguèssim un altre navegador per defecte que no fos Google Chrome haurem d'obrir aquest últim a mà i navegar a https://ide.whitecatboard.org on ens demanarà logar-nos fent servir el nostre compte de Google i ens obrirà l'entorn de programació.
L'entorn de programació és ne realitat dos entorn: un de blocs basat en Blockly (https://developers.google.com/blockly/) i un de text per programar la placa en Lua.
Mode blocks
En el mode blocs tindrem una sèrie de blocs ja predefinits agrupats per temàtica (events, control, operadors, llistes,...). També inclou un munt de sensors predefinits i també connectivitat (WiFi, LoRa, MQTT). Alguns dels blocs són de configuració (no tenen representació visual) com per exemple el que ens permet definir l'SSID i la clau de la WiFi a la que volem que es connecti.
Programació amb Lua
L'entorn de programació Lua et permet un control més detallat del teu codi.
function init() lora.attach(lora.BAND868) lora.setAppEui("0000000000000000") lora.setAppKey("00000000000000000000000000000000") lora.setDr(0) lora.setAdr(false) lora.join(lora.OTAA) end function send(counter) lora.tx(true, 1, pack.pack(counter)) end function sleep(n) local t = os.clock() while os.clock() - t <= n do -- nothing end end init() local counter = 0 while(true) do send(counter) counter = counter + 1 sleep(60) end