Turinys:

„Pasidaryk pats“IoT lempa namų automatizavimui -- ESP8266 pamoka: 13 žingsnių (su nuotraukomis)
„Pasidaryk pats“IoT lempa namų automatizavimui -- ESP8266 pamoka: 13 žingsnių (su nuotraukomis)

Video: „Pasidaryk pats“IoT lempa namų automatizavimui -- ESP8266 pamoka: 13 žingsnių (su nuotraukomis)

Video: „Pasidaryk pats“IoT lempa namų automatizavimui -- ESP8266 pamoka: 13 žingsnių (su nuotraukomis)
Video: Aqara E1 zigbee - умный выключатель для круглого подрозетника, интеграция в Home Assistant 2024, Liepa
Anonim
Image
Image
„Pasidaryk pats“IoT lempa namų automatizavimui || ESP8266 pamoka
„Pasidaryk pats“IoT lempa namų automatizavimui || ESP8266 pamoka

Šioje pamokoje mes pagaminsime prie interneto prijungtą išmaniąją lempą. Tai gilinsis į daiktų internetą ir atvers namų automatikos pasaulį!

Lempa yra prijungta prie „WiFi“ir sukurta taip, kad turėtų atviro pranešimo protokolą. Tai reiškia, kad galite pasirinkti bet kokį norimą valdymo režimą! Jį galima valdyti naudojant žiniatinklio naršyklę, namų automatikos programas, išmaniuosius asistentus, tokius kaip „Alexa“ar „Google“padėjėjas, ir dar daugiau!

Kaip premija, ši lempa yra kartu su programa, skirta projektui valdyti. Čia galite pasirinkti skirtingus spalvų režimus, išblukti tarp RGB spalvų ir nustatyti laikmačius.

Lempa susideda iš LED plokštės ir valdymo plokštės. LED plokštėje naudojami trijų skirtingų tipų šviesos diodai iš viso penkiems LED kanalams! Tai RGB kartu su šilta ir šalta balta. Kadangi visus šiuos kanalus galima nustatyti atskirai, iš viso turite 112,3 peta derinių!

Pradėkime!

[Paleisti vaizdo įrašą]

1 žingsnis: dalys ir įrankiai

Dalys ir įrankiai
Dalys ir įrankiai

Dalys

  • „Wemos D1 Mini“
  • 15 x šiltos baltos spalvos 5050 šviesos diodų
  • 15 x šaltai balti 5050 šviesos diodai
  • 18 x RGB 5050 šviesos diodų
  • 6 x 300 omų 1206 rezistoriai
  • 42 x 150 omų 1206 rezistoriai
  • 5 x 1k omų rezistoriai
  • 5 x NTR4501NT1G

    MOSFET

  • Linijinis įtampos reguliatorius, 5V
  • PCB

    Atsisiųskite „Gerber“failus grandinės žingsnyje, kad sukurtumėte savo PCB

  • Maitinimo blokas 12V 2A

Įrankiai

  • Lituoklis

    • Litavimo skarda
    • Skystas litavimo srautas
  • Izoliacine juosta
  • Dvipusė juosta
  • 3D spausdintuvas
  • Vielos nuėmikliai

2 žingsnis: planas

Planas
Planas

Visas projektas susideda iš keturių pagrindinių dalių:

  1. Grandinė

    Grandinė pagaminta ant PCB. Baigtą grandinę sudarys daugiau nei 100 atskirų komponentų. Nepaprastai lengva palengvinti visų laidų sujungimą rankomis ant perforatoriaus

  2. Arduino kodas

    Aš naudoju „Wemos D1 Mini“, kuris naudoja ESP8266 kaip „WiFi“prijungtą mikrovaldiklį. Kodas paleis serverį D1. Kai lankotės šio serverio adresu, D1 tai interpretuos kaip skirtingas komandas. Tada mikrovaldiklis veikia pagal šią komandą ir atitinkamai nustato šviesas

  3. Nuotolinio valdymo pultas

    • Aš sukūriau programą tik šiam projektui, kad būtų lengviau valdyti lempą pagal savo skonį
    • Išmani lempa tikrai gali būti valdoma viskuo, kas gali siųsti http GET užklausą. Tai reiškia, kad lempa priima komandas iš beveik neriboto įrenginių asortimento
  4. 3D spausdinimas

    Ši išmani lempa nusipelno šauniai atrodančio dėklo. Kaip ir daugeliui projektų, jums reikėjo šaunaus dėklo, 3D spausdinimas ateina į pagalbą

