目標(biāo)功能介紹
基于功能強(qiáng)大的 ShineBlink 低代碼物聯(lián)網(wǎng)核心模組和靈活輕巧的 Lua 腳本編程語言實(shí)現(xiàn)如下功能。
1、監(jiān)測和報(bào)警
監(jiān)測圾桶內(nèi)的煙霧并聲光報(bào)警
監(jiān)測圾桶內(nèi)的酒精等有害氣體并聲光報(bào)警
監(jiān)測垃圾桶內(nèi)的溫濕度并通過4G模塊上報(bào)給機(jī)智云
通過激光測距模塊監(jiān)測垃圾桶內(nèi)的剩余空間并通過4G模塊上報(bào)給機(jī)智云
2、感應(yīng)和控制
毫米波雷達(dá)模塊感應(yīng)人體靠經(jīng),并通過舵機(jī)控制垃圾桶蓋開合。
3、4G上云通信
4G通信模組需選擇帶有機(jī)智云 Gagant 固件的 4G 通信模組。
軟件功能框圖
云和App
(1)操作流程
采用零基礎(chǔ)上手開發(fā)的機(jī)智云,即可快速將設(shè)備上云,并可以使用機(jī)智云自動(dòng)生成的 App(安卓&iOS)實(shí)現(xiàn)手機(jī)遠(yuǎn)程訪問設(shè)備的目的。機(jī)智云的開發(fā)流程比較簡單,下面僅介紹大致的步驟,具體操作開發(fā)者可自行注冊(cè)機(jī)智云開發(fā)平臺(tái),按如下步驟操作一遍即可上手。
1、注冊(cè)登錄機(jī)智云開發(fā)者中心
① 創(chuàng)建產(chǎn)品(類目選擇“其他” + “其他”)
② 記錄創(chuàng)建產(chǎn)品的 PK 和 PS,后面會(huì)用到
③ 通信模組選擇“移動(dòng)網(wǎng)絡(luò)”
導(dǎo)入 shineblink.xlsx 數(shù)據(jù)點(diǎn)文件(Excel 文件),并將需要用到的數(shù)據(jù)點(diǎn)的名稱改成你想設(shè)置的名稱(注意:只改名稱其他別改)。
在產(chǎn)品的“控制頁面”中“功能”里你會(huì)看到剛剛導(dǎo)入的所有數(shù)據(jù)點(diǎn)項(xiàng)目,在這里關(guān)閉掉沒用的數(shù)據(jù)點(diǎn),并根據(jù)你的喜好調(diào)整你用到的數(shù)據(jù)點(diǎn)的圖標(biāo)和大小。
2、創(chuàng)建應(yīng)用
①(選擇移動(dòng)應(yīng)用,勾選 "Andorid")
② 在創(chuàng)建的應(yīng)用中關(guān)聯(lián)剛剛創(chuàng)建的產(chǎn)品
在創(chuàng)建的應(yīng)用中的“構(gòu)建應(yīng)用”中開始編譯生成 App,一天只有兩次機(jī)會(huì)請(qǐng)慎重使用,編譯成功后掃碼即可下載 App 安裝包。
手機(jī)安裝好 App 后,掃碼設(shè)備的二維碼即可使用了(設(shè)備二維碼生成在后面會(huì)講)。
(2)二維碼生成
① 在機(jī)智云官網(wǎng)下載 Gagant_Debuger.exe 軟件安裝在電腦上。
② 在軟件的“工具”欄目中找到“設(shè)備二維碼”。
在Product Key中填入PK,在 MAC/IMEI 中填入機(jī)智云4G模組外殼上面的IMEI號(hào)。
選擇國內(nèi)服務(wù)器,最后點(diǎn)擊即可生成設(shè)備二維碼。
(3)App截圖
硬件實(shí)物圖
源代碼
--機(jī)智云平臺(tái)為每個(gè)產(chǎn)品類別分配的唯一PK和PS,一定要改成您自己的PK和PS PK = "03634fa8920e4b5ab1c5f3ffdffefce3" PS = "46253f7e305c4d3e80605263f49f9df4" -----------全局變量定義------------- WaitPeriodCntMs = 0 FireVoltage = 0.00 --火焰傳感器電壓值,火焰越強(qiáng),傳感器輸出的電壓值越低 AchVoltage = 0.00 --酒精傳感器電壓值,酒精濃度越高,傳感器輸出的電壓值越大
--定義10毫秒定時(shí)器的回調(diào)函數(shù),函數(shù)名字必須是LIB_10msTimerCallback function LIB_10msTimerCallback() WaitPeriodCntMs = WaitPeriodCntMs + 10
end
--開始聲光報(bào)警 function AlarmStart() LIB_LedStartWork("LED2") --LED2開始閃爍 LIB_GpioWrite("D7",1) --蜂鳴器開始響 end
--停止聲光報(bào)警 function AlarmStop() LIB_LedStopWork("LED2") --LED2停止閃爍 LIB_GpioWrite("D7",0) --蜂鳴器停止響 end
function Init() --配置D8端口控制開發(fā)板上的LED1燈,用來指示4G模塊是否連上機(jī)智云 LIB_GpioOutputConfig("D8","STANDARD") --配置D7端口控制蜂鳴器,用來作為報(bào)警聲音指示功能 LIB_GpioOutputConfig("D7","STANDARD") --設(shè)置"LED2"(占用D9端口)以0.1秒頻率閃爍,用來作為報(bào)警燈閃爍指示功能 LIB_LedConfig("LED2","D9","L",100,100) --停止報(bào)警 AlarmStop() --配置D4口為普通輸入,連接紅外人體感應(yīng)傳感器的OUT引腳 LIB_GpioInputConfig("D4","NOPULL") --配置D0為舵機(jī)PWM端口,PWM周期20ms,高電平為有效極性 LIB_PwmConfig1(20000,1) LIB_PwmUpdate1(500) --舵機(jī)轉(zhuǎn)到0度關(guān)閉垃圾桶蓋 --配置AD電壓采集功能,用來采集煙霧傳感器MQ-2(A3)和MQ-3酒精傳感器(A0)的電壓值,測量范圍0-3.60v LIB_ADConfig(1,300000) --初始化4G模塊 LIB_Giz4GConfig(PK,PS,6000,120,"UART0","D5","HIGH","D6","HIGH") --初始化SHT30溫濕度傳感器占用IIC1接口的SCL1和SDA1引腳 LIB_Sht3xConfig("IIC1","10","HIGH") --配置VL53L0X激光傳感器占用IIC0接口的SCL0和SDA0引腳,測垃圾桶空間 --高精度模式下,精度在3%以內(nèi),測量范圍在1.2米以內(nèi) LIB_VL53L0XConfig("IIC0", "HighAccuracy") --使能系統(tǒng)10毫秒定時(shí)器開始工作 LIB_10msTimerConfig("ENABLE") end
--初始化硬件 Init() --開始大循環(huán) while(GC(1) == true) do--讀取人體紅外感應(yīng),感應(yīng)到人體后自動(dòng)控制舵機(jī)打開垃圾桶 gpio_value = LIB_GpioRead("D4") if gpio_value == 1 then --感應(yīng)到人體 LIB_PwmUpdate1(1500) --舵機(jī)轉(zhuǎn)到90度打開垃圾桶蓋 else LIB_PwmUpdate1(500) --舵機(jī)轉(zhuǎn)到0度關(guān)閉垃圾桶蓋 end
--查詢SHT30溫濕度傳感器是否出數(shù) sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult() --如果傳感器有新的溫濕度數(shù)據(jù)產(chǎn)生 if sht3x_flag == 1 then--TF卡LOG.TXT和PC串口終端打印 print(string.format("Temp: %.1f\r\nHumi: %.1f", sht3x_temp, sht3x_humi)) --4G發(fā)送溫度和濕度 LIB_SendToGizCloud("Rf1", sht3x_temp) LIB_SendToGizCloud("Rf2", sht3x_humi) end
--測量酒精傳感器MQ-3輸出的電壓值 A0_full_flag, A0_buf = LIB_ADCheckBufFull("A0") if A0_full_flag == 1 then voltage = A0_buf[1]*3.6/4096.0 AchVoltage = voltage --打印輸出A0通道的AD采樣電壓值 print(string.format("Voltage=%.2fv", voltage)) --4G發(fā)送酒精傳感器電壓值(酒精濃度越高,傳感器輸出的電壓值越大) LIB_SendToGizCloud("Rf3", voltage) end
--測量煙霧傳感器MQ-2輸出的電壓值 A3_full_flag, A3_buf = LIB_ADCheckBufFull("A3") if A3_full_flag == 1 then voltage = A3_buf[1]*3.6/4096.0 FireVoltage = voltage --打印輸出A0通道的AD采樣電壓值 print(string.format("Voltage=%.2fv", voltage)) --4G發(fā)送煙霧傳感器電壓值(煙霧越強(qiáng),傳感器輸出的電壓值越大) LIB_SendToGizCloud("Rf4", voltage) end
--查詢激光測距傳感器是否出數(shù) flag, distance = LIB_VL53L0XGetDistance() if flag == 1 then--打印測量距離(mm) print(string.format("distance:%dmm", distance)) --4G發(fā)送距離值(垃圾桶空間) LIB_SendToGizCloud("RL8", distance) end
--報(bào)警判斷 --酒精傳感器電壓高于 1.02v 或者煙霧傳感器電壓高于 1.5v,聲光報(bào)警 if AchVoltage > 1.02 or FireVoltage > 1.5 then AlarmStart() else AlarmStop() end
--讀取機(jī)智云4G模組狀態(tài),LED1燈亮表示連上機(jī)智云 State = LIB_GetGizWifiState() if State == 6 then LIB_GpioWrite("D8",0)--LED1燈亮 else LIB_GpioWrite("D8",1)--LED1燈滅 endend
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2900文章
44062瀏覽量
370223 -
代碼
+關(guān)注
關(guān)注
30文章
4722瀏覽量
68231 -
機(jī)智云
+關(guān)注
關(guān)注
2文章
573瀏覽量
26361 -
智能垃圾桶
+關(guān)注
關(guān)注
2文章
52瀏覽量
10626
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論