Talaan ng mga Nilalaman:

ESP8266-01 IoT Smart Timer para sa Home Automation: 9 Mga Hakbang (na may Mga Larawan)
ESP8266-01 IoT Smart Timer para sa Home Automation: 9 Mga Hakbang (na may Mga Larawan)

Video: ESP8266-01 IoT Smart Timer para sa Home Automation: 9 Mga Hakbang (na may Mga Larawan)

Video: ESP8266-01 IoT Smart Timer para sa Home Automation: 9 Mga Hakbang (na may Mga Larawan)
Video: openHAB INSTALL - Smart Home Automation 2024, Nobyembre
Anonim
ESP8266-01 IoT Smart Timer para sa Home Automation
ESP8266-01 IoT Smart Timer para sa Home Automation
ESP8266-01 IoT Smart Timer para sa Home Automation
ESP8266-01 IoT Smart Timer para sa Home Automation
ESP8266-01 IoT Smart Timer para sa Home Automation
ESP8266-01 IoT Smart Timer para sa Home Automation

MGA NAG-UPDATE

2018-09-30: Na-update ang Firmware sa Ver 1.09. Ngayon ay may Sonoff Basic Support

2018-10-01: Magagamit ang Bersyon ng Firmware 1.10 para sa pagsubok sa ESP8266-01 na may mga isyu

Sa mga bagong buzzword na pagiging Internet Of Things (IoT) at Home Automation, napagpasyahan kong tingnan ang kasalukuyang mga item sa loob at paligid ng aking bahay na kinokontrol sa pamamagitan ng ilang uri ng aparato. Ang mga item na tumindig, ay ang mga sumusunod:

  • Pump ng swimming pool
  • Tagapuno ng tubig sa swimming pool
  • Swimming pool at mga ilaw sa paligid
  • Mga ilaw sa gabinete ng TV / Entertainment system

Ang karaniwang item na ginagamit upang makontrol ang mga aparatong ito, ay ang mga karaniwang wall plug timer. Ang bawat aparato ay nilagyan ng sarili nitong timer, at lahat ay matatagpuan sa iba't ibang mga lokasyon. Kaya bakit ko pinili ang mga item na ito upang magsimula sa mga proyekto ng Internet of Things o Home Automation, maaari mong tanungin?

Kaya, ang pamumuhay sa South Africa, nangangahulugang ang mga pagkabigo sa kuryente ay isang regular na pangyayari. Sa mga istatistika ng aking tahanan, nagkaroon ako ng 35 pagkabigo sa kuryente sa nakaraang taon, na umabot ng 40 oras. Karaniwan itong hindi isang isyu, dahil ang lahat ng kasalukuyang naka-install na timer ay nilagyan ng isang back-up na baterya para sa pagpapanatili ng oras habang nabigo ang kuryente. Ngunit may ilang mga isyu:

  • Ang mga back-up na baterya na ito ay tatagal lamang ng isang taon o dalawa, pagkatapos ang timer ay kailangang mapalitan. Ang mga timer ay itinayo na ang timer ay kailangang sirain upang makakuha ng pag-access sa panloob na baterya ng Ni-Cad.
  • Sa tuwing nabibigo ang kuryente, ang mga timer na may sira na baterya ay kailangang muling maprograma, at ang itinakdang oras.
  • Ang pisikal na lokasyon ng timer, kapag naka-plug sa wall socket, ginagawang halos imposibleng basahin ang mga lcd na nagpapakita ng pagtingin sa timer mula sa itaas. Nangangahulugan ito na ang timer ay kailangang i-unplug, o kailangan kong humiga sa sahig upang maitakda o ayusin ang mga timer pagkatapos ng isang pagkabigo sa kuryente.

Dahil sa mga kadahilanang nasa itaas, nagpasya akong subukan ang posibilidad na palitan ang mga timer ng isang IoT Smart Timer, na konektado sa aking lokal na network ng bahay.

Ang ideya ay upang magdisenyo ng isang stand-alone na timer, na maaaring:

  • Awtomatikong ayusin ang kasalukuyang oras gamit ang internet (IoT)
  • Pinapatakbo nang walang anumang mga pagkilos ng gumagamit (Smart)
  • I-on / I-off ang isang output alinsunod sa itinakdang oras (Timer)
  • Programmable at makokontrol sa pamamagitan ng network (Home Automation)