3 žingsnis: grandinė

Grandinė
Grandinė
Grandinė
Grandinė
Grandinė
Grandinė

Aš užsisakiau savo PCB iš jlcpcb.com. Visas atskleidimo laikas: jie taip pat rėmė šį projektą.

PCB susideda iš dviejų dalių. Jame yra LED plokštė ir valdymo plokštė. PCB galima atplėšti, kad vėliau šios dvi dalys būtų sujungtos lanksčia viela. Tai būtina, kad 3D spausdinta lempa būtų plona, ir LED plokštė būtų pasukta taip, kad šviesa tolygiai pasiskirstytų per skylių kambarį.

Valdymo plokštėje yra D1 mikrovaldiklis ir penki MOSFET, skirti šviesos diodams pritemdyti, ir įtampos reguliatorius, užtikrinantis sklandų 5 V įtampą.

Šviesos diodų plokštėje yra penki šviesos diodų kanalai iš trijų skirtingų tipų šviesos diodų. Kadangi mes naudojame 12 V maitinimo šaltinį, šviesos diodai yra sukonfigūruoti kaip trys nuosekliai šviesos diodai su rezistoriumi, o po to kartojami 16 kartų lygiagrečiai.

Įprastas baltas šviesos diodas paprastai užima 3,3 V. Plokštės segmente trys iš šių šviesos diodų yra nuosekliai, o tai reiškia, kad įtampos kritimas yra sujungtas grandinėje. Trys šviesos diodai, traukiantys po 3,3 V, reiškia, kad vienas šviesos diodų segmentas pritraukia 9,9 V.

Jei segmentą sudarytų tik trys šviesos diodai, jie gautų daugiau įtampos nei išsklaidytų. Tai netinka šviesos diodams ir gali juos greitai sugadinti. Štai kodėl kiekvienas segmentas taip pat turi nuoseklų rezistorių su visais trimis šviesos diodais. Šis rezistorius yra skirtas numesti likusias 2,1 V serijos sankryžoje.

Taigi, jei kiekvieno segmento įtampa yra 12 V, tai reiškia, kad kiekvienas segmentas yra lygiagrečiai sujungtas. Kai grandinės yra sujungtos lygiagrečiai, visos gauna tą pačią įtampą ir srovė yra sumuojama. Srovės jungtis serijiniame ryšyje visada yra ta pati.

Įprastas šviesos diodas naudoja 20 mA srovę. Tai reiškia, kad segmentas, kurį sudaro trys šviesos diodai ir nuoseklus rezistorius, vis tiek pritrauks 20 mA. Kai lygiagrečiai sujungiame kelis segmentus, pridedame srovę. Jei iš juostos nukirpsite šešis šviesos diodus, lygiagrečiai turite du iš šių segmentų. Tai reiškia, kad visa jūsų grandinė vis tiek naudoja 12 V įtampą, tačiau srovė yra 40 mA.

4 žingsnis: šviesos diodų litavimas

Litavimo šviesos diodai
Litavimo šviesos diodai
Litavimo šviesos diodai
Litavimo šviesos diodai
Litavimo šviesos diodai
Litavimo šviesos diodai

Išbandžiusi keletą dalykų, radau, kad paprasta maskavimo juosta yra pati efektyviausia ir lanksčiausia, kad PCB nejudėtų.

Dalys su keliais kaiščiais, pvz., 6 kontaktų 5050 šviesos diodas, pradedu uždėdami litavimo ant vieno iš PCB pagalvėlių. Tada tereikia išlaikyti šį lydmetalį išlydytą su lituokliu, o pincetu stumiant komponentą į savo vietą.

Dabar kitas trinkeles galima lengvai pritvirtinti lydmetaliu. Tačiau norint pagreitinti šį darbą, siūlau pasiimti šiek tiek skysto litavimo srauto. Aš tikrai negaliu pakankamai rekomenduoti šių dalykų.

