×

ARDUINO

Control d’accés amb contrasenya. Orgue de llums. Comparativa de editors Arduino. Projecte bon Nadal. Sensor de gas i de fums. Control de la qualitat del aire interior (CO2) amb semàfor LED.

NodeMCU

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 llum de casa des de 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. ESP8266-BME280 Firebase. La bàscula. ESP8266 NodeMCU amb cèl·lula de càrrega..

ESP32

ESP32-CAM, exemple de prova. Esp32-Cam captura fotos per ser vistes en la WEB. Pujar fotos a un servidor FTP amb ESP32-CAM. Foto amb ESP32-CAM i Telegram. Alarma amb avis a Telegram, utilitzant la placa ESP32-CAM.

PROGRAMACIÓ

Matemàtiques. App Inventor tutorial. MicroPython en ESP8266. Visual Estudio Code per Arduino

Intel·ligència artificial

Classificador d’imatges.

SERVIDORS

Instal·lar i configurar Apache en Ubuntu. Accés a un servidor Linux remotament. Client i Servidor FTP.

MÀQUINES VIRTUALS

Màquina virtual UBUNTU. WindowsXP en Virtualbox.

ELECTRÒNICA

Simulador Multisim. Simulador Proteus.

BASE DE DADES

MySQL. Instal·lació. MySQL. Aplicacions.

JAVA

Netbeans Maven MySQL. Java+Netbeans+Maven+EclipseLink+MySQL Aplicació d’escriptori JavaFX App JavaFX amb SceneBuilder App Java-Swing
favicon
logo

Tresavis

Benvinguts al blog de tresavis de noves tecnologies i més.

Correu : tresavis3@gmail.com

facebook   Instagram   youtube   x   tiktok

☰ Pràctiques   ☰ Articles

Descripció:

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.

Componets:

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.

funcionament

Bibliografia.

https://randomnerdtutorials.com/telegram-esp8266-nodemcu-motion-detection-arduino/

Circuit

Fem servir la App de Tinkercad

circuit

Crear un bot en Telegram.

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.

Pas 1. Instal·lar Telegram al mòbil.

En Play Store descarregem Telegram i l’obrim:

telegram

Pas2. Busquem el BotFhather.

En el buscador de Telegram escrivim BotFather:

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

bot1

Per obtenir el nostre Bot, escrivim:

/newbot

Pas 3. Posem el nom del Bot i el nom del usuari.

En el buscador de Telegram escrivim BotFather:

bot2

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.

Pas 4. Obtenir el UserID.

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

bot3

Guardem el IDBot per poder utilitzar-lo per realitzar la practica.

Preparant el IDE de Arduino.

PLlibreria Universal Telegram Bot Library.

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.

ArduinoJson Library.

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.

CODI.

Tenim que posar el SSID i la contrasenya de la nostre WiFi. També el Telegram Bot token i el User ID.

BotTelegram.ino


#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;
  }
}
                

Explicació del codi.

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;
  }
}

Resultat.

Contingut.


Nosaltres

pescadors
avio

Can Sota

canSota

La Casa Nova

casaNova

Cal Barraquer

pescadors

Cal Barraquer

avio

La intenció és el que compta.


Val més tard que mai.


Una cosa és dir i una altra fer.



Tags

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