Stap 4: programmeren
Zoek het bijgevoegde ino bestand voor het programmeren van de arduino. / / bijgewerkte firmware is geladen met betere ontvangst en oplossend timing-problemen met thingspeak api server. / / speciale dank aan de Bookwormzero aka Neil voor het vinden van de timing probleem. goed werk gedaan.
Ik m met behulp van de arduino te lezen van de api en handelen volgens de ontvangen gegevens. We kunnen elk internet ingeschakeld apparaat gebruiken om controle van de arduino pinnen. Hier heb ik, m draaien bestuur geleid in- en uitschakelen door het schrijven van H voor hoge en L voor laag op de web api. Dit kan worden gedaan vanaf overal in de wereld met het internet.
De sectie bijgewerkt:-
Volgende opdrachten worden gebruikt om te opereren Thingspeak kanaal.
- Update Channel Feed - GET
KRIJGEN https://api.thingspeak.com/update?api_key=your_api_key&field1=value
- Update Channel Feed - POST
POST van https://api.thingspeak.com/update.json
api_key = uw api-sleutel
Veld1 = waarde die u wilt boeken
- Krijg een Feed kanaal
KRIJGEN https://api.thingspeak.com/channels/your_channel_no/feeds.json?results=1
- Krijg een kanaal veld Feed
KRIJGEN https://api.thingspeak.com/channels/your_channel_no/fields/1.json?results=1
- Statusupdates ophalen
KRIJGEN https://api.thingspeak.com/channels/your_channel_no/status.json
Kanaal diervoeders-GET updateaanvraag kan worden gebruikt om gegevens te schrijven naar veld1 door het intikken van het URL in elke browser van Geïnterneerde aansluitbaarheid. Dit fungeren als onze afstandsbediening d.w.z. elk internet ingeschakeld apparaat.
Nu moeten we om te controleren de dingen om te lezen de veld1 gegevens met behulp van onze arduino en gebruik het als een opdracht voor vooraf gedefinieerde taken. Bijvoorbeeld gebruikte ik "H" voor het maken van bestuur leidde hoog en "L" voor het maken van het lage.
Om te lezen van de waarde van Veld1 sturen we "krijgen een kanaal veld Feed-GET-aanvraag met behulp van de arduino en ESP8266.
Ik neem hier aan dat je voordat met esp8266 gewerkt. Wanneer we GET-verzoek verzendt, web api verzenden die sommige gegevens in ruil in string formaat dat kan worden gelezen met behulp van de uart van esp8266. Kijk voor + IPD op seriële als het wordt verzonden als er iets beschikbaar om te lezen.
In de geretourneerde tekenreeks krijgt u de veldgegevens 1. Bekijk de tekenreeks hieronder:-
{"channel":{"id":85291,"name":"IoT testing","description":"Home Automation cum controller","field1":"test led","field2":"fan","field3":"tv","field4":"light","created_at":"2016-02-07T13:01:17Z","updated_at":"2016-02-23T14:34:38Z","last_entry_id":695},"feeds":[{"created_at":"2016-02-23T14:34:38Z","entry_id":695,"field1":"L"}]}
vet deel is de belangrijkste gegevens moeten we gebruiken. Om het te krijgen gebruikte recht ik een truc hier. zoals we niet de hele reeks hoeven keek ik voor "feeds" woord als uitgangspunt, want het is uniek in de hele reeks slechts één keer komt. en de resterende tekenreeks opgeslagen in een karakter array. L is het 66e teken na Feeds. array opslaan van deze waarde moet dus array [65].
Gebruik deze waarde om te activeren van elke functie die u wilt.
Opmerking: - wijzigen van de array [65] aan array [i-13] voor een betere ontvangst en oplossen van problemen met betrekking tot het identificeren van de veldwaarde.
verandering esp8266 baud-rate aan 57600 of lager voor gebruik als hardware baud-rate is 115200. software seriële moet lager zijn dan de hardware.