Skicka data till Thingspeak

Introduktion

I detta kapitel ska vi skicka data till en webbtjänst, så att informationen blir lättillgänglig över internet. 

Obs! Koden i detta kapitel är anpassad för webbtjänsten Thingspeak och hur den fungerar i skrivande stund. Funktionaliteten kan förändras med tiden. 

Thingspeak

I Anslut Arduino till wifi visade vi hur vi kan använda en server för att göra information tillgänglig för webbläsare på det lokala nätverket. Vi kan också komma åt den informationen över internet om vi först öppnar rätt port i routern och kopplar routern till en dynamisk DNS-tjänst (hur detta görs behandlas i Hur funkar det?-seriens nätverksdel). 

Nu vill vi göra mer än att publicera information på en webbsida. Vi vill ladda upp värden till en webbtjänst som både lagrar och visar värdena för oss. För detta ändamål är webbtjänsten Thingspeak perfekt. Precis som namnet avslöjar får Thingspeak saker att prata med internet. Tjänsten bygger på öppen källkod. Webbsidan thingspeak.com används frekvent av maker-rörelsen och drivs av amerikanska Mathworks (kända för programmet Matlab).

html_image

Vi börjar med att skapa ett konto på Thingspeaks webbsida (gratis).

html_image

På Thingspeak sparas datan i så kallade kanaler. En kanal kan i sin tur innehålla flera fält. Det är till fälten som vi sparar datan. Om vi sätter temperatursensorer i alla rum i huset kan vi skapa en kanal som heter Hemma hos oss och ha följande fält i den:

  • vardagsrum (field1)
  • sovrum (field2)
  • kök (field3)
  • badrum (field4)
  • tvättstuga (field5)
  • hall (field6).

Det går att ha upp till åtta fält per kanal. 

Vi som är ägare av kanalen kan själva välja vad kanalen ska heta, vilken beskrivning den ska ha, huruvida den ska vara kopplad till geografiska koordinater samt om den ska vara publik eller ej. Om den är publik kan andra personer se datan. 

Vi som kanalägare kan också exportera all data som vi vill analysera närmare i t.ex. Microsoft Excel eller Mathworks Matlab.

Skicka data till Thingspeak

I följande exempel vill vi skicka slumpmässig data till en Thingspeak-kanal för att testa funktionaliteten. Vi skapar därför en ny kanal som vi kallar My Data. I kanalen skapar vi ett fält som vi kallar Data. Vilket namn vi väljer spelar ingen större roll, för all kod kommer ändå att adressera fältet som field1.

html_image

Thingspeak har ett så kallat API (Application Programming Interface) som gör att andra applikationer kan skriva till (och läsa från) kanalerna. För att vårt program ska kunna göra det måste vi hämta en API-nyckel för vår kanal. Den ligger under API-fliken på webbsidan.

html_image

Hårdvarumässigt behåller vi samma kopplingar som i Anslut Arduino till wifi. Vi måste dock uppdatera sketchen lite. 

I den översta delen av sketchen skriver vi ungefär samma sak som tidigare, men vi lägger till Thingspeak-relaterad information. Vi skapar en ny klient (den som ansluter till Thingspeak). Vi sparar information om att vi vill ansluta till thingspeak.com med vår API-nyckel. Vi anger också hur ofta vi vill att vår klient ska skicka data till Thingspeak. Vi sätter värdet till 30000 millisekunder (30 sekunder), vilket kanske är onödigt ofta. Den högsta tillåtna uppdateringsfrekvensen är var 15:e sekund. 

Vi deklarerar och initierar även en long-variabel vid namn myData. Det är den variabelns värde som vi ska skicka till Thingspeak.

Del 1/4 av Thingspeak.ino

I loop-funktionen skapar vi en while-loop som skickar information om anslutningen till Serial monitor. Det är mycket användbart vid felsökning. 

Vi skapar även en if-sats som undersöker om det har gått tillräckligt lång tid sedan vi senast skickade data till Thingspeak. Om det har gått mer än 30 sekunder (tiden vi valde tidigare) uppdaterar Arduinon myData-variabeln med ett pseudoslumpat värde och skickar det till Thingspeak. 

Del 2/4 av Thingspeak.ino

För att skicka data till Thingspeak skapar vi funktionen sendThingspeak.

Del 3/4 av Thingspeak.ino

Del 4/4 av Thingspeak.ino

När vi har kompilerat och laddat upp koden till vår Arduino börjar den skicka data till Thingspeak. Observera att datan inte betyder något speciellt. I Bygg en internetuppkopplad ­klocktermometer ska vi börja skicka väsentlig data.

html_image

Senast ändrad: 2017-02-28
IntroduktionThingspeakSkicka data till Thingspeak
Bli medlem i dagGör som nästan 2 miljoner andra och ta del av erbjudanden samt förmåner när du handlar!

Som medlem får du:

  • Exklusiva medlemserbjudanden
  • Poäng på allt du handlar
  • 100 dagars öppet köp
  • Se dina köp på kjell.com
Som medlem hos Kjell & Company kan du köpa utvalda medlemsvaror till extra bra priser, samla poäng och få bonuscheckar, samt ta del av unika medlemserbjudanden. Du får även förtur till vår kundservice, utökat öppet köp och förlängd garanti på utvalda varumärken.Läs mer om medlemskapet
Alltid tryggt att handla hos Kjell
Fri frakt

Vi bjuder på standardfrakten när du handlar för mer än 300:-

Fri retur

Fria returer i alla våra butiker.

Snabba leveranser

1-2 arbetsdagar leveranstid

Hämta i butik

Reservera online, redo att hämtas ut efter 15 minuter

Medlem i

Medlem i trygg e-handel

Du betalar enkelt

Får din beställning levererad med

Du kan handla från både

Det verkar som att du använder en gammal webbläsare, det kan göra att allt inte fungerar eller ser ut som det borde.