Kā izveidot savu savienotā Wi-Fi pogu ar ESP8266

Kā izveidot savu savienotā Wi-Fi pogu ar ESP8266

Lietu internetam ir milzīgs DIY potenciāls. Ar pietiekamu zinātību un dažiem lētiem komponentiem jūs varētu izveidot sarežģītu savienotu ierīču sistēmu.





Tomēr dažreiz jūs vēlaties kaut ko vienkāršu. Nav zvanu vai svilpes, tikai poga, kas veic vienu uzdevumu. Jūs, iespējams, jau esat pazīstams ar kaut ko līdzīgu, ja esat kādreiz izmantojis pogu Amazon Dash, lai pārkārtotu sadzīves priekšmetus.





Šodien mēs izveidosim Wi-Fi iespējotu pogu, izmantojot NodeMCU, un ieprogrammēsim to izmantot IFTTT, lai veiktu ... labi, jebko! Rakstiskas instrukcijas pēc videoklipa, ja vēlaties.





Kas jums būs nepieciešams

Jums būs nepieciešams:

  • 1 x NodeMCU (ESP8266) plate, pieejama 2-3 USD par AliExpress
  • 1 x spiedpoga
  • 1 x LED (pēc izvēles)
  • 1 x 220 omu rezistors (pēc izvēles)
  • Maizes dēlis un savienojuma vadi
  • Mikro USB programmēšanai
  • Dators ar instalētu Arduino IDE

Izņemot NodeMCU, jums vajadzētu būt iespējai atrast lielāko daļu šo daļu jebkurā Arduino sākuma komplektā. Šajā apmācībā tiks pieņemts, ka izmantojat papildu LED un rezistoru, taču tie nav būtiski.



1. darbība: shēmas iestatīšana

Aparatūras iestatīšana šim projektam ir ļoti vienkārša. Uzstādiet savu dēli saskaņā ar šo diagrammu.

Violeta stieple piestiprinās tapa D0 uz vienu pogas pusi. Zaļais vads savieno pogas otru pusi ar RST tapa . Zilais vads iet no tapa D1 uz rezistoru un LED. Gaismas diodes negatīvā kājiņa piestiprinās pie GND tapa no NodeMCU.





Kad maizes dēlis ir uzstādīts, tam vajadzētu izskatīties apmēram šādi:

toshiba ārējā cietā diska zilā gaisma

Ja jums rodas jautājums, kā es varu novirzīt savu gaismas diodi uz zemes tapu, izmantojot tikai šos sīkos kabeļa gabalus, tad ātri maizes dēļa avārijas kurss vajadzētu palīdzēt to noskaidrot! Pārbaudiet iestatījumus un pievienojiet NodeMCU datoram, izmantojot USB.





2. darbība: IDE iestatīšana

Pirms turpināt kodēšanu, jums jāveic daži sagatavošanās darbi. Ja vēl neesat to izdarījis, iestatiet Arduino IDE, lai atpazītu jūsu NodeMCU plati. Jūs varat to pievienot savu dēļu sarakstam, izmantojot Fails> Preferences .

Detalizētāku šī soļa skaidrojumu varat atrast mūsu NodeMCU ievada rakstā.

Šim projektam nepieciešamas divas bibliotēkas. Virzieties uz Skice> Iekļaut bibliotēku> Pārvaldīt bibliotēkas . Meklēt ESP8266WIFI Ivans Grokhotkovs un instalējiet to. Šī bibliotēka ir paredzēta Wi-Fi savienojumu izveidošanai ar NodeMCU plati.

Tālāk meklējiet IFTTTWebhook John Romkey un instalējiet jaunāko versiju. Šī bibliotēka ir izstrādāta, lai vienkāršotu tīmekļa āķu sūtīšanas procesu uz IFTTT.

Tas ir viss nepieciešamais sagatavošanās process, ļaujim kodēt!

Kā kodekss darbosies

Mēs izmantosim ESP8266WIFI bibliotēkā, lai izveidotu Wi-Fi savienojumu. The IFTTTWebhooks bibliotēka pieprasa IFTTT --- šajā gadījumā ievietot Twitter. Pēc tam, lai taupītu enerģiju, uzdodiet NodeMCU platei gulēt, kad tā netiek izmantota.

Nospiežot pogu, tas sasaistīs D0 un RST tapas. Tas atiestata dēli, un process atkārtojas.

Lielākā daļa šīs apmācības koda ir pietiekami vienkārša iesācējiem. Tas nozīmē, ka, ja jūs sākat darbu, jums būs daudz vieglāk saprast, sekojot mūsu norādījumiem Arduino iesācēju ceļvedis .

