Talaan ng mga Nilalaman:

Malayuang I-shutdown o I-restart ang isang Computer Na May ESP8266 Device: 10 Hakbang (na may Mga Larawan)
Malayuang I-shutdown o I-restart ang isang Computer Na May ESP8266 Device: 10 Hakbang (na may Mga Larawan)

Video: Malayuang I-shutdown o I-restart ang isang Computer Na May ESP8266 Device: 10 Hakbang (na may Mga Larawan)

Video: Malayuang I-shutdown o I-restart ang isang Computer Na May ESP8266 Device: 10 Hakbang (na may Mga Larawan)
Video: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, Hulyo
Anonim
Image
Image

Upang maging malinaw dito, isinasara namin ang IYONG computer, hindi ang computer ng iba.

Ganito ang kwento:

Isang kaibigan ko sa Facebook ang nag-message sa akin at sinabi na mayroon siyang isang dosenang mga computer na nagpapatakbo ng isang grupo ng matematika, ngunit tuwing umaga ng 3 ng umaga, nakakulong sila. Dahil ang mga computer ay 30-minuto ang layo, isang malaking istorbo upang himukin ang dalawang bayan (nakatira kami sa South Dakota) upang paikutin ang mga computer. Tinanong niya, maaari ba akong bumuo sa kanya ng isang aparato ng IoT na magpapahintulot sa kanya na i-restart ang nakakasakit na computer mula sa ginhawa ng kanyang maginhawang kama?

Huwag palampasin ang isang hamon, pumayag ako na pagsamahin ang isang bagay para sa kanya. Ito ang proyekto.

Gamit ang dalawang nakarehistro na bit-shift, isang ESP8266 ESP01, isang maliit na LED, at ilang mga homemade optoisolator, ang buong proyekto ay nagkakahalaga ng humigit-kumulang na $ 5 kung bibilhin mo ang mga bahagi mula sa Tsina sa eBay. Siguro $ 20 mula sa Amazon.

Ito ay isang medyo kumplikadong pagbuo na may maraming mga pinong paghihinang. Hindi binibilang ang aking mga turnilyo at muling paghihinang, kinuha sa akin ang mas mahusay na bahagi ng 20 oras upang gawin, ngunit ito ay naging kamangha-manghang at ganap na gumana.

Magsimula na tayo.

Hakbang 1: Prototype Board

Prototype Board
Prototype Board
Prototype Board
Prototype Board

Palaging simulan ang lahat ng mga proyekto sa isang prototype breadboard. Ito ang pinakamahusay na paraan upang matukoy kung mayroon ka ng lahat ng mga sangkap at magpatakbo tulad ng inaasahan. Medyo kumplikado ang proyektong ito, kaya inirerekumenda kong buuin ito sa isang breadboard bago sumulong.

Ang mga bahagi na kakailanganin mo ay:

  • Isang ESP8266 ESP01 (bagaman ang anumang aparato ng ESP8266 ay gagana)
  • Dalawang 8-bit na rehistro ng paglilipat, ginamit ko ang 74HC595N
  • 16 LEDs, gumamit ako ng straw hat white whites na nagpapatakbo sa 3.3V. Kung gumagamit ka ng iba, maaaring kailanganin mo ng resistors.
  • Tatlong 3k3-ohmpulldown resistors
  • Jumper wires at isang breadboard

Kakailanganin mo ring bumuo ng kahit isang optoisolator. Gumamit ako ng black shrink tubing, isang maliwanag na puting LED, isang resistor na 220-ohm, at isang photoresistor. Paghinang ang resistor na 220-ohm sa katod ng LED at pagkatapos ay tinatakan ang LED at ang photoresistor sa loob ng shrink tubing na magkaharap. Ngunit makakarating kami sa mga nasa susunod na hakbang.

Sundin ang diagram ng mga kable na ibinigay sa susunod na hakbang. Ang mga kable ay medyo prangka.

Dahil ang ESP8266 ay nagpapatakbo sa 3.3V, tiyaking pinapagana mo ito nang naaangkop

