Inhoudsopgave:

Hardware en software Hack Smart Devices, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug - Ajarnpa
Hardware en software Hack Smart Devices, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug - Ajarnpa

Video: Hardware en software Hack Smart Devices, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug - Ajarnpa

Video: Hardware en software Hack Smart Devices, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug - Ajarnpa
Video: Ultimate Smart Automation Tuya / Smart Life Tips + Tricks 2024, September
Anonim
Hardware en software Hack slimme apparaten, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug
Hardware en software Hack slimme apparaten, Tuya en Broadlink LEDbulb, Sonoff, BSD33 Smart Plug

In deze Instructable laat ik je zien hoe ik verschillende slimme apparaten heb geflitst met mijn eigen firmware, zodat ik ze via MQTT kan bedienen via mijn Openhab-installatie.

Ik zal nieuwe apparaten toevoegen wanneer ik ze heb gehackt.

Natuurlijk zijn er andere op software gebaseerde methoden om aangepaste firmware te flashen, zoals Tuya convert, maar ik wil graag begrijpen hoe het apparaat werkt en wat er 'onder de motorkap' zit.

Code wordt geschreven en geflitst met behulp van Arduino IDE.

Ik bedien mijn apparaten via Openhab en Google Home (via Openhab), als je meer wilt weten of het.items-bestand etc nodig hebt, laat het me dan weten in de comments.

Veiligheid eerst

Wees voorzichtig, want we werken aan apparaten die op netspanning werken. Koppel de apparaten los van het stroomnet voordat u eraan gaat werken.

Als u twijfelt of het apparaat veilig is na de wijziging, gooi het dan weg.

Benodigdheden

Voor de meeste hacks heb je een FDTI-programmeur nodig die is aangesloten op een computer met Arduino IDE, enkele jumperdraden, een soldeerbout, enkele weerstanden en ESP8266- of ESP8285-modules.

Stap 1: Tuya LED RGBW slimme lamp

Tuya LED RGBW slimme lamp
Tuya LED RGBW slimme lamp
Tuya LED RGBW slimme lamp
Tuya LED RGBW slimme lamp
Tuya LED RGBW slimme lamp
Tuya LED RGBW slimme lamp

Intro

Ik heb deze lamp gekocht bij Aliexpress. Het werkt prima met de Smart Life-app, maar ik wilde het bedienen via MQTT van Openhab. Ik heb al mijn eigen Sonoff B1-firmware gemaakt, dus ik heb geprobeerd deze lamp te flashen met die firmware.

Knipperend

Je opent de lamp door voorzichtig de plastic kap te verwijderen, met de hand door kracht te gebruiken of door een schroevendraaier tussen het metaal en het plastic te draaien. Je kunt de kale ESP8266-chip zien.

De benodigde verbindingen worden zichtbaar via kleine pads op de PCB (3v3, GND, RX, TX en IO0 (GPIO0))

Ik heb eerst wat soldeer op de pads gedaan en aan de draden gesoldeerd en daarna aan elkaar gesoldeerd. Ik gebruikte een tiewrap en wat hete lijm om de draden aan de lamp te bevestigen.

GPIO0 is nodig om de ESP8266 in programmeermodus te brengen. Verbind het met aarde wanneer u de ESP8266 van stroom voorziet. U kunt de ESP8266 van stroom voorzien en flashen met behulp van een FTDI-programmeur.

Firmware

De firmware is gebaseerd op mijn Sonoff B1-firmware, maar is aangepast, omdat de Sonoff B1 MY9231 LED-stuurprogramma's gebruikt die worden aangedreven door de ESP8285-chip en in deze Tuya Smart-lamp worden de 4 kanalen (RGBW) aangestuurd door mosfets die direct worden geschakeld door PWM-signalen van de ESP8266.

Het groene kanaal is aangesloten op GPIO12, rood op GPIO14, blauw op GPIO13 en het witte kanaal is aangesloten op GPIO4. In de code zie je dat als: #define GREENPIN 12 #define REDPIN 14 #define BLUEPIN 13 #define WHITEPIN 4.

De volledige code staat op mijn Github.

Stap 2: Generieke warmwitte LED-lampen - deel 1

