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

至此就可以实现风向数据实时更新。

AliOS Things+阿里云 10分钟搭建智慧农业解决方案相关推荐

  1. 阿里云ECS服务器搭建wordpress个人博客网站【详细图文教程】

    阿里云ECS服务器搭建wordpress个人博客网站[小白专用的图文教程] 在阿里云上搭建使用个人博客主要分为以下几个步骤: 1.购买阿里云ECS主机 2.购买域名 3.申请备案 4.环境配置 5.安 ...

  2. 阿里云快速网站搭建详解

    一.网站建站流程 主要步骤: 要有一个域名 购买主机 要有数据库,一般购买主机赠送 解析域名 下载网站程序(演示用的WordPress) 上传程序 安装程序(配置数据库.网站基本信息.管理员信息等) ...

  3. 10分钟搭建服务器集群——Windows7系统中nginx与IIS服务器搭建集群实现负载均衡...

    10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 原文:10分钟搭建服务器集群--Windows7系统中nginx与IIS服务器搭建集群实现负载均衡 分布式 ...

  4. 阿里云轻量级服务器搭建博客网站教程(入门级别搭建)

    阿里云轻量级服务器搭建博客网站教程 先给大家看一下最后的成果:zhangshuaiqi.xyz 使用宝塔面板部署ssl证书,伪静态设置,一键部署wordpress 服务器类型:阿里云轻量级服务器2核4 ...

  5. 使用阿里云OSS服务搭建私人图床

    阿里云OSS服务搭建私人图床 由于Gitee搭建图床的不确定性,笔者开始使用云服务提供商的对象存储服务搭建私人图床.相比于免费的Gitee,一年平均10元的花费也不算贵,并且得到了更为优秀的体验,有兴 ...

  6. 手把手教你在阿里云ECS上搭建惊艳的博客

    手把手教你在阿里云ECS上搭建惊艳的博客 相信大多数人都有自己搭建博客网站的想法,本文就手把手一步一步的进行,最终结果类似如下样式: 网站软件的选择 软件选择成熟而免费的WordPress,WordP ...

  7. 使用和风天气 API 10分钟搭建天气预报数据看板

    本文首发:<使用和风天气 API 10分钟搭建天气预报数据看板)> 使用和风天气 API 10分钟搭建天气预报数据看板 第 1 步:注册和风天气 API 及卡拉云 (1)注册和风天气 AP ...

  8. 阿里云环境下搭建HadoopHA集群

    阿里云环境下搭建HadoopHA集群 1. HadoopHA介绍 1.1 hadoop高可用集群的简介 ​ hadoop是一个海量数据存储和计算的平台,能够存储PB级以上的数据,并且利用MapRedu ...

  9. 华为云 和 阿里云 跨服务器搭建Hadoop集群

    目录 华为云 和 阿里云 跨服务器搭建Hadoop集群 说明 期间遇到的问题 CentOS6 7 8更换阿里yum源 修改服务器名称 安装JDK 安装Hadoop 编写集群分发脚本 xsync scp ...

最新文章

  1. Ubuntu18.04 编译 ncnn
  2. JavaScript类的问题
  3. Visual Studio Code 1.0正式发布
  4. Snake Ladders bfs
  5. 零基础入门语义分割-Task5 模型训练与验证
  6. 2018-2019互联网大厂算法/深度学习/NLP面试笔记
  7. appium问题解决
  8. Web前端助手-功能丰富的Chrome插件
  9. matlab 拟合平方根,matlab拟合工具箱cftool及其统计指标公式计算
  10. 微信小程序实现客服默认自动回复功能
  11. open(r“地址“) r的作用,防止字符转义
  12. html5 运动轨迹绘画,html5 canvas行星运动轨迹动画特效
  13. Android开发快速入门及导出apk
  14. https 被redirect成了http
  15. 认证鉴权对于 API 网关的重要性
  16. 指针真得比数组快吗?函数调用会拖慢程序多少?++i 比i = i+1 快吗?
  17. Linux进程通信——匿名管道、命名管道、管道的特性和共享内存
  18. MySQL和Oracle字符串截取函数用法总结(比较)
  19. 不知道怎么开发VR游戏?Unity5.3官方VR教程重磅登场(转)
  20. 精简5800三维程序]

热门文章

  1. 用Python实现自动发消息,自定义内容,太省事了!
  2. 牛客小白月赛5 G 异或(xor) 【找规律】
  3. 显示分辨率和图像分辨率_如何用任何图像制作高分辨率Windows 7图标
  4. 算一算N阶乘的尾随零个数
  5. 五笔和拼音输入法开发
  6. erp5开源制造业erp外协加工设置
  7. 手机充电器的简介与质量管理(连载五)
  8. 12.写一个简单的发布器与订阅器(C++)
  9. Spring学习阶段性总结
  10. Android应用市场发布