Møt Arduino Killer ESP8266

Møt Arduino Killer ESP8266 / DIY

Wi-Fi er en viktig del av Kit for DIY-prosjekter, men vår favoritt Arduino kommer ikke med Wi-Fi, og å legge til i et Wi-Fi-skjold kan bringe totalprisen til rundt $ 40. Hva om jeg fortalte deg at det er et Arduino-kompatibelt dev-kort med innebygd Wi-Fi for mindre enn $ 10? Vel, det er det.

Møt Arduino Killer: ESP8266. Det var bare et spørsmål om tid før kronen ble stjålet fra det skinnende hodet til vår kjære Arduino utviklingsbrett. Er det mulig å bli forelsket i et kretskort?

Fangende navn til side, ESP8266 (også kjent som NodeMCU) ble opprinnelig markedsført som en billig Wi-Fi-tillegg for Arduino-kort, til hackersamfunnet innså at du kunne kutte Arduino ut av ligningen helt.

På mindre enn et år har ESP8266 raket i popularitet, og er nå så godt støttet og utviklet at hvis du for tiden bruker Arduino, må du stå opp og ta notat. Kjøp en nå, følg deretter med denne veiledningen for å komme i gang med programmering av ESP8266 - alt fra den kjente Arduino IDE.

Du er ikke begrenset til å bruke Arduino IDE selvfølgelig - de er også kompatible med Lua (som ser ut som en slanket Python til mine nybegynnere øyne), men siden vi takler dette fra perspektivet til dem som har lært oss på Arduino, det er det vi skal dekke utelukkende i dag.

Det er ganske mange modeller av ESP8266 rundt nå, men jeg skal gå videre og anbefale denne: ESP-12E (også kjent som NodeMCU 1.0, eller den nyeste søsken NodeMCU 2.0).

Det er litt dyrere enn de andre ($ 6,50 sammenlignet med $ 4!), Men inkluderer seriell driver som trengs for å programmere brikken, og har en innebygd strømregulator, så vel som mange IO-pinner. Den støttes mye og trenger ikke noe annet enn en USB-tilkobling for programmering eller strøm, så det er lettest å jobbe med. Hvis du kjøper noen annen type ESP8266-kort, kan det hende du trenger en separat 3,3v strømregulator, og en egnet FTDI-tilkobling for programmering.

Komme i gang med ESP8266-12E og Arduino

Først installerer du serielle drivere for dette kortet. Det kan hende du må deaktivere KEXT-signering hvis du kjører El Capitan på grunn av nye sikkerhetssystemer.

Deretter må vi aktivere støtte for ESP8266 fra Arduino IDEs styreforvalter. Åpne Preferanser, og skriv inn følgende nettadresse der den står Ekstra styrelederadresser:

Hit Ok, åpne deretter Styrets leder fra Verktøy -> Styret meny, søk etter esp8266 og installer plattformen. Du bør nå se et valg for NodeMCU 1.0.

La CPU og opplastingshastighet være, og velg din nyinstallerte seriell port. På Mac, vises dette som cu.SLAB_USBtoUART.

Som et første program, foreslår jeg den enkle Wi-Fi-skanneren - finn den fra Fil -> Eksempler -> ESP8266WiFi -> WifiScan. Legg merke til at det er ganske sakte å laste opp, men til slutt vil det si “ferdig opplasting” og på det tidspunktet (ikke før, eller du vil bryte opplastingsprosessen), kan du åpne seriell skjerm. Du bør se noe som ligner på dette:


Suksess! La oss nå prøve å koble til en.

Her er en helt enkel barebones-kode for tilkobling til et Wi-Fi-nettverk. Det gjør ikke noe annet enn bare å koble til, men det er noe du kan legge til for senere. Bare husk å endre YOUR_SSID og YOUR_PASSWORD til Wi-Fi-detaljene dine. Last opp, åpne seriekonsollen, og du bør se den koble til.

 #include const char * ssid = "YOUR_SSID"; const char * passord = "YOUR_PASSWORD"; WiFiClient wifiClient; ugyldig oppsett () Serial.begin (115200); Serial.print ("Koble til"); Serial.println (ssid); WiFi.begin (ssid, passord); mens (WiFi.status ()! = WL_CONNECTED) forsinkelse (500); Serial.print ( "");  Serial.println (""); Serial.println ("WiFi-tilkoblet"); Serial.println ("IP-adresse:"); Serial.println (WiFi.localIP ());  tomromsløyfe () 

Er det ikke bra hvor latterlig enkelt det var?

Før vi fortsetter, her er pinout diagrammet - det kan komme til nytte senere. Merk at PIN-tallene som refereres til i koden, er GPIO-tallene, ikke D0-16 sannsynligvis skrevet på PCB-kortet ditt. Hvis du absolutt ikke kan finne ut hvorfor en sensor ikke virker, har du sikkert blandet tallene opp.

Quick Smart Home Sensor med MQTT og DHT11

Her er et praktisk eksempel du kan legge til for å bruke straks å overvåke ditt hjem. Vi legger til en DHT11 temperatur- og fuktighetssensor, og rapporterer verdiene ved hjelp av MQTT-protokollen over Wi-Fi-nettverket, i mitt tilfelle til et OpenHAB DIY hjemmeautomatiseringssystem (hvis ikke, vil du kanskje lese vår nybegynnerguide til få OpenHAB oppe og kjøre på en Raspberry Pi Komme i gang med OpenHAB Hjemmeautomatisering på Raspberry Pi Komme i gang med OpenHAB Hjemautomatisering på Raspberry Pi OpenHAB er en moden, åpen kildekode hjemmeautomatiseringsplattform som kjører på en rekke maskinvare og er protokollens agnostiske, noe som betyr at den kan kobles til nesten hvilken som helst hjemmevirksomhets maskinvare på markedet i dag. Les mer og del 2, som omhandler spesielt å installere en MQTT-server. OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kartlegging OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kartlegging OpenHAB, open source hjemmeautomatiseringsprogramvare, overgår langt fra mulighetene til andre hjemmeautomatiseringssystemer på markedet - men det er ikke lett å bli satt opp. I f handle, det kan være rett og slett frustrerende. Les mer ).

På ledningssiden kobler du DHT-sensoren til GND, 3.3v, og ~ D4 (eller GPIO 2). Det er alt vi trenger for nå.

Last ned disse MQTT- og DHT-bibliotekene. Selv om du allerede har dem, Last ned disse, uansett, lagre det du har, og skriv over disse. Det nyeste DHT11-biblioteket fra Adafruit bruker en automatisk algoritme for å bestemme hastigheten for hvilke data som leses fra sensoren, men det er buggy på ESP8266 og 90% av tiden resulterer i mislykkede avlesninger.

Med den gamle versjonen 1.0 av biblioteket jeg har tatt med i nedlastingen, kan du manuelt endre timingen: 11 fungerer best for disse ESP2866-kortene. Jeg gikk også gjennom mange kopier av MQTT-biblioteket, og prøvde å finne en god Ring tilbake funksjon, til slutt landing på den medfølgende. Du må starte Arduino IDE etter at du har erstattet disse.

Her er den komplette koden for prosjektet. Øverst på er alle variablene du må endre, inkludert Wi-Fi-detaljer, MQTT-server (en URL kan brukes i stedet hvis du bruker en skysserver, selv om det ikke finnes noen autentisering) og kanaler for å publisere data på.

Slik fungerer det og noen få notater:

  • Først kobler vi til Wi-Fi, deretter til MQTT-serveren, og starter deretter hovedmenyen løkke ().
  • I løkken, poller vi DHT-sensoren hvert 60 sekund og publiserer avlesninger til de relevante MQTT-kanalene. Igjen, hvis du finner det meste av lesingene som resulterer i en feilmelding, har du feil versjon av DHT-biblioteket - nedgrader til v1.0.
  • client.loop () sender kontroll til MQTT-biblioteket, slik at det kan reagere på innkommende meldinger.
  • Det er en beskjed mottatt() funksjon hvor vi håndterer innkommende meldinger - bare gjør en enkel hvis setning for å sammenligne nyttelastet med meldingen du forventer. Du kan bruke dette til å aktivere et relé, for eksempel.
  • Etter å ha kjørt disse i noen dager, fant jeg at de ville tilfeldig stoppe med å jobbe - jeg antar at dette er en slags minnelekkasje, men gitt at jeg ikke har kodingsevnen til å håndtere det, og det kan være med kjernebibliotekene, jeg Jeg har valgt en enkel, myk tilbakestilling hver dag. Nøyaktig en dag etter at sensorene først blir aktivert, vil de starte på nytt.
  • Når du kjører disse billige DHT11 modulene fra 3.3v, er fuktighetsverdiene langt lavere enn de burde være. Jeg har løst dette med en enkel multiplikasjon, og kalibrert mot en kommersiell sensor. Jeg vil råde deg til å bekrefte din egen kjente kilde også før du stoler på lesningene. Alternativt må du koble dem med 5V - men du må plassere en 5v-3.3v logisk nivå shifter mellom data pin og ESP8266, eller du vil skade det.

Hvis alt gikk bra, bør du nå motta sensoravlesninger i MQTT-megleren, og kan fortsette å koble disse til OpenHAB som beskrevet i del 2 av vår nybegynners guide. OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kartlegging OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kartlegging OpenHAB, åpen kildekode-hjemmeautomatiseringsprogramvare, overskrider kapasiteten til andre hjemmeautomatiseringssystemer på markedet - men det er ikke lett å få oppsett. Faktisk kan det være rett og slett frustrerende. Les mer, der jeg også viste deg hvordan du skal grafere dataene.

Farvel Arduino, vi elsket deg så. Bare tuller: Ikke overalt i huset mitt kan til og med få Wi-Fi, så for de stedene jeg trenger, trenger jeg fortsatt et nettverksnettverk med Arduino og RF-mottakere.

For et morsomt prosjekt, sjekk ut hvordan du lager en Wi-Fi-knapp med ESP8266 Hvordan lage din egen Wi-Fi-tilkoblede knapp med ESP8266 Hvordan lage din egen Wi-Fi-tilkoblede knapp med ESP8266 I denne opplæringen lærer du hvordan lage en Wi-Fi-aktivert knapp ved hjelp av NodeMCU og IFTTT. Les mer .

Men hva vil du gjøre med ESP8266? Eventuelle prosjekter som bruker ESP8266, vil du gjerne se oppskrevet på MakeUseOf? Gi oss beskjed i kommentarene!

Utforsk mer om: Arduino, Elektronikk, Ting til Internett, Smart Sensor.