Arduino MKR1000 e Telegram con sensore di temperatura e umidità ( e piantina da innaffiare tramite chat)

Vedrò di essere di poche parole. Aprite Arduino IDE e importate le librerie (sketch ->includi libreria -Aggiungi libreria da zip):

  1. importate la libreria Telegram per Arduino
  2. importate le libreria per DHT11 il sensore di temperatura e umidità
  3. collegate il vostro mkr1000 al vostro PC o Mac.

 

Nel caso del Mac dopo miriadi di prove ho scoperto che l’Arduino IDE non riconosceva l’MKR1000  (benché nelle proprietà USB del MAC fosse correttamente visibile) perché una volta collegato va fatto doppio click sul pulsante di reset. Solo allora viene visto. ricordatevi di importare la libreria SAMD dalla sezione board:

 

SAMD

ora lo vedrete tra le board e le porte usb.

  1. aprite Telegram e cercate l’utente BotFather
  2. Digitate /newbot e scegliete un nome e uno username (finisce con bot). Nel mio caso piersoftbot
  3. Vi verrà dato un token che dovete trascrivere.

Scaricate il telegram_bot_dht_demo.ino e compilate dentro la rete wifi con la password, il token nome e username del bot.

Nel codice sono commentati tutti i comandi seriali che si vedrebbero nel Serial Monitor. per il Debug abilitateli se volete.

telegram+arduinoscreen

Alla fine, accendete il vostro arduino, andate in chat con il vostro Bot e digitate temp o hum ( o cliccate sulla tastiera che faccio creare per agevolare la chat):

Schermata 2016-08-13 alle 19.10.57

 

Schema:

mkr100-DHT11

ovvio che se si vuole togliere il sensore di umità e temperatura DHT11 e mettere uno per il benzene o pressione atmosferica o umidità del terreno, cambia poco. e magari a comando far partire per 10 secondi una pompetta per innaffiare collegata con un relè ad un altro pin ect 🙂

Provate il demo su Telegram cercando @piersoftbot

Buone ferie!

Piersoft

 

Addendum: volendo si possono inviare online anche i dati per alimentare un database open, a cui si possono collegare grafici realtime e collegare ad esempio una pompetta per innaffiare una pianta. esempio in produzione:

  1. registratevi su data.sparkfun.com creando un nuovo stream. inserite come variabili temp, umidity, terreno. annotatevi la publickey e privatekey che dovete inserire nel codice arduino
  2. se volete anche i grafici realtime fate l’upload del file index.html (lo trovate QUI ). inserite nella riga 19 la publickey del punto 1.
  3. comprate una pompetta da acquario da 12V (esempio1 , esempio2 , esempio 3) e un relè da 220v a cui va collegato un alimentatore da 12V. Prendete una prolunga elettrica, tagliate il cavo positivo come se volesse mettere un interruttore ma i due lembi del cavo (uno verso la spina maschio e l’altra femmina per capirci) li inserite nel relè . sempre nel relè collegate l’Arduino al GND, VCC e al PIN 8 ( o dove volete). quando il pin 8 è in stato high, allora la corrente da 220V passa e quindi alla prolunga potete collegare anche una caldaia o un alimentatore che alimenta a 12V la pompetta 🙂
  4. il sensore igrometro per terreno va immerso nel vaso con la pianta. mi sono trovato male con i sensori economici perché la sonda che entra nel terreno, dopo circa 1 mese era tutta ossidata e mangiata. per cui ho sostituito la sonda con due viti senza fine da circa 10cm a cui ho collegato i cavetti. ho messo un piccolo distanziatore di plastica per renderle parallele e le ho immerse nel terreno. la board dell’igrometro , è collegata all’Arduino a GND, VCC e A0.

In pratica l’Arduino ha 2 input e 1 output. Igrometro e Sensore Umidità/Temperatura vengono letti e quando l’igrometro segna più di 400 dal pin A0 (differenza di potenziale tra 0 che si ottiene con la sonda immersa in acqua e 1023 con il terreno secco cioè circuito aperto) allora l’aArduino mette in stato high il relè collegato al pin 8 e quindi la pompetta per acquario pesca l’acqua da una bottiglia e per 10 secondi innaffia la piantina. Contemporaneamente tramite Telegram si può interrogare anche l’Arduino e chiedere il valore istantaneo dell’umidità, della temperatura e del terreno. tramite comando “segreto” potete manualmente far partire la pompetta dell’acqua ( ma può essere la caldaia, l’apertura del garage, ect ect ) . Inoltre tutti i dati vengono inviati a datasparkfun ogni tot minuti (nel mio caso 10-15) e da questi si possono fare grafici realtime come per il punto 2.

Il codice Arduino per la versione completa lo trovate QUI (rev2)

Eccovi la pagina con i grafici realtime: http://www.piersoft.it/mkr1000/

Schermata 2016-08-16 alle 10.52.33

pianta1 pianta2

Potrebbero interessarti anche...

4 Risposte

  1. Martina ha detto:

    Sono felice nel vedere che una piattaforma così versatile come arduino venga utilizzata per fare questi “esperimenti” con successo. Pensa mio nipote si fissato con arduino, ha iniziato a utilizzarlo a scuola e adesso ci sta attaccato minimo 2 ore al giorno ed è veramente bravo.

  2. Marco La Manna ha detto:

    A me da questi errori: Arduino:1.8.0 (Windows 7), Scheda:”Arduino/Genuino Uno”

    C:\Users\Dario\AppData\Local\Temp\Rar$DIa0.627\telegram_bot_dht_demo.ino\telegram_bot_dht_demo.ino.ino:16:26: fatal error: WiFiSSLClient.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Errore durante la compilazione per la scheda Arduino/Genuino Uno.

    Questo report potrebbe essere più ricco di informazioni abilitando l’opzione
    “Mostra un output dettagliato durante la compilazione”
    in “File -> Impostazioni”

    mi puoi aiutare?

Rispondi