You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

44 lines
1.4 KiB

#include <iostream>
#include <sstream>
#include <fstream>
#include "network/SocketClient.h"
#define ADC_PATH "/sys/bus/iio/devices/iio:device0/in_voltage"
#define ADC 0
using namespace std;
using namespace exploringBB;
float getTemperature(int adc_value) { // from the TMP36 datasheet
float cur_voltage = adc_value * (1.80f/4096.0f); // Vcc = 1.8V, 12-bit
float diff_degreesC = (cur_voltage-0.75f)/0.01f;
return (25.0f + diff_degreesC);
}
int readAnalog(int number){
stringstream ss;
ss << ADC_PATH << number << "_raw";
fstream fs;
fs.open(ss.str().c_str(), fstream::in);
fs >> number;
fs.close();
return number;
}
int main() {
ostringstream head, data;
cout << "Starting ThingSpeak Example" << endl;
SocketClient sc("api.thingspeak.com",80);
data << "field1=" << getTemperature(readAnalog(ADC)) << endl;
cout << "Sending the temperature: " << getTemperature(readAnalog(ADC)) << endl;
sc.connectToServer();
head << "POST /update HTTP/1.1\n"
<< "Host: api.thingspeak.com\n"
<< "Connection: close\n"
<< "X-THINGSPEAKAPIKEY: Z7PNWRYKDEBRX5F7\n"
<< "Content-Type: application/x-www-form-urlencoded\n"
<< "Content-Length:" << string(data.str()).length() << "\n\n";
sc.send(string(head.str()));
sc.send(string(data.str()));
string rec = sc.receive(1024);
cout << "[" << rec << "]" << endl;
cout << "End of ThingSpeak Example" << endl;
}