iRobot Roomba Sprachsteuerung mit Amazon Alexa

Wir können den Roomba mit einem schnellen Sprachbefehl starten, bevor wir die Wohnung verlassen, um den Boden sauber zu halten, wenn wir nach Hause kommen. Die Implementierung erfordert einen funktionierenden ioBroker-Server , einen IoT Assistant-Adapter mit der entsprechenden Lizenz, Amazon Echo oder Echo Dot, um den Roboterstaubsauger mit Alexa zu steuern.

Eine andere Lösung ohne ioBroker-Server ist die Roomba-Sprachsteuerung mit Belkin Wemo-Emulation.

iRobot Roomba Sprachsteuerung mit Amazon Alexa
iRobot Roomba Sprachsteuerung mit Amazon Alexa

Natürlich ist die Hardware unerlässlich, ein iRobot Roomba (ich hatte ein 531 Opfer) ESP8266-01 mit Breadboard Adapter, AMS1117 Spannungsstabilisator.


Dinge, die dafür verwendet wurden:

ESP8266 ESP-01S WLAN Modul

ESP-01S Steckbrett Adapter für ESP8266

USB Programmieradapter für ESP8266-01

AMS1117 3,3V Stromversorgungsmodul

MP1584EN 3A Stromversorgungsmodul module


Sie können Roomba über eine serielle Schnittstelle Befehle erteilen. Dies ist einen 7-poligen Mini-DIN-Stecker, „iRobot Roomba® Open Interface“.

iRobot Roomba® Open Interface
iRobot Roomba® Open Interface

Zerlegen Sie zuerst Roomba. Nach dem Entfernen der 4 Schrauben. Heben Sie die untere Abdeckung an und entfernen Sie den Akku.

Demontage des iRobot Roomba-Unteren Teil
Demontage des iRobot Roomba-Unteren Teil

Entfernen Sie im nächsten Schritt den Stoßfänger, entfernen Sie die Abdeckplatte, und lösen Sie dann die darunter liegenden Schrauben. Die 2 Schrauben am Griff muß nicht entfernen.

Demontage des iRobot-Oberer Teil
Demontage des iRobot-Oberer Teil

Entfernen Sie die Abdeckung.

Roomba mit abgenommener Abdeckung
Roomba mit abgenommener Abdeckung

Erstellen Sie die Hardware gemäß der folgenden Zeichnung.

Schaltung zwischen Roomba und ESP8266-01
Schaltung zwischen Roomba und ESP8266-01

Suchen Sie auf der Hauptplatine eine stabile 5-V-Quelle, um die Schaltung mit Strom zu versorgen. Ich habe es hier auf meinem Roomba 531 Staubsauger gefunden.

Stabile 5V auf dem Motherboard
Stabile 5V auf dem Motherboard

Dann lass es uns installieren. Ich habe unten rechts einen Sitz für ESP8266-01 und AMS1117 gefunden, er passt genau.


UPDATE

Ich habe den Spannungsstabilisator AMS1117 durch MP1584EN ersetzt, sodass das Motherboard nicht verlötet werden muss. Holen Sie einfach den Akkuspannung von der Stecker.

MP1584EN 3A Stromversorgungsmodul module

Schaltung zwischen Roomba und ESP8266-01 V2
Schaltung zwischen Roomba und ESP8266-01 V2

Denken Sie daran, die Ausgangsspannung am Spannungsstabilisierungsmodul MP1584EN mit dem mit einem Pfeil gekennzeichneten Potentiometer einzustellen. Es ist ein kleines Modul (22 x 17 mm) mit einer Eingangsspannung von 4,5 V bis 28 V und einer Ausgangsspannung von 0,8 V bis 20 V einstellbar.

Stromversorgungsmodul MP1584EN
Stromversorgungsmodul MP1584EN

Natürlich muss der ESP8266 vor der Montage programmiert werden. Öffnen Sie das Arduino-Programm und laden Sie den Code.

/**************************************/
//  https://myhomethings.eu           //
//  Generic ESP8266 module            //
//  Flash size: 1M (no SPIFFS)        //
/**************************************/

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const char* ssid = "SSID";
const char* password = "Password";
const char* mqtt_server = "192.168.x.xxx";

WiFiClient espClient;
PubSubClient client(espClient);

void setup_wifi() 
{
  delay(100);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) 
  {
    delay(500);
  }
  randomSeed(micros());
}

void reconnect() 
{
  while (!client.connected()) 
  {
    String clientId = "ESP8266Client_Roomba";
    
    if (client.connect(clientId.c_str()))
    {
      client.subscribe("Roomba");
    } 
    else 
    {
      delay(6000);
    }
  }
}

void callback(char* topic, byte* payload, unsigned int length) 
{
  payload[length] = '
/**************************************/
//  https://myhomethings.eu           //
//  Generic ESP8266 module            //
//  Flash size: 1M (no SPIFFS)        //
/**************************************/
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
const char* ssid = "SSID";
const char* password = "Password";
const char* mqtt_server = "192.168.x.xxx";
WiFiClient espClient;
PubSubClient client(espClient);
void setup_wifi() 
{
delay(100);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) 
{
delay(500);
}
randomSeed(micros());
}
void reconnect() 
{
while (!client.connected()) 
{
String clientId = "ESP8266Client_Roomba";
if (client.connect(clientId.c_str()))
{
client.subscribe("Roomba");
} 
else 
{
delay(6000);
}
}
}
void callback(char* topic, byte* payload, unsigned int length) 
{
payload[length] = '\0';
String strTopic = String(topic);
String strPayload = String((char * ) payload);
if(strTopic == "Roomba") 
{
if(strPayload == "true") 
{
Serial.write(128);  // start command
delay(50);
Serial.write(131);  // safe mod
delay(50);
Serial.write(135);  // clean
}
if(strPayload == "false") 
{
Serial.write(128);  // start command
delay(50);
Serial.write(131);  // safe mod
delay(50);
Serial.write(143);  // dock
}
}
}
void setup() 
{
Serial.begin(115200);
setup_wifi();
delay(1000);
client.setServer(mqtt_server, 1883);
client.setCallback(callback);
}
void loop() 
{
if (!client.connected()) 
{
reconnect();
}
client.loop();
}
'; String strTopic = String(topic); String strPayload = String((char * ) payload); if(strTopic == "Roomba") { if(strPayload == "true") { Serial.write(128); // start command delay(50); Serial.write(131); // safe mod delay(50); Serial.write(135); // clean } if(strPayload == "false") { Serial.write(128); // start command delay(50); Serial.write(131); // safe mod delay(50); Serial.write(143); // dock } } } void setup() { Serial.begin(115200); setup_wifi(); delay(1000); client.setServer(mqtt_server, 1883); client.setCallback(callback); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); }

Wenn die Schaltung zusammengebaut ist, und ESP8266-01 ist programmiert, montieren Sie den Roomba in umgekehrter Reihenfolge der Demontage. Achten Sie auf Drähte.

Roomba ist zusammengebaut. Als wäre nichts passiert
Roomba ist zusammengebaut. Als wäre nichts passiert

Damit ist die Hardware fertig.


Schauen wir uns das neue Tool in ioBroker auf der Registerkarte Objekt unter MQTT an.

blank

Wenn „true“ eingestellt ist, wird die Reinigung gestartet. Wenn „false“, wird nach dem Dock gesucht.

Ich gehe davon aus, dass der Adapter „IoT Assistants“ installiert, konfiguriert und ordnungsgemäß lizenziert ist. Wählen Sie auf der Registerkarte Instanzen den iot.0-Adapter aus und fügen Sie das Roomba-Gerät als Switch zu den Alexa-Geräten hinzu.

Hinzufügen von Roomba zu Alexa-Geräten auf dem IoT-Adapter
Hinzufügen von Roomba zu Alexa-Geräten auf dem IoT-Adapter

Damit ist der Abschnitt ioBroker abgeschlossen.

Öffnen Sie jetzt die Amazon Alexa-App auf Ihrem Handy und fügen Sie ein neues Gerät hinzu.

Amazon Alexa, Gerät hinzufügen
Amazon Alexa, Gerät hinzufügen

In der Amazon Alexa-Anwendung können wir Routinen erstellen und den Prozess automatisieren.

Ab sofort können Sie Amazon Echo / Echo Dot verwenden, um den Roomba mit Ihrer Stimme zu steuern. z.B: „Alexa, mach den Roomba an“


Echo Dot (4. Generation) | Smarter Lautsprecher mit Uhr und Alexa
Echo Dot (4. Generation) | Smarter Lautsprecher mit Uhr und Alexa

blank

Wenn Sie interessiert sind, können Sie mit Arduino Nano ganz einfach eine virtuelle Wand erstellen.

Ich hoffe dir hat dieser Beitrag gefallen. 


Shelly 1 kapcsoló relé modul WiFi HázautomatizáláshozShelly 1 Schalter Relais WiFi Hausautomation
Shelly 2.5 Dual WLAN Kapcsoló mérési funkcióvalShelly 2.5 Dual WLAN Schalter mit Messfunktion
Shelly smart schalter modules von amazon