0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

实操案例:基于Shineblink和机智云的4G气象站

机智云 2022-08-28 16:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

ShineBlink 是一款零门槛、零开发环境、低代码的万能物联网智能硬件开发板

机智云开发者提供傻瓜式硬件上云、接App/小程序的能力

结合 ShineBlink 和 机智云 开发者即使不懂嵌入式物联网开发、云和App开发,也能很快实现一款包含硬件、云和App的物联网智能硬件。

一、本章实现功能介绍

Shinelink开发板通过采集PM2.5传感器、紫外线传感器、风速传感器、雨滴感应传感器、SHT温湿度传感器、气压传感器采集数据,数据通过ML302(4G通信模块)将数据上传至机智云,之后我们就可以在远程通过手机App或者Web网页端来访问这个气象站测量的所有传感器数据。

下图是接线实物图和App监测页面:

a0ce68c2-256a-11ed-9ade-dac502259ad0.png

a10e64ae-256a-11ed-9ade-dac502259ad0.png

a0b12e88-256a-11ed-9ade-dac502259ad0.png二、硬件端接线图

a142e738-256a-11ed-9ade-dac502259ad0.png

注意:上面的电路传感器比较多,要求给 ShineBlink 开发板提供5V的电源带载能力至少大于1A。

a0b12e88-256a-11ed-9ade-dac502259ad0.png三、材料清单

a179c19a-256a-11ed-9ade-dac502259ad0.png

a0b12e88-256a-11ed-9ade-dac502259ad0.png四、硬件端完整源代码

--定义函数:将传感器输出电压(单位:mv)转换成紫外线指数index
function GetUvIndex(v)
  if v < 50.0 then
    index = 0
  elseif v < 227.0 then
    index = 1;
  elseif v < 318.0 then
    index = 2;
  elseif v < 408.0 then
    index = 3;
  elseif v < 503.0 then
    index = 4;
  elseif v < 606.0 then
    index = 5;
  elseif v < 696.0 then
    index = 6;
  elseif v < 795.0 then
    index = 7;
  elseif v < 881.0 then
    index = 8;
  elseif v < 976.0 then
    index = 9;
  elseif v < 1079.0 then
    index = 10;
  else
    index = 11
  end
  return index
