WiFi aktiverat Arduino - gränssnitt med webb-API: erna (4 / 7 steg)

Steg 4: Steg 4: koden



Så är jag säker på denna punkt de flesta av er är bekanta med Arduino IDE. Vi kommer att använda som att ladda upp vår väder get kod till Arduino. Jag har bifogat en rengjord och dokumenterade version av koden till detta steg, men vi kommer att gå över den lite här (inte mödosamt, bara tillräckligt så du förstår vad som pågår).

Den första delen av koden är vår #defines, bara för att göra livet lite lättare. Vi har också några variabel i toppen som hjälper oss att tolka data lite lättare.

Setup() funktion

Här går vi, detta är hur vi ansluta vår ESP till våra Arduino. Jag reserverat utrymme överst för sträng svar. Detta är en håll-över från en tidigare iteration av kod som hade upprepat stack kraschar eftersom den. JSON överväldigade bara min lilla micro. Du kan förmodligen kasta denna kodrad ut, jag höll det. Efter som du ser jag starta upp en I2C (TWI, Wire, SMB, oavsett...) anslutning. Det är där min data faktiskt kommer. Därefter kommer följetongen. Detta är anslutningen till ESP, märka den 115200 baud. Det är SUPER viktigt att få rätt, annars din Arduino talar engelska och ESP talar kantonesiska och alla är förvirrad. Du kommer att märka de AT-kommandona är tillbaka, jag sa de skulle vara viktigt! Vår kod kontrollerar först se till att enheten är klar genom att utföra en programvara återställning och väntar på ESP att svara. Efter att vi inställd station läge ESP och tillåta flera anslutningar. Vi kan ansluta till flera APs, men för vår användning nu vi endast kommer att använda en av anslutningarna. Efter det är ett försök att ansluta till WiFi (nästa funktion vi tittar på). När vi har framgångsrikt (förhoppningsvis) ansluten till WiFi vi trycker och ansluta till vår värd (i detta fall Wunderground).

connectWiFi() funktion

Denna funktion är kött och potatis i vår kod. Så är vad vi har här ett kommando (AT + CWJAP) som säger att vår ESP att gå med en åtkomstpunkt. Den följs av AP SSID och lösenord. Om ESP returnerar "OK" sedan vi har gått med AP. Om inte, anslutningen misslyckades. Om du använder en MEGA eller andra flera seriella mikrokontroller som du kan ställa in den skicka PC meddelanden som om vad händer. Jag skickar mina data över I2C till en FPGA, så jag bara kastade bort Svaren.

loop() funktion

Detta är den sista största delen av koden. Detta område ansluter till Weather Underground API och hämtar data. När ESP börjar skicka data tillbaka vi driva det i variabeln svar sträng vi förklarat tidigare. Jag fångade data rad för rad (börjar med "och slutar med), och såg för uppgifterna jag behövde (temp_f och väder). Detta håller mängden data Arduino försöker butik/parse en gång ner till ett minimum.

Andra funktioner

De flesta av denna kod är ganska väl dokumenterat, så du bör kunna räkna ut vad som händer i resten av den. Jag går igenom och leta efter temp_f och väder. Jag sedan konvertera dessa värden till byte att skicka till min FPGA (hålla storleken minimal). Jag konverterade vädret till en 1 byte-värde. Detta ger mig upp till 256 olika väder koder. Jag använde sedan en enkel metod att omvandla temperatur till Binary Coded Decimal och skicka det till FPGA i 2 1-byte paket (4 siffror totalt på en sju segment display).

Krediter

Denna kod kom delvis från mitt eget arbete och delvis från andras. Jag minns inte alla de källor som jag utläsa idéer och koden från, men om någon av er hända på andra arbete som ser ut så här, låt mig veta. Jag skulle älska att ge kredit där det ska betalas.

Se Steg
Relaterade Ämnen

Bygga en webb aktiverat dörrlås med resten API och Raspberry PI

I detta instructable, vi kommer att bygga en webb aktiverat elektroniska dörrlås från grunden med RESTFUL API, nod JS och Raspberry PI för att tillhandahålla webbtjänsten konsumeras av mobila app eller någon resten klient.Arkitekturen är uppdelad i t...

Arduino gränssnitt med Nonin Pulse Oximeter (OEM modul) att producera Analog utgång

detta projekt var tänkt för att ha en pålitlig Analog signal som kan vara gränssnitt direkt med Labview för insamling av data i en forskningsstudie som vi försöker göra. De flesta kommersiellt tillgängliga pulse oximeter har inte heller ett analog ut...

Wii Remote IR kamera hacka med Arduino gränssnitt

vi fysiskt extrahera IR-kameran från Wii remote och gränssnitt med en arduino kontroll en servo.Wii IR-kameran är en vacker sak. Den har en inbyggd processor som skickar X- och Y-positioner och storlek 4 ljusaste IR punkter som är ser. Detta kan vara...

4-tråds pekskärm gränssnitt med Arduino

Denna handledning visar hur gränssnittet 4-tråd pekskärm med Arduino. Denna handledning är användbart för alla microcontrollers veta hur gränssnittet Reisistive TouchscreenResistiv pekskärm visar består av flera skikt som är åtskilda av tunna utrymme...

SIM900A gränssnitt med Arduino UNO och kör enkelt AT-kommandon

Hej killar,Jag har min nya SIM900A modul av SIMCom. Jag var fasadbeklädnad problem samtidigt som samverkar med Arduino Mega.Sedan försökte jag gränssnitt med arduino UNO. Så i detta instructable jag ska visa dig hur jag löste problemen och började sp...

Arduino IOT automation med ESP8266

Detta är en IoT automationsprojekt. inte som andra som bara hämtar sensordata till internet. Jag använde där tekniken att styra enheterna med behandlingen som web api använder wifi modul esp8266. med denna teknik vi kan övervaka, styra enheter från v...

Röst aktiverat Arduino (Bluetooth + Android)

Styra din Arduino med röstkommandon med hjälp av en Android smartphone! Innan vi gör en röststyrda hemautomation system, måste vi först lära sig de grundläggande principerna för experimentet. Denna guide kan du kommandot Arduino med din Android smart...

Air Quality mäta med REST Api

I detta instructable bygger vi en enkel Arduino set-up som kommer i kontakt med vår egen RESTful API. Arduinoen kommer att mäta luftkvaliteten med en Sainsmart MQ135 luftens kvalitet sensor och skicka dem via webben till en av våra egna servrar som k...

Bygga Starling, en modulär WiFi aktiverat LED display ombord.

Starling är modulära WiFi aktiverat, IoT aktiverad displayen. Du kan konfigurera starling att arbeta med IFTTT. OM det här än det är ganska snyggt tjänst som låter dig skicka meddelanden från någon av de populära tjänsterna som gmail, twitter etc för...

Arduino-baserad radarsystem med målet bekräftelse

RADARN är ett objekt system som använder radiovågor för att bestämma området, höjd, riktning eller hastighet av objekt. Radarsystem kommer i olika storlekar och har olika specifikationer. Några radarsystem används för flygledning på flygplatser och a...

Göra en slagsäck i Arduino och enighet med hjälp av Joystic och ballong

Detta instructable handlar helt enkelt om att läsa indata från en arduino joystic men med en liten twist! Vi kommer att göra våra joystick till en slagsäck :) och ännu bättre kommer vi visualiserar hela processen i unity3DObservera att hela denna ins...