Hakbang 2: Schema Gamit ang Will-CAD

Schema Gamit ang Will-CAD
Schema Gamit ang Will-CAD

Ang eskematiko ay medyo prangka. Sinusundan namin ang karaniwang wire-up ng isang 8-bit shift register. Dahil gumagamit ako ng dalawang 8-bit na rehistro ng paglilipat, kailangan silang magkadena sa kanilang mga 'orasan' at 'trangka' na mga pin.

Dahil ang ESP01 ay mayroon lamang dalawang mga GPIO pin, kailangan naming gamitin muli ang TX & RX bilang mga output, na gumagana nang maayos para sa aming mga layunin. Maaari kang gumamit ng isang ESP-12 o ibang bersyon na may higit sa dalawang mga pin ng GPIO kung nais mo ng higit na kontrol. Ngunit magdaragdag iyon ng isa pang $ 2 sa gastos ng proyekto - na kung saan ay nakababaliw lamang.

Kailangan naming panatilihin ang aming 8-bit na rehistro ng paglilipat at ang mga pin ng ESP01 ay nakuha nang mataas sa boot, kaya't hindi sila gumagawa ng mga kakatwang bagay o pumunta sa mode ng programa. Gumamit ako ng tatlong resistors ng 3k3, gagana rin ang mas malaki o mas maliit na mga halaga. Ang halagang ito ay nagmula sa mga gabay na pinag-uusapan ang paggamit ng mga alternatibong pin sa ESP01.

ESP01 (ESP8266)

  • TX orasan pin 3k3 pullup
  • RX latch pin 3k3 pullup
  • 00 serial data 3k3 pullup
  • 02 lumulutang

8-bit Shift Register (74HC595H)

  • VCC 3.3V
  • OE 3.3V (ito ang paganahin ang pin)
  • GND GND
  • CLR GND (pinipigilan nito ang malinaw na pin mula sa pag-clear)
  • At ang mga LED, ang mga iyon ay pumunta sa lupa.

Hakbang 3: Code ng ESP8266

Code ng ESP8266
Code ng ESP8266

Ang code na ESP8266 ay medyo prangka. Sa kasamaang palad, ang editor sa Instructables ay medyo walang silbi, kaya't nais mong makuha ang code nang direkta mula sa Github.

proyekto na "racks-reboot":

github.com/bluemonkeydev/arduino-projects/…

Magagamit ang klase na "SensorBase" dito. Kinakailangan kung nais mong "gamitin" ang aking code:

github.com/bluemonkeydev/arduino-projects/…

Mayroong ilang mga bagay na dapat tandaan. Ang code ay medyo naidokumento.

  1. Ako ay isang napaka tamad na developer, kaya inilagay ko ang lahat ng magagamit muli na code ng ESP8266 sa isang klase na tinatawag na "SensorBase." Maaari mong makita iyon sa Github, mag-link din sa itaas.
  2. Dapat mong i-type ang server, username, password, at port ng iyong MQTT broker. Ang mga iyon ay mahahanap nang medyo malayo pa kapag nilikha namin ang serbisyo ng CloudMQTT.
  3. HINDI mo kailangang sundin ang aking paksa format ng syntax. Gayunpaman, inirerekumenda kong sundin ito.
  4. Walang matalino tungkol sa code na ito. Napaka-pragmatic nito.

Hakbang 4: Perfboard Layout

Layout ng Perfboard
Layout ng Perfboard

Ang proyektong ito ay mai-install sa isang mini-datacenter, kaya't nagpasya akong gumamit lamang ng perf board para sa pangwakas na disenyo. Mahusay na gumagana ang Perfboard para sa mga proyektong tulad nito at madaling mag-layout gamit ang isang piraso ng pasadyang papel na grap. Makikita mo rito ang aking layout. Siyempre, maaari mong piliing gawin ito nang iba.

Kailangan ng aking proyekto ang dalawang 8-bit na rehistro ng paglilipat, kaya nagsimula ako sa kanilang pagpoposisyon sa gitna. Alam ko na ang aking mga konektor sa mga optoisolator ay magiging simpleng mga header ng babae sa ngayon, kahit na hindi iyon isang perpektong solusyon.

Gustung-gusto ko ang mga LED, at kailangan ito upang magkaroon ng isang LED para sa bawat circuit ng optoisolator. Alam kong ang yugto ng pagsubok ay magiging mas madali kung makakakuha ako ng instant na direkta na puna sa board, ngunit alam ko din na ang mga LED na iyon ay magiging sanhi ng malaking sakit na maghinang. At sila ay. Wala akong anumang mas maliit sa 5mm LEDs, kaya kinailangan kong mag-stagger sa kanila. Ang aking pangwakas na disenyo ay gumawa ng isang pattern ng zig-zag ng mga cathode dahil hindi ko nais na patakbuhin ang mga anode sa mga ground wires. Ito ay napatunayan na isang mahusay na disenyo. Ang mga LED wires ay sumali sa itaas ng 8-bit shift register at tumakbo sa tuktok ng board na may mga shield na wires para sa pagiging simple.

Para sa lakas, nais kong patakbuhin ito mula sa isang lumang USB cable upang direktang mapalakas mula sa isa sa mga computer. Ito ay gagana nang maayos dahil ang mga USB port ay karaniwang pinalakas kahit na ang computer ay naka-off. Gumamit ako ng isang LM317 linear voltage regulator upang mabawasan ang lakas sa 3.3V. Ang isang 3.3V regulator ay gagana rin, ngunit wala ako.

Upang maiwasan ang sobrang pagtawid ng mga wires, nagpatakbo ako ng ilang mga wire sa tuktok na bahagi ng perf board, na sinusubukan kong iwasan. Tandaan na ang through-hole ay nakapag-conductive, kaya gumamit ng mga shield na wires upang maiwasan ang mga shorts. Ang mga koneksyon na nagaganap sa tuktok ng board ay ipinapakita sa mga linya ng dash sa aking diagram.

Hakbang 5: Soldered Board

Soldered Board
Soldered Board

Ang aking panghuling soldered board ay naging maayos talaga. Tulad ng inaasahan, ang mga LED sa tuktok ay tumagal ng maraming trabaho upang ma-solder nang tama nang walang anumang shorts. Matapos mong solder ang mga LED at header, gamit ang iyong multimeter upang matukoy kung mayroon kang anumang shorts. Mahusay na alamin ngayon.

Maliban sa mga LED, lahat ng iba pa ay naging maayos. Kailangan kong gawing muli ang ilang mga koneksyon, ngunit sa ilang mga pasyente, ilang pag-debug, at isang maliit na muling paghihinang, ang lahat ay gagana nang maayos.

Makikita mo mula sa larawang ito na nai-hook up ko rin ang mga optoisolator, na ginamit ko 8-wire CAT-5 cable. Ang dahilan dito ay napakurang, madaling mag-splice, at mahusay na may marka tungkol sa mga optoisolator na ito sa susunod na hakbang.

Hakbang 6: Paggawa ng mga Optoisolator

Gumagawa ng mga Optoisolator
Gumagawa ng mga Optoisolator

Siyempre, hindi mo kailangang gumawa ng iyong sariling mga optoisolator. Maraming mga komersyal na bersyon ang magagamit para sa mga pennies bawat isa at gagana ang mas mahusay na pagpapatakbo dahil magmaneho sila ng mga linya ng kuryente ng computer nang direkta nang walang anumang paglaban. Ngunit, wala akong anumang optoisolator, kaya kailangan kong gawin ang minahan gamit ang isang LED, risistor, at photoresistor.

Matapos makumpirma na sa loob ng isang manggas ng itim na pag-urong ng tubo, ang "off" na pagtutol na may mas mababa sa aking metro ay maaaring mabasa at ang "on" na paglaban ay ilang libong ohms, gumawa ako ng isang pangwakas na pagsubok sa isang lumang motherboard. Ito ay gumagana nang perpekto para sa akin. Pinaghihinalaan ko na ang ilang mga computer ay maaaring maging mas kaunti o mas sensitibo, ngunit sa mga motherboard na nasubukan ko, gumana nang maayos ang pagsasaayos na ito.

Gusto mong gumamit ng isang talagang maliwanag na puting LED upang makuha ang maximum na ilaw sa photoresistor. Hindi ako sumubok ng maraming mga pagpipilian, ngunit ang maliwanag na puting LED at isang resistor na 220-ohm ay tiyak na gumagana nang maayos.

Hakbang 7: Pag-setup ng CloudMQTT

Pag-setup ng CloudMQTT
Pag-setup ng CloudMQTT
Pag-setup ng CloudMQTT
Pag-setup ng CloudMQTT
Pag-setup ng CloudMQTT
Pag-setup ng CloudMQTT

Anumang serbisyo ng MQTT, o katulad na serbisyo ng IoT tulad ng Blynk, ay gagana, ngunit pinili kong gamitin ang CloudMQTT para sa proyektong ito. Gumamit ako ng CloudeMQTT para sa maraming mga proyekto sa nakaraan, at dahil ang proyektong ito ay ibibigay sa isang kaibigan, makatuwiran na lumikha ng isang bagong account na maaari ring mailipat.

Lumikha ng isang CloudMQTT account at pagkatapos ay lumikha ng isang bagong "halimbawa," piliin ang laki ng "Cute Cat" dahil ginagamit lamang namin ito para sa kontrol, walang pag-log. Magbibigay sa iyo ang CloudMQTT ng isang pangalan ng server, username, password, at numero ng port. (Tandaan na ang numero ng port ay hindi ang karaniwang MQTT port). Ilipat ang lahat ng mga halagang ito sa iyong code na ESP8266 sa mga kaukulang lokasyon, na tinitiyak na ang kaso ay tama. (seryoso, kopyahin / i-paste ang mga halaga)

Maaari mong gamitin ang panel na "Websocket UI" sa CloudMQTT upang makita ang mga koneksyon ng iyong aparato, pagpindot sa pindutan, at, sa kakatwang senaryo, na nakakuha ka ng isang error, isang mensahe ng error.

Kakailanganin mo ang mga setting na ito kapag nag-configure din ng Android MQTT client, kaya tandaan ang mga halaga kung kailangan mo. Inaasahan ko, ang iyong password ay hindi masyadong kumplikado upang mai-type sa iyong telepono. Hindi mo maitatakda iyon sa CloudMQTT.

Hakbang 8: MQTT Android Client

MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client
MQTT Android Client

Anumang Android (o iPhone) MQTT client ay gagana, ngunit gusto ko ang MQTT Dash. Madaling gamitin ang MQTT Dash, napaka tumutugon, at mayroon ng lahat ng mga pagpipilian na kakailanganin mo.

Kapag na-install na, mag-set up ng isang MQTT Server, i-populate ang server, port, username, at password na may mga halaga ng iyong instance, HINDI ang iyong impormasyon sa pag-login sa CloudMQTT. Maaari mong gamitin ang anumang pangalan ng kliyente na gusto mo.

Kung na-type mo nang tama ang lahat, awtomatiko itong kumokonekta sa iyong MQTT server at magpapakita sa iyo ng isang blangkong screen dahil hindi mo pa nai-set up ang anumang mga pindutan, teksto, o mensahe pa. Sa blangkong screen, nakikita mo ang isang "+" sa kanang sulok sa itaas, i-click ito, at pagkatapos ay piliin ang "Piliin / Button." Magdaragdag kami ng isang "Piliin / Button" bawat computer, kaya't 8 o 16 o mas kaunti.

Kung nakakuha ka ng isang error sa koneksyon, mayroon kang isa sa mga maling halaga. Bumalik at i-double check

Gagamitin ng bawat computer ang paksang tumutugma sa mga halagang tinukoy sa iyong code. Kung susundin mo ang aking mga kombensiyon, ang mga ito ay "cluster / rack-01 / computer / 01". Mahusay na baguhin ang mga halagang "on" at "off" upang tumugma sa aming code. Sa halip na "0" at "1", gamitin ang mga halagang "on" at "off," ayon sa pagkakabanggit. Inirerekumenda ko rin ang paggamit ng QoS (1) dahil may aasahan kaming kumpirmasyon mula sa server.

Pagkatapos magdagdag ng isa, maaari mong pindutin nang matagal at gamitin ang pagpipiliang "clone" upang lumikha ng isang bungkos, pagkatapos ay baguhin ang kanilang pangalan at paksa.

Sapat na madali.

Hakbang 9: Pagkuha ng Iyong ESP8266 sa Wifi

Pagkuha ng Iyong ESP8266 sa Wifi
Pagkuha ng Iyong ESP8266 sa Wifi

Gamit ang module na W8 Manager ng ESP8266, isang simoy ng hangin upang makuha ang aming aparato sa Wifi. Kung ginamit mo ang aking klase sa SensorBase, built-in na ito. Kung hindi, sundin ang mga tagubilin sa pahina ng Wifi Manager.

Susubukan ng Wifi Manager na kumonekta sa iyong SSID sa boot, na hindi nito magagawa dahil hindi mo pa nasabi sa iyong SSID, kaya awtomatiko itong pupunta sa mode ng access point (o AP Mode) at maghatid ng isang simpleng web page na humihiling para sa iyong SSID & Password. Gamit ang iyong telepono o laptop, ikonekta ang bagong magagamit na wireless network gamit ang pangalang SSID na "ESP_xxxxxx," kung saan ang "xxxxxx" ay ilang pagkakasunud-sunod (hindi talaga random) na pagkakasunud-sunod. (Ang mga buong tagubilin ay matatagpuan sa pahina ng Wifi Manager.)

Kapag nakakonekta, ilabas ang iyong web browser at ituro ito sa 192.168.4.1, i-type ang iyong SSID & Password, at i-click ang save.

Nasa internet ka ngayon, at ang iyong aparato ng IoT ay may "I" na bahagi na gumagana!

Hakbang 10: Pangwakas na Koneksyon at Pagsubok

Pangwakas na Koneksyon at Pagsubok
Pangwakas na Koneksyon at Pagsubok

Tapos na.

Upang mai-hook ang lahat, hanapin ang power button cable ng iyong computer kung saan nito natutugunan ang motherboard. Dapat mong makita ang dalawang hanay ng mga header na may isang bungkos ng mga wire at konektor. Karaniwan, ang mga ito ay mahusay na may label. I-unplug ang iyong switch at i-plug ang optoisolator plug. Naglagay ako ng ilang mga "Dupont" na plug sa aking, kaya't sila ay naka-plug in tulad ng power cable. Ang polarity sa pagtatapos na ito ay hindi mahalaga ngunit tiyaking mayroon kang polarity ng kabilang dulo na tama - ang pupunta sa iyong pasadyang board.

At ito ay gumagana nang perpekto. Gamit ang MQTT Dash client (o katulad na tool), malayo mo mapapalakas ang iyong mga computer.

Pindutin ang kaukulang pindutan ng pag-check sa iyong app, at sa sandaling makarinig ang app mula sa MQTT server na may mensahe na "naka-off", ang pindutan ay mababalik sa hindi na-check.

Tumatakbo ito nang ilang linggo nang walang anumang mga isyu. Napansin namin na ang tagal ng oras upang hilahin ang pindutan ng mababa sa mga computer na kailangan upang mapalawak. Natapos kami sa 1 buong segundo. Ang halagang ito ay maaaring mailantad bilang isang maayos na halaga sa pamamagitan ng MQTT server, o maaari mong hardwire ang halaga, depende sa iyong pagnanasa.

Good luck, at ipaalam sa akin kung paano naging iyo.

Inirerekumendang: