Talaan ng mga Nilalaman:

Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Hakbang
Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Hakbang

Video: Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Hakbang

Video: Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug: 7 Hakbang
Video: как сделать, умный дом, система управления, управление мобильным телефоном, туя смарт 2024, Nobyembre
Anonim
Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug
Ang mga Hardware at Software Hack Smart Device, Tuya at Broadlink LEDbulb, Sonoff, BSD33 Smart Plug

Sa Instructable na ito ipinapakita ko sa iyo kung paano ko nai-flash ang maraming mga smart device gamit ang aking sariling firmware, upang makontrol ko ang mga ito ng MQTT sa pamamagitan ng aking pag-setup ng Openhab.

Magdaragdag ako ng mga bagong aparato kapag na-hack ko sila.

Siyempre may iba pang mga pamamaraan na nakabatay sa software upang i-flash ang pasadyang firmware, tulad ng Tuya convert, ngunit nais kong maunawaan kung paano gumagana ang aparato at kung ano ang 'nasa ilalim ng hood'.

Ang code ay nakasulat at na-flash gamit ang Arduino IDE.

Kinokontrol ko ang aking mga aparato sa pamamagitan ng Openhab at Google Home (sa pamamagitan ng Openhab), kung nais mong malaman ang higit pa o kailangan ang.items file atbp, mangyaring ipaalam sa akin sa mga komento.

Kaligtasan muna

Mag-ingat dahil nagtatrabaho kami sa mga aparatong pinalakas ng boltahe ng mains. Idiskonekta ang mga aparato mula sa power supply bago magtrabaho sa mga ito.

Mayroon akong anumang mga pag-aalinlangan kung ang aparato ay ligtas pagkatapos ng pagbabago, mangyaring itapon ito.

Mga gamit

Para sa karamihan ng mga pag-hack kailangan mo ng isang programmer ng FDTI na nakakabit sa isang computer na nagpapatakbo ng Arduino IDE, ilang mga jumper wires, isang soldering iron, ilang resistors at mga module ng ESP8266 o ESP8285.

Hakbang 1: Tuya LED RGBW Smart Bulb

Tuya LED RGBW Smart Bulb
Tuya LED RGBW Smart Bulb
Tuya LED RGBW Smart Bulb
Tuya LED RGBW Smart Bulb
Tuya LED RGBW Smart Bulb
Tuya LED RGBW Smart Bulb

Intro

Binili ko ang lampara na ito mula sa Aliexpress. Gumagana ito nang maayos sa app ng Smart Life, ngunit nais kong kontrolin ito sa pamamagitan ng MQTT mula sa Openhab. Gumawa na ako ng sarili kong Sonoff B1 firmware, kaya sinubukan kong i-flash ang lampara na ito gamit ang firmware na iyon.

Kumikislap

Binubuksan mo ang lampara sa pamamagitan ng maingat na pag-alis ng takip ng plastik, sa pamamagitan ng paggamit ng puwersa o sa pamamagitan ng pagikot ng isang driver ng tornilyo sa pagitan ng metal at ng plastik. Maaari mong makita ang hubad na chip ng ESP8266.

Ang mga kinakailangang koneksyon ay nakalantad sa pamamagitan ng maliliit na pad sa PCB (3v3, GND, RX, TX at IO0 (GPIO0))

Una kong inilagay ang ilang mga panghinang sa mga pad at panghinang sa mga wire at pagkatapos ay pinaghinang ang mga ito nang magkasama. Gumamit ako ng tiewrap at ilang maiinit na pandikit upang ilakip ang mga wire sa lampara.

Kailangan ang GPIO0 upang dalhin ang ESP8266 sa mode ng programa. Ikonekta ito sa lupa kapag pinapatakbo ang ESP8266. Maaari mong i-power at i-flash ang ESP8266 gamit ang isang FTDI programmer.

Firmware

Ang firmware ay batay sa aking Sonoff B1 firmware, ngunit nabago, dahil ang Sonoff B1 ay gumagamit ng mga driver ng MY9231 LED na hinihimok ng ESP8285 chip at sa Tuya Smart lampara na ang 4 na mga channel (RGBW) ay hinihimok ng mga mosfet na direktang lumipat ng mga signal ng PWM mula sa ESP8266.

Ang berdeng channel ay konektado sa GPIO12, pula sa GPIO14, asul sa GPIO13 at ang puting channel ay konektado sa GPIO4. Sa code makikita mo ito bilang: #define GREENPIN 12 #define REDPIN 14 #define BLUEPIN 13 #define WHITEPIN 4.

Ang kumpletong code ay nasa aking Github.

Hakbang 2: Generic Warm White LED Bulbs - Bahagi 1

Generic Warm White LED Bulbs - Bahagi 1
Generic Warm White LED Bulbs - Bahagi 1
Generic Warm White LED Bulbs - Bahagi 1
Generic Warm White LED Bulbs - Bahagi 1
Generic Warm White LED Bulbs - Bahagi 1
Generic Warm White LED Bulbs - Bahagi 1

Intro

Binili ko ang mga LED bombilya na ito mula sa Aliexpress Blue / white box at black box. Ang mga ito ay maaaring makontrol sa pamamagitan ng Magic home smart home app at ang Techlife pro app. Hindi ko sinubukan ang mga app na ito, dahil nais kong makontrol ang mga LED bombilya sa pamamagitan ng MQTT mula sa Openhab. Dahil mayroon na akong firmware para sa mga bombilya ng RGBW, ginamit ko iyon sa hindi apat na (RGBW) na mga channel, ngunit isang channel lamang.

Kumikislap

Buksan mo ang lampara sa pamamagitan ng maingat na pagtanggal ng plastic cap. Nalaman ko na ang takip ay medyo nakadikit sa metal, kaya't kailangan ko ng puwersa mula sa isang screw driver sa pagitan ng metal at ng plastik.

Inaasahan kong makakita ng isang ESP8266 o ESP8285 chip, subalit ito ay isang module ng Broadlink. Ang module ay mukhang isang module ng ESP12, ngunit nalaman ko na ang pinout ay ganap na naiiba. Mula sa pag-alis ng takip ng metal, nalaman kong ito ay isang RDA 5981AM chip.

Ang aking solusyon upang palitan ang chip na ito ng isang ESP ay ipinapakita sa susunod na hakbang.

Hakbang 3: Generic Warm White LED Bulbs - Bahagi 2

Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2
Generic Warm White LED Bulbs - Bahagi 2

Ang mga module ay konektado sa base ng lampara sa pamamagitan ng 3 mga pin, tingnan ang unang larawan:

  • 3V3 (3.3V)
  • GND (ground)
  • PWM (modulate ng lapad ng pulso)

Ang PWM pin ay ginagamit upang itakda ang ningning ng lampara sa pamamagitan ng isang signal na PWM, na maaaring mag-iba mula sa 0 (patay ang lampara) hanggang sa 100 (ang lampara ay ganap na nakabukas) at bawat halaga sa pagitan. Tingnan ang website na ito para sa ilang karagdagang impormasyon tungkol sa mga signal ng PWM.

Dahil ang mga module ng ESP8266 at ESP8285 ay tumatakbo sa 3.3V at madaling makabuo ng isang signal ng PWM, binago ko ang mga module ng Broadlink sa mga module na ESP8266 o ESP8285 na inilatag ko.

Ang mga module ng ESP-01S (ESP8266) ay na-flash sa pamamagitan ng isang hiwalay na programmer, tingnan ang hakbang 3 ng Instructable na ito. Naghinang ako ng mga babaeng pin ng header sa lampara na may pull up resistor sa pagitan ng 3V3 at EN (paganahin). Ito ang aking unang eksperimento, maya-maya ay nagbago ako sa mga modyul ng ESP8285.

Ang mga module na ESP-M1, ESP-M3 at ESP-01F (ESP8285) ay na-flash ng mga wire ng paghihinang sa mga kinakailangang koneksyon (3V3, GND, RX, TX at GPIO0 (tingnan ang hakbang 1, ang pag-flashing ng Tuya smart lamp). I soldered isang pull up risistor sa pagitan ng 3V3 at EN (paganahin).

Sa module na ESP-M3, gumagamit ako ng GPIO4 upang makabuo ng PWM signal. Noong una ginamit ko ang GPIO2, ngunit kapag ang LEDbulb ay, ang mababang resulta ng GPIO2 ay nag-iilaw ng ilaw sa on-board LED, na nagbibigay ng isang hindi kanais-nais na asul na glow sa LEDbulb.

Magdagdag ng ilang mga kapton tape upang mapabuti ang paghihiwalay sa pagitan ng module at mga koneksyon sa base ng lampara.

I-edit: Nalaman ko na ang module ng ESP-01F ay hindi maaasahang nagsimula, marahil dahil sa kawalang-tatag ng kuryente sa power up. Nalutas ko ito sa pamamagitan ng pagdaragdag ng isang 10 uF tantalum capacitor sa pagitan ng GND at VCC. Kapansin-pansin ang isang ceramic 10 uF capacitor ay hindi gumana.

Hakbang 4: Generic Warm White LED Bulbs - Bahagi 3

Generic Warm White LED Bulbs - Bahagi 3
Generic Warm White LED Bulbs - Bahagi 3

Firmware

Ang code ay nasa aking Github.

Ang firmware ay nagsasama ng isang web interface upang makontrol ang LEDbulb, at mayroon ding pagpipilian upang i-update ang firmware OTA sa pamamagitan ng Webupdate

Hakbang 5: Sonoff o BSD33 Smart Plug - Bahagi 1

Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1
Sonoff o BSD33 Smart Plug - Bahagi 1

Intro

Binili ko ang WiFi smart plug na ito mula sa Aliexpress. Gumagana ito nang maayos sa app ng Smart Life, ngunit nais kong kontrolin ito sa pamamagitan ng MQTT mula sa Openhab. Gumawa na ako ng sarili kong firmware ng Sonoff para sa mga smart plug at socket, kaya sinubukan kong i-flash ang lampara na ito sa firmware na iyon.

Ginamit ko rin ang firmware na ito upang i-flash ang aking Sonof S20 at Sonoff S26 na mga smart plug at Sonoff basic at Sonoff Basic R3 na mga matalinong switch. Kung paano buksan at ikonekta ng hardware ang mga aparato ng Sonoff para sa flashing ay inilarawan para sa Tasmota sa wiki ng tasmota, samakatuwid hindi ito inilalarawan dito.

Pagbukas ng socket

Ang smart plug ay nakadikit. Upang buksan ito maglagay ng isang distornilyador sa ginupit sa lupa at maglapat ng ilang puwersa sa pamamagitan ng paggamit sa kabilang panig ng socket bilang isang pivot point (pahiwatig mula sa netpokin ang paksang ito). Sa ganitong paraan dapat mong ma-crowbar ito nang hindi sinisira ang socket.

Sa mga larawan nakikita mo ang loob ng plug. Binubuo ito ng isang pangunahing board na may relay ng isang mas maliit na pcb kung saan ang ESP8266 chip at ang memorya ay naka-mount. Ang mga board ay konektado sa pamamagitan ng mga naa-access na koneksyon ng solder.

Hakbang 6: Sonoff o BSD33 Smart Plug - Bahagi 2

Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2
Sonoff o BSD33 Smart Plug - Bahagi 2

Kumikislap

Binabaligtad ko ang mga koneksyon ng solder. Tingnan ang larawan para sa paglalarawan ng mga koneksyon. Nalaman ko na:

  • Ang GPIO2 ay konektado sa LED (sa pindutan ng plug).
  • Ang GPIO13 ay konektado sa mismong pindutan.
  • Ang GPIO15 ay konektado sa mosfet na lumilipat sa pangunahing relay.

Maaari mong i-power at i-flash ang ESP8266 gamit ang isang FTDI programmer. Ikonekta ang mga babaeng kable ng dupont sa mga sumusunod na koneksyon: (VCC (3.3V), GND, RX, TX at GPIO0)

Kailangan ang GPIO0 upang dalhin ang ESP8266 sa mode ng programa. Ikonekta ito sa lupa kapag pinapatakbo ang ESP8266.

Sa aking FTDI programmer nagdagdag ako ng 470uF capacitor sa pagitan ng ground at VCC. Sa isa pang proyekto nalaman kong nadagdagan nito ang katatagan.

Ang programmer ng FTDI ay may ilang iba pang hindi nagamit na GND at VCC pin, maaari mong gamitin ang mga ito upang ikonekta ang GPIO0 sa GND.

Hakbang 7: Sonoff o BSD33 Smart Plug - Bahagi 3

Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3
Sonoff o BSD33 Smart Plug - Bahagi 3

Firmware

Ang aking firmware ay nasa aking Github.

Pangunahing bahagi ng firmware

  • Koneksyon sa WiFi at MQTT server
  • Manu-manong paglipat kapag online at offline (sa pagsisimula)
  • Kung ang relay ay inililipat nang manu-mano kapag ang aparato ay offline, ipinapadala nito ang estado sa pamamagitan ng MQTT kapag muling kumonekta
  • Ang estado ng relay ay nakaimbak sa memorya ng RTC (tingnan ang video na ito tungkol sa memorya ng RTC ng ESP8266)
  • Web interface para sa pagkontrol sa switch at pag-access sa Webupdate para sa OTA
  • Ang firmware ay angkop para sa BSD33 smartplug na ito, ngunit para din sa mga aparato ng Sonoff: Sonoff S20, Sonoff S26, pangunahing Sonoff, Sonof Basic R3

Openhab pagsasama

Ginagamit ko ang plug na ito upang makontrol ang lakas ng aking makina ng kape. Sa pamamagitan ng Openhab at Google Home maaari kong makontrol ito sa pamamagitan ng boses.

Nag-implem ako ng isang timer kung aling mga switch ng aking coffee machine pagkatapos ng isang paunang naka-preset na oras, tingnan ang larawan ng aking Openhab sitemap. Ang preset na oras ay na-injected sa NodeRed, na may iba't ibang mga preset na oras sa mga araw ng trabaho at araw ng katapusan ng linggo.

Tingnan ang aking Github para sa mga halimbawa ng mga item, panuntunan at mga file ng sitemap.

Inirerekumendang: