ShineBlink是一款零門檻、零開(kāi)發(fā)環(huán)境、低代碼的萬(wàn)能物聯(lián)網(wǎng)智能硬件開(kāi)發(fā)板
機(jī)智云為開(kāi)發(fā)者提供傻瓜式硬件上云、接App/小程序的能力
結(jié)合 ShineBlink 和機(jī)智云開(kāi)發(fā)者即使不懂嵌入式物聯(lián)網(wǎng)開(kāi)發(fā)、云和App開(kāi)發(fā),也能很快實(shí)現(xiàn)一款包含硬件、云和App的物聯(lián)網(wǎng)智能硬件。
一、本章實(shí)現(xiàn)功能介紹
本章實(shí)現(xiàn)的智能加濕器設(shè)備集成了溫濕度傳感器、加濕器控制單元、以及Wifi傳輸模塊,ShineBlink萬(wàn)能核心板采集溫濕度傳感器數(shù)據(jù),并將它們上傳至機(jī)智云,然后我們就可以在遠(yuǎn)程通過(guò)手機(jī)App或者Web網(wǎng)頁(yè)端來(lái)訪問(wèn)家里的溫濕度環(huán)境數(shù)據(jù),并決定是遠(yuǎn)程人工控制打開(kāi)加濕器,還是讓設(shè)備自動(dòng)根據(jù)傳感器的環(huán)境濕度數(shù)據(jù)來(lái)進(jìn)行加濕。
下圖是接線實(shí)物圖和App監(jiān)測(cè)頁(yè)面:
二、硬件端接線圖
三、材料清單
四、硬件端完整源代碼
--使能USB print打印功能
LIB_UsbConfig("CDC")
--機(jī)智云平臺(tái)為每個(gè)產(chǎn)品類別分配的唯一PK和PS,一定要改成您自己的PK和PS
PK = "849cb1851eeb44e68b4f9be1dc1b424d"
PS = "c5785e4153fb45eb89c054f8b930d619"
--初始化Wifi模塊
LIB_GizWifiConfig(PK,PS,1000,120,"UART0","D5","D10","D8")
--配置D0為普通輸出,控制加濕器的繼電器
LIB_GpioOutputConfig("D0","STANDARD")
LIB_GpioWrite("D0",1)--關(guān)閉加濕器繼電器
--設(shè)置sht3x傳感器占用SCL0和SDA0引腳,并啟動(dòng)傳感器以每秒出10個(gè)數(shù)據(jù)的頻率工作,repeatability="HIGH"時(shí)精度最高
LIB_Sht3xConfig("IIC0","10","HIGH")
Auto = 0 --默認(rèn)手動(dòng)模式
--開(kāi)始大循環(huán)
while(GC(1) == true)
do
LIB_DelayMs(500)
--查詢機(jī)智云是否下發(fā)了寫"Sw1"數(shù)據(jù)點(diǎn)(手動(dòng)/自動(dòng)加濕模式設(shè)置)
flag,recv_data = LIB_RecvFromGizCloud("Sw1")
if flag == 1 then
if recv_data == 1 then -- 云下發(fā)了1
Auto = 1 --開(kāi)啟自動(dòng)模式
else -- 云下發(fā)了0
Auto = 0 --開(kāi)啟手動(dòng)模式
end
end
--查詢機(jī)智云是否下發(fā)了寫"Sw2"數(shù)據(jù)點(diǎn)(手動(dòng)控制加濕器繼電器開(kāi)關(guān))
flag,recv_data = LIB_RecvFromGizCloud("Sw2")
if flag == 1 then
if Auto == 0 then --手動(dòng)模式下,才允許用戶遠(yuǎn)程App控制加濕器
if recv_data == 1 then -- 云下發(fā)了1
LIB_GpioWrite("D0",0)--打開(kāi)繼電器
else -- 云下發(fā)了0
LIB_GpioWrite("D0",1)--關(guān)閉繼電器
end
end
end
--查詢是否讀到溫濕度數(shù)據(jù)
sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult()
if sht3x_flag == 1 then
--打印讀到的溫濕度值,保留2位小數(shù)
print(string.format("temp: %.2f\r\nhumi: %.2f", sht3x_temp, sht3x_humi))
--向機(jī)智云服務(wù)器發(fā)送(溫濕度)短整數(shù)型數(shù)值(舍去小數(shù)部分)
LIB_SendToGizCloud("Rs1", math.floor(sht3x_temp))
LIB_SendToGizCloud("Rs2", math.floor(sht3x_humi))
if Auto == 1 then --自動(dòng)模式下,才允許設(shè)備自動(dòng)根據(jù)濕度來(lái)控制加濕器繼電器
if sht3x_humi < 70.00 then --濕度低于70%了就打開(kāi)加濕器
LIB_GpioWrite("D0",0)--打開(kāi)加濕器繼電器
else+
LIB_GpioWrite("D0",1)--關(guān)閉加濕器繼電器
end
end
end
end
五、機(jī)智云接入和App開(kāi)發(fā)
無(wú)論使用哪種方法實(shí)現(xiàn)APP控制,都必須先定義數(shù)據(jù)點(diǎn)。
本例中我們使用了"Rs1","Rs2"這兩個(gè)數(shù)據(jù)點(diǎn)分別作為溫度、濕度的短整數(shù)型數(shù)據(jù)點(diǎn),作為上傳至機(jī)智云的數(shù)據(jù)通道,記得在機(jī)智云平臺(tái)修改相應(yīng)的數(shù)據(jù)點(diǎn)的名稱。
本例中我們使用了"Sw1","Sw2"這兩個(gè)布爾值型數(shù)據(jù)點(diǎn),一個(gè)作為接收機(jī)智云下發(fā)的手動(dòng)/自動(dòng)模式加濕的數(shù)據(jù)通道,一個(gè)作為遠(yuǎn)程手動(dòng)控制加濕器是否工作的數(shù)據(jù)通道,記得在機(jī)智云平臺(tái)修改相應(yīng)的數(shù)據(jù)點(diǎn)的名稱。
方法一:使用機(jī)智云測(cè)試APP
先在機(jī)智云開(kāi)發(fā)者中心定義好數(shù)據(jù)點(diǎn)
隨后下載機(jī)智云測(cè)試APP
進(jìn)行配網(wǎng)
測(cè)試APP下載地址:
https://download.gizwits.com/zh-cn/p/98/99
配網(wǎng)過(guò)程
http://www.shineblink.com/html/gizwits/9_1_WifiJoin/WifiJoin.html
方法二:使用賽博坦工具零代碼定制版App
在機(jī)智云開(kāi)發(fā)者中心定義好數(shù)據(jù)點(diǎn)后,
創(chuàng)建一個(gè)移動(dòng)應(yīng)用,定義相應(yīng)的頁(yè)面信息
再關(guān)聯(lián)相應(yīng)的智能產(chǎn)品,
即可實(shí)現(xiàn)定制版App訪問(wèn)設(shè)備。
具體實(shí)現(xiàn)過(guò)程
開(kāi)發(fā)好以后的頁(yè)面如下:
-
加濕器
+關(guān)注
關(guān)注
3文章
165瀏覽量
20584
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論