NodeMCU(5)阿里雲接入顯示溫濕度

2021-10-04 18:23:36 字數 4659 閱讀 6256

由於這個是我去年暑假做的東西但是今天看的時候發現很多地方出現了變化。所以如果有哪些步驟出了問題還煩請告知一聲。

了解物聯網平台的裝置接入流程和協議。mqtt協議:首先,wifi模組需要接入wifi,以wifi作為跳板通過雲服務端分配的暗號與雲服務端建立連線。建立聯絡後剩下的就是訂閱和發布的問題,在阿里雲中可以設定topic,通過topic來確定裝置與服務端是進行訂閱還是發布功能。

--

//設定wifi的id和密碼

q=

q.ssid=

"**************"

q.pwd=

"***************"

--

/**************輸入阿里雲生成的三元數與地區號********/

productkey =

"***********"

clientid =wifi.sta.

getmac

()

devicename =

"dht11001"

devicesecret=

"*******************"

regionid=

"cn-shanghai"

--華東2(固定)

設定port口和初始化mqtt

mymqttport=

1883

--port

mymqtt=nil --client

阿里雲預設配置

mymqtthost=productkey.

.".iot-as-mqtt."

..regionid.

.".aliyuncs.com"

--host

mymqttusername=devicename.

."&"

..productkey --username

--

//topic0用作訂閱topic1用作發布

topic0=

"/a1s1os3wvy6/dht11001/user/get"

topic1=

"/sys/a1s1os3wvy6/dht11001/thing/event/property/post"

設定wifi為連線固定wifi的ap模式

wifi.

setmode

(wifi.station)

wifi.sta.

config

(q)

wifi.sta.

connect

()

連線wifi

wifi.eventmon.

register

(wifi.eventmon.sta_got_ip,

function

(t)print

("connected, ip is "

..wifi.sta.

getip()

)end)

wifi.eventmon.

register

(wifi.eventmon.sta_disconnected,

function

(t)print

("wifi disconnect"

)end)

獲取時間戳

function getnettime()

sntp.

sync(,

function

(sec, usec, server, info)

print

('sync'

, sec, usec, server)

end,

function()

print

("get time error"

) end)

return

0end

建立mymqtt進行三元數轉換

mymqtttimes=

'6666'

hmacdata=

"clientid"

..clientid.

."devicename"

..devicename.

."productkey"

..productkey.

."timestamp"

..mymqtttimes --hmac 校驗的資料

mymqttpassword=crypto.

tohex

(crypto.

hmac

("sha1"

,hmacdata,devicesecret)

)--hmacdata加上裝置的秘鑰 ,使用hmacsha1 加密得到password

mymqttclientid=clientid.

."|securemode=3,signmethod=hmacsha1,timestamp="

..mymqtttimes.

."|"

--裝置id

----

[建立mqtt客戶端]

mymqtt=mqtt.

client

(mymqttclientid,

120,mymqttusername,mymqttpassword)

連線阿里雲

mqttconnectflag=

0tmr.

create()

:alarm

(1000,0

,function()

if mymqtt~

=nil then

print

("attempting client connect..."

) mymqtt:

connect

(mymqtthost, mymqttport,

0,mqttsuccess,mqttfailed)

endend)---

[連線成功]---

function mqttsuccess

(client)

print

("mqtt connected"

) client:

subscribe

(topic0,0,

function

(conn)

--註冊topic0

print

("subscribe success"

) end)

mymqtt=client

mqttconnectflag=

1 tmr.

create()

:stop(0

)--關閉定時連線

endfunction mqttfailed

(client,reson)

print

("fail reson:"

..reson)

mqttconnectflag=

0 tmr.

create()

:start(0

)

end--

/************掉線重連*********/

mymqtt:on(

"offline"

,function

(client)

print (

"offline"

) tmr.

create()

:start(0

)end)

接收資料並列印

mymqtt:on(

"message"

,function

(client, topic, data)

print

(topic .

.":"

)if data ~

= nil then

print

(data)

endend)

定時溫度測量

tmr.

create()

:alarm

(10000000,1

,function()

if mqttconnectflag==

1 and mymqtt~

=nil then

status, temp, humi, temp_dec, humi_dec = dht.

read11

(p)q=string.

format([

[,"currenthumidity":}

,"method"

:"thing.event.property.post"}]

],temp,temp_dec,humi,humi_dec)

mymqtt:

publish

(topic1,q,0,

0,function

(client)

print

(q)

end)

endend)

阿里雲ECS部署Grafana接入zabbix

摘要 grafana接入zabbix部署 阿里雲ecs部署grafana接入zabbix grafana 是 graphite 和 influxdb 儀錶盤和圖形編輯器。grafana 是開源的,功能齊全的度量儀錶盤和圖形編輯器,支援 graphite,influxdb 和 opentsdb。阿里雲...

go語言接入阿里雲簡訊平台

按照官方的手冊操作 使用glide安裝go sdk 推薦 執行以下命令,安裝阿里雲go sdk 在安裝完成後,您可以使用openapi explorer來生成相關api的demo並應用在您的專案中。或使用govendor安裝 執行以下命令,安裝阿里雲go sdk 在安裝完成後,您可以使用openap...

PHP接入阿里雲市場 阿里簡訊服務DEMO

阿里簡訊服務 支援三大運營商簡訊 智慧型管道等優質能力,產品特點 3秒可達 99 到達率 超低資費。使用阿里簡訊服務步驟 1.購買服務 到購買簡訊服務 2.設定簽名檔 3.建立簡訊模板 4.根據demo接入阿里簡訊服務 請求引數 名稱型別 是否必須 描述paramstring string 可選模板...