Een Roomba aansturen met een ESP

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Yukkie
  • Registratie: Januari 2001
  • Laatst online: 10:06

Yukkie

Vorsprung Durch Technik

Topicstarter
Begin dit jaar ben ik begonnen met Home Automation op basis van Home Assistant. Bij het zoeken naar leuke nieuwe Home Automation projectjes, kwam ik op Youtube een filmpje tegen van "The Hook Up" waarin een Roomba (een robotstofzuiger) van een ESP werd voorzien en vanuit Home Assistant en Node-Red kan worden aangestuurd. Dat leek me een wel een tof project. Ik heb op marktplaats voor een mooi bedrag een Roomba 650 op de kop weten te tikken en ben aan de slag gegaan.

Alles lukt tot nu toe aardig, behalve dat wanneer de Roomba gedocked is, hij niet meer wakker wordt. Ik begrijp dat dit een known issue is voor mijn Roomba versie, maar dat bijvoorbeeld de mensen van de Thinking cleaner er een workaround voor hadden. Helaas heb ik die workaround nog niet gevonden en de Thinking cleaner ontwikkelaars hebben ook nog niet gereageerd op mijn e-mail. Aangezien dat project gestopt is, verwacht ik daar eigenlijk ook niet veel van (plus dat ze hun code niet open source maken volgens de site, dus willen ze vast ook niet de oplossing voor een issue waar veel mensen naar op zoek zijn delen met de wereld). Bij Irobot zelf ving ik ook (ro)bot :+

Nadere beschrijving van mijn issue:

De ESP blijft spanning krijgen, de Roomba blijft zo nu en dan statusinfo versturen naar de Roomba. Het is alleen dat de Roomba dus niet meer reageert op de BRC pin, of seriële commando's. De knoppen op de Roomba blijven wel actief inderdaad. Die Clean button aansturen via een GPIO pin zou kunnen, maar ik wil de Roomba zo origineel als mogelijk houden. En waarschijnlijk kan ik ook wel een programma in de Roomba programmeren om op die manier hem 's morgens te activeren. Maar ik wil dat remote kunnen doen via Node-Red en Home Assistant.

Ik zit me nu al een paar dagen suf te staren op dit issue en heb volgens mij al het hele internet afgestruind naar een goede, werkende oplossing. Mijn doel met dit topic is dus enerzijds een oplossing vinden voor mijn issue, maar ook om anderen te inspireren en met elkaar de mogelijkheden te bediscussiëren.

Hier staat mijn code:
https://github.com/WumsWatchFace/Roomba-ESP8266-MQTT

Een korte (maar waarschijnlijk onvolledige) samenvatting van de door mij geraadpleegde bronnen, inspiratie en voorbeelden:

Specificatie van de seriele interface:
http://anrg.usc.edu/ee579...0_Open_Interface_Spec.pdf
Voorbeelden van vergelijkbare oplossingen als die van mij (en bronnen die ik heb gebruikt):
https://github.com/thehookup/MQTT-Roomba-ESP01
https://github.com/Mjrovai/Roomba_BT_Ctrl
https://github.com/johnboiles/esp-roomba-mqtt
https://forum.mysensors.org/post/52800
Roomba library voor Arduino en ESP:
http://www.airspayce.com/mikem/arduino/Roomba
Inspiratie topic op het Home Assistant forum:
https://community.home-as...-to-an-older-roomba/23282

[ Voor 6% gewijzigd door Yukkie op 06-06-2018 23:34 ]

We've got that ring of confidence


Acties:
  • 0 Henk 'm!

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 11-09 08:15

McFizban

Hackito ergo sum.

Cool project, misschien onze Roomba ook eens upgraden.

Zou je het probleem met het niet meer wakker worden kunnen oplossen door een extra ESP in het docking station te zetten en dan met een een relais (of FET) de voedingsspanning te onderbreken. Dan denk de Roomba dat hij niet meer op het dock staat en zou hij weer normaal aan te spreken moeten zijn.

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Acties:
  • 0 Henk 'm!

  • Yukkie
  • Registratie: Januari 2001
  • Laatst online: 10:06

Yukkie

Vorsprung Durch Technik

Topicstarter
Zoiets zou ik nog wel kunnen proberen ja. Ik zat zelf te denken aan een Sonoff tussen het stopcontact en het dock. Maar dan zit je wel met een timing issue denk ik. Ik heb namelijk al eens geprobeerd wat de Roomba doet als ik de stekker van het dock uit het stopcontact trek. De Roomba deed toen ook niets. Misschien ligt het er dus aan wanneer je het dock spanningsloos maakt.

We've got that ring of confidence


Acties:
  • 0 Henk 'm!

  • Lennyz
  • Registratie: Januari 2010
  • Laatst online: 29-08 20:08
Volgens mij is hun workaround:

