Linkit en servering JSONP sensordata (batteriet exempel) (3 / 4 steg)

Steg 3: Kod genomgång



När du är klar bör du kunna gå till din linkit en IP-adress och se något liknande vad avbildas för detta steg.

#include < LTask.h >
#include < LWifi.h >
#include < LWifiServer.h >
#include < LWifiClient.h >
#include < LBattery.h >

Detta är de mediatek bibliotek. Jag minns inte vad gör. Wifi hjälp med wifi och batteriet en erbjuder två enkla funktioner. En att kontrollera batterinivån och något att berätta om det är att vara laddade eller urladdat.

Konfiguration av WiFi AP inställningar.
#define WIFI_AP "foo"
#define WIFI_PASSWORD "bar"
LWIFI_OPEN, LWIFI_WPA eller LWIFI_WEP.
#define WIFI_AUTH LWIFI_WPA

Lägger AP informationen här (detta är typ av sak som i en finare skiss du skulle sätta i egenskaperna för en fil på den lagring delen av styrelsen och läsa här).

Konfigurera timeout för en http-begäran (ms).
CONST uint32_t requestTimeout = 1000;
Globala variabler
LWiFiServer server(80);
röding buff [256];

Self förklarande globala variabler. Servern port det vad att 80 är.

void setup()
{
LTask.begin();
LWiFi.begin();
Serial.BEGIN(115200);
Delay(2000);
}

Jag tog ut den försening som fanns i den ursprungliga skissen. Om du vill veta varför förseningar är onda checka ut det här: https://www.sparkfun.com/news/1940

yadda yadda... det finns några kod som kontrollerar wifi status och spammar det till seriekonsoll. Jag kommer inte att gå över den här. Det är bra för att snabbt räkna ut vilken IP-adress din linkit en har fått från AP. Det andra sättet du kan göra att det genom att gå till administratörssidan av din AP och titta på DHCP tabell för posten med matchande MAC-adressen (titta på klistermärket på undersidan av din styrelse).

samtidigt (client.connected())
{
om (client.available())
{
Vi i princip ignorerar klientbegäran, men vänta HTTP begäran slutet
int c = client.read();
lastReceptionTime = millis();
Serial.Print((Char)c);
om (c == '\n' & & currentLineIsBlank)
{
Serial.println ("Skicka svar");
Skicka ett standard http-svarshuvud
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: application/json");
client.println ("anslutning: Stäng"); anslutningen kommer att stängas efter slutförandet av svar
client.println ("Access-kontroll-tillåta-ursprung: *");
client.println();
client.Print("{\"batteryLevel\":\"");
client.Print(LBattery.level());
client.Print ("\", \"chargingStatus\":\ "");
client.Print(LBattery.isCharging());
client.Print("\"}");
client.println();
bryta;
}
om (c == "\n")
{
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r')
{
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
annat
{
om (millis() - lastReceptionTime > requestTimeout)
{
Serial.println ("fel - client timeout, släppa anslutning...");
bryta;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(500);
stänga anslutningen:
Serial.println ("nära samband");
client.stop();
Serial.println ("klienten kopplas från");
}

Denna bit är korrekt webbservern. Det hand tar om allt från när en klient träffar det med en HTTP GET till den grad att anslutningen sker.

Viktiga saker händer i dessa rader:

client.println ("Content-Type: application/json");

Raden anger MIME-typen för returen till json, som förstås av många "IoT enablers" som ubidots, fribord, etc.

client.Print("{\"batteryLevel\":\"");
client.Print(LBattery.level());
client.Print ("\", \"chargingStatus\":\ "");
client.Print(LBattery.isCharging());

LBattery.level() är det mycket enkel metod jag hänvisade till tidigare som bara returnerar batterinivån. Tyvärr det är inte mycket finkornigt och ger endast 0, 33, 66 och 100.
Det är ganska enkelt att ersätta denna kod med din egen och har tjänat någon sensor värden som json data för lätt konsumtion. Ersätt batteryLevel med din deskriptor och funktionsanropet med ett funktionsanrop som hämtar data från din sensor val. Du kan också expandera dessa utskrift rader i samma mönster att bygga mer struktur i det. För mer information om json och vad json ser ut kolla in: http://www.w3schools.com/json/

Se Steg
Relaterade Ämnen

Ställ in Linkit en styrelsen och ladda batteriet

Hej världen! Rent kol här med en annan Instructable, jag nyligen undertecknat får en Linkit en styrelse från MediaTek genom Instructables och ungefär en månad senare fick jag styrelsen med posten. Det kom med en fin liten lapp förklarar allt, tre Ins...

Kontrollera batteriets Status på Mediatek LinkIt en

Det är lätt att kontrollera status för det medföljande batteriet som medföljer MediaTek LinkIt en avgift!Du behöver:MediaTek LinkIt en bräda och batteriet som medföljer detMikro-USB-kabelDator med MediaTek SDK installeradFörst ansluta batteriet till...

Linkit en: Batteriladdning och makt kontrollera

Linkit ett batteri funktionerSteg 1: material DatorLinkit enBatteriUSB-sladdSteg 2: Hur man laddaHelt enkelt koppla in batteriet i det övre högra hörnet och dra i spaken för att ladda batterietSteg 3: BatteritidKontrollera batteriet liv kontakten i U...

LinkIt en batteriladdning

Det verkar finnas en hel del förvirring beträffande uttag av LinkIt ett Li-batteri, och jag ska erkänna att det är ganska icke-intuitiva sedan åratal jag visste du bör aldrig ansluta två kraftkällor samtidigt till en Arduino. Men det är precis vad du...

Linkit en stulen bil spårning och hämtning

Jag har en Linkit en styrelse och har försökt att komma med nya idéer om hur man använder den. Jag såg över andra projekt här på instructables och ville komma med en ny idé att kombinera andra idéer jag har sett.I detta projekt kommer vi göra en anor...

Servo kontroll med hjälp av LinkIt en

Med en LinkIt styrelsen placeras gott om trådlöst anslutna projekt rätt till hands, bara väntar på dig att gräva i dem. Med tillägg av servon är projekt, till exempel ljud-kontrollerade lås, indikatorer och robotar som inbegriper LinkIt en alla möjli...

Installera LinkIt en SDK på Mac OS X

Detta är en handledning om hur du installerar MediaTek LinkIt en på Mac OS X.Steg 1: Hämta Arduino IDE 1.5.7 för Mac (Java 7)Klicka på följande länk för att hämta direkt eller besöka den officiella hemsidan för Arduino.http://Arduino.cc/download.php?...

Förvandla en gammal mobiltelefon till en data skickas enhet (med en arduino)

Vad gör denna enhet?När allt är klart kommer kombinationen av kretsar, arduino och modded cellphone kunna autonomt skicka data via texter via mobilnätet. Detta kan vara sensordata, till exempel från väder sensorer.Vad ska jag visa dig i den här guide...

WiFi-telefon kontrollerade Mini RC Spy bil

I detta Instructable jag kommer att visa dig att hur kan du bygga snabbt en enkel telefon kontrollerade RC bil som kan spela in filmer. Enheten är baserad på Mediatek LinkIt en styrelsen och jag använde en Adafruit motor sköld och Blynk app för att s...

Kabeldragning för ditt hem bryggeri

vad som behövs för en lyckad hem bryggeriDe flesta helt elektriska hem bryggerier är baserade på en 5500 Watt av vatten elementet för brew vattenkokare, en 5500 Watt vatten värmare elementet för heta liqour tanken och en 1650 Watt till 5500 Watt av v...

Hur man ladda MediaTek LinkIt en batteriet och Kontrollera batterinivån

En av mina favorit saker om LinkIt en styrelsen är dess batteri. Det är en del av vad gör styrelsen så transportabel och mer kan åstadkomma några riktigt snyggt bedrifter jämfört med en Arduino. För att ladda batteriet, ändra strömbrytaren i styrelse...

Superenkel dashboarding direkt på linkit en

Detta började som en vill ha till typ av en port av denna idé från en intel edison projekt jag började: Intel Edison Sensor Dashboard med fribord och PythonDet är också typ av en förstärkning av detta instructable:När jag började skriva ovanstående i...

En enkel hydroponiska System med MediaTek LinkIt™ en

Idag vill vi beskriva ett projekt baserat på den nya styrelsen Mediatek Linkit en. Vi vill med denna styrelse inser en enkel hydroponiska system som kan:1) att göra hydroponics näringslösning:Detta kommer att göras med hjälp av magnetventiler aktiver...

LinkIt en drivs Wall-E

I detta instructables ger vi ett enkelt exempel på hur du lägger till rösten och avstånd avkänning på allas älskade robot med MediaTek LinkIt ONE.Steg 1: material1. Linkit med batteri2. mono ljud Amp Breakout med högtalare3. VL6180X Time-of-Flight av...

Geo Data Logger: Arduino + GPS + SD + Accelerometer att logga, tidsstämpel och geo-tag sensordata

uppdateringar17 okt 2013: Jag har publicerat en guide om hur du använder din Android-telefon kan utföra en liknande uppgift genom att utnyttja din Android enheten är inbyggd GPS och sensorer.6 feb 2013: Med på GeoAwesomeness http://geoawesomeness.com...

LinkIt en ultimata IoT

Om du någonsin har varit till Förenade Arabemiraten i sommar, kommer du förmodligen vet om värmen där. Men när du är inomhus, i ditt hus eller rum, och luftkonditioneringen slås på, du känner inte värmen alls.Nu föreställa sig du måste gå för en tid,...

Servo styrbygel och LinkIt en

LinkIt en styrelsen av MediaTek och Seeed använder Arduino IDE men styrelsen kommer med många fler anslutningsfunktioner byggdes. Den anslutna enheten kanske vill använda flera servon, och om du gillar mig, koden är hårdare än hårdvara. Jag använde s...

Solar Power LinkIt (med Tracking)

Mediatek LinkIt en har en hel massa häftiga funktioner, tillsammans med inbyggd GPS och GPRS, medföljande batteri och laddare gjorde verkligen min dag, strömförsörjning till ett projekt om ofta ett elände, så det är bra att bokstavligen ha "batterier...

LinkIt en Tutorials - #5 Grove Headers

En av de mindre uppenbara extrafunktioner LinkIt en styrelse är två vita huvuden med 4 stift i. Dessa kallas Grove headers och är utformade så att du kan fästa en tråd och att kunna använda alla typer av hårdvara snabbt och enkelt.För denna tutorial...