Roomba hangvezérlés – Alexa és Belkin Wemo emulátor

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:


A projekthez felhasznált dolgok:

ESP8266 ESP-01S WiFi Modul

ESP-01 Breadboard Adapter ESP8266-hez

USB Programozóadapter ESP8266-01-modulhoz

MP1584EN 3A feszültségstabilizátor modul

Amazon Echo 4. gen.


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.

iRobot Roomba® Open Interface
iRobot Roomba® Open Interface

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.

iRobot Roomba szétszerelés, alsó rész
iRobot Roomba szétszerelés, alsó rész

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.

iRobot Roomba szétszerelés, felső rész
iRobot Roomba szétszerelés, felső rész

Távolítsuk el a burkolatot.

Roomba a leszerelt Burkolattal
Roomba a leszerelt Burkolattal

Készítsük el a hardvert az alábbi rajz alapján.

Roomba és az ESP8266-01 kapcsolása V2
Roomba és az ESP8266-01 kapcsolása

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ó.

MP1584EN feszültségstabilizátor modul
MP1584EN feszültségstabilizátor modul

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!

Roomba újra összerakva, mintha nem történt volna semmi
Roomba újra összerakva

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.

iRobot Roomba és az Alexa app
iRobot Roomba és az Alexa app

Mostantól Alexa segítségével a hangunkal is vezérelhetjük a Roombát.

blankEcho Dot Smart Hangszoró Alexával
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!