Användning av GPS, hall sensor, lysdioder och Firebase med Edison (9 / 10 steg)
Steg 9: Att få Intel IOT C++ curl JSON att Firebase
Medan Intel Edison innehåller instruktioner för att ha Intel IOT Edison utföra REST API telefonsamtalen med python och javascript bibliotek, dokumentationen för C++ saknas.
Denna exempelkod (http://curl.haxx.se/libcurl/c/http-post.html) tillsammans med instruktionerna nedan beskriver hur att få Intel IOT Edison styrelsens C++ miljö att utföra CURL samtal.
1. ta med .h filer högst upp i filen cpp:
#include < stdio.h >
#include < curl/curl.h >
2. säkerställa curl är kopplad i projektets egenskaper setup.
För att fungera, måste cURL-biblioteket länkas. Om du får kompilator fel, gör du följande för att lägga till cURL-biblioteket:
Högerklicka på projektet och välj Egenskaper. Navigera sedan till C/C++ bygga--> Inställningar--> Cross G ++ Linker bibliotek -> -> Klicka på den gröna plus -knappen och Lägg till "curl" biblioteket
3. Ställ in koden. Detta kommer att vara i Main () cpp koden. Observera att markerade gula dummy länken måste ersättas med egen Firebase URL.
CURL Setup
CURL * curl;
CURLcode res;
I windows, kommer detta att init winsock grejer
curl_global_init(CURL_GLOBAL_ALL);
få en curl handtag
curl = curl_easy_init();
Ange den URL som är på väg att få vår POST. Denna URL kan
lika bra vara en https:// URL om det är vad bör få den
data.
curl_easy_setopt (curl, CURLOPT_URL, "https://.firebaseio.com/data.json");
4. cURL samtal. I oändlig loop delen av koden, utför anropet CURL när uppskatta utlösaren inträffar. Du kommer att behöva ersätta JSON data gulmarkerat med dina egna data.
om (knappen -> value()==1) {
std::Cout << knappen-> name() << "värdet är" <<-knappen-> value() << std::endl;
Nu ange vilka data som POST
curl_easy_setopt (curl, CURLOPT_POSTFIELDS, "{\"lat\":23.343,\"long\":234.45345}");
Utföra begäran, res får returkod
Res = curl_easy_perform(curl);
Sök efter fel
std::Cout << "curl utdata:" << res << std::endl;
om (res! = CURLE_OK)
fprintf (stderr, "curl_easy_perform() misslyckades: %s\n", curl_easy_strerror(res));
}