Hangutasítással elindíthatjuk illetve a dokkolóhoz küldhetjük az iRobot Roombát. Egy korábbi írásomban bemutattam, hogyan adhatunk parancsot ioBroker szerveren keresztül a robotporszívónak. Ebben a cikkben szereplő példához nincs szükség az ioBroker szerverre. Egy Belkin-Wemo emulációval valósítja meg a kapcsolatot közvetlenül az Amazon Echoval.
Ha nem szeretnél barkácsolni, van kész megoldás is:
werbung – amazon.de
A projekthez felhasznált dolgok:
ESP-01 Breadboard Adapter ESP8266-hez
USB Programozóadapter ESP8266-01-modulhoz
MP1584EN 3A feszültségstabilizátor modul
A Roombának soros porton keresztül adhatunk parancsokat. Ez egy mini DIN 7 pólusú csatlakozó az “iRobot Roomba® Open Interface”, a felső burkolat alatt találjuk.
Szereljük szét a Roombát. Vegyük ki a portartályt és a keféket. A 4db csavar eltávolítása után emeljük le az alsó burkolatot és távolítsuk el az akkumulátort.
Ezután szereljük le a lökhárítót, a felső takarólemezt pattintsuk ki, majd távolítsuk el az alatta található csavarokat. A fogantyú 2 csavarja maradhat.
Távolítsuk el a burkolatot.
Készítsük el a hardvert az alábbi rajz alapján.
Ne felejtsük el beállítani a kimenő feszültséget a MP1584EN feszültségstabilizátor modulon a nyillal jelölt potenciometer segítségével. Ez egy kis modul, (22 x 17mm) a bemenő feszültsége: 4,5 V – 28 V a kimenő feszültsége: 0,8 V – 20 V között állítható.
Programozzuk fel az Esp8266-ot. Használjuk az alább letölthető könyvtárat, ebben a debug soros portra írása ki van kommentelve, mert a Roombával való komunikációt megzavarhatja.
Nyissuk meg az Arduino alkalmazást. A következő vázlatba írjuk be Wifi kapcsolódási adatokat és a Roomba nevét is módosíthatjuk, ez a név jelenik meg az Alexa alkalmazásban.
/**************************************/
// https://myhomethings.eu //
// Generic ESP8266 module //
// Flash size: 1M (no SPIFFS) //
/**************************************/
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiUdp.h>
#include "Switch.h"
#include "UpnpBroadcastResponder.h"
const char* ssid = "SSID";
const char* password = "Password";
const char* RoombaFriendlyName = "iRobot Roomba";
Switch *switchRoomba = NULL;
UpnpBroadcastResponder upnpBroadcastResponder;
void setup_wifi()
{
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
}
}
bool switchRoombaOn()
{
Serial.write(128); // start command
delay(50);
Serial.write(131); // safe mod
delay(50);
Serial.write(135); // clean
return true;
}
bool switchRoombaOff()
{
Serial.write(128); // start command
delay(50);
Serial.write(131); // safe mod
delay(50);
Serial.write(143); // dock
return false;
}
void setup()
{
Serial.begin(115200);
setup_wifi();
upnpBroadcastResponder.beginUdpMulticast();
switchRoomba = new Switch(RoombaFriendlyName, 80, switchRoombaOn, switchRoombaOff);
upnpBroadcastResponder.addDevice(*switchRoomba);
}
void loop()
{
upnpBroadcastResponder.serverLoop();
switchRoomba -> serverLoop();
}
Ha kész, keressünk helyet az áramkörnek, majd szereljük össze a Roombát a szétszerelés fordított sorrendjében. Vezetékekre figyeljünk!
Most nyissuk meg az Amazon Alexa alkalmazást a telefonon és adjuk hozzá az új eszközt, az iRobot Roomba robotporszívót, vagy kérjük meg Alexát, hogy fedezze fel az eszközöket.
Mostantól Alexa segítségével a hangunkal is vezérelhetjük a Roombát.
Echo Dot Smart Hangszoró Alexával |
Ha érdekel, egyszerüen készíthetsz Virtuális falat a Roomához arduino nanoval.
Jó szórakozást!