WiFi Enabled Arduino - Interfacing met web API's (4 / 7 stap)

Stap 4: Stap 4: de Code


Zo ben ik zeker op dit punt de meesten van u bekend bent met de Arduino IDE. We zullen gebruiken die onze weer getter code uploaden naar de Arduino. Ik ben een schoongemaakte en gedocumenteerde versie van de code verbonden aan deze stap, maar we gaan een beetje hier overheen (niet moeizaam, enkel genoeg zo u begrijpen wat er gaande is).

Het eerste deel van de code is onze #defines, gewoon om te leven een beetje makkelijker te maken. We hebben ook een paar variabele aan de top die ons parseren uit de gegevens die een beetje makkelijker helpen.

Setup functie

Hier gaan we, dit is hoe we onze ESP verbinding te maken met onze Arduino. Ik voorbehouden wat ruimte aan de bovenkant voor de reactie van de tekenreeks. Dit is een greep-over van een vorige iteratie van code die had herhaald stack vastlopen omdat de. JSON overweldigd gewoon mijn kleine micro. U kunt waarschijnlijk gooien deze coderegel uit, ik hield het. Na dat u mij voorsprong opwaarts een I2C (TWI, draad, SMB, wat...) verbinding. Dit is waar mijn gegevens eigenlijk gaat. Daarna komt de Serial. Dit is de verbinding met de ESP, merken de 115200 baud. Dat is SUPER belangrijk om goed te krijgen, anders je Arduino spreekt Engels en de ESP is Kantonees spreken en iedereen is verward. U zult merken dat de AT commando's zijn terug, vertelde ik u dat zou men belangrijk! Eerst onze code gecontroleerd om ervoor te zorgen dat het apparaat klaar is door het uitvoeren van een software-reset en wachten op de ESP te reageren. Na dat we de ESP ingesteld op station-modus en meerdere verbindingen toestaan. We kunnen verbinding maken met meerdere APs, maar voor ons gebruik nu we alleen zal worden met behulp van een van de verbindingen. Dat is een poging om te verbinden met WiFi na (volgende functie we kijken). Zodra we hebben met succes (hopelijk) verbonden met de WiFi, wij druk op en maak verbinding met onze gastheer (in dit geval Wunderground).

connectWiFi() functie

Deze functie is het vlees en aardappelen van onze code. Dus is wat we hier hebben een opdracht (AT + CWJAP), dat is onze ESP aan een toegangspunt te vertellen. Het wordt gevolgd door de AP SSID en het wachtwoord. Als de ESP retourneert "OK" hebben we met succes de AP gebundeld. Als dat niet het geval is, wordt de verbinding mislukt. Als u gebruikmaakt van een MEGA of andere multi seriële microcontroller die u tot berichten sturen de PC instellen kunt er van wat gaande is. Ik ben mijn gegevens verzenden via I2C aan een FPGA, dus ik gewoon de reacties gooide.

loop functie

Dit is het laatste grote gedeelte van de code. Dit gebied verbonden met de Weather Underground API en downloadt de gegevens. Zodra de ESP begint om gegevens terug te sturen duw we het in de reactie string-variabele die we eerder verklaard. Ik gevangen de data regel voor regel (beginnend met "en eindigend met), en keek voor de gegevens die ik nodig had (temp_f en weer). Hierdoor blijft de hoeveelheid gegevens die de Arduino probeert te slaan/parse tegelijk tot een minimum beperkt.

Andere functies

De meeste van deze code is vrij goed gedocumenteerd, zodat u in staat om erachter te komen wat is in de rest van het gaande er moet zijn. Ik ga door en kijk voor temp_f en weer. Ik vervolgens converteren deze waarden naar bytes te sturen naar mijn FPGA (houden de grootte minimaal). Ik omgezet het weer in een waarde van 1 byte. Dit geeft mij maximaal 256 verschillende weer codes. Ik gebruikte dan een eenvoudige methode om te zetten van de temperatuur in Binary Coded Decimal en stuur die naar de FPGA in 2 1-byte pakketten (4 cijfers op een 7 segment display totaal).

Credits

Deze code kwam gedeeltelijk vanuit mijn eigen werk en gedeeltelijk van die van anderen. Ik herinner me niet alles wat de bronnen die ik opgedaan ideeën en code uit, maar als iemand van jullie gebeuren op ander werk dat uitziet, laat het me weten. Ik zou graag geven het krediet waar het verschuldigd is.

Gerelateerde Artikelen

Python en Arduino interface met pySerial

Python en Arduino interface met pySerial

in de afgelopen paar maanden ik heb geleerd hoe te programmeren met Python. Met een van de aankomende projecten dat ik ben bezig met het leuk zou zijn om van een computer weergeven om de gegevens te bekijken die zijn verzameld door een rover in real
Beheren van Arduino met python gebaseerd web API (geen php)

Beheren van Arduino met python gebaseerd web API (geen php)

In deze handleiding zal ik u tonen hoe om uw apparaat arduino van een webpagina te controleren! Daarna zal ik u tonen hoe om te controleren uw arduino vanaf uw mobiele apparaat en zelfs het maken van een web-gebaseerde API voor het beheersen van je a
Hoe het bouwen van een Arduino WiFi 4 x 4 met Android Controller

Hoe het bouwen van een Arduino WiFi 4 x 4 met Android Controller

RC auto's kunnen WiFi auto's...?RC auto's zijn cool, maar goedkoop RC auto's hebben beperkt bereik en kunnen alleen worden beheerd met de bepaalde controller die werd geleverd bij de auto.Ik kocht een RC jeep, compleet met 4-wielaandrijving, flexibel
Wii Remote IR Camera Hack met Arduino Interface

Wii Remote IR Camera Hack met Arduino Interface

We fysiek uittreksel van de IR-camera uit de Wii-afstandsbediening en interface het met een arduino beheersen een servo.De Wii IR-camera is een mooi ding. Het heeft een geïntegreerde processor die output van de X- en Y-positie en grootte van de 4 pun
4-draads Touchscreen interfacing met arduino

4-draads Touchscreen interfacing met arduino

In deze post, we gaan 4-draads touchscreen met arduino interface en maak 4 * 3 toetsenblok van hen en hen als 0-9, etikettering * en #.Stap 1: Lijst van onderdelen: Arduino Uno4-draads aanraakschermLijmpistoolAansluitende draadSoldeerboutUitvalsbasis
SIM900A Interfacing met Arduino UNO en Running eenvoudige AT commando's

SIM900A Interfacing met Arduino UNO en Running eenvoudige AT commando's

Hallo jongens,Ik heb mijn nieuwe module van de SIM900A van SIMCom. Ik werd geconfronteerd met problemen terwijl het interfacing met Arduino Mega.Toen probeerde ik het interface met de arduino UNO. Dus in dit instructable ga ik om u te tonen hoe ik pr
Toetsenbord met arduino interface

Toetsenbord met arduino interface

In ingesloten apparaten één van het belangrijkste deel is toetsenblok wordt gebruikt om te communiceren met ingesloten apparaten, toetsenbord is input apparaten die wordt gebruikt om aan te geven kan aanbevelen de apparaten, van calculator voor compu
4-draads aanraakscherm Interfacing met Arduino

4-draads aanraakscherm Interfacing met Arduino

Deze tutorial toont hoe 4-draads aanraakscherm met behulp van Arduino interface. Deze tutorial is nuttig voor alle microcontrollers, om te weten hoe Reisistive Touchscreen interfaceResistief touchscreen displays zijn samengesteld uit meerdere lagen d
Maken van een weerstand gebaseerd toetsenbord & Interface met Arduino!

Maken van een weerstand gebaseerd toetsenbord & Interface met Arduino!

Hoi allemaal!Ik voorkeur altijd weerstand scheidingslijn/ladder gebaseerd toetsenborden over matrix toetsenborden. Als je slim, alles wat je nodig hebt is een analoge poort van uw microcontroller met zoveel knoppen als u wilt. Tuurlijk, het vereist e
Lucht kwaliteit meten met REST Api

Lucht kwaliteit meten met REST Api

In dit instructable bouwen we een eenvoudige set-up van de Arduino die met onze eigen RESTful API verbinden zal. De arduino zal meten van de kwaliteit van de lucht met een Sainsmart MQ135 luchtkwaliteit sensor en stuur ze via het web naar één van onz
Het gebruik van een seriële WiFi schild - Arduino tutorial Arduino Tutorial

Het gebruik van een seriële WiFi schild - Arduino tutorial Arduino Tutorial

In deze tutorial leert u hoe u de WizFi210 - serie WiFi schild met Arduino uno board. Deze goedkope wifi-shield kan gemakkelijk worden aangesloten op uw WiFi-netwerk en communiceren met de Arduino uno bestuur via de seriële communicatie-protocol. In
Fiets - aangedreven arduino waterzuiveringsinstallatie (met UVC licht)

Fiets - aangedreven arduino waterzuiveringsinstallatie (met UVC licht)

Dit instructable toont hoe de macht van een UV-C waterzuivering met een fiets en arduino controle. Een dynamo aan de achterzijde van de fiets laadt een batterij (die wij hebben in eerste instantie al betalen voor dit project), die loopt van de arduin
Digitale Object item LDR Interfacing met Mediatek LinkIt One

Digitale Object item LDR Interfacing met Mediatek LinkIt One

In dit Instructable zult u kunnen aan Mediatek Linkit een interfacekaart met behulp van LDR en digitale Object Counter die kan tellen objecten t/m 9999.Stap 1: vereisten General-Purpose PCB Board4 CD 4026 Johnson decennium teller.4 gemeenschappelijke
Controle Arduino functioneert met een USB-controller, geen solderen vereist-ik maakte het op TechShop

Controle Arduino functioneert met een USB-controller, geen solderen vereist-ik maakte het op TechShop

eerder dit jaar besloot ik dat het zou leuk om mijn bedrade controller van de Xbox 360 gebruiken om te bepalen Arduino projecten - in dit geval een RGB LED. De meest gebruikte methode om dit te doen impliceert echter toegang tot de elektronica binnen