Šī apmācība iet caur kodu gabalos, lai palīdzētu saprast. Ja vēlaties sākt uzņēmējdarbību, varat to atrast pilnu kodu Pastebinā . Ņemiet vērā, ka šajā kodā jums joprojām būs jāaizpilda Wi-Fi un IFTTT akreditācijas dati, lai tas darbotos!

3. darbība: dziļā miega pārbaude

Lai sāktu, mēs izveidosim vienkāršu testu, lai parādītu, kā darbojas dziļais miegs. Atveriet jaunu skici Arduino IDE. Ievadiet šādus divus koda gabalus.

#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'

Šeit mēs iekļaujam savas bibliotēkas, kā arī definējam dažus mainīgos, kas mums būs nepieciešami mūsu skicē. Jūs pamanīsit, ka ledPin un wakePin šeit ir numurēti atšķirīgi, salīdzinot ar iepriekš redzamo Fritzing diagrammu. NodeMCU ir atšķirīgs kontakts ar Arduino dēļiem. Tomēr tas nav problēma, pateicoties šai ērtajai diagrammai:

Tagad izveidojiet iestatīšanas funkciju:

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);
}

Šeit mēs izveidojam seriālo portu un izmantojam cikla ciklu, lai gaidītu, līdz tas sāksies. Tā kā šis kods tiks aktivizēts pēc atiestatīšanas pogas nospiešanas, mēs drukājam 'Poga nospiesta' uz seriālo monitoru. Pēc tam mēs sakām NodeMCU, ka jāiet dziļā miegā, līdz poga, kas savieno wakePin uz RST tapa ir nospiesta.

Visbeidzot, lai pārbaudītu, pievienojiet to savam cilpa () metode:

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

Parasti Arduino skices pēc iestatīšanas nepārtraukti izpilda cilpas funkciju. Tā kā mēs nosūtām dēli gulēt pirms iestatīšanas beigām, cilpa nekad nedarbojas.

Saglabājiet savu skici un augšupielādējiet to uz tāfeles. Atveriet seriālo monitoru, un jums vajadzētu redzēt 'Poga nospiesta.' Katru reizi, kad poga tiek aktivizēta, tāfele tiek atiestatīta un ziņojums tiek izdrukāts vēlreiz. Tas strādā!

Piezīme par seriālo monitoru

Iespējams, dažu savu projektu laikā esat pamanījis dažas muļķīgas rakstzīmes sērijas monitorā. Tas parasti ir saistīts ar to, ka seriālais monitors nav iestatīts uz tādu pašu bodu pārraides ātrumu kā Serial.begin (XXXX) likme.

Daudzas rokasgrāmatas šādam projektam iesaka sākt sērijas savienojumu ar bodu ātrumu 115200. Es izmēģināju daudzas kombinācijas, un tām visām pirms un pēc sērijveida ziņojumiem bija dažādas pakāpes. Saskaņā ar dažādiem foruma ziņojumiem tas varētu būt saistīts ar kļūdainu dēļa vai programmatūras saderības problēmu. Tā kā tas neietekmē projektu pārāk slikti, es izvēlos izlikties, ka tas nenotiek.

kā mainīt masīvu python

Ja jums ir problēmas ar seriālo monitoru, izmēģiniet dažādus pārraides ātrumus un noskaidrojiet, kurš no jums vislabāk darbojas.

4. darbība. Savienojuma izveide ar Wi-Fi

Tagad izveidojiet funkciju, lai izveidotu savienojumu ar Wi-Fi tīklu.

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');
}
}

Šī metode mēģina izveidot savienojumu ar jūsu tīklu desmit reizes ar starplaiku. Savienojuma izdrukāšana vai neveiksme ar sērijas monitoru.

5. darbība. Savienojuma metodes izsaukšana

Šobrīd ,. connectToWifi () nekad netiek saukts. Pievienojiet zvanu iestatīšanas funkcijai starp ziņojumu “Poga nospiesta” un dēļa nosūtīšanu gulēt.

connectToWifi();

Ja jums rodas jautājums, kur tas ir piemērots, tam vajadzētu izskatīties šādi:

Skices augšpusē nomainiet ssid un parole mainīgie ar jūsu Wi-Fi akreditācijas datiem. Saglabājiet savu skici un augšupielādējiet uz tāfeles.

Tagad, kad dēlis sāk darboties, pirms atgriešanās iestatīšanas funkcijā tā mēģinās izveidot savienojumu ar jūsu Wi-Fi tīklu. Tagad iestatīsim IFTTT integrāciju.

6. darbība. IFTTT integrācijas iestatīšana

IFTTT ļauj integrēties ar plašu tīmekļa pakalpojumu klāstu. Mēs to izmantojām savā Wi-Fi datora torņa LED apmācībā, lai nosūtītu brīdinājumu, kad tiek saņemts jauns e-pasts. Šodien mēs to izmantosim, lai nosūtītu tvītu, nospiežot pogu.

Dodieties uz Manas sīklietotnes lapu un izvēlieties Jauna sīklietotne

Klikšķiniet uz +šis un izveidojiet savienojumu ar Tīmekļa āķi . Izvēlieties “Saņemt tīmekļa pieprasījumu” un nosauciet savu notikumu. Atstāj to vienkāršu ! Pierakstiet notikuma nosaukumu, vēlāk tas būs jāpievieno savam NodeMCU kodam. Klikšķis “Izveidot aktivizētāju” .

Tagad izvēlieties +tas . Meklējiet Twitter pakalpojumu un izveidojiet savienojumu ar to --- jums būs jāpiešķir atļauja to publicēt savā Twitter kontā. Izvēlieties 'Publicēt tvītu' un izvēlieties savu ziņu.

Nākamajā ekrānā tiks lūgts pārskatīt sīklietotni. Noklikšķiniet uz Pabeigt. Tieši tā!

7. darbība: IFTTT akreditācijas datu pievienošana kodam

Atpakaļ Arduino IDE jums būs jāpievieno IFTTT API atslēga un notikuma nosaukums jūsu definētajiem mainīgajiem. Lai atrastu API atslēgu, dodieties uz Manas sīklietotnes un izvēlieties Tīmekļa āķi saskaņā Pakalpojumi cilni. Izvēlieties Dokumentācija lai piekļūtu savai atslēgai.

Kopējiet atslēgu un notikuma nosaukumu savā kodā, aizstājot tiem iestatītos pagaidu nosaukumus.

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

Ņemiet vērā, ka apgrieztie komati ir jāpaliek, tikai jāaizstāj teksts.

Starp zvanīšanu connectToWifi () un nosūtot dēli gulēt, izveidojiet IFTTTWebhook bibliotēkas objekta gadījumu. Gaismas diode norāda uz uzdevuma pabeigšanu, pirms atkal sākas dziļais miegs.

kā izdzēst lietotāju xbox one
//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

Zvana aktivizētājs uz āķis objekts tiek izslēgts no IFTTT sīklietotnes un jāpublicē jūsu Twitter kontā. Saglabājiet savu skici un augšupielādējiet to. Tagad jums vajadzētu būt pilnībā funkcionējošai tvītošanas pogai.

Ja šķiet, ka tas nedarbojas, rūpīgi pārbaudiet savu kodu un akreditācijas datus, vai nav kļūdu. Ja jūs patiešām iestrēdzat, iegūstiet pilnu kodu no augšas un salīdziniet to ar savu.

Gatavs! Kā jūs varētu to vēl uzlabot?

Šī ir Wi-Fi pogas pamata versija, taču ir daudz veidu, kā to uzlabot. Vienkāršības labad šeit barošanai tiek izmantots USB savienojums. Akumulators padarītu to pilnībā pārvietojamu, un korpuss, kurā ir ķēde, būtu ideāls iesācējs 3D drukāšanas projekts.

Neskatoties uz dziļā miega izmantošanu, akumulators var izlādēties diezgan ātri. Tur ir daudz Arduino enerģijas taupīšanas padomi kas palīdz šāda veida projektos. Lai gan tas ir grūtāk nekā šī apmācība, ja jūs no nulles izveidojāt savu enerģijas taupīšanas Arduino, Wi-Fi poga, kas darbojas ar akumulatoru, varētu ilgt vairākus mēnešus!

Šis projekts būtu ideāli piemērots tālvadības pultij viedās mājas lietojumprogrammām. To jau ir ievērojams daudzums mājas automatizācijas sīklietotnes pieejams IFTTT. Kad esat ieguvis pamatus, varat izmantot gandrīz jebkuru sensoru vai slēdzi, lai aktivizētu praktiski jebkuru pakalpojumu, kādu varat iedomāties.

Attēlu kredīts: Vadmary / Depositphotos

Kopīgot Kopīgot Čivināt E -pasts 6 dzirdamas alternatīvas: labākās bezmaksas vai lētas audiogrāmatu lietotnes

Ja jums nepatīk maksāt par audiogrāmatām, šeit ir dažas lieliskas lietotnes, kas ļauj tās klausīties bez maksas un likumīgi.

Lasīt Tālāk
Saistītās tēmas
  • DIY
  • Arduino
  • DIY projektu apmācības
Par autoru Īans Baklijs(Publicēti 216 raksti)

Īans Baklijs ir ārštata žurnālists, mūziķis, izpildītājs un video producents, kas dzīvo Berlīnē, Vācijā. Kad viņš neraksta vai nav uz skatuves, viņš ķeras pie DIY elektronikas vai koda, cerot kļūt par traku zinātnieku.

Vairāk no Īana Baklija

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu
Kategorija Diy