Hakbang 1: Ang Disenyo ng ESP8266-01

Ang Disenyo ng ESP8266-01
Ang Disenyo ng ESP8266-01
Ang Disenyo ng ESP8266-01
Ang Disenyo ng ESP8266-01

Ang disenyo ay tapos na gamit ang isang module ng WiFi na ESP8266-01, dahil ito ang magagamit ko. Sa pinakasimpleng form na ito, ang ESP8266-01 ay may apat na I / O na pin:

  • GPIO0
  • GPIO2
  • TX
  • RX

ESP8266-01 Mga Power -up Mode

Ang estado ng lohika ng mga I / O pin ay ginagamit upang matukoy kung aling mode ang boot ng ESP8266-01. Ang unang hakbang ay upang matukoy kung alin sa mga I / O na pin ang maaaring magamit upang maghimok ng isang output relay.

  • Para sa normal na lakas, ang GPIO0 at GPIO2 ay dapat itakda sa LAKI ng lohika. Kaya malinaw na ang dalawang mga pin na ito ay hindi maaaring gamitin bilang isang digital output.
  • Ang Tx pin ay itinakda bilang isang output sa power up, at ang output ay itinakda nang mataas. Nagpapadala din ang Tx pin na ito ng ilang serial data habang nag-i-power up. Kaya, ang pin na ito ay hindi maaaring magamit bilang isang output.

Ang natitirang pin lamang ay ang Rx pin. Ang pin na ito ay itinakda bilang isang input sa power up, at hindi kailangang hilahin nang mataas sa panahon ng power up. Ang pin na ito ay kung gayon ang pinaka-angkop upang magamit bilang isang output pin.

Boot-up

Upang matiyak ang tamang mode ng boot-up ng ESP8266-01 sa panahon ng power up, ang mga sumusunod na pin ay mahila nang mataas gamit ang 10K resistors:

  • GPIO0
  • GPIO2
  • RST
  • CH_PD

Tinitiyak nito na ang bota ng unit ay tama sa bawat oras.

Relay ng Output

Ang RX ay ang tanging pin na angkop na magamit bilang isang output. Ang pin na ito ay ginagamit upang himukin ang output relay sa pamamagitan ng isang NPN transistor. Ang karaniwang flywheel diode at transistor base resistors ay idinagdag.

MODE / Itakda ang Button

Ang pindutan ay konektado sa GPIO2, at sa pindutan na inilabas, isang 10K risistor ay hilahin ang GPIO2 mataas. Na pinindot ang pindutan, ang GPIO2 ay hinila sa 0V.

Ginagamit ang pindutan na ito para sa dalawang pag-andar:

  • Paunang pag-set up upang ikonekta ang yunit sa isang lokal na WiFi network
  • Upang manu-manong kontrolin ang output habang normal na operasyon

LED na Indikasyon

Ang LED ay konektado sa GPIO0, at ipinapahiwatig ang sumusunod:

  • Sa paunang pag-upo ng lakas, i-flash ang FAST upang ipahiwatig ang WiFi Setup mode
  • Mabagal ang pag-flash kapag ang oras ng unit ay hindi nakatakda
  • Ipinapahiwatig ang katayuan ng relay na On / Off

Hakbang 2: Ang Power Supply

Ang Power Supply
Ang Power Supply
Ang Power Supply
Ang Power Supply
Ang Power Supply
Ang Power Supply

Gagamitin ko ang IoT Smart Timer sa iba't ibang mga antas ng boltahe, samakatuwid mayroong magagamit na dalawang mga pagpipilian sa supply ng kuryente:

12 - 24V DC

Ang ginamit na DC-DC converter ay angkop para sa mga supply hanggang sa 28V DC. Ang output ng converter ay madaling iakma, at nakatakda sa 5V. Kailangang gawin ito bago kumonekta ang module na ESP8266.

Ang isang diode ay idinagdag upang maprotektahan laban sa reverse polarity sa input ng supply.

220V ACPara sa pagpipiliang ito, nakakuha ako ng isang maliit na 220V / 5V switch mode power supply sa eBay.

Hindi alintana ang input boltahe, ang IoT Smart Timer ay nangangailangan ng dalawang power supply:

5V Rail

Sa parehong mga pagpipilian, ang 5V DC ay nakuha mula sa isang switch mode power supply, at hindi isang linear regulator. Nangangahulugan ito na mayroong kaunting init na nabuo ng power supply. Ginagamit ang 5V upang himukin ang output relay

3.3V Rail

Ang 3.3V para sa ESP8266-01 ay nakuha mula sa isang ASM1117 3.3 regulator. Ang ASM1117 3.3 ay isang linear regulator, at maaaring hawakan hanggang sa 500mA. Gayunpaman, ang nabuo na init ay matutukoy ng input boltahe sa ASM1117. Upang mabawasan ang init, ang ASM1117 ay pinalakas mula sa 5V rail.

Pagsala ng Ingay

Upang mabawasan ang boltahe na ripple sa ESP8266-01, ang 3.3V rail ay nilagyan ng isang 100 - 1000uf capacitor. Ang parehong 5V at 3.3V riles ay protektado rin mula sa mataas na dalas ng pagkagambala ng 0.1uf capacitors.

Hakbang 3: Pag-iipon ng PC Board

Pag-iipon ng PC Board
Pag-iipon ng PC Board
Pag-iipon ng PC Board
Pag-iipon ng PC Board
Pag-iipon ng PC Board
Pag-iipon ng PC Board

Ang PC Board ay dinisenyo gamit ang freeware na bersyon ng Eagle. Ito ay isang solong panig na board, na maaaring madaling gawin sa bahay gamit ang paraan ng paglipat ng toner.

Kapag nagawa ang PC Board, tipunin ang PC Board sa sumusunod na pagkakasunud-sunod:

  • Solder ang ASM1117 regulator at tatlong 0.1uf SMD na mga bahagi sa solder na bahagi ng board
  • Idagdag ang solong jumper sa bahagi ng board
  • Paghinang ang mga resistors at diode sa lugar
  • Idagdag ang mga header para sa module na ESP8266-01
  • Idagdag ang mga header pin para sa LED at pindutan
  • Idagdag ang mga screw terminal
  • Gamit ang mga header pin, ikonekta ang DC / DC converter sa board.
  • Ihihinang ang relay sa lugar
  • Kumpletuhin ang board sa pamamagitan ng paghihinang ng transistor at 100uf capacitor.

Kapag ang lahat ng mga bahagi ay na-solder sa board, i-verify ang lahat ng mga solder point, at tiyaking walang maikling mga circuit sa pagitan ng mga pad.

! ! ! MAHALAGANG PAALAALA ! ! ! Upang matiyak na ang PC Board ay maaaring hawakan ang malalaking alon sa mga contact na output, maglagay ng disenteng halaga ng panghinang sa mga track sa pagitan ng mga contact ng relay at mga terminal ng tornilyo

Hakbang 4: Pagsubok ng PC Board

Pagsubok ng PC Board
Pagsubok ng PC Board

! ! ! Bago mag-apply ng lakas! ! !

Alisin ang module na ESP8266-01 mula sa unit. Ito ay upang maiwasan ang sobrang pag-init ng ASM1117 regulator bago maiayos ang supply ng 5V.

Walang maraming mga pagsubok na maaaring gawin pagkatapos ng pagpupulong. Ang pinakamahalagang hakbang ay upang matiyak ang tamang mga antas ng boltahe.

  • Mag-apply ng 12 - 24V DC sa unit.
  • Sukatin ang output boltahe ng DC / DC converter
  • Ayusin ang output ng converter sa pagitan ng 5.0 at 5.5V.
  • Susunod, sukatin ang supply ng 3.3V.
  • Kung OK ang mga supply, alisin ang kuryente mula sa unit

Maaari mo na ngayong ipasok ang module ng ESP8266-01 sa mga ibinigay na header.

! ! ! Tandaan! !