Užtepkite dalį srauto ant litavimo pagalvėlių, tada ištirpinkite lituoklį ant lituoklio galo. Dabar tereikia išlydytą lydmetalį atnešti ant trinkelių ir viskas teka į savo vietas. Gražu ir paprasta.

Kalbant apie rezistorius ir kitus dviejų padų komponentus, litavimo srauto tikrai nereikia. Ant vienos iš trinkelių uždėkite lydmetalį ir įkiškite rezistorių į vietą. Dabar tiesiog ištirpinkite lydmetalį ant antrojo pagalvėlės. Lengvas peasy.

Šiame žingsnyje pažiūrėkite į penktąją nuotrauką. Atkreipkite dėmesį į šviesos diodų orientaciją. Šiltai ir šaltai balti šviesos diodai turi įpjovą viršutiniame dešiniajame kampe. RGB šviesos diodai turi išpjovą apatiniame kairiajame kampe. Tai mano dizaino klaida, nes neradau šiame projekte naudojamų RGB šviesos diodų duomenų lapo. Na, gyvenk ir mokykis, ir viskas!

5 žingsnis: litavimo valdymo plokštė

Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė
Lituoklio valdymo plokštė

Baigęs LED plokštės maratoną, valdymo pultas yra lengvas litavimas. Prieš pereidamas prie įtampos reguliatoriaus, padėjau penkis MOSFET ir atitinkamus vartų šaltinio rezistorius.

Įtampos reguliatoriuje yra papildomų erdvių kondensatoriams išlyginti. Kol aš lituodavau juos šioje nuotraukoje, galiausiai juos pašalinau, nes jie tikrai nebuvo reikalingi.

Plonos valdymo plokštės apgaulė yra kaiščių antgalių iškišimas iš viršaus per apačią. Kai smeigtukai yra vietoje, nepanaudotą ilgį galima nuimti iš nugaros kartu su juodu plastiku. Dėl to apatinė pusė tampa visiškai lygi.

Kai visi komponentai yra vietoje, laikas sujungti abi plokštes. Aš ką tik nukirpau ir nuplėšiau šešis mažus 7 cm (2,5 colio) laidus ir prijungiau du PCB.

6 veiksmas: „WiFi“sąranka

„WiFi“sąranka
„WiFi“sąranka
„WiFi“sąranka
„WiFi“sąranka

Kode, kurį reikia pakeisti, yra šešios paprastos eilutės.

  1. ssid, 3 eilutė

    Jūsų maršrutizatoriaus pavadinimas. Rašydami įsitikinkite, kad raidžių raidės yra teisingos

  2. „wifiPass“, 4 eilutė

    Jūsų maršrutizatoriaus slaptažodis. Vėlgi, atkreipkite dėmesį į korpusą

  3. ip, 8 eilutė

    Jūsų išmaniosios lempos statinis IP adresas. Savo tinkle pasirinkau atsitiktinį IP adresą ir bandžiau jį įvesti komandų lange. Jei iš adreso negaunate atsakymo, galite manyti, kad jis yra prieinamas

  4. vartai, 9 eilutė

    Tai bus jūsų maršrutizatoriaus vartai. Atidarykite komandų langą ir įveskite „ipconfig“. Vartai ir potinklis paveikslėlyje pažymėti raudonai

  5. potinklis, 10 eilutė

    Kaip ir šliuzo atveju, ši informacija šio veiksmo paveikslėlyje yra apskritime

  6. laiko juosta, 15 eilutė

    Laiko juosta, kurioje esate. Pakeiskite tai, jei norite naudoti įmontuotas laikmačio funkcijas, kad įjungtumėte ir išjungtumėte šviesas tam tikru laiku. Kintamasis yra paprastas pliusas arba minus GMT

7 žingsnis: mikrovaldiklio kodas

Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas
Mikrovaldiklio kodas

Pakeitus visus atitinkamus nustatymus ankstesniame žingsnyje, pagaliau atėjo laikas įkelti kodą į „Wemos D1 Mini“!

Arduino kodui reikalingos kelios bibliotekos ir priklausomybės. Pirmiausia nesilaikykite šio „sparkfun“vadovo, jei niekada neįkėlėte kodo iš „arduino IDE“į ESP8266.

Dabar atsisiųskite „Time“biblioteką ir „TimeAlarms“biblioteką. Išpakuokite juos ir nukopijuokite į kompiuterio arduino bibliotekos aplanką. Kaip ir bet kurios kitos arduino bibliotekos diegimas.

Atkreipkite dėmesį į šio veiksmo paveikslėlyje pateiktus įkėlimo nustatymus. Pasirinkite tą pačią konfigūraciją, išskyrus „com“prievadą. Tai bus bet koks prievadas, prie kurio jūsų kompiuteryje prijungtas mikrovaldiklis.

Kai kodas įkeliamas, atidarykite serijinį terminalą ir, tikiuosi, sėkmingo ryšio pranešimą! Dabar galite atidaryti savo naršyklę ir apsilankyti statiniame IP adrese, kurį išsaugojote mikrovaldiklyje. Sveikiname, jūs ką tik sukūrėte savo serverį ir jame priglobiate tinklalapį!

8 veiksmas: atidarykite pranešimų protokolą

Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą
Atidarykite pranešimų protokolą

Kai valdysite išmaniąją lemputę naudodami programą, visi pranešimai bus tvarkomi automatiškai. Čia yra pranešimų, kuriuos lempa priima, sąrašas, jei norite sukurti savo nuotolinio valdymo pultą. Aš naudoju IP adreso pavyzdį, norėdamas parodyti, kaip naudoti komandas.

  • 192.168.0.200/&&R=1023G=0512B=0034C=0500W=0500

    • Nustato raudonas šviesas į maksimalią vertę, žalias - iki pusės vertės, o mėlynas - į 34. Šaltos ir šiltos baltos spalvos beveik neįsijungia
    • Įvesdami reikšmes, galite pasirinkti nuo 0 iki 1023. Šviesos reikšmes URL visada rašykite kaip keturis skaitmenis
  • 192.168.0.200/&&B=0800

    Nustato mėlyną šviesą iki 800, tuo pačiu išjungdama visas kitas lemputes

  • 192.168.0.200/LED=OFF

    Visiškai išjungia visas šviesas

  • 192.168.0.200/LED=FADE

    Lėtai pradeda blėsti tarp visų galimų RGB spalvų. Puikiai tinka atmosferai

  • 192.168.0.200/NOTIFYR=1023-G=0512-B=0000

    Du kartus mirksi tam tikra spalva, kad būtų rodomas gaunamas pranešimas. Puikiai tinka, jei norite, tarkim, sukurti savo kompiuteryje programą, kuri mirksėtų raudonai, kai tik gausite naują el

  • 192.168.0.200/DST=1

    • Sureguliuoja laikrodį pagal vasaros laiką. Prie laikrodžio prideda vieną valandą
    • /DST = 0 naudokite tai norėdami grįžti iš DST, pašalina vieną valandą iš laikrodžio, jei DST yra aktyvus
  • 192.168.0.200/TIMER1H=06M=30R=1023G=0512B=0034C=0000W=0000

    Išsaugo 1 laikmačio būseną. Šis laikmatis įjungs nurodytas RGB reikšmes 06:30 ryte

  • 192.168.0.200/TIMER1H=99

    Nustatykite laikmačio valandą į 99, kad išjungtumėte laikmatį. RGB reikšmės vis dar saugomos, tačiau laikmatis neįjungs šviesos, kai bus nustatyta 99 valanda

  • Lempa turi keturis atskirus laikmačius. Pakeiskite „TIMER1“į „TIMER2“, „TIMER3“arba „TIMER4“, kad sureguliuotumėte vieną iš kitų įmontuotų laikmačių.

Tai šiuo metu sukurtos komandos. Palikite komentarą, jei turite šaunių idėjų naujoms komandoms kurti arduino kode arba nuotolinėje programoje!

9 žingsnis: nuotolinis valdymas

Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas
Nuotolinio valdymo pultas

Norėdami atsisiųsti programą, spustelėkite čia. Sąranka yra labai paprasta, tiesiog įveskite savo išmaniosios lempos IP adresą ir pasirinkite, ar norite valdyti tik RGB šviesos diodus, ar RGB + šiltus ir šaltus baltus šviesos diodus.

