摘要:?AliOS Things+阿里云 10分鐘搭建智慧農業解決方案 1.1 樣品介紹 在工業、農業物聯網布線場景中以MODBUS類型為主,樣品提供MODBUS類型傳感器硬件和軟件快速接入方案,并將傳感器數據上傳到阿里云物聯網平臺,在云端table store數據庫存儲,在datav數據大屏上可視化展示。
AliOS Things+阿里云 10分鐘搭建智慧農業解決方案
1.1 樣品介紹
在工業、農業物聯網布線場景中以MODBUS類型為主,樣品提供MODBUS類型傳感器硬件和軟件快速接入方案,并將傳感器數據上傳到阿里云物聯網平臺,在云端table store數據庫存儲,在datav數據大屏上可視化展示。
樣品主要特性
本地支持MODBUS工業控制協議的傳感器,有葉面濕度、葉面濕度、土壤含水率、土壤溫度、土壤酸堿度、光照、二氧化碳含量、大氣壓力、PM2.5、PM10、風向、風速、降水量等。
AliOS Things物聯網操作系統
阿里云物聯網平臺
云端table Store數據庫數據存儲
datav數據大屏實時數據和歷史數據可視化展示
應用場景
氣象監測
農業大棚監測
MODBUS傳感器數據經過下面數據流
MODBUS傳感器->AliOS Things(uData)->阿里云物聯網平平臺->OTS規則引擎->TABLESTORE->DATAV數據大屏
1.2 樣品展示
數據大屏地址?
https://datav.aliyun.com/share/b2eed2f4627cf281022bbb4f23c2b568
2 設備端側搭建
2.1 環境準備
Developerkit開發板一套
ttl轉485
MODBUS傳感器
485集線器(非必需)
2.2 設備連接
developerkit開發板上TTL串口RX,TX,GND(白線,灰線,黑線)分別連接轉換板的RX,TX,GND。
轉換板上485 A,B兩個端口連接到485集線器A,B端子上(紅線,橙線)
傳感器的485 A,B端口(黃線和綠線)連接到485集線器上,電源和地(紅線和黑線)接到電源接口上。
將developerkit、ttl轉485轉換板USB供電,傳感器和485集線器12V電源供電,至此硬件連線完畢。
2.3 uData傳感器框架
AliOS Things提供一套傳感器uData框架,將MODBUS傳感器抽象驅動節點,通過vfs接口open,read操作。
AliOS Things還提供MODBUS協議庫,MODBUS傳感器驅動調用MODBUS庫接口讀取傳感器數據。
2.4 代碼下載和修改
代碼托管在github上地址:?https://github.com/alibabayf/AliOS_modbus
分支weather
git?clone?https://github.com/alibabayf/AliOS_modbus git?checkout?weather
代碼編譯
aos?make?uDataapp@developerkit
2.4.1 傳感器驅動
MODBUS傳感器驅動添加通過下面配置表修改
device/sensor/drv/sensor_drv_conf.h
const?modbus_sensor_t?modbus_sensors[]?=?{ {?"KunLunHaiAn",?"JHFS-W1",?"wind?speed",?dev_windspeed_path,?TAG_DEV_WINDSPD, ??SENSOR_OPEN,?0X30,?0x002A,?1,?0,?50?}, {?"KunLunHaiAn",?"JHFX-W1",?"wind?direction",?dev_winddirection_path,?TAG_DEV_WINDDIR, ??SENSOR_OPEN,?0X31,?0x002A,?1,?0,?50?}, {?"KunLunHaiAn",?"JHYL-W1",?"current?precipitation",?dev_rainfall_path,?TAG_DEV_RAIN, ??SENSOR_OPEN,?0X32,?0x0002,?1,?0,?50?}, {?"KunLunHaiAn",?"JHYL-W1",?"today?precipitation",?dev_todayrainfall_path,?TAG_DEV_TODAYRAIN, ??SENSOR_OPEN,?0X32,?0x0001,?1,?0,?50?}, };
modbus_sensor_t 中分別指廠商名,型號,名稱,設備節點路徑,傳感器類型,驅動是否支持,從設備地址,寄存器地址,寄存器數量,是否數據反轉,讀數據超時時間。
大部分參數已經配置好了,需要開發者修改的是用戶自己設置的傳感器從設備地址和驅動是否支持。本例中以JHFS-W1、JHFX-W1、JHYL-W1這三款傳感器為例,可以獲取到風速、風向、總降水、當日降水量等數據。
2.4.2 uData service注冊
在文件framework/uData/service/service_process.c中注冊四類傳感器服務
case?UDATA_SERVICE_WINDSPD: ret?=?udata_std_service_register(type);break;case?UDATA_SERVICE_WINDDIR: ret?=?udata_std_service_register(type);break;case?UDATA_SERVICE_RAIN: ret?=?udata_std_service_register(type);break;case?UDATA_SERVICE_TODAYRAIN: ret?=?udata_std_service_register(type);break;
2.4.3 四元組修改
修改framework/protocol/linkkit/iotkit/sdk-encap/imports/iot_import_product.h中四元組信息,為云端創建設備后獲得
#define?PRODUCT_KEY?"a1N9KL6USIp"#define?PRODUCT_SECRET??"Voaf7vWI0Ioki4k3GSNP5QeEr8zeJinG"#define?DEVICE_NAME?"shanghaiT3"#define?DEVICE_SECRET???"Voaf7vWI0Ioki4k3GSNP5QeEr8zeJinG"
2.4.4 uDataapp-example
文件example/uDataapp/uData-example.c
訂閱四類傳感器數據
?ret?=?uData_subscribe(UDATA_SERVICE_WINDSPD);?ret?=?uData_subscribe(UDATA_SERVICE_WINDDIR);?ret?=?uData_subscribe(UDATA_SERVICE_RAIN);?ret?=?uData_subscribe(UDATA_SERVICE_TODAYRAIN);
example中拿到傳感器數據會按照下面json格式發送給云端。
{"WINDSPD":xxx,"WINDDIR":xxx,"RAIN":xxx,"TODAYRAIN":xxx}
3 云端配置
3.1 創建產品
阿里云物聯網平臺創建產品
https://cn.aliyun.com/product/iot?spm=5176.cniot.loT.1.40721ba6VeAQwS
在創建的產品中定義新Topic類
3.2 創建設備
生成的三元組信息需要和設備端一致。
3.3 創建規則引擎
3.4 編寫規則引擎SQL語句
用于解析topic收到的json payload。
3.5 創建Table Store數據庫實例
https://cn.aliyun.com/product/ots?spm=5176.cniot.cloudEssentials.78.19b81ba6dHx6op
3.6 創建Table Store數據表
設置time為主鍵,為字符串
3.7 編寫規則轉發數據目的地
> 實例、數據表、主鍵和 3.5和3.6中創建的實例、數據表、主鍵對應。
3.8 datav數據大屏添加數據
阿里云數據大屏地址
https://data.aliyun.com/visual/datav?spm=5176.7968328.dataTechnology.6.69631232y6lNwp
3.9 創建可視化大屏
左側提供一些模板供參考
3.10 datav獲取數據實例
創建一個儀表盤組件
以風向數據為例,用getRange操作方式指定“direction”從后往前查找,“limit”:1 查找最新的一個數據。將WINDDIR字段值給value
至此就可以實現風向數據實時更新。
本文為云棲社區原創內容,未經允許不得轉載。
評論
查看更多