Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 8 months ago.
Posting to Ubidots
I'm looking to make an IoT project and am using an ESP8266 loaded with NodeMCU's Lua interpretter and what I want to do is post to Ubidots.com it says to POST a request to:
http://things.ubidots.com/api/v1.6/datasources/{ds_id}/variables Indicating at least the name of the Variable in a JSON object in the Http body:
{"name":"Temperature"}
with an example:
POST /api/v1.6/datasources/{DS_ID}/variables/?token={TOKEN} HTTP/1.1 Host: things.ubidots.com Content-Type: application/json Content-Length: 35
{"name":"Temperature", "unit":"ºC"}
Remember to change {DS_ID} with the ID of the Device where you want to create the variable, and {TOKEN} with a valid token from your account.
How would you implement this in mbed? I have already got my ESP8266 connected to my network.
1 Answer
7 years, 2 months ago.
Hi there, I used the code below to send data once a time ago, please use it as reference
include the mbed library with this snippet
function sendValue(value,token,varID) srv = net.createConnection(net.TCP, 0) srv:connect(80,"things.ubidots.com") print("Sending POST") -- Waits for connection befor of sending values srv:on("connection", function(sck, c) token = c return token end) var = '{"value": '..dato..'}'; num = string.len(var); local cadenaPOST = "POST /api/v1.6/variables/"..varID.."/values HTTP/1.1\r\n" .."Content-Type: application/json\r\n" .."Content-Length: "..num.."\r\n" .."X-Auth-Token: "..token .."\r\n" .."Host: things.ubidots.com\r\n\n" ..var.."\r\n"; sck:send(cadenaPOST) end) srv:close(); end
Also, at this thread: http://community.ubidots.com/t/solved-400-bad-request-using-lua-w-esp8266/1105 you may find an useful conversation about sending data to Ubidots using LUA.
Regards