十分钟开发物联网:智慧农业大棚环境监测(4G版)
农业大棚环境监测设备集成了大棚中一些关键指标的测量传感器(包含:二氧化碳、光照强度、温度、湿度、紫外线),ShineBlink万能核心板采集这些传感器数据,并将它们上传至机智云;然后我们就可以在远程通过手机App或者Web网页端来访问大棚中的环境数据,同时还可以通过手机、计算机等信息终端向管理者推送实时监测信息、报警信息,实现现场环境的信息化、智能化远程管理。
视频教程及实物展示
视频演示教程:
【十分钟开发物联网】 -- 农业大棚环境监测设备的实现(CO2+光照+温湿度+紫外线)
接线实物图和App监测页面:
硬件端接线图
材料清单
名称 |
推荐购买源 |
资料下载 |
---|---|---|
通用版机智云 App |
免费 |
登录_机智云 |
ShineBlink 万能物联网开发板 |
淘宝搜索“机智云”或“ShineBlink”店铺有售 |
shineblink.com |
带机智云GAgent固件的ML302 4G模块 |
淘宝搜索“机智云”或“ShineBlink”店铺有售 |
gizwits.com |
温湿度、紫外线、光照强度传感器模块 |
淘宝搜索“ShineBlink”店铺有售,或者任意其他店铺(功能相似即可) |
shineblink.com |
黑色底板 |
该底板只是为了省掉接杜邦线,让外观好看一些,不是必需品,开发者如果没有可以用杜邦线来替代。如果仍想获取该底板,可通过右边提供的PCB工程资料自己打样PCB制作即可。 |
分享_360安全云盘 |
硬件端完整源码
--定义函数:将传感器输出电压(单位:mv)转换成紫外线指数indexfunction GetUvIndex(v)if v < 50.0 thenindex = 0elseif v < 227.0 thenindex = 1;elseif v < 318.0 thenindex = 2;elseif v < 408.0 thenindex = 3;elseif v < 503.0 thenindex = 4;elseif v < 606.0 thenindex = 5;elseif v < 696.0 thenindex = 6;elseif v < 795.0 thenindex = 7;elseif v < 881.0 thenindex = 8;elseif v < 976.0 thenindex = 9;elseif v < 1079.0 thenindex = 10;elseindex = 11endreturn index
end
--使能USB print输出打印
LIB_UsbConfig("CDC")
--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS
PK = "e38ca091f2394517bbe286ac7d1ce284"
PS = "a4524a44b93f498c89f67086c19b3d81"
--初始化4G模块
LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")
--配置A0-A3这四个电压采集通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10ms
LIB_ADConfig(50,10000)
--设置Z19C甲醛传感器占用TX1和RX1引脚,并启动传感器,关闭自动校准("AUTO_CALI_DIS")
LIB_Z19CConfig("UART1","AUTO_CALI_DIS")
--设置sht3x传感器占用SCL0和SDA0引脚,并启动传感器以每秒出10个数据的频率工作,repeatability="HIGH"时精度最高
LIB_Sht3xConfig("IIC0","10","HIGH")
--设置BH1750光照强度传感器占用SCL1和SDA1引脚,并启动传感器以每秒输出5组数据的频率工作
LIB_BH1750Config("IIC1")
--开始大循环
while(GC(1) == true)
do
LIB_DelayMs(50)--查询是否读到温湿度数据
sht3x_flag,sht3x_temp,sht3x_humi = LIB_Sht3xGetResult()if sht3x_flag == 1 then--打印读到的温湿度值,保留2位小数print(string.format("temp: %.2f\r\nhumi: %.2f", sht3x_temp, sht3x_humi))
--向机智云服务器发送(温湿度)短整数型数值(舍去小数部分)LIB_SendToGizCloud("Rs1", math.floor(sht3x_temp))LIB_SendToGizCloud("Rs2", math.floor(sht3x_humi))end
--查询光照强度传感器是否出数flag, illumination = LIB_BH1750GetResult()if flag == 1 then--光照强度值去掉小数部分,单位:勒克斯(Lx)print(string.format("illumination: %.0f (Lx)", illumination))
--向机智云服务器发送短整数型光照强度数值(舍去小数部分),单位:LxLIB_SendToGizCloud("Rs4", math.floor(illumination))end
--查询是否读到CO2传感器值flag,co2_val = LIB_Z19CGetCO2()if flag == 1 then
--打印读到的co2值print(string.format("CO2:%d PPM", co2_val))
--向机智云服务器发送(co2)整数型数值,短整数型LIB_SendToGizCloud("Rs5", co2_val)end
--查询是否读到A1端口的电压采集值(紫外线)A1_full_flag, A1_tab = LIB_ADCheckBufFull("A1")--每当A1通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值--由LIB_ADConfig(50,10000)可以算出,此处大概是50X10000us=0.5秒执行一次if A1_full_flag == 1 thenSUM = 0for i = 1, #A1_tab do --此处#A1_tab的值是50,表示A1_tab表内的元素个数SUM = SUM + A1_tab[i]endAVER = SUM / #A1_tab --计算平均采样值--将A0通道的AD值转换成实际电压打印出来vol_mv = AVER*3600/4096.0--打印出传感器输出的电压值,保留小数点后两位,单位mVprint(string.format("ultraviolet voltage=%.2fmV\r\n", vol_mv))
uv_index = GetUvIndex(vol_mv)--将电压转换成紫外等级指数
--打印紫外线等级,0~11
print(string.format("ultraviolet level=%d\r\n", uv_index))
--向机智云服务器发送紫外线等级,短整数型LIB_SendToGizCloud("Rs3", uv_index)end
end
上面代码中出现的"LIB_"开头的库函数的详细介绍可以在shineblink.com网站上的API文档中查询。
机智云接入和App开发(三个选择)
►选择一:机智云+通用版APP访问设备(难度最低)
通过《4G设备接入机智云教程》我们可以很快掌握机智云的接入流程,并使用现成的通用版机智云App即可很快的实现手机App远程访问我们的开发板。
本例中我们使用了"Rs1","Rs2","Rs3","Rs4","Rs5"这五个数据点分别作为温度,湿度,紫外线等级,光照强度,CO2这五个传感器短整型值上传数据通道,记得在机智云平台修改相应的数据点的名称。
► 选择二:机智云+零代码定制版App访问设备(难度较低)
在选择二之前,必须完成上面选择一的工作,然后参考《赛博坦零代码App开发(4G版)》教程实现定制版App访问设备。
开发好以后的页面如下:
► 选择三:定制化开发APP或微信小程序(难度较高)
如果有一定开发能力,开发者可以考虑在机智云免费提供的开源代码上做一定的定制开发形成自己的App。
如果开发者希望开发一个专属的App,机智云也会提供代码开源的安卓和IOS SDK框架,帮助开发者快速完成App开发,开发者仅需关注App的UI和UE设计即可,而相对复杂的协议与错误处理等事项可忽略。关于开源SDK的介绍和获取请进入docs.gizwits.com了解更多内容。
如果开发者希望开发一个专属的微信小程序应用, 可以进入docs.gizwits.com了解相关开发教程。
十分钟开发物联网:智慧农业大棚环境监测(4G版)相关推荐
- 十分钟开发物联网:智能加湿器(Wifi版)
智能加湿器设备集成了温湿度传感器.加湿器控制单元.以及Wifi传输模块,ShineBlink万能核心板采集温湿度传感器数据,并将它们上传至机智云,然后我们就可以在远程通过手机App或者Web网页端来访 ...
- 十分钟开发物联网:智能气象站(4G版)
本文实现的气象站集成了各种常用的气象测量传感器(包含:温度.湿度.气压.紫外线.PM2.5.风速.雨水感应),ShineBlink万能核心板采集这些传感器数据,并将它们上传至机智云,然后我们就可以在远 ...
- 十分钟开发物联网:汽车防盗GPS追踪(4G版)
追踪汽车的GPS定位信息以及获取汽车当前运动的三轴加速度值,通过GPS定位信息我们可以判断汽车当前的位置,通过三轴加速度值我们可以判断当前汽车的运动状态(比如是否在运动中或者停止中). 视频教程及实物 ...
- 十分钟开发物联网:烟雾感应监测(Wifi版)
智能烟感应监测实现对烟雾的实时监测,并将监测数据通过Wifi上传至机智云,当烟雾量大到一定程度时,同时会向机智云发送一个报警信号.用户也可以用App远程查看本地的烟雾传感数据以及报警状态. 视频教程及 ...
- php ios表情包,十分钟开发一款 iOS 表情包 App
十分钟开发一款 iOS 表情包 App 在最近更新的 iOS 10 系统中,苹果开放了 iMessage Stickers 的开发,通俗的说法就是我们现在可以为 iMessage 开发表情包了. 表情 ...
- 十分钟开发一款应用,这15个国产低代码开发平台太秀了!
"低代码开发"最早可追溯到20世纪90年代至21世纪初的编程语言和工具(百度百科).阿里云智能总裁张建锋在钉钉6.0发布会上也表示,"低代码开发",将成为新一代 ...
- 十分钟了解物联网主流通信协议
编者荐语: 以下文章来源于华为云IoT ,作者我是卤蛋 这个文章来自网络,原文链接:https://www.cnblogs.com/hwiot/p/11944839.html,看了全文,觉得不错,因此 ...
- 十分钟开发一个调用Activity的PhoneGap插件
在HybridApp开发中,非常多业务我们是没有办法通过HTML5+js实现的,比方调用第三方的包括Activity的jar包,一些必须使用原生代码才干实现的功能,比方复杂的UI的效果,调用通讯相关的 ...
- 十分钟开发出神经网络五子棋
本文讲述了使用确定性神经网络SDK开发神经网络五子棋的过程,通过控制台项目.MFC对话框项目分别展示了详细的操作和代码,并附带了一个可用于自主创业的实用案例.另外,此处所述的五子棋可以轻易地扩展成其它 ...
最新文章
- 在Ubuntu 14.04 64bit上使用JBL Charge2+无线蓝牙音箱听歌指南
- 分布式存储的集群可靠性计算(ceph)
- 【研究】Metasploit自动攻击模块
- strtotime php,php strtotime函数怎么用
- 高效能人士的七个习惯_有史以来最具影响力管理类书籍 高效能人士的七个习惯 让你成为一名成功高效的人士...
- CSDN APP又出错了,看不到博文
- linux计划任务踩坑
- php 爬虫 执行js,php爬虫执行js,php执行js
- STM8 捕获模式HS0038 红外遥控解码
- 2018数字资产投资峰会:金融科技区块链支持可持续发展-北京站
- glassfish插件_Maven嵌入式Glassfish插件-未启动
- OpenCV(3.4.1)错误 Assertion failed (chunk.m_size 0xFFFF)
- 48 java常用类_10 _Calendar类
- 云原生小课堂|Envoy请求流程源码解析(三):请求解析
- p5.js动态图形临摹以及拓展
- 对于LSB的理解(位的LSB、模数转换的LSB)
- [CTFSHOW]命令执行
- 使用注解作为AOP的切入点(@Pointcut)
- Ubuntu挂载nfs
- 相位型LCOS空间光调制器介绍
热门文章
- 龙蜥开发者说:海纳百川,有容乃大,我在龙蜥社区的升级之旅 | 第 11 期
- 力扣33搜索旋转排序数组
- Docker(四)----Docker-Compose 详解
- ChatGPT 自动化办公系列教程 - 提问篇:协助制作 PPT
- 基于java医院在线预约挂号管理系统
- Debian9 安装迅雷、百度网盘、微信、QQ、Tim等常用软件
- 什么是motorola序,Intel序?
- 文档声明Doctype和Doctype html区别 文档类型定义(DTD)
- ODPS系列(1):初识ODPS
- 住宅连接照明的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告