Les quiero compartir un proyecto que es muy divertido y muestra la facil que es hacer proyecto en arduino, un chatbot es un sistema automatizado en mensajeria, que responde mensaje o manda dependiento del codigo, lo genial es poder mandar ordenes a nuestro arduino por nuestro celular y que nos informe si algo pasa; hay muchos programa de mensajería como Facebook Masenger o whatsapp o skype y esta ves les mostrá con un programa libre que es muy similar a Whatsapp que es telegram. este es mi primera ves que comparto algo por aqui en el foto de Arduino espero les guste
Video Youtube
si quieren este proyecto pero en video aqui esta la playlist:
IDEA
Tendremos nuestro Arduino, una PC o RasberryPi y conexiona a Internet , conectando el Arduino usando cable usb; desde nuestro celular por medio de Telegram podramos mandar el mensaje "Encender" se encendera el led; si mandamos "Apagar" se apaga el LED, al precionar un boton en nuestro arduino nos manda un mensaje a nuestro celular
Diagrama:
Codigo de Arduino:
int Boton = 2;
int Led = 9;
void setup() {
Serial.begin(9600);
pinMode(Boton, INPUT_PULLUP);
pinMode(Led, OUTPUT);
}
void loop() {
if (digitalRead(Boton) == 0) {
Serial.println("H");
delay(500);
}
if (Serial.available()) {
char Letra = Serial.read();
if (Letra == 'H') {
digitalWrite(Led, HIGH);
}
else if (Letra == 'L') {
digitalWrite(Led, LOW);
}
}
}
Crear Bot
Necesitamos crear un bot, desde nuestra aplicasion de Telegram o pagina web en nuestra PC, hablamos con, botfather y le mandamos el comando:
/newbot
y nos pregunta el nombre del bot y el username (este tiene que terminar con bot, el usuario debe ser unico), nos dara un token que usaremos para automedicarnos cuando usemos el nodejs
Nodejs
Descargar Nodejs: Node.js
Nodejs es una heramienta que se utiliza en terminal por lo cual abre tu terminal ya sea cmd o la linux terminal o la de mac, crearemos un folder para el proyecto y entramos a esa carpeta por lo cual puede hacer el siquiente comando
mkdir chatbot
cd chatbot
y como creamos un nuevo paquete nodejs para esto ejecutamos el comando
npm init
nos pregunta algunas pregunta, nombre del proyecto, vercion, creador y otras; todas le damos enter o escribimos otro valor si lo deseamos
para instalar las librerias usamos este codigo:
npm i node-telegram-bot-api
npm i serialport
por ultimo en nuestro arduino ide veremos en que puerto esta el arduino como COM5 o /dev/ttyUSB0
y ponemos el token
dentro de nuestra carpeta creamos un archivo llamado index.js con el siquiente codigo
const TelegramBot = require('node-telegram-bot-api');
const token = 'xxx';//Cambiar por el token de telegram
const bot = new TelegramBot(token, {
polling: true
});
var IdMiChat = 000;//cambiar por tu ID del chat
var SerialPort = require('serialport');
var MiPuerto = new SerialPort('PuertoArduino', {
baudRate: 9600,
autoOpen: true
});
bot.on('message', (msg) => {
const chatId = msg.chat.id;
console.log("El ID del char" + chatId);
var Mensaje = msg.text;
if (Mensaje == "Encender") {
console.log("encendiendo el led");
bot.sendMessage(chatId, 'Encendere el led');
MiPuerto.write("H");
} else if (Mensaje == "Apagar") {
console.log("apagar el led");
bot.sendMessage(chatId, 'Apagare el led');
MiPuerto.write("L");
}
});
MiPuerto.setEncoding('utf8');
MiPuerto.on('data', function(data) {
console.log("Lo que entro es " + data);
if (data[0] == 'H') {
console.log("Boton Precionado");
bot.sendMessage(IdMiChat, "Se preciono el boton");
}
});
para ejecutarlo usamos
node index.js
y para matarlo usamos Ctrl + c
Hoy podemos mandar el mensaje Encender o Apagar, se encendera el led Yeah.....
para recivir el mensaje cuando mandamos nos muestra un terminal, un numero que es el ID con nuesro chat copiamos y lo pegamos en IdMiChat y con eso la poxima ves que lo ejecutemos el codigo si precionamos el boton nos enviaran un mensjae.
Espero que esta media explicasion les ayude a entender, si desea mas a profundidas les recomiendo ver el video.
Esta es mi primera ves, nos vemos en otro foro