"For now choose "600 (2016)" in the web-app options page if you have a new model and Thinking Cleaner will keep your Roomba awake to start anytime you want. "

Gewoon de Roomba niet laten slapen dus als ik het goed interpreteer.

Acties:
  • 0 Henk 'm!

  • McFizban
  • Registratie: Juli 2001
  • Laatst online: 11-09 08:15

McFizban

Hackito ergo sum.

Een Sonoff is perfect.Dat is natuurlijk ook gewoon een ESP met een relais, maar dan in een mooi kastje met een naam er op.

Dat het iet werkt door de stekker uit het stopcontact te trekken kan komen door condensatoren in de voeding van het dockstation.

Haardware: meuk die zo oud is dat het alleen nog nuttig is voor in de openhaard.


Acties:
  • 0 Henk 'm!

  • Yukkie
  • Registratie: Januari 2001
  • Laatst online: 10:06

Yukkie

Vorsprung Durch Technik

Topicstarter
@Lennyz Maar hoe hebben zij dat voor elkaar gekregen? Een Roomba valt vanzelf in slaap op zijn dock en normaliter hou je hem wakker door de brc pin laag te pulsen. Bij de 600 series werkt dat dus niet. En die web-app in jouw quote is hun eigen web-app, behorende bij hun device.

We've got that ring of confidence


Acties:
  • 0 Henk 'm!

  • tafkaw
  • Registratie: December 2002
  • Laatst online: 11-09 15:45
The only solution I have found are a relay across the Clean button contacts or sending an IR Clean signal to the Roomba
http://www.robotreviews.c...viewtopic.php?f=4&t=19804

  • j0bro
  • Registratie: September 2003
  • Laatst online: 09-09 07:50
Ik heb misschien wel wat waar je mee aan de slag kan; ik ben er zelf nog niet aan toegekomen, maar ik heb een keer een mail gestuurd aan Thinking Cleaner met dezelfde vraag (heb ook een 650) en kreeg totaal onverwacht een reply met de door hun gebruikte wakeup code:
Beste Jeroen,

Dit is wat wij deden in onze code om hem wakker te krijgen.

void RoombaWakeOnDock(void) {

ROOMBA_WAKE_LO(); // hardware wake pin on SCI conn
DelayMs(50);
ROOMBA_WAKE_HI(); // hardware wake pin on SCI conn
DelayMs(80);
RingBufferWrite(&txBuffer, OPCODE_CLEAN); // write the CLEAN command code to the SCI port
RingBufferWrite(&txBuffer, 0x10);
}

Hierna is hij wakker en kun je commando's sturen.
Benieuwd of het werkt, dan kan ik dit projectje zelf ook weer eens oppakken ;)

To question is to grow.


Acties:
  • +1 Henk 'm!

  • Yukkie
  • Registratie: Januari 2001
  • Laatst online: 10:06

Yukkie

Vorsprung Durch Technik

Topicstarter
Ik heb echt avonden achtereen het internet afgezocht naar een mogelijke oplossing, maar niets gevonden. Omdat ik dus niet meer verder kwam en ik een hele goede prijs geboden kreeg (het dubbele van wat ik zelf voor de Roomba betaald had :X ) heb ik hem van de hand gedaan. Ik kan het dus niet meer voor je proberen :)

We've got that ring of confidence


Acties:
  • +2 Henk 'm!

  • j0bro
  • Registratie: September 2003
  • Laatst online: 09-09 07:50
Ah! Nou dan ga ik het zelf sowieso proberen 😄

To question is to grow.


Acties:
  • 0 Henk 'm!

  • ice-T106
  • Registratie: Oktober 2001
  • Laatst online: 10:39
Misschien niet helemaal de oplossing waar jullie naar zochten. Maar heb het in mijn geval opgelost door de Roomba via een IR commando te starten.
Naast de Roomba ligt nu een Wemos D1 mini met een IR shield (met nu een losse telefoon 5V adapter).
Ik kan nu netjes via een http interface de Roomba starten. Zonder iets aan te hoeven passen aan de Roomba of het basisstation zelf.
En heb met deze oplossing geen probleem met het in slaap vallen van mijn 600 series Roomba.

11.635 Wp Solar edge. 7kW Lucht-water, 5kW Daikin Lucht-Lucht, lucht WTW, VW Passat GTE, Home Assistant


Acties:
  • +1 Henk 'm!

  • triet
  • Registratie: Januari 2003
  • Niet online
Ik heb dit eerder gedaan dmv. een WeMos D1 en zelf de code geschreven. Daarbij ben ik wel tegen een aantal dingen aan gelopen (m.n. betrouwbaarheid), maar waar dat aan ligt ben ik nooit verder mee gegaan door tijdsgebrek.

Een van de dingen is bijv. dat je beter de hardware UART van de ESP kunt gebruiken ipv. software serial. Ik zal eens kijken of ik de code/details op github kan zetten.
Pagina: 1