Table des matières:

Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33 : 7 étapes
Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33 : 7 étapes

Vidéo: Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33 : 7 étapes

Vidéo: Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33 : 7 étapes
Vidéo: [domotique] TUYA WIFI ou ZIGBEE : Quel protocole choisir quand on débute en domotique ? 2024, Novembre
Anonim
Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33
Piratage matériel et logiciel d'appareils intelligents, ampoule LED Tuya et Broadlink, Sonoff, prise intelligente BSD33

Dans ce Instructable, je vous montre comment j'ai flashé plusieurs appareils intelligents avec mon propre firmware, afin que je puisse les contrôler par MQTT via ma configuration Openhab.

J'ajouterai de nouveaux appareils lorsque je les piraterai.

Bien sûr, il existe d'autres méthodes logicielles pour flasher un micrologiciel personnalisé, comme Tuya convert, mais j'aime comprendre comment fonctionne l'appareil et ce qu'il y a sous le capot.

Le code est écrit et flashé à l'aide d'Arduino IDE.

Je contrôle mes appareils via Openhab et Google Home (via Openhab), si vous voulez en savoir plus ou avez besoin du fichier.items etc, merci de me le faire savoir dans les commentaires.

La sécurité d'abord

Soyez prudent car nous travaillons sur des appareils alimentés en tension secteur. Débranchez les appareils de l'alimentation électrique avant de travailler dessus.

Si vous avez des doutes sur la sécurité de l'appareil après la modification, veuillez le jeter.

Fournitures

Pour la plupart des hacks, vous avez besoin d'un programmeur FDTI connecté à un ordinateur exécutant Arduino IDE, de fils de connexion, d'un fer à souder, de résistances et de modules ESP8266 ou ESP8285.

Étape 1: Ampoule intelligente Tuya LED RGBW

Ampoule Intelligente LED RGBW Tuya
Ampoule Intelligente LED RGBW Tuya
Ampoule Intelligente LED RGBW Tuya
Ampoule Intelligente LED RGBW Tuya
Ampoule Intelligente LED RGBW Tuya
Ampoule Intelligente LED RGBW Tuya

Introduction

J'ai acheté cette lampe sur Aliexpress. Cela fonctionne bien avec l'application Smart Life, mais je voulais le contrôler via MQTT d'Openhab. J'ai déjà créé mon propre firmware Sonoff B1, j'ai donc essayé de flasher cette lampe avec ce firmware.

Clignotant

Vous ouvrez la lampe en retirant délicatement le capuchon en plastique, à la main en utilisant la force ou via la torsion d'un tournevis entre le métal et le plastique. Vous pouvez voir la puce ESP8266 nue.

Les connexions nécessaires sont exposées via de petits plots sur le PCB (3v3, GND, RX, TX et IO0 (GPIO0))

J'ai d'abord soudé les pastilles et les fils, puis je les ai soudés ensemble. J'ai utilisé une cravate et de la colle chaude pour attacher les fils à la lampe.

GPIO0 est nécessaire pour mettre l'ESP8266 en mode programme. Connectez-le à la terre lors de l'alimentation de l'ESP8266. Vous pouvez alimenter et flasher l'ESP8266 à l'aide d'un programmeur FTDI.

Micrologiciel

Le firmware est basé sur mon firmware Sonoff B1, mais est modifié, car le Sonoff B1 utilise des pilotes LED MY9231 qui sont pilotés par la puce ESP8285 et dans cette lampe Tuya Smart, les 4 canaux (RGBW) sont pilotés par des mosfets commutés directement par des signaux PWM de l'ESP8266.

Le canal vert est connecté au GPIO12, le rouge au GPIO14, le bleu au GPIO13 et le canal blanc est connecté au GPIO4. Dans le code, vous voyez que: #define GREENPIN 12 #define REDPIN 14 #define BLUEPIN 13 #define WHITEPIN 4.

Le code complet est sur mon Github.

Étape 2: Ampoules LED génériques blanc chaud - Partie 1

Ampoules LED génériques blanc chaud - Partie 1
Ampoules LED génériques blanc chaud - Partie 1
Ampoules LED génériques blanc chaud - Partie 1
Ampoules LED génériques blanc chaud - Partie 1
Ampoules LED génériques blanc chaud - Partie 1
Ampoules LED génériques blanc chaud - Partie 1

Introduction

J'ai acheté ces ampoules LED chez Aliexpress Blue/white box et black box. Ils doivent être contrôlés via l'application Magic home smart home et l'application Techlife pro. Je n'ai pas essayé ces applications, car je voulais contrôler les ampoules LED via MQTT d'Openhab. Comme j'avais déjà le firmware pour les ampoules RGBW, je l'ai utilisé avec non pas quatre canaux (RGBW), mais un seul canal.

Clignotant

Vous ouvrez la lampe en retirant soigneusement le capuchon en plastique. J'ai découvert que le capuchon était un peu collé au métal, j'avais donc besoin de forcer un tournevis entre le métal et le plastique.

Je m'attendais à voir une puce ESP8266 ou ESP8285, mais c'était un module Broadlink. Le module ressemblait beaucoup à un module ESP12, mais j'ai découvert que le brochage était complètement différent. En retirant le couvercle métallique, j'ai découvert qu'il s'agissait d'une puce RDA 5981AM.

Ma solution pour remplacer cette puce par un ESP est présentée à l'étape suivante.

Étape 3: Ampoules LED génériques blanc chaud - Partie 2

Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2
Ampoules LED génériques blanc chaud - Partie 2

Les modules sont connectés à la base de la lampe via 3 broches, voir la première photo:

  • 3V3 (3,3V)
  • GND (terre)
  • PWM (modulation de largeur d'impulsion)

La broche PWM est utilisée pour régler la luminosité de la lampe via un signal PWM, qui peut varier de 0 (la lampe est éteinte) à 100 (la lampe est complètement allumée) et toutes les valeurs intermédiaires. Consultez ce site Web pour plus d'informations sur les signaux PWM.

Étant donné que les modules ESP8266 et ESP8285 fonctionnent sur 3,3 V et peuvent facilement générer un signal PWM, j'ai remplacé les modules Broadlink par des modules ESP8266 ou ESP8285 que j'avais.

Les modules ESP-01S (ESP8266) sont flashés via un programmeur séparé, voir l'étape 3 de ce Instructable. J'ai soudé des broches femelles à la lampe avec une résistance de rappel entre 3V3 et EN (activer). C'était ma première expérience, plus tard je suis passé aux modules ESP8285.

Les modules ESP-M1, ESP-M3 et ESP-01F (ESP8285) sont flashés en soudant des fils aux connexions nécessaires (3V3, GND, RX, TX et GPIO0 (voir étape 1, le clignotement de la lampe intelligente Tuya). soudé une résistance de rappel entre 3V3 et EN (activer).

Avec le module ESP-M3, j'utilise GPIO4 pour générer le signal PWM. Au début, j'ai utilisé GPIO2, mais lorsque l'ampoule LED est éteinte, le faible GPIO2 entraîne l'éclairage de la LED intégrée, ce qui donne une lueur bleue indésirable dans l'ampoule LED.

Ajoutez du ruban kapton pour améliorer l'isolation entre le module et les connexions de la base de la lampe.

Edit: j'ai découvert que le module ESP-01F ne démarre pas de manière fiable, probablement en raison de l'instabilité de l'alimentation à la mise sous tension. J'ai résolu ce problème en ajoutant un condensateur au tantale de 10 uF entre GND et VCC. Il est à noter qu'un condensateur céramique de 10 uF n'a pas fonctionné.

Étape 4: Ampoules LED génériques blanc chaud - Partie 3

Ampoules LED génériques blanc chaud - Partie 3
Ampoules LED génériques blanc chaud - Partie 3

Micrologiciel

Le code est sur mon Github.

Le firmware comprend une interface Web pour contrôler l'ampoule LED, et a également une option pour mettre à jour le firmware OTA via Webupdate

Étape 5: Prise intelligente Sonoff ou BSD33 - Partie 1

Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1
Prise intelligente Sonoff ou BSD33 - Partie 1

Introduction

J'ai acheté cette prise intelligente WiFi d'Aliexpress. Cela fonctionne bien avec l'application Smart Life, mais je voulais le contrôler via MQTT d'Openhab. J'ai déjà créé mon propre firmware Sonoff pour les prises et prises intelligentes, j'ai donc essayé de flasher cette lampe avec ce firmware.

J'ai également utilisé ce firmware pour flasher mes prises intelligentes Sonof S20 et Sonoff S26 et les commutateurs intelligents Sonoff basic et Sonoff Basic R3. Comment ouvrir et connecter matériellement les appareils Sonoff pour le flashage est décrit pour Tasmota sur le wiki de tasmota, donc ce n'est pas décrit ici.

Ouverture de la prise

La prise intelligente est collée ensemble. Pour l'ouvrir, placez un tournevis dans la découpe au niveau de la terre et appliquez une force en utilisant l'autre côté de la prise comme point de pivot (indice de netpokin ce sujet). De cette façon, vous devriez pouvoir l'extraire sans endommager la prise.

Sur les photos, vous voyez l'intérieur de la prise. Il se compose d'une carte principale avec pour relais un circuit imprimé plus petit sur lequel la puce ESP8266 et la mémoire sont montées. Les cartes sont connectées via des connexions à souder accessibles.

Étape 6: Prise intelligente Sonoff ou BSD33 - Partie 2

Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2
Prise intelligente Sonoff ou BSD33 - Partie 2

Clignotant

J'ai inversé les connexions de soudure. Voir l'image pour la description des connexions. J'ai découvert que:

  • GPIO2 est connecté à la LED (dans le bouton de la prise).
  • GPIO13 est connecté au bouton lui-même.
  • GPIO15 est connecté au mosfet qui commute le relais principal.

Vous pouvez alimenter et flasher l'ESP8266 à l'aide d'un programmeur FTDI. Connectez les câbles dupont femelles aux connexions suivantes: (VCC (3.3V), GND, RX, TX et GPIO0)

GPIO0 est nécessaire pour mettre l'ESP8266 en mode programme. Connectez-le à la terre lors de l'alimentation de l'ESP8266.

Sur mon programmeur FTDI, j'ai ajouté un condensateur de 470uF entre la masse et le VCC. Dans un autre projet, j'ai découvert que cela augmentait la stabilité.

Le programmeur FTDI a d'autres broches GND et VCC inutilisées, vous pouvez les utiliser pour connecter GPIO0 à GND.

Étape 7: Prise intelligente Sonoff ou BSD33 - Partie 3

Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3
Prise intelligente Sonoff ou BSD33 - Partie 3

Micrologiciel

Mon firmware est sur mon Github.

Principales parties du firmware

  • Connexion au WiFi et au serveur MQTT
  • Commutation manuelle en ligne et hors ligne (au démarrage)
  • Si le relais est commuté manuellement lorsque l'appareil est hors ligne, il envoie l'état via MQTT lorsqu'il est reconnecté
  • L'état du relais est stocké dans la mémoire RTC (voir cette vidéo sur la mémoire RTC de l'ESP8266)
  • Interface Web pour contrôler le commutateur et accéder à la mise à jour Web pour OTA
  • Le firmware est adapté à cette prise intelligente BSD33, mais aussi aux appareils Sonoff: Sonoff S20, Sonoff S26, Sonoff basic, Sonof Basic R3

Intégrations Openhab

J'utilise cette prise pour contrôler la puissance de ma machine à café. Via Openhab et Google Home, je peux le contrôler via la voix.

J'ai mis en place une minuterie qui éteint ma machine à café après un temps prédéfini, voir l'image de mon plan de site Openhab. L'heure prédéfinie est injectée dans NodeRed, avec différentes heures prédéfinies les jours de semaine et les jours de week-end.

Voir mon Github pour des exemples d'éléments, de règles et de fichiers de plan de site.

Conseillé: