Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Yrittäessäni tehdä kotitaloudestani kestävämpää vaihdoin halogeenilamppuja led -valoihin. Saatavana on paljon vaihtoehtoja minkä tahansa tyyppisen lampun vaihtamiseksi. Tätä tehdessäni törmäsin seuraavaan ongelmaan: Minulla oli valaisin, joka käytti 7 12 voltin halogeenilamppua, kukin 10 wattia. Tätä valoa hallitsi himmennin, joka toimi hyvin. Kun vaihdoin polttimot 12 voltin led -valoihin, kukin 1 W, himmennin toimi huonosti: valo välkkyi ja himmennys hieman epäsäännöllistä. Tämä on ongelma monien klassisten himmentimien kanssa: niillä on minimaalinen teholuokka, jota he tarvitsevat toimiakseen.
Joten päätin vaihtaa domoottisen järjestelmäni perusteella tämän manuaalisen himmentimen uuteen, jonka lisäetuna olisi etäohjattavuus. Olin jo rakentanut himmentimen käyttämällä N-kanavaista MOSFETia (IRF540), joka on täydellinen tällaiseen tarkoitukseen: sitä voidaan ohjata PWM-signaalilla ja se on käytännössä tuhoutumaton, ja sen suurin sallittu arvo on 100 volttia ja 33 ampeeria, riittävästi tähän tarkoitukseen (nopea tarkistus: 7 x 1 Watt = 7 W, jaettuna 12 voltilla antaa maksimivirran noin.58 ampeeria). Haluan käyttää tätä himmennintä toiseen valaisimeen, jossa on 12 lamppua, kukin 2 wattia, mikä antaa enintään 2 ampeeria, joten sekin riittää. Ainoa asia, jota on pidettävä silmällä, on PWM -signaalin taajuus, mutta Arduinon tai ESP8266: n (500 Hz tai 1 kHz) tavalliset arvot eivät ole ongelma.
Vaihe 1: Vaihe 1: Komponentit
- LED -ohjain (230 voltin AC -12 voltin tasavirtamuuntaja) Haluan käyttää enimmäkseen 24 wattia, joten aloitin 12 voltin ja 2 ampeerin LED -ohjaimella. Löysin sellaisen kiinalaisesta jakelusivustosta. Tämän ohjaimen teho oli 12 volttia ja 28 wattia, joten se riitti ajamaan valaisinta yksinään. Omassa tilanteessasi voit käyttää kevyempää tai raskaampaa versiota laitteistasi riippuen.
- IRF540 n-kanavainen MOSFET
- Adafruit Huzzah ESP8266 Breakout Koska halusin käyttää WiFi: tä ja rakastan ehdottomasti Adafruutin tuotteita, valitsin tämän levyn: se antaa minulle ESP8266: n, jossa on kätevä ohjelmointitappi, sisäinen tehonsäädin ja tyylikäs muoto. Se on hieman ylilyönti tälle projektille, mutta se helpottaa testaamista ja virheenkorjausta.
- LM2596-pohjainen DC-DC-muunnin Tarvitsen säätimen ESP-kortin virran saamiseksi 12 voltista; nämä pienet muuntimet ovat erittäin tehokkaita ja erittäin halpoja.
-
Kiertokooderi painiketoiminnolla, sisäänrakennetulla led-valolla:
www.sparkfun.com/products/10596
Mikä tahansa pyörivä anturi tekisi, mutta pidin sisäänrakennetun LED-valon mukavasta lisäominaisuudesta.
-
Kirkas muovinen nuppi
www.sparkfun.com/products/10597
- Vastus 4k7
- Vastus 1k
Vaihe 2: Vaihe 2: piiri
Tätä piiriä käytin: käytin nastat 4 ja 5 pyörivän anturin tuloina ja nasta 0 painiketta varten. Nasta 0 on myös kytketty sisäiseen punaiseen lediin, joten voisin tarkistaa koodin painikkeen toiminnan katsomalla tätä lediä.
PWM -lähtöön käytetään nasta 16, ja liitin sen suoraan Sparkfun -anturin vihreään lediin. ESP8266 on 3,3 volttia, ja jopa 100%: lla mitasin vain 2,9 voltin ulostulon, joten liitin sen suoraan ilman sarjavastusta. Tämä sama lähtö menee n-kanavan MOSFETin portille 1 kOhm: n vastuksen kautta. 4,7 kOhm: n vastus vetää portin korkealle 12 volttiin.
Käytin DC-DC-muuntimella 12 voltin muuntamista 5,5 volttiin, tämä on kytketty Adafruit-katkaisun V+ -tuloon. Olisin voinut käyttää 3,3 volttia ja kytkeä sen suoraan, mutta tämä on hieman turvallisempaa.
Piirin 12 V: n LED -lamppu on minun laitteeni.
Vaihe 3: Vaihe 3: koodi
Laitoin koodin GitHubiin:
Luonnos ESP8266 LED PWM -himmentimelle
Se perustuu ajatukseen, joka on toinen opettavainen:
www.instructables.com/id/Arduino-PWM-LED-D…
Mutta tämä oli puhtaasti paikallinen valvonta, joten lisäsin oman MQTT-pohjaisen domotiikkaratkaisuni. Se tekee periaatteessa saman, mutta tärkeimmät erot ovat:
- PWM -portaiden oletusmäärä Arduinolla on 255, ESP8266: lla 1023 (kuten huomasin myöhemmin, koko yrittäen selvittää, miksi LED -valaisin ei noussut 100%: n kirkkauteen …)
- En käyttänyt Totempole -piiriä kahden transistorin kanssa, koska PWM oli joka tapauksessa DC ja toimi hyvin IRF 540: n kanssa.
- En käyttänyt 10k: n vetovastuksia kooderissa, luotin ESP8266: n sisäänrakennettuihin vetimiin.
- ESP8266 käyttää 3,3 voltin logiikkaa 5 voltin sijasta Arduinolle, mikä ei osoittautunut ongelmaksi IRF540: lle
Ohjelmistolla on seuraavat ominaisuudet:
- Enkooderin kääntäminen himmentää valoa (CW) tai alas (CCW) 0: sta 100%: iin 1023 askeleella, ja osa nopeutuu alemmilla tasoilla.
- painikkeen painaminen sytyttää valon, kun se on pois päältä, käyttämällä viimeksi tallennettua kirkkaustasoa tai sammuttaa sen, kun se on päällä.
- painikkeen painaminen pidempään valon palaessa tallentaa nykyisen kirkkauden oletusarvoksi.
- Painikkeen painaminen pidempään valon ollessa sammutettuna sytyttää valon 100%: n kirkkauteen muuttamatta oletusarvoa.
- Se muodostaa yhteyden SECRET_SSID- ja SECRET_PASS -merkkijonojen määrittelemiin WiFi -asetuksiin, jotka tallennetaan luonnokseeni erilliseen tiedostoon, nimeltään "secrets.h".
- Se muodostaa yhteyden MQTT -palvelimeen WiFi -verkossa käyttämällä saman tiedoston 'MQTTSERVER' ja 'MQTTPORT' merkkijonoja.
- Voit käyttää MQTT: n tulevaa aihetta 'domus/esp/in' antaaksesi komentoja: 'ON' tai 'OFF' sytyttääksesi valon tai sammuttaaksesi sen tai muuttaa arvoa 0-1023 muuttaaksesi kirkkautta.
- Se raportoi tilan MQTT -aiheista "domus/esp/uit" (ON tai OFF -tila) ja "domus/esp/uit/brightness" (kirkkausarvo).