end
--使能USB print输出打印
LIB_UsbConfig("CDC")
--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PS
PK = "7ebaec64beaf4e389a2957f38711fcda"
PS = "b4a4ef17dbf74463b0f1b3c525a8b8de"
--初始化4G模块
LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")
--配置A0-A3这四个电压采集通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10ms
LIB_ADConfig(50,10000)
--设置PM2.5传感器占用TX1和RX1引脚
LIB_ZPH04Config("UART1")
--设置sht3x传感器占用SCL0和SDA0引脚,并启动传感器以每秒出10个数据的频率工作,repeatability="HIGH"时精度最高
LIB_Sht3xConfig("IIC0","10","HIGH")
--设置BMP280气压计传感器占用SCL1和SDA1引脚,并启动传感器以每秒输出26.32组数据的频率工作
LIB_BMP280Config("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, temprature, pressure = LIB_BMP280GetResult()
  if flag == 1 then --如果传感器此时有数据
    --温度值保留两位小数,气压值去掉小数部分
    print(string.format("temprature: %.2f pressure: %.0f Pa", temprature, pressure))
    --向机智云服务器发送长整数型气压数值,单位:Pa
    LIB_SendToGizCloud("RL7", math.floor(pressure))
  end
  --查询是否读到传感器PM2.5值
  flag, pm25_val = LIB_ZPH04GetPM25()
  if flag == 1 then
    --打印读到的PM2.5值,保留1位小数,单位:ug/m^3
    print(string.format("PM2.5:%.1f", pm25_val))
    --向机智云服务器发送(PM2.5)浮点型小数值(范围应是-1000.0~5000.0)
    LIB_SendToGizCloud("Rf1", pm25_val)
  end
  --查询是否读到A0端口的电压采集值(风速)
  A0_full_flag, A0_tab = LIB_ADCheckBufFull("A0")
  --每当A0通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
  --由LIB_ADConfig(50,10000)可以算出,此处大概是50X10000us=0.5秒执行一次
  if A0_full_flag == 1 then
    SUM = 0
    for i = 1, #A0_tab do --此处#A0_tab的值是50,表示A0_tab表内的元素个数
      SUM = SUM + A0_tab[i]
    end
    AVER = SUM / #A0_tab --计算平均采样值
    --将A0通道的AD值转换成实际电压打印出来
    out_voltage = AVER*3.6/4096.0
    --打印出传感器输出的电压值,保留小数点后两位,单位V
    print(string.format("wind voltage=%.2fV\r\n", out_voltage))
    --向机智云服务器发送(风速)浮点型小数值(范围应是-1000.0~5000.0)
    LIB_SendToGizCloud("Rf2", out_voltage)
  end
  --查询是否读到A1端口的电压采集值(紫外线)
  A1_full_flag, A1_tab = LIB_ADCheckBufFull("A1")
  --每当A1通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
  --由LIB_ADConfig(50,10000)可以算出,此处大概是50X10000us=0.5秒执行一次
  if A1_full_flag == 1 then
    SUM = 0
    for i = 1, #A1_tab do --此处#A1_tab的值是50,表示A1_tab表内的元素个数
      SUM = SUM + A1_tab[i]
    end
    AVER = SUM / #A1_tab --计算平均采样值
    --将A0通道的AD值转换成实际电压打印出来
    vol_mv = AVER*3600/4096.0
    --打印出传感器输出的电压值,保留小数点后两位,单位mV
    print(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
  --查询是否读到A2端口的电压采集值(雨滴感应)
  A2_full_flag, A2_tab = LIB_ADCheckBufFull("A2")
  --每当A2通道的缓存满以后,计算缓存内的50个元素的平均值,并换算成电压值
  --由LIB_ADConfig(50,10000)可以算出,此处大概是50X10000us=0.5秒执行一次
  if A2_full_flag == 1 then
    SUM = 0
    for i = 1, #A2_tab do --此处#A2_tab的值是50,表示A2_tab表内的元素个数
      SUM = SUM + A2_tab[i]
    end
    AVER = SUM / #A2_tab --计算平均采样值
    --将A0通道的AD值转换成实际电压打印出来
    vol = AVER*3.6/4096.0
    --打印雨滴传感器输出的电压值,保留小数点后两位,单位V
    print(string.format("rain voltage=%.2fV\r\n", vol))
    --向机智云服务器发送(雨滴值)浮点型小数值(范围应是-100.00~500.00)
    LIB_SendToGizCloud("Rf3", vol)
  end
end

a0b12e88-256a-11ed-9ade-dac502259ad0.png五、机智云接入和App开发

无论使用哪种方法实现APP控制,都必须先定义数据点。

本例中我们使用了"Rf1","Rf2","Rf3","Rs1","Rs2","Rs3","RL7"这七个数据点分别作为PM2.5,风速,雨滴,温度,湿度,紫外线等级,大气压强这七个传感器值上传数据通道,记得在机智云平台修改相应的数据点的名称。

a1b8dccc-256a-11ed-9ade-dac502259ad0.png

方法一:使用机智云测试APP

先在机智云开发者中心定义好数据点

随后下载机智云测试APP

使用机智云测试APP扫描4G模块二维码

即可实现APP控制设备了。

具体过程可参考:

http://www.shineblink.com/html/gizwits/9_3_4GJoin/4GJoin.html

方法二:使用赛博坦工具零代码定制版App

在机智云开发者中心定义好数据点后,

创建一个移动应用,定义相应的页面信息

再关联相应的智能产品,

即可实现定制版App访问设备。

开发好以后的页面如下:

a10e64ae-256a-11ed-9ade-dac502259ad0.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2950

    文章

    48101

    浏览量

    418111
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    车载扬尘监测站,走航式气象站

    气象站
    pingao141378
    发布于 :2026年02月25日 13:58:18

    湿度传感器模块HW2200用于气象站低湿度环境下的高精度精确监测

    。根据其监测功能的差异,气象站可分为:便携式气象站、高精度气象站、高速公路气象站、森林火险气象站及校园
    的头像 发表于 02-05 10:00 436次阅读
    湿度传感器模块HW2200用于<b class='flag-5'>气象站</b>低湿度环境下的高精度精确监测

    便携式气象站:移动场景下的气象“感知官”

    便携式气象站:移动场景下的气象“感知官”柏峰【BF-BQX】在野外勘探的深山里,在赛事保障的运动场上,在农业生产的田垄间,精准、实时的气象数据往往是决策的关键。传统固定式气象站受限于安
    的头像 发表于 11-14 09:13 423次阅读
    便携式<b class='flag-5'>气象站</b>:移动场景下的<b class='flag-5'>气象</b>“感知官”

    超声波气象站:精准监测的技术新选择

    超声波气象站:精准监测的技术新选择 柏峰【BF-CSQX】在气象监测技术持续升级的背景下,超声波气象站凭借无机械损耗、高灵敏度、强环境适应性等核心特性,逐渐取代传统机械气象站,成为
    的头像 发表于 10-24 10:12 877次阅读
    超声波<b class='flag-5'>气象站</b>:精准监测的技术新选择

    小型自动气象站:精细化气象监测的技术革新与应用拓展

    小型自动气象站:精细化气象监测的技术革新与应用拓展 柏峰【BF-QX】随着气象服务向“精细化、精准化、智能化”升级,传统气象观测站点密度不足、覆盖范围有限的问题日益凸显。小型自动
    的头像 发表于 10-23 10:53 884次阅读
    小型自动<b class='flag-5'>气象站</b>:精细化<b class='flag-5'>气象</b>监测的技术革新与应用拓展

    超声波自动气象站技术方案

    超声波自动气象站技术方案 柏峰【BF-CSQX】一、项目背景与需求分析 1.1 项目背景 传统机械转动式气象站存在部件磨损、易受恶劣天气影响(如风沙堵塞、雨雪结冰)、维护成本高等问题,难以满足现代化气象监测对数据精准性、连续性及
    的头像 发表于 10-16 14:18 511次阅读
    超声波自动<b class='flag-5'>气象站</b>技术方案

    光伏自动气象站技术架构与发电效率保障应用

    光伏自动气象站技术架构与发电效率保障应用 柏峰【BF-GFQX】光伏自动气象站以“精准辐照感知、发电效率评估、运维智能辅助”为核心技术特征,融合光伏专用气象监测与发电性能分析功能,成为光伏电站高效运营的关键技术装备。
    的头像 发表于 10-15 17:29 1918次阅读
    光伏自动<b class='flag-5'>气象站</b>技术架构与发电效率保障应用

    景区负氧离子气象站

    气象站
    pingao141378
    发布于 :2025年10月14日 14:06:19

    华为推出鸿蒙智能交通气象站

    华为全联接大会2025期间,在气象海洋论坛上,华为联合陕西省气象局发布鸿蒙智能交通气象站,这标志着陕西在落实中国气象局“观测即服务”理念、抢占交通
    的头像 发表于 09-20 14:41 1436次阅读

    北斗自动气象站: 护航无网区的 “气象信使”

    北斗自动气象站: 护航无网区的 “气象信使”柏峰【BF-BDQX】在沙漠深处的油田、高原无人区的牧区,或是地震灾后的通信中断地带,一种能摆脱网络依赖的气象设备正持续传递着关键数据 —— 它就是北斗自动
    的头像 发表于 09-08 11:35 1340次阅读
    北斗自动<b class='flag-5'>气象站</b>: 护航无网区的 “<b class='flag-5'>气象</b>信使”

    数字传感器,如何通过小型气象站赋能农耕、生态与防灾?

    小型气象站是一种针对局部区域气象环境进行精细化监测的便携式或固定式设备,其核心功能是通过实时采集所处区域的温度、湿度、气压、风速、风向、降水量、光照等气象数据,为农业生产、生态研究及环境监测等特定
    的头像 发表于 09-04 14:34 963次阅读
    数字传感器,如何通过小型<b class='flag-5'>气象站</b>赋能农耕、生态与防灾?

    防爆工业气象站:工业场景的 “气象监测中枢”

    防爆工业气象站:工业场景的 “气象监测中枢”柏峰【BF-FB】在石油化工、煤矿开采、天然气处理等高危工业场景中,一个容易被忽视却关乎安全生产的问题始终存在:如何在易燃易爆环境下
    的头像 发表于 08-26 12:00 784次阅读
    防爆工业<b class='flag-5'>气象站</b>:工业场景的 “<b class='flag-5'>气象</b>监测中枢”

    智慧农业气象站技术方案

    智慧农业气象站技术方案 柏峰【BF-QX】随着农业现代化进程的加速,传统农业正逐步向智慧农业转型。气象条件对农业生产具有至关重要的影响,精准的气象监测与预测能够帮助农户合理安排农事活动,有效降低
    的头像 发表于 08-21 09:05 933次阅读
    智慧农业<b class='flag-5'>气象站</b>技术方案

    光伏实验气象站的技术架构与应用实践

    光伏实验气象站的技术架构与应用实践 柏峰【BF-GFQX】在光伏产业快速发展与新能源科研不断深入的背景下,光伏实验气象站作为获取精准气象数据与光伏性能参数的核心设备,其技术先进性直接决定了科研成果的可靠性与工程应用的实效性。
    的头像 发表于 08-19 08:57 2271次阅读
    光伏实验<b class='flag-5'>气象站</b>的技术架构与应用实践

    给孩子一堂自然课:气象站如何让科学触手可及?

    气象站
    奕帆科技
    发布于 :2025年05月06日 14:57:01