Kontroll Arduino RC bil med android telefon & 1Sheeld

Om du vill kontrollera RC bil med din android smartphone utan att använda Bluetooth-modul och programmering android ansökan, kan du använda 1Sheeld i stället för dem.I grund och botten består 1Sheeld av två delar. Den första delen är en sköld som är...

Bygga din Android Apps för övervakning IoT enheter med REST API

För några veckor sedan, har jag genomfört resten web service bibliotek för WIZwiki-W7500ECO styrelse. Postat på Instructables Ive ', (med innehåll!)Jag bestämde mig att skapa mina egna Apps för att övervaka min bräda med resten API: er. Mina Apps ska...

Med hjälp av Arduino SKIFT register med ultraljudssensorer

HC-SR04 ultraljud utbud fjärranalys modulen är bra för avkänning avstånd som kan användas som indata för Arduino projekt, men med flera (fler än två) kan snabbt kosta dig en hel del stift.Denna grundläggande Instructable ger dig koden och grundläggan...

Arduino kitchen timer med en introduktion till timer avbryter

Välkommen till min första instructable,Jag beslöt att göra ett ganska enkla projekt för att ange instructable värld. Detta projekt handlar om att göra en enkel kitchen timer med en Arduino Uno. Således kommer jag ge en liten introduktion 2.2" tft dis...

Arduino Mega GPS med LCD och SD loggning

Använd din Audino Mega som en GPS logger med tydlig LCD display och 5 funktionsknappar. En bi-färg LED används för att ange statusinformation.SDcard kan vara kvar i och läsa med en kort läsaren skiss, med utgång till den seriella Monitor.Detta instru...

Arduino Digital termometer (med DS18B20)

HejIdag kommer jag visa dig hur du gör din egen digitala termometer med arduino uno och DS18B20 temperaturgivare.Termometern kan mäta temperaturer från-55 ° C till +125 ° C (-67 ° F till +257 ° F). Den har till knappar, en till vända på/bort skärmen...

Arduino Pickup Truck med ljus och avstånd Sensor

I denna tutorial kommer jag förklara hur man bygger denna Arduino kartong plocka upp lastbil med hinder skatteundandragande och cool rött ljus. Det är låg kostnad och har mer än bara robot rörelse.En annan fördel är strömförbrukning: endast 4 AA-batt...

Hur får man en Arduino micros() funktion med 0.5us precision

Jag älskar Arduino microcontroller programmering, och jag använder det regelbundet i flyg-och forskning samt i hem projekt. När jag arbetar med mina många hem projekt, men befinner jag ofta mig behöver en mycket exakt timer. Detta beror på att mitt h...