折磨了三天了,終于将裝置連接配接上阿裡雲平台了
1 刷固件庫
基本上上一篇部落格有講到的,但是官方還是不定期的會更新固件庫,導緻很多API接口會發生變化,導緻程式也需要更新,是以就将目前的固件庫上傳上來了esp8266wifi,iic,mqqt,adc固件庫
2 連接配接阿裡雲
這邊主要參考的是 【NodeMCU_LUA系列】NodeMCU連接配接阿裡雲這篇文章
需要修改的地方如下

wifitab={}
wifitab.ssid = "2.4G-603" -- 自己的wifi名
wifitab.pwd = "CX071500" --wifi密碼
wifi.setmode(wifi.STATION)
wifi.sta.config(wifitab)
wifi.sta.connect()
timer1 = tmr.create()
timer2 = tmr.create()
ProductKey = "a1ti9YS1tqQ" --阿裡雲三件值
DeviceName = "esp8266"
DeviceSecret = "kXlF1pZHdAUn1K2ixotJQXBsoy5l5h3y"
RegionId = "cn-shanghai"
ESP8266ClientId = 20200510
SubTopic="/a1ti9YS1tqQ/esp8266/user/get" --需要下發和訂閱的
Pubtopic="/sys/a1ti9YS1tqQ/esp8266/thing/event/property/post"
BrokerAddress = ProductKey..".iot-as-mqtt."..RegionId..".aliyuncs.com"
BrokerPort = 1883
HmacData = "clientId"..ESP8266ClientId.."deviceName"..DeviceName.."productKey"..ProductKey
MQTTClientId = ESP8266ClientId.."|securemode=3,signmethod=hmacsha1|"
MQTTUserName = DeviceName.."&"..ProductKey
MQTTPassword = crypto.toHex(crypto.hmac("sha1",HmacData,DeviceSecret))
function ConnectWifi()
if wifi.sta.getip() == nil then
print("Connecting...")
else
timer1:stop()
print("Connect AP success")
print(wifi.sta.getip())
MQTTClient = mqtt.Client(MQTTClientId, 120, MQTTUserName, MQTTPassword, false)
MQTTClient:connect(BrokerAddress, BrokerPort, 0, function(client)
timer1:stop()
print("MQTT connect success")
MQTTClient:subscribe(SubTopic,0,function(conm)
print("MQTT subscribe success")
MQTTOn()
end)
end,
function(client,reason)
print("MQTT connect fail:"..reason)
end)
end
end
function MQTTOn()
print("MQTT listen...")
MQTTClient:on("message",function(client,topic,data)
print("\n")
print(topic..":")
print(data)
if data == "1" then
MQTTPublish()
end
end)
end
function MQTTPublish()
data = {}
data.temp = 88.8
data.humi = 88.8
ok,json = pcall(sjson.encode, {params=data})
MQTTClient:publish(Pubtopic, json, 0, 0, function(client)
print("Publish weather success")
end)
end
timer1:alarm(500, tmr.ALARM_AUTO, ConnectWifi)