Generieke warmwitte LED-lampen - deel 1
Generieke warmwitte LED-lampen - deel 1
Generieke warmwitte LED-lampen - deel 1
Generieke warmwitte LED-lampen - deel 1
Generieke warmwitte LED-lampen - deel 1
Generieke warmwitte LED-lampen - deel 1

Intro

Ik kocht deze LED-lampen van Aliexpress Blue/white box en black box. Ze zijn bedoeld om te worden bediend via de Magic home smart home-app en de Techlife pro-app. Deze apps heb ik niet uitgeprobeerd, omdat ik de ledlampen via MQTT van Openhab wilde aansturen. Omdat ik de firmware voor de RGBW-lampen al had, heb ik die gebruikt met niet vier (RGBW) kanalen, maar slechts één kanaal.

Knipperend

Je opent de lamp door voorzichtig het plastic kapje te verwijderen. Ik ontdekte dat de dop een beetje op het metaal was gelijmd, dus ik had kracht nodig van een schroevendraaier tussen het metaal en het plastic.

Ik verwachtte een ESP8266- of ESP8285-chip te zien, maar het was een Broadlink-module. De module leek veel op een ESP12-module, maar ik ontdekte dat de pinout compleet anders was. Toen ik de metalen kap verwijderde, ontdekte ik dat het een RDA 5981AM-chip was.

Mijn oplossing om deze chip te vervangen door een ESP wordt getoond in de volgende stap.

Stap 3: Generieke warmwitte LED-lampen - deel 2

Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2
Generieke warmwitte LED-lampen - deel 2

De modules zijn via 3 pinnen verbonden met de voet van de lamp, zie de eerste foto:

  • 3V3 (3,3V)
  • GND (aarde)
  • PWM (pulsbreedtemodulatie)

De PWM-pin wordt gebruikt om de helderheid van de lamp in te stellen via een PWM-signaal, dat kan variëren van 0 (lamp is uit) tot 100 (lamp is helemaal aan) en elke waarde daar tussenin. Zie deze website voor wat meer informatie over PWM-signalen.

Omdat ESP8266- en ESP8285-modules op 3,3 V werken en gemakkelijk een PWM-signaal kunnen genereren, heb ik de Broadlink-modules gewijzigd in ESP8266- of ESP8285-modules die ik had liggen.

De ESP-01S (ESP8266) modules worden geflitst via een aparte programmeur, zie stap 3 van deze Instructable. Ik heb vrouwelijke header-pinnen aan de lamp gesoldeerd met een pull-up-weerstand tussen 3V3 en EN (inschakelen). Dit was mijn eerste experiment, later stapte ik over op de ESP8285-modules.

De ESP-M1, ESP-M3 en ESP-01F (ESP8285) modules worden geflitst door soldeerdraden aan de benodigde aansluitingen (3V3, GND, RX, TX en GPIO0 (zie stap 1, het knipperen van de Tuya smart lamp). een pull-up weerstand gesoldeerd tussen 3V3 en EN (inschakelen).

Met de ESP-M3-module gebruik ik GPIO4 om het PWM-signaal te genereren. In eerste instantie gebruikte ik GPIO2, maar als de LEDbulb uit is, resulteert de lage GPIO2 in de verlichting van de on-board LED, die een ongewenste blauwe gloed in de LEDbulb geeft.

Voeg wat kaptontape toe om de isolatie tussen de module en de lampvoetaansluitingen te verbeteren.

Bewerken: ik ontdekte dat de ESP-01F-module niet betrouwbaar opstart, waarschijnlijk als gevolg van instabiliteit van de stroom bij het opstarten. Ik heb dit opgelost door een 10 uF tantaalcondensator toe te voegen tussen GND en VCC. Opmerkelijk was dat een keramische 10 uF condensator niet werkte.

Stap 4: Generieke warmwitte LED-lampen - deel 3

Generieke warmwitte LED-lampen - deel 3
Generieke warmwitte LED-lampen - deel 3

Firmware

De code staat op mijn Github.

De firmware bevat een webinterface om de LEDbulb te bedienen, en heeft ook een optie om de firmware OTA bij te werken via Webupdate

Stap 5: Sonoff of BSD33 Smart Plug - Deel 1

Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1
Sonoff of BSD33 Smart Plug - Deel 1

Intro

Ik kocht deze wifi smart plug van Aliexpress. Het werkt prima met de Smart Life-app, maar ik wilde het bedienen via MQTT van Openhab. Ik heb al mijn eigen Sonoff-firmware gemaakt voor slimme stekkers en stopcontacten, dus ik probeerde deze lamp met die firmware te flashen.

Ik heb deze firmware ook gebruikt om mijn Sonof S20 en Sonoff S26 smart plugs en Sonoff basic en Sonoff Basic R3 smart switches te flashen. Hoe Sonoff apparaten te openen en hardware aan te sluiten om te flashen staat beschreven voor Tasmota op de wiki van tasmota, daarom wordt dit hier niet beschreven.

Het stopcontact openen

De slimme stekker wordt aan elkaar gelijmd. Om hem te openen steek je een schroevendraaier in de uitsparing bij de aarde en oefen je wat kracht uit door de andere kant van de socket als draaipunt te gebruiken (hint van netpokin dit topic). Op deze manier zou je het eruit moeten kunnen halen zonder de socket te beschadigen.

Op de foto's zie je de binnenkant van de stekker. Het bestaat uit een moederbord met als relais een kleinere print waarop de ESP8266 chip en het geheugen zijn gemonteerd. De printen zijn verbonden via toegankelijke soldeerverbindingen.

Stap 6: Sonoff of BSD33 Smart Plug - Deel 2

Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2
Sonoff of BSD33 Smart Plug - Deel 2

Knipperend

Ik heb de soldeerverbindingen reverse-engineered. Zie de afbeelding voor de beschrijving van de aansluitingen. Ik kwam erachter dat:

  • GPIO2 wordt aangesloten op de LED (in de knop van de stekker).
  • GPIO13 is verbonden met de knop zelf.
  • GPIO15 is verbonden met de mosfet die het hoofdrelais schakelt.

U kunt de ESP8266 van stroom voorzien en flashen met behulp van een FTDI-programmeur. Sluit vrouwelijke dupont-kabels aan op de volgende aansluitingen: (VCC (3.3V), GND, RX, TX en GPIO0)

GPIO0 is nodig om de ESP8266 in programmeermodus te brengen. Verbind het met aarde wanneer u de ESP8266 van stroom voorziet.

Op mijn FTDI-programmeur heb ik een 470uF-condensator toegevoegd tussen aarde en VCC. In een ander project kwam ik erachter dat dit de stabiliteit verhoogde.

De FTDI-programmeur heeft enkele andere ongebruikte GND- en VCC-pinnen, u kunt ze gebruiken om GPIO0 met GND te verbinden.

Stap 7: Sonoff of BSD33 Smart Plug - Deel 3

Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3
Sonoff of BSD33 Smart Plug - Deel 3

Firmware

Mijn firmware staat op mijn Github.

Belangrijkste onderdelen van de firmware

  • Verbinding met WiFi en MQTT-server
  • Handmatig schakelen wanneer online en offline (bij opstarten)
  • Als het relais handmatig wordt geschakeld wanneer het apparaat offline is, verzendt het de status via MQTT wanneer het opnieuw wordt aangesloten
  • De relaisstatus wordt opgeslagen in RTC-geheugen (zie deze video over RTC-geheugen van de ESP8266)
  • Webinterface voor het besturen van de switch en toegang tot de webupdate voor OTA
  • De firmware is geschikt voor deze BSD33 smartplug, maar ook voor Sonoff apparaten: Sonoff S20, Sonoff S26, Sonoff basic, Sonof Basic R3

Openhab-integraties

Ik gebruik deze stekker om het vermogen van mijn koffiezetapparaat te regelen. Via Openhab en Google Home kan ik hem via spraak bedienen.

Ik heb een timer geïmplementeerd die mijn koffiemachine na een vooraf ingestelde tijd uitschakelt, zie de afbeelding van mijn Openhab sitemap. De vooraf ingestelde tijd wordt geïnjecteerd in NodeRed, met verschillende vooraf ingestelde tijden op weekdagen en weekenddagen.

Zie mijn Github voor voorbeelden van de items, regels en sitemapbestanden.

Aanbevolen: