Arduinoblocks

Maquinari

Abans de començar amb la programació és interessant que coneguem el dispositiu que ens facilitarà la connexió a Internet. En el nostre cas farem servir l'antena WiFi ESP-01

Utilitzar ESP-01 com a perifèric Wifi en ArduinoBlocks

El mòdul ESP-01 basat en el microcontrolador ESP8266 és una opció senzilla i econòmica per a afegir connectivitat Wifi al nostre Arduino

L'opció més senzilla i recomanada és utilitzar un adaptador per a facilitar la connexió seriï al nostre Arduino

D'aquesta forma només necessitem connectar els pins VCC,GND de l'adaptador i els pins RX, TX per a rebre i enviar informació a dos pins de Arduino (similar a un mòdul Bluettoth HC-06).

Configuració de la velocitat de comunicació

El mòdul ve preconfigurat per a funcionar a 115200 bps pel que només seria possible connectar-lo als pins 0,1 de Arduino.

Si volem utilitzar-ho en altres pins (per a no interferir en la programació i no haver d'estar desconnectant cada vegada) hem de reprogramar-ho, per a funcionar a 9600 bps per exemple.

A partir d'aquest moment ja podem treballar amb el mòdul en qualsevol pin de Arduino, per exemple utilitzarem els pins 2,3

Programació amb Arduinoblocks

ArduinoBlocks té un apartat específic on hi ha els blocs que permeten fer la connexió Internet. Aquest apartat és MQTT

Dins l'apartat MQTT d'ArduinoBlocks trobem blocs que ens permeten Fer una connexió a un Broker (En el nostre cas ThingSpeak). Aquesta connexió la podem fer via WiFi o via connexió per cable amb Ethernet.

També hi ha els blocs per subscriure o publicar dades a Internet (En el nostre cas al broker ThingSpeak)

Inicialitzar la connexió WiFi

El primer que farem és configurar la connexió a la xarxa WiFI i al nostre broker (ThingSpeak).

Per això cal el bloc d'iniciar (ESP8266 WiFi) i situar-lo dins el nostre codi a l'apartat d'Inicialitzar.

A aquest bloc hem de posar:

  • De l'antena WiFi
    • Els pins on s'ha connectat l'antena WiFi a la placa Arduino. (Atenció que el RX i TX de la placa i de l'antena estan girats (On un envia l'altra rep)
    • La velocitat de comunicació a la que està configurada l'antena WiFi
  • Les dades de la xarxa WiFi on s'ha de connectar
  • Les dades per accedir al broker ThingSpeak

Subscripció a un tema MQTT

A més en aquest projecte volem llegir les dades que hi ha ThingSpeak per saber quina il·luminació i música s'ha d'activar.

Per això ens hem de subscriure a un tema MQTT

ArduinoBlocks té un bloc especific per configurar la subscripció a un tema amb ThingSpeak

El bloc de la subscrició de ThingSpeak s'ha de posar dins del bloc de la subscripció al tema MQTT.

I com es tracta d'una subscripció s'ha de posar a la Inicialització d'ArduinoBlocks.

La varNum és la variable on s'actualitzarà dins d'ArduinoBlocks el valor del camp triat de ThingSpeak. És interessant renombrar la variable varNum amb un nom que ens ajudi a entendre el programa. Un nom coherent podria ser "IndexNeoPixel" per exemple.

A la següent imatge mostra on s'ha de buscar les dades a ThingSpeak per configurar aquests blocs de subscripció al tema.

Exemple de programa

Al següent programa fem la subscripció a 2 temes. Un tema el fem servir per activar o desactivar un Led i l'altre tema per triar el color de la tira de NeoPixel

Per saber-ne més:

Atenció al vídeo hi ha un error:

  • Al minut 8:34 del vídeo ens diu que la Clave és el password de ThingSpeack. això no és correcte.
  • La Clave és també al My Profile de ThingSpeack però és el camp: MQTT API Key.
  • llistaTempsCanco1: A aquesta llista hi ha les instruccions per tal de controlar l'instrument segons cada cançó.

1.- bpm (Tempo: beats per minut) només informa del tempo de cada cançó. És únic per tota la cançó) Els punts 2, 3, 4, 5 i 6 es van repetint tants cops com calgui per cada cançó)

2.- SegonsOn (Segons quan s'ha d'activar)

3.- SegonsOff (Segons quan s'ha de desactivar)

4.- PasDeBall

- 1: Sempre encés

- 2: Sempre apagat

- 3: S'encén i s'apaga seguint el Tempo

- 4: S'encén de 1 en 1 (només un LED)

- 5: S'encén de 1 en 1 (Mantenint els es van encenent)

5.- Potènica (Quan la Potènica sigui variable es calcularà el temps en que ha d'estar ON o sigui (SegonsOff - SegonsOn) i es mirarà de la variació sigui proporcional dins aquest temps)

- Número del 0 al 100 positius és el % de potènica a la que s'han d'activar "Potència fixa"

- Números del 101 al 200 la potència va creixent del 0 fins el % indicat en el número que hi ha entre el 101 i el 200. ex: si hi ha un 150 la potència va creixent del 0 fins al 50%

- Números del 201 al 300 la potència va decreixent del valor indicat fins el 0%

- Números del 301 al 400 la potència va creixent del valor indicat fins el 100%. ex: si hi ha un 350 la potència va creixent del 50% fins al 100%

- Números del 401 al 500 la potènica ca decreixent del 100% fins el valor indicat.

6.- Color

- Segons la llista de colors (del 0 al 9)

- Si el número va del 10 al 20 llavors seran tons semblants als valors RGB triats però fixes)