Simulem el sistema d’alarma amb un polsador que quan el premem, se encén un Led i el NodeMCU detecta el canvi i envia una notificació al nostre bot de Telegram. La placa NodeMCU que disposa de WiFi es comunica amb el nostre bot de Telegram i envia missatges.
Placa NodeMCU que te WiFi integrat.
Pulsador.
Led.
Una resistències de 330 Ω i un altre de 1 KΩ.
IDE de Arduino.
App Telegram instal·lada en el mòbil o en el ordinador.
Universal Telegram Bot Library.

https://randomnerdtutorials.com/telegram-esp8266-nodemcu-motion-detection-arduino/
Fem servir la App de Tinkercad

Bot es una aplicació que corre a dins de Telegram. Aquest programari serveix per enviar missatges i per altres activitats repetitives. El usuari controla el bot enviant peticions HTTPS a Telegram Bot API. El ESP8266 interactua amb el Bot de Telegram enviant missatges. Quan el sensor es dispara, rebem un missatge al mòbil.
En Play Store descarregem Telegram i l’obrim:

En el buscador de Telegram escrivim BotFather:

A partir d’ara i cap endavant canviem la App de Telegram del mobil per la App del ordinador, la vista es diferent però el contingut es igual. En el xat de BotFather, es mostra la següent informació. Escrivim :
/start

Per obtenir el nostre Bot, escrivim:
/newbot
En el buscador de Telegram escrivim BotFather:

En el nostre cas el nom del Bot es TresavisBot i el usuari UserTresavisBot.
Si s’ha creat satisfactòriament el Bot rebem un bot token, farem servir aquest token perquè el ESP8266 interactuï amb el Bot. El guardem, al igual que el nom del bot i el del usuari.
Qualsevol si coneix el nom del usuari del bot pot interactuar amb ell. Per seguretat es te que obtenir el UserID.
En el buscador escrivim IDBot. En el xat de IDBot escrivim:
/start
/getid

Guardem el IDBot per poder utilitzar-lo per realitzar la practica.
Creada per Brian Lough per poder treballar amb el Bot de Telegram.
Descarrega la llibreria, aqui.
Anar a Esbós > Inclou biblioteca > Afegeix biblioteca .ZIP i buscar la nova llibreria descarregada.
IMPORTANT: NO instal·lar la llibreria amb el gestor de biblioteques, perquè la versió no esta actualitzada.
Per instal·lar-la ho fem amb el gestor de biblioteques:
Anar a Esbós > Inclou biblioteca > Gestiona les biblioteques...
Busquem ArduinoJson i la instal·lem.
Tenim que posar el SSID i la contrasenya de la nostre WiFi. També el Telegram Bot token i el User ID.
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <UniversalTelegramBot.h> #include <ArduinoJson.h> // La WiFi const char* ssid = "--------"; const char* password = "*************"; // Initialitzem Telegram BOT // Bot Token obtingut del Botfather #define BOTtoken "************************************; // Usem idbot per obtenir el userID #define USER_ID *********; // Per poder enviar i rebre missatges primer escrivim "/start" en el bot WiFiClientSecure client; UniversalTelegramBot bot(BOTtoken, client); bool esdevenimentDetectat = false; #define sensor 5 // Pot se qualsevol Sensor // Indica quant el esdeveniment es detectat void ICACHE_RAM_ATTR detectarEsdeveniment() { esdevenimentDetectat = true; } void setup() { Serial.begin(115200); client.setInsecure(); // Sensor en modo INPUT_PULLUP pinMode(sensor, INPUT_PULLUP); // Pin sensor com interruptor, assignem la functió de interrupció attachInterrupt(digitalPinToInterrupt(sensor), detectarEsdeveniment, RISING); // Connectar a la xarxa Wifi: Serial.print("Connectant Wifi: "); Serial.println(ssid); WiFi.mode(WIFI_STA); //en modo Station WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); Serial.print("IP address: "); Serial.println(WiFi.localIP()); // Enviem el primer missatge bot.sendMessage(USER_ID, "Bot INICIAT", ""); } void loop() { if(esdevenimentDetectat){ bot.sendMessage(USER_ID, "esdeveniment detectat!!", ""); Serial.println("esdeveniment Detectat"); esdevenimentDetectat = false; } }
Creem un nou WiFi client:
WiFiClientSecure client;
Creem un Bot amb el token i el client:
UniversalTelegramBot bot(BOTtoken, client);
Funció detectarEsdeveniment():
Es una funció callback que al trobar un esdeveniment canvia el estat de la variable esdevenimentDetectat de false a true.
// Indica quant el esdeveniment es detectat void ICACHE_RAM_ATTR detectarEsdeveniment() { esdevenimentDetectat = true; }
Seguretat:
client.setInsecure();
Fem servir client.setInsecure(). Pero per información mes important es millor usar: client.setFingerPrint();
Configurem el sensor com un interruptor i quant nota canvis, s’executa la funció detectarEsdeveniment()
// Pin sensor com interruptor, assignem la functió de interrupció attachInterrupt(digitalPinToInterrupt(sensor), detectarEsdeveniment, RISING);
Envia un missatge indicant que el Bot s’ha iniciat:
// Enviem el primer missatge bot.sendMessage(USER_ID, "Bot INICIAT", "");
loop():
Si troba un canvi envia missatge al Bot i torna a iniciar esdevenimentDetectat a false.
void loop() { if(esdevenimentDetectat){ bot.sendMessage(USER_ID, "esdeveniment detectat!!", ""); Serial.println("esdeveniment Detectat"); esdevenimentDetectat = false; } }
El mar.
Havaneres.
Lloret antic.
Lloret avui.
De cala Morisca a Sa Carabera.
De Sa Carabera a Treumal.
Lloret en kayak.
Vígilancia remota.
Caixa-tpv.
Cambrer-app.
Client webApp.
Relats del banc del si no fos
Històries d'ahir
Vídeos antics de Lloret
El caiac
Contes de l'avi.
Control d’accés amb contrasenya.
Orgue de llums.
Comparativa de editors Arduino.
Projecte bon Nadal.
Control de la qualitat del aire interior (CO2) amb semàfor LED.
NodeMCU-ThingSpeak
ThingSpeak.
NodeMCU com AccessPoint.
Control de la llum de casa per web.
Control de un led per el mòbil.
Sistema de fitxers en ESP8266.
Altura del nivell d'aigua.
Avis d’alarma a Telegram.
Control de la intensitat de llum de un LED per Internet.
Magatzematge de temperatura i humitat en Thinger.
Publicar temperatura i humitat en Google Sheets.
ESP8266 i Firebase.
La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega.
ESP32-CAM
ESP32-CAM captura fotos per ser vistes en la WEB.
Pujar fotos a un servidor FTP amb ESP32-CAM.
MicroPython en ESP8266.
Visual Estudio Code per Arduino.
Classificador d’imatges.
Instal·lar i configurar Apache en Ubuntu.
Accés a un servidor Linux remotament.
Client i Servidor FTP.
Màquina virtual UBUNTU.
WindowsXP en Virtualbox.
Multisim, simulador de circuits electrònics.
Proteus, simulador de circuits electrònics.
MySQL. Instal·lació.
MySQL. Aplicacions.
Netbeans Maven MySQL.
Java+Netbeans+Maven+EclipseLink+Mysql
Aplicació d’escriptori JavaFX
App JavaFX amb SceneBuilder
App Java-Swing






Noves tecnologies WEB Arduino Domótica MycroPython NodeMCU IoT Java ESP8266 Lora C++ Programació Server-Client