Diferència entre les pàgines «MKR WAN 1300» i «Whitecat ESP32 N1»

De The Things Network Catalunya Wiki
(Diferència entre pàgines)
Jump to navigation Jump to search
 
 
Línia 1: Línia 1:
 
'''Introducció'''
 
'''Introducció'''
  
El MKR WAN 1300 és un més de la nova familia MKR d'Arduino. La familia inclou el MKR ZERO, el MKR 1000 amb WiFi, el MKR FOX 1200 (amb suport SigFox) el MKR WAN 1300 i el MKR GSM 1400.
+
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.  
  
  
[[Fitxer:20180130 012920s.jpg|600px|center]]
+
[[Fitxer:Whitecatn1-mini.png|600px|center]]
  
  
Tots ells tenen un [http://ww1.microchip.com/downloads/en/DeviceDoc/40001882A.pdf SAMD21 ARM Cortex-M0+ de 32bit] i baix consum. El controlador treballa a 48MHz, té 256Kb de memòria per emmagatzemar programes i 32Kb de SRAM. Això el fa molt més potent que un Uno o Leonardo (com el The Things Uno) i a mes consumeix d'entrada la meitat. Inclou molts ports IO, la majoria PWM, ADC de fins a 12 bits, UART, SPI i I2C per hardware i fins i tot un DAC.
+
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.
 
 
EL mòdul LoRa és un [https://wireless.murata.com/eng/products/rf-modules-1/lpwa/type-abz.html Murata CMWX1ZZABZ] que inclou un microcontrolador STM32 que implementa la pila LMIC (compatible LoRaWan) i exposa una interfície AT. Els dos micros (el SAMD21 i el STM32) estan connectats via UART. En el costat del SAMD21 la llibreria MKRWAN permet fer servir l'interfície AT implementada al STM32.
 
 
 
 
 
[[Fitxer:20180130 013102s.jpg|600px|center]]
 
 
 
 
 
El firmware de l'STM32 i la llibreria per el SAMD21 són codi obert i es poden descarregar aquí:
 
 
 
* https://github.com/arduino/mkrwan1300-fw
 
* https://github.com/arduino-libraries/MKRWAN
 
  
 
'''Requeriments'''
 
'''Requeriments'''
  
Per fer servir la MKR WAN 1300 des de l'IDE d'Arduino caldrà instal·lar primer support per plaques basades en el SAMD21. Des de l'IDE ves al menú "Eines > Tarja: ... > Gestor tarjes", busca "MKR" i instal·la el paquet "Arduino SAMD Boards". Un cop fet això en el mateix menú "Eines > Tarja: ..." podràs seleccionar la MKR WAN 1300.
+
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)
  
[[Fitxer:Arduino-ide-gestor-tarjes.jpg|600px|center]]
+
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.
  
[[Fitxer:Arduino-ide-gestor-tarjes-samd21.jpg|600px|center]]
+
'''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.
  
[[Fitxer:Arduino-ide-tarja-mkrwan1300.jpg|600px|center]]
 
  
 +
[[Fitxer:Wcb blocks.jpg|600px|center]]
  
També necessitaràs la llibreria MKRWAN per connectar amb el mòdul LoRa. També des de l'IDE ves al menú "Sketch > Inclou llibreria > Gestiona les llibreries" i busca i instal·la la llibreria "MKRWAN".
 
  
 +
'''Programació amb Lua'''
  
[[Fitxer:Arduino-ide-gestor-llibreries.jpg|600px|center]]
+
L'entorn de programació Lua et permet un control més detallat del teu codi.
  
 +
<pre>
 +
function init()
 +
  lora.attach(lora.BAND868)
 +
  lora.setAppEui("0000000000000000")
 +
  lora.setAppKey("00000000000000000000000000000000")
 +
  lora.setDr(0)
 +
  lora.setAdr(false)
 +
  lora.join(lora.OTAA)
 +
end
  
[[Fitxer:Arduino-ide-gestor-llibreries-mkrwan.jpg|600px|center]]
+
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
  
'''NOTA''': La versió actual de la llibreria MKRWAN és la 1.0.2. Aquesta versió té un bug en el mode ABP i només funciona amb OTAA. El bug ja està solucionat però encara no s'ha alliberat una versió estable. Aquest bug requereix també actualitzar el firmware en el STM32 del mòdul LoRa. Això és pot fer directament des de l'IDE d'Arduino carregant l'exemple MKRWANFWUpdate_standalone que vé amb la llibreria. Tot això quan s'alliberi la nova versió.
+
init()
 
+
local counter = 0
 
+
while(true) do
'''Exemple'''
+
    send(counter)
 
+
    counter = counter + 1
Aquest exemple fa servir OTAA (veure nota anterior) per enviar un número autoincremental cada 60 segons.
+
    sleep(60)
 
+
end
<pre>
 
 
 
 
</pre>
 
</pre>

Revisió de 12:14, 31 gen 2018

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.


Whitecatn1-mini.png


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à:

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.


Wcb blocks.jpg


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