Kuinka tehdä oma Wi-Fi-yhteyspainike ESP8266: n avulla

Kuinka tehdä oma Wi-Fi-yhteyspainike ESP8266: n avulla

Esineiden Internetissä on valtavat mahdollisuudet tehdä itse. Riittävän osaamisen ja muutaman halvan komponentin avulla voit rakentaa monimutkaisen yhdistettyjen laitteiden järjestelmän.





Joskus kuitenkin haluat jotain yksinkertaista. Ei kelloja tai pillejä, vain painike, joka suorittaa yhden tehtävän. Saatat jo tuntea jotain tällaista, jos olet koskaan käyttänyt Amazon Dash -painiketta järjestääksesi päivittäiset kotitaloustarvikkeet.





Tänään teemme Wi-Fi-yhteensopivan painikkeen NodeMCU: n avulla ja ohjelmoimme sen käyttämään IFTTT: tä tekemään… no, mitä tahansa! Kirjalliset ohjeet videon jälkeen, jos haluat.





Mitä tarvitset

Tarvitset:

  • 1 x NodeMCU (ESP8266) -kortti, saatavana 2-3 dollaria AliExpressissä
  • 1 x painike
  • 1 x LED (valinnainen)
  • 1 x 220 ohmin vastus (valinnainen)
  • Leipälauta ja kytkentäjohdot
  • Micro USB ohjelmointiin
  • Tietokone, johon on asennettu Arduino IDE

NodeMCU: n lisäksi sinun pitäisi pystyä löytämään useimmat näistä osista mistä tahansa Arduino -aloituspaketista. Tässä opetusohjelmassa oletetaan, että käytät valinnaista LEDiä ja vastusta, mutta ne eivät ole välttämättömiä.



Vaihe 1: Piirin asettaminen

Laitteiston asennus on hyvin yksinkertainen tälle projektille. Aseta levysi tämän kaavion mukaisesti.

Violetti lanka kiinnittyy nasta D0 painikkeen toiselle puolelle. Vihreä johto yhdistää painikkeen toisen puolen RST -nasta . Sininen lanka kulkee nasta D1 vastukseen ja LEDiin. LEDin negatiivinen jalka kiinnittyy GND -nasta NodeMCU: sta.





Kun leipälauta on asennettu, sen pitäisi näyttää tältä:

kuinka jakaa tiedostoja Macin ja PC: n välillä

Jos ihmettelet, miten saan LED -valoni maadoitusnastaan ​​käyttämällä vain pieniä kaapelipätkiä, meidän nopeamme leipälauta törmäyskurssi pitäisi auttaa selvittämään! Tarkista asetukset ja liitä NodeMCU tietokoneeseen USB -liitännän kautta.





Vaihe 2: IDE: n määrittäminen

Ennen kuin aloitat koodauksen, sinun on tehtävä joitain valmisteluja. Jos et ole jo tehnyt sitä, aseta Arduino IDE tunnistamaan NodeMCU -korttisi. Voit lisätä sen taululuetteloosi Tiedosto> Asetukset .

Löydät tarkemman selityksen tästä vaiheesta NodeMCU -johdantoartikkelistamme.

Tähän projektiin tarvitaan kaksi kirjastoa. Navigoida johonkin Luonnos> Sisällytä kirjasto> Hallitse kirjastoja . Etsiä ESP8266WIFI Ivan Grokhotkov ja asenna se. Tämä kirjasto on tarkoitettu Wi-Fi-yhteyksien muodostamiseen NodeMCU-kortilla.

Hae seuraavaksi IFTTTWebhook John Romkey ja asenna uusin versio. Tämä kirjasto on suunniteltu yksinkertaistamaan webhookien lähettämistä IFTTT: lle.

Siinä kaikki tarvittavat valmistelut, koodataan!

Kuinka koodi toimii

Käytämme ESP8266WIFI kirjastosta Wi-Fi-yhteyden muodostamiseksi. The IFTTTWebhooks kirjasto pyytää IFTTT: tä --- tässä tapauksessa lähettämään Twitteriin. Ohjaa sitten NodeMCU -kortti nukkumaan, kun sitä ei käytetä virran säästämiseksi.

Kun painiketta painetaan, se yhdistää D0 ja RST nastat. Tämä nollaa levyn ja prosessi toistuu.

Suurin osa tämän opetusohjelman koodista on riittävän yksinkertainen aloittelijoille. Toisin sanoen, jos olet aloittamassa, sinun on paljon helpompi ymmärtää sen jälkeen, kun olet seurannut meitä Arduinon aloitusopas .

Tämä opetusohjelma käy läpi koodin palasina ymmärtämisen helpottamiseksi. Jos haluat siirtyä suoraan liiketoimintaan, löydät sen täydellinen koodi Pastebinissa . Huomaa, että sinun on vielä täytettävä Wi-Fi- ja IFTTT-kirjautumistietosi tässä koodissa, jotta se toimii!

Vaihe 3: Syvä unen testaaminen

Aluksi luomme yksinkertaisen testin, joka näyttää kuinka syvä uni toimii. Avaa uusi luonnos Arduino IDE: ssä. Syötä seuraavat kaksi koodipalaa.

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

Tässä sisällytämme kirjastoamme sekä määritämme muutamia muuttujia, joita tarvitsemme luonnoksessamme. Huomaat, että ledPin ja wakePin on numeroitu täällä eri tavalla kuin yllä oleva Fritzing -kaavio. NodeMCU: lla on erilainen pistoke kuin Arduino -levyillä. Tämä ei kuitenkaan ole ongelma tämän kätevän kaavion vuoksi:

Luo nyt asetustoiminto:

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

Tässä asetamme sarjaporttimme ja odotamme hetken kuluttua, kunnes se alkaa. Koska tämä koodi käynnistyy nollauspainikkeen painamisen jälkeen, tulostamme 'Painiketta painettu' sarjamonitoriin. Sitten käskemme NodeMCU: ta siirtymään syvään uneen, kunnes painiketta yhdistää wakePin kohteeseen RST tappia painetaan.

Lopuksi voit lisätä tämän testiisi lisäämällä sen silmukka () menetelmä:

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

Yleensä Arduino -luonnokset suorittavat silmukkatoiminnon jatkuvasti asennuksen jälkeen. Koska lähetämme levyn nukkumaan ennen asennuksen päättymistä, silmukka ei koskaan toimi.

Tallenna luonnos ja lataa se taululle. Avaa sarjamonitori ja näet 'Painiketta painettu.' Aina kun painike käynnistyy, levy palautuu ja viesti tulostuu uudelleen. Se toimii!

A Huomautus sarjamonitorista

Olet ehkä huomannut joitain hölynpölyhahmoja sarjamonitorissa joidenkin projektiesi aikana. Tämä johtuu yleensä siitä, että sarjamonitoria ei ole asetettu samaan siirtonopeuteen kuin Serial.begin (XXXX) korko.

Monet oppaat ehdottavat sarjayhteyden aloittamista 115200 baudinopeudella tällaista projektia varten. Kokeilin monia yhdistelmiä, ja niissä kaikissa oli eriasteista paskaa ennen ja jälkeen sarjaviestejä. Eri foorumiviestien mukaan tämä voi johtua viallisesta levystä tai ohjelmiston yhteensopivuusongelmasta. Koska se ei vaikuta hankkeeseen kovin pahasti, päätän teeskennellä, että se ei tapahdu.

kuinka saada liikkuva taustakuva

Jos sinulla on ongelmia sarjamonitorin kanssa, kokeile eri siirtonopeuksia ja katso, mikä toimii sinulle parhaiten.

Vaihe 4: Yhdistäminen Wi-Fi-verkkoon

Luo nyt toiminto Wi-Fi-verkkoon yhdistämistä varten.

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

Tämä menetelmä yrittää muodostaa yhteyden verkkoon kymmenen kertaa sekunnin väliin. Sarjamonitoriin tulostamisen onnistuminen tai epäonnistuminen.

Vaihe 5: Yhteystavan kutsuminen

Juuri nyt, connectToWifi () ei koskaan kutsuta. Lisää puhelu asetustoimintoosi painikkeen painamisen viestin ja levyn siirtämisen välillä.

connectToWifi();

Jos mietit mihin tämä sopii, sen pitäisi näyttää tältä:

Vaihda luonnoksen yläreunaan ssid ja Salasana muuttujia Wi-Fi-tunnuksillasi. Tallenna luonnos ja lataa taululle.

Kun levy käynnistyy, se yrittää muodostaa yhteyden Wi-Fi-verkkoon, ennen kuin palaa asetustoimintoon. Määritetään nyt IFTTT -integraatio.

Vaihe 6: IFTTT -integraation määrittäminen

IFTTT mahdollistaa integroinnin monenlaisiin verkkopalveluihin. Käytimme sitä Wi-Fi PC-tornin LED-opetusohjelmassa lähettääksemme hälytyksen aina, kun uusi sähköposti vastaanotetaan. Tänään käytämme sitä lähettääksesi twiitin napin painalluksella.

Siirry kohtaan Omat appletini sivulla ja valitse Uusi appletti

Klikkaa +tämä ja muodosta yhteys Webhooks . Valitse 'Vastaanota verkkopyyntö' ja nimeä tapahtumasi. Pidä se yksinkertaisena ! Kirjoita muistiin tapahtuman nimi, sinun on lisättävä se NodeMCU -koodiin myöhemmin. Klikkaus Luo liipaisin .

Valitse nyt +tuo . Hae Viserrys palveluun ja muodosta yhteys siihen --- sinun on valtuutettava se lähettämään Twitter-tilillesi. Valitse 'Lähetä twiitti' ja valitse viestisi.

Seuraavassa näytössä sinua pyydetään tarkistamaan sovelma. Napsauta Valmis. Se siitä!

Vaihe 7: IFTTT -tunnistetietojen lisääminen koodiin

Takaisin Arduino IDE: hen sinun on lisättävä IFTTT -sovellusliittymäavaimesi ja tapahtuman nimi määritettyihin muuttujiin. Löydä sovellusliittymäavain siirtymällä kohtaan Omat appletini ja valitse Webhooks alla Palvelut välilehti. Valitse Dokumentointi päästäksesi avaimeesi.

Kopioi avain ja tapahtuman nimi koodiin ja korvaa niille asetetut väliaikaiset nimet.

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

Huomaa, että käänteisten pilkujen on pysyttävä, vain korvattava teksti.

Soittamisen välillä connectToWifi () ja lähettämällä levyn lepotilaan, luo IFTTTWebhook -kirjasto -objektin ilmentymä. LED ilmoittaa tehtävän suorittamisesta ennen syvän unen alkamista.

siirtää yhteystietoja iPhonesta Androidiin
//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

Soittaminen laukaisee koukku objekti syttyy IFTTT -sovelmasta ja sen pitäisi lähettää Twitter -tilillesi. Tallenna luonnos ja lataa se. Sinulla pitäisi nyt olla täysin toimiva tweeting -painike.

Jos se ei näytä toimivan, tarkista koodisi ja kirjautumistietosi huolellisesti virheiden varalta. Jos todella jumissa, hanki koko koodi ylhäältä ja vertaa sitä omaasi.

Tehty! Kuinka voisit parantaa sitä edelleen?

Tämä on Wi-Fi-painikkeen perusversio, mutta sitä voidaan parantaa monin tavoin. Yksinkertaisuuden vuoksi virtalähteenä käytetään USB -liitäntää. Akku tekisi siitä täysin liikkuvan, ja piiriä pitävä kotelo olisi täydellinen aloittelija 3D -tulostusprojekti.

Vaikka käytät syvää unta, saatat huomata, että akku tyhjenee melko nopeasti. On olemassa monia Vinkkejä Arduinon virransäästöön jotka auttavat tällaisissa projekteissa. Vaikka tämä opetusohjelma on vaikeampi, jos teit oman virtatietoisen Arduinon tyhjästä, akkukäyttöinen Wi-Fi-painike voi kestää kuukausia!

Tämä projekti olisi täydellinen älykkään kodin sovellusten kauko -ohjaimelle. Niitä on jo huomattava määrä kotiautomaatioapletit saatavilla IFTTT: stä. Kun olet saanut perusasiat selville, voit käyttää lähes mitä tahansa anturia tai kytkintä käynnistääksesi käytännössä minkä tahansa palvelun, jonka voit kuvitella.

Kuva: Vadmary / Depositphotos

Jaa Jaa Tweet Sähköposti 6 kuultavaa vaihtoehtoa: parhaat ilmaiset tai halvat äänikirjasovellukset

Jos et halua maksaa äänikirjoista, tässä on hienoja sovelluksia, joiden avulla voit kuunnella niitä ilmaiseksi ja laillisesti.

Lue seuraava
Liittyvät aiheet
  • tee-se-itse
  • Arduino
  • DIY -projektin opetusohjelmat
Kirjailijasta Ian Buckley(216 artikkelia julkaistu)

Ian Buckley on freelance -toimittaja, muusikko, esiintyjä ja videotuottaja, joka asuu Berliinissä, Saksassa. Kun hän ei kirjoita tai ei ole lavalla, hän hieroo DIY -elektroniikkaa tai koodia toivoessaan tulla hulluksi tiedemieheksi.

Lisää Ian Buckleyltä

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi