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.
werbung – amazon.de
Eine andere Lösung ohne ioBroker-Server ist die Roomba-Sprachsteuerung mit Belkin Wemo-Emulation.
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:
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“.
Zerlegen Sie zuerst Roomba. Nach dem Entfernen der 4 Schrauben. Heben Sie die untere Abdeckung an und entfernen Sie den Akku.
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.
Entfernen Sie die Abdeckung.
Erstellen Sie die Hardware gemäß der folgenden Zeichnung.
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.
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
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.
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.
Damit ist die Hardware fertig.
Schauen wir uns das neue Tool in ioBroker auf der Registerkarte Objekt unter MQTT an.
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.
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.
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“
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 Schalter Relais WiFi Hausautomation | |
Shelly 2.5 Dual WLAN Schalter mit Messfunktion |