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 ![]()
