jueves, 9 de enero de 2020

Control de 8 salidas mediante comunicación serie. Arduino controla LEDs y ESP-12 Nodemcu controla Arduino.

El ESP-12 va a estar conectado a Internet mediante wifi y, uilizando un bot de telegram, apagará y encenderá los LEDs. Los comandos serán los mismos que en los proyectos anteriores.

De momento queda aparcado.
Pongo los códigos del ESP-12 que funcionan con el bot. No se si a otras personas les funcionará porque hace algún tiempo que lo hice y casi he olvidado el procedimiento.

En cualquier caso, cuando lo retome haré un bot nuevo porque voy a compartir sus códigos.

Creo que quien lo utilice debería hacer lo que yo y conectar el ESP-12 a una red de invitados para que no pueda acceder a la LAN.

Está sacado de otro proyecto, ya no recuerdo de donde lo saqué, pero será sencillo encontrarlo con los comentarios que tiene. Recuerdo que estaba bien documentado y me costó poco hacerlo funcionar.

Código:
//Alarma con esp8266 Nodemcu mini y sensor radar RCWL-0516
//Activación y notificación con Telegram
        // ¡¡¡¡¡¡USAR CON LIBRERIA ARDUINOJSON VERSION 5.13.5!!!!!
//En IDE ir a Programa->Incluir librería->Gestionar librerias->Arduinojson->seleccionar version


//
//

/*
 * https://forum.arduino.cc/index.php?topic=578384.0
 * http://www.jopapa.me/telegramesp8266.html
 * http://www.jopapa.me/alarmamicroondas2.html
 */

/*
 * imbita2 ya le da la IP 192.168.1.188 al ESP8266
 */

/*
 * Este funciona bien
 * Escribiendo en el chat On
 *  responde:Alarma activada y cada 1/2 segundo escribe Alarma en bibilioteca
 * Escribiendo en el chat Off
 *  responde Alarma desactivada
 */


#include "CTBot.h"   //Libreria para Telegram version 1.4.0
CTBot myBot;
String ssid = "imbita2";   
String pass = "qwertyuiop";
//Poner tu Telegram BOT TOKEN
String token = "1005110195:AAHskbRUYrXig7Hy5nqbguJLeXS6zfnG_M4";  
boolean alarma = false;
boolean activa = false;   //Estado de la alarma
long id=14322944;  //chat_id
void setup() {
Serial.begin(115200);
myBot.wifiConnect(ssid, pass);
myBot.setTelegramToken(token);
pinMode(2,OUTPUT);    //LED que confirma alarma activa
pinMode(D3, INPUT);  //Para leer el OUT del RCWL-0516
digitalWrite(2, HIGH); //LED apagado
// ¿Todo va bien?
if (myBot.testConnection())
  Serial.println("\nConexion OK");
else
  Serial.println("\nConexion fallida");
}

void loop() {
// almacena mensaje telegram recibido
TBMessage msg;
myBot.getNewMessage(msg);

if ((msg.text)=="On"){
  digitalWrite(2, LOW);
  activa = true;
  myBot.sendMessage(msg.sender.id, "Alarma activada"); 
}
if ((msg.text)=="Off"){
  digitalWrite(2, HIGH);
  activa = false;
  myBot.sendMessage(msg.sender.id, "Alarma desactivada"); 
}

alarma = digitalRead(D3);
if ((alarma == HIGH) && (activa == true)) {
  myBot.sendMessage(id, "Alarma en biblioteca");
  delay(500);  //evita repetición notificación
}
delay(50);
}

No hay comentarios:

Publicar un comentario