使用nodemcu玩转物联网系列(五):notemcu通过http协议获取温湿度传感器值上传onenet服务器

gpio.mode(2,gpio.OUTPUT)
wifi.setmode(wifi.STATION)
cfg = {}
cfg.ssid = "kyn"
cfg.pwd = "20160118"
wifi.sta.config(cfg)
wifi.sta.connect()

DeviceId = "587667371"
ProductId = "325428"
AuthoInfo = "test"
host = "183.230.40.39"
port = 6002


--声明url和headers
url = 'http://api.heclouds.com/devices/'..DeviceId..'/datapoints?type=3'
headers = 'api-key:BO6XuBiKw07JRXakBNvn4JKX7MI=\r\n'

dht_pin = 5


timer = tmr.create()
function con()
    if wifi.sta.getip() == nil then
        print("coneting........")
    else
        timer:stop()
        print("success!~")
        gpio.write(2,gpio.HIGH)
        print(wifi.sta.getip())

        client_hum = mqtt.Client(DeviceId,120,ProductId,AuthoInfo)
        client_hum:connect(host,port,0,function(client)
        print("connect success!")
        end)

        function h()
        status,temp,humi,temp_dec, humi_dec = dht.read11(dht_pin)
        print("DHT Temperature:"..temp..";".."Humidity:"..humi)

--http协议的post方法,注意参数全用单引号
--url:http://api.heclouds.com/devices/'..DeviceId..'/datapoints?type=3  采用的是设备ID
--headers:api-key:BO6XuBiKw07JRXakBNvn4JKX7MI=\r\n  用的是产品API-KEY,尾部 加\r\n
--回调函数:收到响应或发生错误时要调用的回调函数,发生错误时date为-1,也就是<0
--http.post(url, headers, body, callback)  [参照网站](https://nodemcu.readthedocs.io/en/master/modules/http/#httppost)
        http.post(url, headers, '{"DHT Temperature":'..temp..',"Humidity":'..humi..'}', function(code,date) 
            if(code < 0) then
                print("HTTP request failed")
               else
                print(code,date)
            end
            end)

     end
        
        tmr.create():alarm(1500,tmr.ALARM_AUTO,h)

    end
end

timer:alarm(1000,tmr.ALARM_AUTO,con)


参考文档:
设备HTTP协议上传数据到OneNET接口规范

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值