Kaip paaiškinta ankstesniame žingsnyje, dabar žinote, kokį pranešimų protokolą naudoja programa. Jis siunčia http GET užklausą su URL. Tai reiškia, kad taip pat galite sukurti savo mikrovaldiklio grandinę ir vis tiek naudoti šią programą norėdami valdyti savo sukurtas funkcijas.

Kadangi mes iš tikrųjų gilinomės į pranešimų protokolą, jūs taip pat galite valdyti išmaniąją lemputę bet kokiu būdu, galinčiu siųsti http GET užklausą. Tai reiškia bet kurią telefono ar kompiuterio naršyklę arba išmaniuosius namų įrenginius ar padėjėjus, tokius kaip „Alexa“ar „Google“padėjėjas.

„Tasker“yra programa, kuri iš esmės leidžia sukurti sąlygas valdyti beveik viską. Aš tai panaudojau, kad gaudamas išmanųjį žibintą mano telefone mirksėtų pranešimo spalva. Taip pat nustatiau „Tasker“, kad įjungtų šviesą visiškai balta spalva, kai telefonas prisijungia prie mano namų „WiFi“po 16:00 darbo dieną. Tai reiškia, kad šviesa automatiškai įsijungia, kai grįžtu namo iš mokyklos. Tikrai šaunu grįžti namo automatiškai įjungus šviesą!

10 žingsnis: 3D spausdinimas

3D spausdinimas
3D spausdinimas

Pats lempos korpusas gali būti išspausdintas beveik visiškai be atramų. Vienintelės dalys, kurioms tikrai reikia palaikymo, yra kaiščiai, skirti poruotis su PCB. Todėl aš padariau stl prieinamą ir su maža atramine konstrukcija, ir tik šiems kaiščiams. Šio pasirinktinio palaikymo pranašumas yra tas, kad spausdinimas yra daug greitesnis! Ir mes gauname spausdinimo palaikymą tik toms dalims, kurioms to tikrai reikia.

Čia galite atsisiųsti.stl failus

11 žingsnis: surinkite viską kartu

Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską
Sujunkite viską

Po 3D spausdinimo pradėkite pašalindami spausdinimo palaikymą. Maitinimo kabeliai eina į atskirus kanalus ir yra susieti. Šis mazgas sukurs įtempimą, neleisdamas kabeliams nuplėšti PCB. Lituokite maitinimo kabelius ant galinės PCB pusės ir įsitikinkite, kad teisingai nustatėte poliškumą!

Tada valdymo plokštė pritvirtinama juostos gabalėliu, kad ji būtų lygi korpuso viduje. Šviesos diodų plokštę galima tiesiog įdėti į savo vietą, kur ji viena atsiremia į korpusą.

12 žingsnis: pakabinkite lempą

Pakabinti lempą
Pakabinti lempą
Pakabinti lempą
Pakabinti lempą
Pakabinti lempą
Pakabinti lempą

Yra daug galimybių pakabinti šią lempą prie sienos. Kadangi galėčiau nuolat atnaujinti kodą, norėdamas patobulinti lempą, norėjau, kad laikas nuo laiko lemputė būtų nuimta. Galite naudoti karštus klijus, bet aš rekomenduoju dvipusę juostą. Geriausia naudoti storą ir putų dvipusę juostą, nes ji geriausiai prilaiko lempą prie tekstūruotos sienos.

13 žingsnis: Baigta

Baigta
Baigta
Baigta
Baigta
Baigta
Baigta

Kai lemputė yra ant sienos ir esate pasiruošęs priimti komandas, tai reiškia, kad baigėte!

LED skydelis yra pasuktas taip, kad šviesa tolygiai pasiskirstytų patalpoje. Tai puikus bet kurios darbo vietos papildymas, o galimybė integruotis su namų automatika yra puikus pliusas. Man labai patinka galimybė nustatyti RGB spalvas, taip pat reguliuoti baltos spalvos balansą tarp šaltos ir šiltos šviesos. Jis atrodo stilingai ir yra puiki pagalba nustatant aplinkos arba darbo lempas, kad tiktų bet koks apšvietimo poreikis.

Sveikiname, dabar padarėte didelį šuolį į daiktų interneto ir namų automatikos pasaulį!