Kapag nasubukan mo na ang IoT Timer at gumagana ito, gumamit ng malinaw na may kakulangan upang masakop ang panig ng panghinang ng PC Board. Pipigilan nito ang oksihenasyon ng mga track, at magbibigay ng labis na pagkakabukod sa pagitan ng mga contact na relay at ang natitirang circuit

Hakbang 5: Ang Enclosure

Ang Enclosure
Ang Enclosure
Ang Enclosure
Ang Enclosure
Ang Enclosure
Ang Enclosure

Ang enclosure ay hindi ganoon kahalaga, basta ang PC board at lahat ng mga kable ay umaangkop nang maayos at ligtas dito.

Upang gawing mas madali ang konstruksyon, gumawa ako ng isang cable na may koneksyon na LED at MODE / SETUP na konektado dito. Binigyan ako nito ng higit na kakayahang umangkop sa pag-mount ng LED at pindutan sa enclosure. Ang cable na ito pagkatapos ay naka-plug sa header sa PC Board.

Ipinapakita ng mga larawan ang isa sa 12V na yunit na ginamit para sa mga LED light.

Hakbang 6: Pagprogram ng ESP8266-01 / NodeMCU

Programming ang ESP8266-01 / NodeMCU
Programming ang ESP8266-01 / NodeMCU
Programming ang ESP8266-01 / NodeMCU
Programming ang ESP8266-01 / NodeMCU
Programming ang ESP8266-01 / NodeMCU
Programming ang ESP8266-01 / NodeMCU

Upang ma-program ang ESP8266-01, kailangan mo munang i-set up ang Arduino IDE. Hindi ako pupunta sa mga detalyeng ito, dahil maraming mga magagaling na Mga Tagubilin na magagamit sa paksang ito. Pinili ko ang mga sumusunod na link sa Mga Instructable para sa sanggunian, nang walang anumang tukoy na pagkakasunud-sunod sa mga may-akda. Salamat sa kani-kanilang mga Tagubilin.

Sundin ang ESP8266 at Arduino IDE na ito upang mai-set up ang Arduino IDE para sa module na ESP8266..

Susunod, kakailanganin mo ng isang programmer upang mai-program ang ESP8266. Narito ang dalawang mga link:

Gamit ang Arduino Uno

Board ng Programming ng DIY

Mga aklatan

Kakailanganin mong mag-install ng mga karagdagang aklatan upang maisaayos ang code. Muli, sumangguni sa Ituturo na ito:

I-install at Gumamit ng Arduino Library

Hindi ko matandaan kung aling mga aklatan ang dapat kong mai-install, ngunit alam ko na ang WiFiManager ay dapat na i-download nang magkahiwalay.. Isinama ko ang mga ito sa file ng Library.zip.

Hakbang 7: First Time Setup

Pag-setup ng First Time
Pag-setup ng First Time
Pag-setup ng First Time
Pag-setup ng First Time
Pag-setup ng First Time
Pag-setup ng First Time

Kapag ginamit sa unang pagkakataon, ang IoT Smart Timer ay kailangang maiugnay sa isang WiFi network. Ang gawaing ito ay tapos na gamit ang WiFiManager library, kaya't walang SSID o mga password ang kailangang mai-type sa code.

Sundin ang ilang mga hakbang na ito:

  • Patayin ang yunit
  • Ang LED ay magsisimulang mabilis na mag-flash
  • Pindutin ang pindutan na MODE / SETUP
  • Kapag naka-off ang LED, bitawan ang pindutan
  • Maghintay ng ilang segundo, pagkatapos buksan ang iyong mga koneksyon sa smartphone o aparato WiFi
  • Ang isang bagong WiFi netword na tinatawag na IoT Timer ay makikita
  • Piliin ang access point na ito
  • Mag-log papunta sa IoT Timer (walang kinakailangang password)
  • Maghintay hanggang ang iyong aparato ay konektado sa IoT Timer network
  • Buksan ang anumang browser ng internet
  • Sa address bar, i-type ang sumusunod na IP address - 192.168.4.1
  • Magbubukas ang WiFiManager console
  • Piliin ang I-configure ang WiFi
  • Ang isang listahan na may magagamit na mga puntos ng mga network ng WiFi ay ipapakita
  • Piliin ang kinakailangang WiFi network, at i-type ang password
  • Susunod, ipasok ang IP address na nais mong gamitin upang kumonekta sa IoT Timer
  • Ipasok ang Default Gateway IP address, na sinusundan ng mask
  • Kapag tapos na ang lahat ng mga setting, mag-click sa pindutang I-save
  • Magbubukas ang isang bagong window upang kumpirmahing nai-save ang mga bagong kredensyal
  • Isara ang iyong browser

Kapag na-save na, ang network ng IoT Timer ay magsasara, at susubukan ng unit na kumonekta sa iyong WiFi network.

  • Ikonekta ang iyong Smartphone o aparato sa parehong WiFi network tulad ng ginagamit para sa IoT Timer.
  • Buksan ang iyong browser
  • Sa address bar, i-type ang IP address ng iyong IoT Timer
  • Ang pahina ng pagsasaayos ng IoT Timer ay magbubukas

Ang iyong IoT Timer ay handa na para magamit

Hakbang 8: Pag-set up ng IoT Timer

Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer
Pag-set up ng IoT Timer

Ang built-in na web page ng IoT Timer ay binubuo ng limang mga seksyon:

Katayuan

Ipinapakita nito ang pangalan ng aparato, pati na rin ang kasalukuyang oras at katayuan ng output ng timer

Bilang karagdagan, ang operating mode ng timer ay nakatakda sa seksyong ito. Mayroong tatlong mga mode:

  • Auto - Ang output ay makokontrol ng iba't ibang mga programa ng timer
  • Bukas - Sapilitang ON ang output, at mananatili hanggang mabago ang mode
  • Patay - Pinilit ang OFFput OFF, at mananatili hanggang sa mabago ang mode.

Mga Programa

Ang seksyon na ito ay naglalaman ng mga oras ng Bukas at OFF ng timer. Mayroong pitong mga programa na magagamit, at ang bawat programa ay maaaring itakda nang paisa-isa.

Bago baguhin ang susunod na programa, pindutin ang I-save ang pindutan upang mai-save ang anumang mga pagbabago na ginawa sa kasalukuyang programa.

Pag-andar ng Button

Ang MODE / SETUP na pindutan ay maaaring magamit upang makontrol ang output relay habang normal na operasyon. Dito, piliin kung ano ang dapat gawin ng pindutan kapag pinindot.

Lagyan ng tsek ang kahon na "I-update ang Button Function" bago pindutin ang pindutang I-save upang mai-save ang mga bagong setting.

Pag-configure

Dito, maaari mong baguhin ang pangalan ng IoT Timer. Ginagawa nitong madaling makilala sa pagitan ng maraming mga timer.

Ang oras sa yunit ay nakuha mula sa internet sa pamamagitan ng isang NTP time server. Upang maipakita ang tamang oras, mangyaring i-update ang Time Zone sa iyong rehiyon.

Kung nais mong gamitin ang ibang server ng oras ng NTP, ipasok ang bagong IP address sa ibinigay na puwang.

Lagyan ng tsek ang kahon na "I-update ang Pag-configure" bago pindutin ang pindutang I-save upang mai-save ang mga bagong setting.

TANDAAN

Kapag binabago ang Oras ng Oras, ang bagong oras ay maitatakda lamang na tama sa susunod na query sa oras. Ang yunit ay nakatakda upang i-update ang oras tuwing 5 minuto.

Ayusin ang Oras

Minsan, nangyayari na ang server ng oras ng NTP ay hindi tumutugon sa bawat query sa oras. Kung magtatagal man ito para maitakda ang oras sa pamamagitan ng NTP server, maaari mong ipasok nang manu-mano ang oras at petsa.

Lagyan ng tsek ang kahon na "I-update ang Oras" bago pindutin ang pindutang I-save upang mai-save ang bagong oras at petsa.

Pagsasabay sa Oras

Ang huling bahagi ng pahina ay nagpapahiwatig ng oras at petsa kung kailan ang huling oras ay na-synchronize sa pamamagitan ng NTP time server.

Inirerekumendang: