Paano Gumawa ng Iyong Sariling Button na Nakakonekta sa Wi-Fi Sa ESP8266

Paano Gumawa ng Iyong Sariling Button na Nakakonekta sa Wi-Fi Sa ESP8266

Ang Internet of Things ay may malawak na potensyal sa DIY. Na may sapat na kaalaman at ilang murang mga bahagi, maaari kang bumuo ng isang kumplikadong sistema ng mga konektadong aparato.





Minsan, gayunpaman, nais mo ang isang bagay na simple. Walang mga kampanilya o sipol, isang pindutan lamang na gumaganap ng isang solong gawain. Maaaring pamilyar ka na sa isang bagay tulad nito kung gumamit ka na ng isang pindutan ng Amazon Dash upang muling ayusin ang pang-araw-araw na mga item sa sambahayan.





Ngayon ay gagawa kami ng isang pindutan na pinagana ang Wi-Fi gamit ang isang NodeMCU, at i-program ito upang magamit ang IFTTT upang gawin ... mabuti, anuman! Mga nakasulat na tagubilin kasunod ng video, kung nais mo.





Ano ang Kakailanganin Mo

Kakailanganin mong:

  • 1 x NodeMCU (ESP8266) board, magagamit para sa $ 2-3 sa AliExpress
  • 1 x Pushbutton
  • 1 x LED (opsyonal)
  • 1 x 220 Ohm risistor (opsyonal)
  • Mga wire ng Breadboard at hookup
  • Micro USB para sa programa
  • Ang computer na may naka-install na Arduino IDE

Bukod sa NodeMCU, dapat mong matagpuan ang karamihan sa mga bahaging ito sa anumang Arduino starter kit. Ipagpalagay ng tutorial na ito na gumagamit ka ng opsyonal na LED at risistor, ngunit hindi sila mahalaga.



Hakbang 1: Pag-set up ng Circuit

Ang pag-setup ng hardware ay napaka-simple para sa proyektong ito. I-set up ang iyong board alinsunod sa diagram na ito.

Nakakabit ang purple wire pin D0 sa isang gilid ng pindutan. Ang berdeng kawad ay nagkokonekta sa kabilang panig ng pindutan sa RST pin . Tumatakbo ang asul na kawad pin D1 sa risistor at LED. Ang negatibong binti ng LED ay nakakabit sa GND pin ng NodeMCU.





Kapag na-set up ang breadboard dapat magmukhang ganito:

ano ang gamit ng hardware acceleration kung magagamit

Kung nagtataka ka kung paano ko nakuha ang aking LED na papunta sa ground pin gamit lamang ang mga maliliit na piraso ng cable, ang aming mabilis kurso sa pag-crash ng tinapay dapat makatulong na i-clear ito! Suriin ang iyong pag-set up at ilakip ang iyong NodeMCU sa computer sa pamamagitan ng USB.





Hakbang 2: Pag-set up ng IDE

Bago magpatuloy sa pag-coding, kailangan mong gumawa ng ilang mga paghahanda. Kung hindi mo pa nagagawa, i-set up ang Arduino IDE upang makilala ang iyong board ng NodeMCU. Maaari mo itong idagdag sa iyong listahan ng mga board sa pamamagitan ng File> Mga Kagustuhan .

Maaari kang makahanap ng isang mas detalyadong paliwanag sa hakbang na ito sa aming artikulo sa pagpapakilala sa NodeMCU.

Dalawang silid-aklatan ang kinakailangan para sa proyektong ito. Mag-navigate sa Sketch> Isama ang Library> Pamahalaan ang Mga Aklatan . Paghahanap para sa ESP8266WIFI ni Ivan Grokhotkov at i-install ito. Ang library na ito ay nakasulat para sa paggawa ng mga koneksyon sa Wi-Fi sa board ng NodeMCU.

Susunod na paghahanap para sa IFTTTWebhook ni John Romkey at i-install ang pinakabagong bersyon. Ang library na ito ay dinisenyo upang gawing simple ang proseso ng pagpapadala ng mga webhook sa IFTTT.

Iyon lang ang paghahanda na kailangan namin, hinahayaan ang code!

Paano gagana ang Code

Gagamitin namin ang ESP8266WIFI library upang maitaguyod ang isang koneksyon sa Wi-Fi. Ang IFTTTWebhooks gumagawa ang isang silid-aklatan sa IFTTT --- sa kasong ito, upang mag-post sa Twitter. Pagkatapos, turuan ang board ng NodeMCU na matulog kapag hindi ginagamit upang makatipid ng kuryente.

Kapag pinindot ang pindutan, maiuugnay nito ang D0 at RST mga pin. Ire-reset nito ang board, at nangyayari muli ang proseso.

Karamihan sa code sa tutorial na ito ay sapat na simple para sa mga nagsisimula. Sinabi iyan, kung nagsisimula ka, mas madali mong maintindihan pagkatapos sundin ang aming Patnubay sa mga nagsisimula ng Arduino .

Ang tutorial na ito ay dumadaan sa code sa mga chunks upang matulungan sa pag-unawa. Kung nais mong dumiretso sa negosyo, mahahanap mo ang kumpletong code sa Pastebin . Tandaan na kakailanganin mo ring punan ang iyong mga kredensyal sa Wi-Fi at IFTTT sa code na ito upang gumana ito!

Hakbang 3: Pagsubok ng Malalim na Pagtulog

Upang magsimula, lilikha kami ng isang simpleng pagsubok upang maipakita kung paano gumagana ang malalim na pagtulog. Magbukas ng isang bagong sketch sa Arduino IDE. Ipasok ang sumusunod na dalawang mga chunks ng code.

#include
#include
#define ledPin 5
#define wakePin 16
#define ssid 'YOUR_WIFI_SSID'
#define password 'YOUR_WIFI_PASSWORD'
#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Dito, isinasama namin ang aming mga aklatan, kasama ang pagtukoy ng ilang mga variable na kakailanganin namin sa aming sketch. Mapapansin mo na ang ledPin at wakPin ay naiiba ang bilang dito kumpara sa Fritzing diagram sa itaas. Ang NodeMCU ay may ibang pinout sa mga board ng Arduino. Gayunpaman, hindi ito isang problema, dahil sa madaling gamiting diagram na ito:

Lumikha ngayon ng isang pag-andar ng pag-setup:

void setup() {
Serial.begin(115200);
while(!Serial) {
}
Serial.println(' ');// print an empty line before and after Button Press
Serial.println('Button Pressed');
Serial.println(' ');// print an empty line
ESP.deepSleep(wakePin);
}

Dito, na-set up namin ang aming serial port, at gumagamit ng isang habang loop upang maghintay hanggang magsimula ito. Dahil mag-uudyok ang code na ito pagkatapos ng pagpindot sa pindutan ng pag-reset, nag-print kami 'Pinindot ang Button' sa serial monitor. Pagkatapos, sasabihin namin sa NodeMCU na matulog nang matulog hanggang sa pindutan na kumonekta sa gisingin sa RST pinindot ang pin.

Panghuli, para sa pagsubok, idagdag ito sa iyong loop () pamamaraan:

void loop(){
//if deep sleep is working, this code will never run.
Serial.println('This shouldn't get printed');
}

Karaniwan, ang mga sketch ng Arduino ay nagpapatakbo ng loop function nang tuloy-tuloy pagkatapos ng pag-set up. Dahil pinapadala namin ang board upang matulog bago magtapos ang pag-set up, hindi tumatakbo ang loop.

I-save ang iyong sketch at i-upload ito sa board. Buksan ang serial monitor at dapat mong makita 'Pinindot ang Button.' Sa tuwing magpapalitaw ang pindutan, nag-i-reset ang board at muling lumilimbag ang mensahe. Gumagana siya!

Isang Tala Tungkol sa Serial Monitor

Maaaring napansin mo ang ilang kalokohan na mga character sa serial monitor sa panahon ng ilan sa iyong mga proyekto. Karaniwan ito ay dahil sa hindi pagtatakda ng serial monitor sa parehong rate ng baud tulad ng Serial.begin (XXXX) rate

Maraming mga gabay ang iminumungkahi na simulan ang serial connection sa isang baud rate na 115200 para sa isang proyekto na tulad nito. Sinubukan ko ang maraming mga kumbinasyon, at lahat sila ay may iba't ibang antas ng kabastusan bago at pagkatapos ng mga serial message. Ayon sa iba't ibang mga post sa forum, maaaring mapunta ito sa isang may sira na isyu sa board o software na pagkakatugma. Dahil hindi masyadong nakakaapekto sa proyekto, pinipili kong hindi ito nangyayari.

pagkuha ng mikropono ng output sound windows 10

Kung nagkakaroon ka ng mga isyu sa serial monitor, subukan ang iba't ibang mga rate ng baud at tingnan kung alin ang pinakamahusay na gumagana para sa iyo.

Hakbang 4: Kumokonekta sa Wi-Fi

Lumikha ngayon ng isang pagpapaandar para sa pagkonekta sa iyong Wi-Fi network.

void connectToWifi() {
Serial.print('Connecting to: SSID NAME'); //uncomment next line to show SSID name
//Serial.print(ssid);
WiFi.begin(ssid, password);
Serial.println(' ');// print an empty line
Serial.print('Attempting to connect: ');
//try to connect for 10 seconds
int i = 10;
while(WiFi.status() != WL_CONNECTED && i >=0) {
delay(1000);
Serial.print(i);
Serial.print(', ');
i--;
}
Serial.println(' ');// print an empty line
//print connection result
if(WiFi.status() == WL_CONNECTED){
Serial.print('Connected.');
Serial.println(' ');// print an empty line
Serial.print('NodeMCU ip address: ');
Serial.println(WiFi.localIP());
}
else {
Serial.println('Connection failed - check your credentials or connection');
}
}

Sinisikap ng pamamaraang ito na kumonekta sa iyong network ng sampung beses na may isang segundo sa pagitan. Ang tagumpay o pagkabigo ng koneksyon ay naka-print sa serial monitor.

Hakbang 5: Pagtawag sa Paraan ng Koneksyon

Sa ngayon, ang connectToWifi () ay hindi kailanman tinawag. Magdagdag ng isang tawag sa iyong pag-andar sa pag-setup sa pagitan ng mensahe ng 'Button Pressed' at pagpapadala sa board upang matulog.

connectToWifi();

Kung sakaling nagtataka ka kung saan ito umaangkop, dapat ganito ang hitsura:

Sa tuktok ng sketch palitan ang ssid at password variable sa iyong mga kredensyal sa Wi-Fi. I-save ang iyong sketch at i-upload sa board.

Ngayon kapag nag-boot ang board tatangkaing kumonekta sa iyong Wi-Fi network, bago bumalik sa pag-andar ng pag-setup. Ngayon, hahayaan nating i-set up ang pagsasama ng IFTTT.

Hakbang 6: Pag-set up ng Pagsasama ng IFTTT

Pinapayagan ng IFTTT ang pagsasama sa isang malawak na hanay ng mga serbisyo sa web. Ginamit namin ito sa aming Wi-Fi PC tower LED tutorial upang magpadala ng isang alerto tuwing makakatanggap ng isang bagong email. Ngayon ay gagamitin namin ito upang magpadala ng isang tweet sa pagpindot sa isang pindutan.

Mag-navigate sa Ang aking mga Applet pahina, at piliin Bagong Applet

Mag-click sa + ito at kumonekta sa Webhooks . Pumili 'Tumanggap ng isang kahilingan sa web' at pangalanan ang iyong kaganapan. Panatilihing simple ! Itala ang pangalan ng kaganapan, kakailanganin mong idagdag ito sa iyong NodeMCU code sa paglaon. Mag-click 'Lumikha ng Trigger' .

Piliin ngayon + iyon . Maghanap para sa Twitter serbisyo at kumonekta dito --- kakailanganin mong pahintulutan ito na mag-post sa iyong Twitter account. Pumili 'Mag-post ng tweet' at piliin ang iyong mensahe.

Hihilingin sa iyo ng susunod na screen na suriin ang applet. Mag-click matapos. Ayan yun!

Hakbang 7: Pagdaragdag ng Mga Kredensyal sa IFTTT sa Code

Bumalik sa Arduino IDE kakailanganin mong idagdag ang iyong IFTTT API key at pangalan ng kaganapan sa iyong tinukoy na mga variable. Upang hanapin ang API key, mag-navigate sa Ang aking mga Applet at piliin Webhooks sa ilalim ng Mga serbisyo tab Pumili Dokumentasyon upang ma-access ang iyong susi.

Kopyahin ang susi, at pangalan ng kaganapan sa iyong code, kapalit ng pansamantalang mga pangalan na na-set up para sa kanila.

#define IFTTT_API_KEY 'IFTTT_KEY_GOES_HERE'
#define IFTTT_EVENT_NAME 'IFTTT_EVENT_NAME_HERE'

Tandaan, ang mga baligtad na kuwit ay kailangang manatili, palitan lamang ang teksto.

Sa pagitan ng pagtawag sa connectToWifi () at pagpapadala sa board ng pagtulog, lumikha ng isang halimbawa ng IFTTTWebhook library object. Hudyat ng LED ang pagkumpleto ng gawain bago magsimula muli ang malalim na pagtulog.

gawing mas mabilis ang windows 10 para sa gaming
//just connected to Wi-Fi
IFTTTWebhook hook(IFTTT_API_KEY, IFTTT_EVENT_NAME);
hook.trigger();
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
delay(200);
digitalWrite(ledPin, LOW);
//now sending board to sleep

Tumutulak ang pagtawag sa kawit pinaputok ng object ang IFTTT applet, at dapat na mag-post sa iyong Twitter account. I-save ang iyong sketch at i-upload ito. Dapat ay mayroon kang isang ganap na functional na pindutan ng pag-tweet.

Kung tila hindi ito gumagana, suriin nang mabuti ang iyong code at mga kredensyal para sa mga pagkakamali. Kung talagang makaalis ka, kunin ang buong code mula sa itaas at ihambing ito sa iyong sarili.

Tapos na! Paano Mo Ito Mapapagbuti?

Ito ay isang pangunahing bersyon ng isang pindutan ng Wi-Fi, ngunit maraming paraan na maaaring mapabuti. Para sa pagiging simple, ang koneksyon sa USB ay ginagamit para sa lakas dito. Gagawa ito ng isang baterya ng buong mobile, at ang isang kaso na humahawak sa circuit ay magiging perpektong proyekto ng pag-print ng 3D ng nagsisimula.

Sa kabila ng paggamit ng mahimbing na pagtulog, maaari kang makahanap ng baterya ay mabilis na maubusan. Maraming Mga tip sa pag-save ng lakas ng Arduino na makakatulong sa ganitong uri ng mga proyekto. Habang mas mahirap kaysa sa tutorial na ito, kung gumawa ka ng iyong sariling Arduino na may malay-lakas mula sa simula, ang isang pindutan ng Wi-Fi na pinapatakbo ng baterya ay maaaring tumagal ng maraming buwan!

Ang proyektong ito ay gagawing perpekto para sa isang remote para sa mga smart home application. Mayroon nang isang malaki halaga ng applet ng automation ng bahay magagamit sa IFTTT. Kapag nakuha mo na ang mga pangunahing kaalaman, maaari mong gamitin ang halos anumang sensor o lumipat upang mag-trigger ng halos anumang serbisyo na maaari mong isipin.

Credit sa Larawan: Vadmary / Mga deposito

Magbahagi Magbahagi Mag-tweet Email 6 Mga kahaliling Napapakinggan: Ang Pinakamahusay na Libre o Murang Audiobook Apps

Kung hindi mo pinangarap na magbayad para sa mga audiobook, narito ang ilang magagaling na apps na hinahayaan kang makinig sa kanila nang libre at ligal.

Basahin Susunod
Mga Kaugnay na Paksa
  • DIY
  • Arduino
  • Mga Tutorial sa DIY Project
Tungkol sa May-akda Ian Buckley(216 Mga Artikulo Nai-publish)

Si Ian Buckley ay isang freelance journalist, musikero, tagapalabas at tagagawa ng video na naninirahan sa Berlin, Germany. Kapag hindi siya nagsusulat o nasa entablado, nakikipag-usap siya sa mga elektronikong DIY o code sa pag-asang maging isang baliw na siyentista.

Higit pa Mula kay Ian Buckley

Mag-subscribe sa aming newsletter

Sumali sa aming newsletter para sa mga tip sa tech, pagsusuri, libreng ebook, at eksklusibong deal!

Mag-click dito upang mag-subscribe
Kategorya Diy