Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?: 6 steg (med bilder)
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?: 6 steg (med bilder)
Anonim
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?
Apple HomeKit Wi-Fi Avfuktare Baserat på ESP8266?

Tyvärr finns det bara en eller två avfuktare som stöder Apple HomeKit, men dessa har riktigt höga priser (300 $+). Så jag har bestämt mig för att göra min egen Wi-Fi-kompatibla Apple HomeKit-avfuktare baserad på en billig jag redan har?

Det kan fungera inbyggt med HomeKit med ESP8266 så ingen homebridge, HAP-NodeJS behövs! ?

Eftersom koden är mycket komplex och jag har använt många anpassade bibliotek har jag gjort förkompilerade firmware-filer. För dem som är intresserade av att göra inhemska HomeKit-projekt finns källkoden för esp-homekit tillgänglig här. Om du inte vill använda min firmware är GPIO pinout nedan tillgänglig för att göra din egen?

För mer information besök den relaterade GitHub -sidan! ?

Funktioner:

  • Fuktmätning med SHT3x -sensor
  • Ställ in målfuktighet
  • Styr fläkthastigheten
  • Vattennivå (via lysdioder och automatisk avstängning när tanken är full)
  • Ström/återställningsknapp

PCB -delar:

  • ESP12F/E/S
  • XROW600B Avfuktare
  • SHT3x Temepreature/Fuktighetssensor
  • SMD 0805 motstånd
  • SMD 0805 kondensatorer
  • AMS1117-3.3
  • Taktil knapp
  • 1x4P 2,54 mm sidhuvud (tillval)
  • IRF540NS
  • SMD 10x10.5 50V 100uF kondensator
  • SMD 6x7 6, 3V 330uF kondensator
  • LM2575S-5.0
  • 330uH CRDH74 induktor
  • 1N4007 -diod
  • 2N3904
  • VH3.96-2P
  • XH2.54 2P, 4P, 5P
  • 3MM röd/grön LED
  • 3 mm (höjd) LED nylon distans
  • 4P han XH2.54 med kabel (för fuktsensor)

Tillbehör

  • LödkolvOR Lödstation ELLER Lödpistol för varmluft
  • För att ladda upp koden måste du antagligen också köpa en USB TTL -adapter.
  • För att demontera avfuktaren behöver du några skruvmejslar.
  • Anpassad PCB
  • XROW600B avfuktare

Steg 1: Demontering

Demontering
Demontering
Demontering
Demontering
Demontering
Demontering

För att demontera avfuktaren är det enda du behöver en skruvmejsel som passar i hålen på enhetens baksida! ?

  1. Skruva loss de två skruvarna på enhetens undersida
  2. Skruva loss de fyra skruvarna på enhetens baksida
  3. Nu kan du ta isär plasthuset
  4. Koppla ur alla kontakter på kretskortet
  5. Skruva loss de 2 skruvarna som håller kretskortet

Steg 2: Anpassad kretskort

Anpassad PCB
Anpassad PCB
Anpassad PCB
Anpassad PCB
Anpassad PCB
Anpassad PCB
Anpassad PCB
Anpassad PCB

Jag har designat en anpassad PCB som kan ersätta den ursprungliga, mycket grundläggande. Det är i grund och botten bara en strömförsörjning / steg-ner-omvandlare från 12V till 3,3V, två MOSFET-enheter för att driva fläkten och peltiern, själva ESP8266, två lysdioder och den taktila knappen som på den ursprungliga.

Jag har också lagt till samma kontakter för det nya kretskortet som på det ursprungliga och en extra 4 -polig kontakt för SHT3x fuktighetssensor. 9V -strömförsörjningen som levereras med avfuktaren kan också användas! Allt är plug -and -play?

Du kan hitta mer information om kretskorten här

PCB -filer finns på PCBWay

SHT3x Fuktighetssensor

Du måste koppla upp SHT3x-sensorn med en hane XH2.54-4P-kontakt med ledningar (länkade till dellistan) helt enkelt ansluta allt som det ska vara: VCC till VCC, GND till GND, SDA till SDA och SCL till SCL ?

För närvarande i min inställning hänger sensorn bara utanför avfuktarens hölje, det är upp till dig var/hur du placerar sensorn men inuti avfuktarens fall kan den fångade luftfuktigheten/vattnet påverka sensoravläsningen! ?

GPIO Pinout

Om du vill använda din egen firmware här är pinout:

  • Knapp - GPIO0 (D3 på wemos D1 mini)
  • SHT3x SDA - GPIO4 (D2 på wemos D1 mini)
  • SHT3x SCL - GPIO5 (D1 på wemos D1 mini)
  • Inbyggd LED GPIO2 (D4 på wemos D1 mini)
  • Power LED - GPIO14 (D5 på wemos D1 mini)
  • Fläkt - GPIO15 (D8 på wemos D1 mini)
  • Peltier - GPIO12 (D6 på wemos D1 mini)
  • Tankgivare - GPIO13 (D7 på wemos D1 mini)

Steg 3: Programinstallation

Programvaruinstallation
Programvaruinstallation
Programvaruinstallation
Programvaruinstallation
Programvaruinstallation
Programvaruinstallation

Du kan ladda ner firmware från min GitHub -sida

Windows

För Windows kan du använda det officiella nedladdningsverktyget för firmware från Espressif!

Att ställa in blixtadresser (0x2000), blixtstorlek (4MB/32mbit) och blixtläge (DIO/QIO) är ett mycket viktigt steg, men dessa inställningar kan ändras baserat på modulen du använder! Jag har också rekommenderat att radera blixten när du första gången installerar firmware innan du laddar upp.bin -filerna!

Inställningar:

  • Baudhastighet 115200
  • Blixtstorlek 4MB eller 32mbit (beroende på din modul)
  • Blixtläge QIO (eller DIO, beroende på din modul)
  • 0x0000 rboot.bin
  • 0x1000 blank_config.bin
  • 0x2000 main.bin
  • 40 MHz

Mac OS

För MacOS kan du använda det här blinkningsverktyget!

  • Inställningar: Radera blixt - ja (endast vid första installationen)
  • Baudhastighet 115200
  • Blixtstorlek 4MB eller 32mbit (beroende på din modul)
  • Blixtläge QIO (eller DIO, beroende på din modul)
  • Fil: main.bin
  • 40 MHz

Flash manuellt

Vi måste installera esptool.py på vår Mac för att kunna flasha vår ESP -modul. För att arbeta med esptool.py behöver du antingen Python 2.7, Python 3.4 eller en nyare Python -installation på ditt system. Vi rekommenderar att du använder den senaste Python -versionen, så gå till Pythons webbplats och installera den på din dator. Med Python installerat, öppna ett Terminal -fönster och installera den senaste stabila esptool.py -versionen med pip:

pip installera esptool

Obs! Med vissa Python -installationer kanske kommandot inte fungerar och du får ett fel. Om så är fallet, försök att installera esptool.py med:

pip3 installera esptool python -m pip install esptool pip2 installera esptool

Efter installationen kommer du att ha esptool.py installerat i standardkatalogen för Python -körbara filer och du bör kunna köra den med kommandot esptool.py. Kör följande kommando i ditt Terminal -fönster:

esptool.py

Med esptool.py installerat på din dator kan du enkelt blinka ditt ESP8266 -kort med firmware. Först måste du ladda ner tre bin -filer: rboot.bin och blank_config.bin och den senaste versionen. Rboot.bin innehåller bootloader för ESP8266 och blank_config.bin i bara en tom konfigurationsfil och ledstrip.bin innehåller firmware. Anslut nu din enhet till din FTDI-adapter i blixtläge.

För att aktivera ESP8266 måste firmware blinkande GPIO0 -stiftet dras lågt medan enheten slås på. Med mitt anpassade kretskort finns en knapp som du måste trycka på och hålla ned medan du ansluter FTDI -adaptern till din dator. Omvänt, för en normal start måste GPIO0 dras högt eller flytande. Börja med FLASH MODE Gå till katalogen du skapade där du lade de tidigare nedladdade rboot.bin blank_config.bin -filerna (t.ex. nedladdningar) Öppna Terminal -appen. Klicka på Finder -ikonen i din docka. Klicka på Kör. Klicka på Verktyg. Dubbelklicka på Terminal.

Byt till nedladdningskatalogen.

Obs! Om du använder ett annat bibliotek för att lagra de tre.bin -filerna navigerar du till biblioteket med kommandot 'cd': Använd esptool.py för att flasha din enhet.

nedladdning av cd

Du behöver en USB TTL -adapter för att ansluta till ESP8266. Om du bara använder en Wemos D1 Mini är en microUSB-kabel, har Wemos inbyggd TTL-adapter.

Första gången vi installerar firmware måste vi radera blixten:

esptool.py -p / dev / erase_flash

Normalt kommer din ESPPort att vara ungefär /dev /cu.usbserial-'xxxxxx '. Sätt sedan in enheten i blixtläge igen och blinka den nya firmware:

esptool.py -p /dev/cu.wchusbserial1420 --baud 115200 write_flash -fs 32m -fm dio -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 main.bin

Wi-fi och HomeKit-installation

Wi-Fi-inställning

Du måste konfigurera wifi -nätverk innan du lägger till tillbehöret i HomeKit. För att konfigurera Wi-Fi-inställningar genererar enheten sin egen Wi-Fi i AP-läge. Du måste ansluta till den för att kunna konfigurera ditt Wi-Fi-nätverk. Ta bara din iOS-enhet, gå till Inställning-> Wi-Fi och sök efter ett SSID som heter HomeKid följt av modulens MAC-adress och anslut till den. Av säkerhetsskäl är AP lösenordsskyddat!

Standard AP -lösenord: 12345678

Vänta några sekunder tills en webb visas som visar dig alla Wi-Fi-nätverk som enheten har hittat. Välj ditt och ange lösenord! Klicka sedan på knappen Gå med! Modulen försöker ansluta det valda Wi-Fi-nätverket, det tar ett par sekunder.

Obs! Om det angivna lösenordet är fel kan du återställa Wi-Fi-inställningarna genom att hålla knappen intryckt i 10 sekunder

HomeKit -installation

I din iOS -enhet öppnar du Home App och följer normala steg för att lägga till ett nytt tillbehör. Parningskonfiguration tar cirka 30 sekunder.

HomeKit-koden är 586-84-417

Du kan också skanna den här HomeKit QR -koden.

Obs! Om parkopplingen misslyckas kan du koppla från enheten, återställa den och starta HomeKit -installationen igen (Wifi -inställningarna fortsätter att vara konfigurerade). Efter lyckad parkoppling blinkar strömlampan vitt 3 gånger!

Steg 4: PCB -anslutningar

PCB -anslutningar
PCB -anslutningar
PCB -anslutningar
PCB -anslutningar

För PCB -designen har jag valt samma kontakter som de på det ursprungliga kretskortet! ?

Så det här steget bör vara enkelt:

  • Anslut fläkten till fläktkontakten
  • Anslut TEC (peltiermodul) till motsvarande kontakt
  • Anslut den 5 -poliga strömkontakten till motsvarande kontakt
  • Anslut SHT3x -modulen till sin egen kontakt

Steg 5: Sätta ihop det

Sätta ihop det
Sätta ihop det
Sätta ihop det
Sätta ihop det

Att sätta ihop enheten är samma process som demonteringen bara i omvänd ordning?

Steg 6: Användbara anteckningar?

Användbara anteckningar?
Användbara anteckningar?

Avfuktaren har några säkerhetsfunktioner när tanken är full och enheten är igång:

  • Stänger automatiskt av fläkten/Peltier tills tanken är tom
  • Tänder omedelbart den röda lysdioden
  • Blinkar strömlampan 3 gånger var 30: e sekund

Har också säkerhetsfunktion om SHT3x -sensorn inte fungerar korrekt:

  • Stänger automatiskt av fläkten/Peltier tills tanken är tom
  • Ställ in aktuell luftfuktighet till 0%
  • Blinkar strömlampan 2 gånger var 30: e sekund

När både SHT3x har fel och tanken är full blinkar strömlampan 6 gånger var 30: e sekund.

I ESP8266 har något fel du behöver inte koppla bort enheten från strömmen, tre gånger om du trycker på knappen startas om ESP8266!

När avfuktaren är påslagen och den aktuella luftfuktigheten är lika med och/eller mindre än målfuktigheten, går enheten i viloläge. I hemappen visas "Ställ in på …" när enheten går på tomgång och visar "Sänker till …" när den körs!

Uppdaterar firmware

Jag har planerat att implementera Over-The-Air (OTA) firmware-uppdateringar men det är inte så tillförlitligt så uppdatering bör göras manuellt som vid den första installationen! Den enda skillnaden är att du inte behöver radera blixten, genom att helt enkelt blinka den nyare firmware utan att radera den bevaras dina Wi-Fi / HomeKit-inställningar! ?