Predisposto l’IDE per la programmazione di Arduino MKR1000 (Scheda SAMD e Libreria WiFi101), e dopo aver creato un BOT di Telegram, è possibile, installando le librerie TelegramBot e Json, utilizzare i Bots di Telegram per controllare la scheda.
Per installare la libreria TelegramBot occorre andare al menù
Sketch -> #include libreria -> Gestione librerie…
Si aprirà la seguente finestra dalla quale ricercando TelegramBot () si potrà, clickando sulla libreria trovata, installare l’ultima versione:
Così come per la libreria Json:
Una volta predisposto l’IDE possiamo passare alla scrittura del programma dell’esempio, cioè la Accensione e Spegnimento di un Led tramite messaggi Telegram:
-
CONTROLLO LED CON MESSAGGI TELEGRAM
/* * Questo programma collega Arduino MKR1000 con il Telegram Bot attraverso * il Token Bot e resta in attesa di messaggi. * Se il messaggio è "On" accende il Led e risponde su telegram "Il LED è ON" * se invece è "Off" spegne il Led e risponde "Il LED è OFF" */ #include <WiFi101.h> #include <TelegramBot.h> char ssid[] = "XXXXXXXXXXXXX"; // network SSID char pass[] = "XXXXXXXXXXXXX"; // network password // Initialize Telegram BOT const char BotToken[] = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; // Token Bot int status = WL_IDLE_STATUS; WiFiSSLClient clientBot; TelegramBot bot(BotToken,clientBot); const int ledPin = 12; void setup() { Serial.begin(9600); // setta la connessione wifi: NetworkConnection(); printWifiStatus(); bot.begin(); pinMode(ledPin, OUTPUT); } void loop() { message m = bot.getUpdates(); // Legge un nuovo messaggio if (m.text.equals("On")) { digitalWrite(ledPin, HIGH); Serial.println("messaggio ricevuto"); bot.sendMessage(m.chat_id, "Il LED è ON"); } else if (m.text.equals("Off")) { digitalWrite(ledPin, LOW); Serial.println("messaggio ricevuto"); bot.sendMessage(m.chat_id, "Il LED è OFF"); } } // connessione alla rete WIFI void NetworkConnection() { // attesa per la connessione Wifi while ( status != WL_CONNECTED) { Serial.print("In attesa di connessione a SSID: "); Serial.println(ssid); status = WiFi.begin(ssid, pass); // ritardo di 10 sec per permettere la connessione iniziale alla rete Wifi: delay(10000); } } void printWifiStatus() { // stampa SSID della rete Wifi Serial.print("SSID: "); Serial.println(WiFi.SSID()); // stampa IP della scheda Wifi dell'Arduino MKR1000 IPAddress ip = WiFi.localIP(); Serial.print("Indirizzo IP: "); Serial.println(ip); // stampa il valore dell'intensità del segnale Wifi long rssi = WiFi.RSSI(); Serial.print("Potenza segnale (RSSI):"); Serial.print(rssi); Serial.println(" dBm"); }
Link correlati: