Mød Arduino Killer ESP8266

  • William Charles
  • 0
  • 1893
  • 313
Reklame

Wi-Fi er en vigtig bit kit til ethvert Internet of Things (IoT) DIY-projekter, men vores foretrukne Arduino leveres ikke med Wi-Fi, og ved at tilføje et Wi-Fi-skjold kan de samlede omkostninger være på omkring $ 40. Hvad hvis jeg fortalte dig, at der er et Arduino-kompatibelt dev-kort med indbygget Wi-Fi for mindre end $ 10? Det er der.

Mød Arduino Killer: ESP8266. Det var kun et spørgsmål om tid, før kronen blev stjålet fra det blanke hoved på vores kære Arduino-udviklingsbord. Er det muligt at blive forelsket i et kredsløbskort?

Fangende navne til side, ESP8266 (også kendt som NodeMCU) blev oprindeligt markedsført som en billig Wi-Fi-tilføjelse til Arduino-tavler, indtil hackersamfundet indså, at du kunne skære Arduino ud af ligningen.

På mindre end et år har ESP8266 været i popularitet og er nu så godt understøttet og udviklet, at hvis du i øjeblikket bruger Arduino, skal du rejse dig og notere dig. Køb en nu, og følg derefter sammen med denne vejledning for at komme i gang med programmeringen af ​​din ESP8266 - alt sammen fra den velkendte Arduino IDE.

Du er selvfølgelig ikke begrænset til at bruge Arduino IDE - de er også kompatible med Lua (som ser ud som en slanket Python til mine nybegynderøje), men da vi tackle dette fra perspektivet til dem os, der har lært på Arduino, det er hvad vi dækker udelukkende i dag.

Der er ganske mange modeller af ESP8266 omkring nu, men jeg vil gå foran og anbefale denne: ESP-12E (også kendt som NodeMCU 1.0, eller det er den nyeste søskende NodeMCU 2.0).

Det er lidt dyrere end de andre ($ 6,50 sammenlignet med $ 4!), Men inkluderer den serielle driver, der er nødvendig for at programmere chippen, og har en indbygget strømregulator samt masser af IO-stifter. Det understøttes bredt og har virkelig ikke brug for noget bortset fra en USB-forbindelse til programmering eller strøm, så det er den nemmeste at arbejde med. Hvis du køber en anden form for ESP8266-kort, kan det være nødvendigt at du har en separat 3.3v strømregulator og en passende FTDI-forbindelse til programmering.

Kom godt i gang med ESP8266-12E og Arduino

Installer først de serielle drivere til dette bord. Det kan være nødvendigt, at du deaktiverer KEXT-signering, hvis du kører El Capitan på grund af nye sikkerhedssystemer.

Dernæst skal vi aktivere support til ESP8266 fra Arduino IDEs bestyrelsesleder. Åbn Præferencer, og indtast følgende URL, hvor det står Yderligere URL-adresser til Board Manager:

Hit Ok, og åbn derefter Bestyrelseschef fra Værktøjer -> Board menu, søg efter esp8266 og installer platformen. Du skal nu se et valg til NodeMCU 1.0.

Forlad CPU'en og uploadhastigheden som den er, og vælg din nylig installerede serielle port. På Mac vises dette som cu.SLAB_USBtoUART.

Som et første program vil jeg foreslå den enkle Wi-Fi-scanner - find den fra Fil -> Eksempler -> ESP8266WiFi -> WifiScan. Bemærk, at det er ret langsomt at uploade, men til sidst vil det sige “færdig uploading” og på det tidspunkt (ikke før, eller du vil bryde uploadprocessen), kan du åbne Serial monitor. Du skulle se noget, der ligner dette:


Succes! Lad os prøve at oprette forbindelse til en.

Her er en absolut simpel barebones-kode til forbindelse til et Wi-Fi-netværk. Det gør ikke andet end bare oprette forbindelse, men det er noget, du kan tilføje for senere. Husk bare at ændre YOUR_SSID og YOUR_PASSWORD til dine Wi-Fi-detaljer. Upload, åbn seriekonsollen, og du skal se den tilslutte.

 #include const char * ssid = "YOUR_SSID"; const char * password = "YOUR_PASSWORD"; WiFiClient wifiClient; tom opsætning () Serial.begin (115200); Serial.print ("Opretter forbindelse til"); Serial.println (SSID); WiFi.begin (ssid, password); while (WiFi.status ()! = WL_CONNECTED) forsinkelse (500); Serial.print ( "");  Serial.println (""); Serial.println ("WiFi tilsluttet"); Serial.println ("IP-adresse:"); Serial.println (WiFi.localIP ());  void loop () 

Er det ikke fantastisk, hvor latterligt enkelt det var?

Før vi fortsætter, her er pinout-diagrammet - det kan komme godt med senere. Bemærk, at de pin-numre, der er nævnt i koden, er GPIO-numrene, ikke D0-16, der sandsynligvis er skrevet på dit printkort. Hvis du absolut ikke positivt kan finde ud af, hvorfor en sensor ikke fungerer, har du sandsynligvis blandet pin-numrene op.

Hurtig Smart Home Sensor med MQTT og DHT11

Her er et praktisk eksempel, du kan bruge med det samme til at overvåge dit hjem. Vi tilføjer en DHT11 temperatur- og fugtighedsføler og rapporterer derefter værdierne ved hjælp af MQTT-protokollen via Wi-Fi-netværket, i mit tilfælde til et OpenHAB DIY-hjemmeautomatiseringssystem (hvis ikke, kan du læse vores begynderguide til at komme OpenHAB i gang med en Raspberry Pi Kom godt i gang med OpenHAB Hjemmeautomatisering på Raspberry Pi Kom godt i gang med OpenHAB Hjemmeautomation på Raspberry Pi OpenHAB er en moden, open source hjemmeautomatiseringsplatform, der kører på en række hardware og er protokoll agnostisk, hvilket betyder det kan oprette forbindelse til næsten enhver hjemmeautomatiseringshardware, der findes på markedet i dag., og del 2, der specifikt beskæftiger sig med installation af en MQTT-server OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kortlægning OpenHAB Beginner's Guide Del 2: ZWave, MQTT, Regler og kortlægning OpenHAB, open source-hjemmeautomatiseringssoftwaren, overskrider langt mulighederne for andre hjemmeautomatiseringssystemer på markedet - men det er ikke let at få opsat. være ligefrem frustrerende. ).

Tilslut DHT-sensoren på ledningssiden GND, 3.3v, og ~ D4 (eller GPIO 2). Det er alt, hvad vi har brug for nu.

Download disse MQTT- og DHT-biblioteker. Selv hvis du allerede har dem, download alligevel disse, sikkerhedskopier det, du har, og overskriv med disse. Det nyeste DHT11-bibliotek fra Adafruit bruger en automatisk algoritme til bestemmelse af hastigheden, hvormed data læses fra sensoren, men det er buggy på ESP8266 og 90% af tiden resulterer i mislykkede aflæsninger..

Med den gamle version 1.0 af biblioteket, som jeg har inkluderet i download, kan du manuelt ændre timingen: 11 fungerer bedst for disse ESP2866-kort. Jeg gennemgik også mange kopier af MQTT-biblioteket og prøvede at finde en god ring tilbage funktion, endelig landing på den inkluderede. Du skal genstarte Arduino IDE, når du har udskiftet disse.

Her er den komplette kode til projektet. Øverst er alle de variabler, du har brug for at ændre, inklusive Wi-Fi-detaljer, MQTT-server (en URL kan i stedet bruges, hvis du bruger en cloud-server, skønt der ikke er nogen godkendelse på plads), og kanaler til at offentliggøre data på.

Sådan fungerer det og et par bemærkninger:

  • Først opretter vi forbindelse til Wi-Fi, derefter til MQTT-serveren, derefter begynder den vigtigste loop ().
  • I løkken afslutter vi DHT-sensoren hvert 60. sekund og offentliggør aflæsninger til de relevante MQTT-kanaler. Igen, hvis du finder de fleste af aflæsningsresultaterne i en fejlmeddelelse, har du den forkerte version af DHT-biblioteket - nedgrader til v1.0.
  • client.loop () overfører kontrol til MQTT-biblioteket, så det kan reagere på indgående meddelelser.
  • Der er en messageReceived () funktion, hvor vi håndterer indgående meddelelser - bare gør en enkel hvis erklæring for at sammenligne nyttelasten med den meddelelse, du forventer. Du kan f.eks. Bruge dette til at aktivere et relæ.
  • Efter at have kørt disse i et par dage, fandt jeg, at de tilfældigt ville stoppe med at arbejde - jeg antager, at dette er en form for hukommelseslækage, men da jeg ikke har kodningsfærdigheden til at tackle det, og det kan være med kernebibliotekerne, har valgt en simpel blød nulstilling hver dag. Præcis en dag efter, at sensorknudene først er aktiveret, genstarter de sig selv.
  • Når man tænder for disse billige DHT11-moduler fra 3.3v, er fugtighedsværdierne langt lavere, end de burde være. Jeg har løst dette med en simpel multiplikation og kalibreret mod en kommerciel sensor. Jeg vil råde dig til at bekræfte mod din egen kendte kilde også, før du stoler på læsningerne. Alternativt skal du tænde dem med 5V - men skal du placere en 5v-3.3v logisk niveauomskifter mellem datapinden og ESP8266, eller du vil beskadige den.

Hvis alt gik godt, skal du nu modtage sensorlæsninger i din MQTT-mægler og kan gå videre med at forbinde disse til OpenHAB som beskrevet i del 2 i vores begynderguide OpenHAB Begyndersvejledning Del 2: ZWave, MQTT, regler og kortlægning OpenHAB Beginners Vejledning Del 2: ZWave, MQTT, regler og kortlægning OpenHAB, open source-hjemmeautomatiseringssoftwaren, overstiger langt flere muligheder for andre hjemmeautomatiseringssystemer på markedet - men det er ikke let at få opsat. Faktisk kan det være direkte frustrerende. , hvor jeg også viste dig, hvordan du diagrammer dataene.

Farvel Arduino, vi elskede dig så. Bare det sjovt: ikke overalt i mit hus kan endda få Wi-Fi, så til disse pletter har jeg stadig brug for et mesh-netværk med Arduino- og RF-modtagere.

For et sjovt projekt, se, hvordan man opretter en Wi-Fi-knap med ESP8266 Sådan opretter du din egen Wi-Fi-tilsluttede knap med ESP8266 Sådan opretter du din egen Wi-Fi-tilsluttede knap med ESP8266 I denne tutorial lærer du hvordan man opretter en Wi-Fi-aktiveret knap ved hjælp af NodeMCU og IFTTT. .

Men hvad vil du lave med ESP8266? Eventuelle projekter, der bruger ESP8266, vil du gerne have skrevet op på MakeUseOf? Fortæl os det i kommentarerne!




Endnu ingen kommentarer

Om moderne teknologi, enkel og overkommelig.
Din guide i en verden af moderne teknologi. Lær hvordan du bruger de teknologier og gadgets, der omgiver os hver dag, og lær, hvordan du finder interessante ting på Internettet.