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

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

    关注

    2909

    文章

    44634

    浏览量

    373317
收藏 人收藏

    评论

    相关推荐

    自动气象站的工作原理与应用

    自动气象站是现代气象观测网络的重要组成部分,它通过集成传感器、数据采集与处理系统、通讯设备等技术手段,实现了对大气环境参数的实时监测和高效数据传输。以下是对自动气象站的工作原理与应用的详细探讨
    的头像 发表于 12-18 13:56 97次阅读

    4G模组PWM接口:技术要点

    今天我们讲解的是4G模组PWM接口的技术要点,以我常用的模组Air724UG为例分享出来。
    的头像 发表于 11-20 23:29 261次阅读
    <b class='flag-5'>4G</b>模组PWM接口:技术<b class='flag-5'>实</b><b class='flag-5'>操</b>要点

    负氧离子气象站

    气象站
    pingao141378
    发布于 :2024年10月19日 08:52:28

    校园气象站高校科普论文气象站多功能气象站

    ,并通过无线通信模块将数据传输到平台,方便师生们通过手机APP或网页端查看实时数据,了解天气变化趋势,提前做好应对准备。 校园气象站高校科普论文气象站多功能气象站可在安卓/IOS手机
    的头像 发表于 08-06 17:53 444次阅读
    校园<b class='flag-5'>气象站</b>高校科普论文<b class='flag-5'>气象站</b>多功能<b class='flag-5'>气象站</b>

    便携式气象站:未来气象监测的便携新选择

    气象站
    万象环境科技
    发布于 :2024年06月23日 10:39:24

    便携式气象站:科技与便捷的完美融合

    气象站
    万象环境科技
    发布于 :2024年06月22日 21:14:07

    什么是自动气象站

    在科学技术迅猛发展的今天,自动气象站以其高效、精准、实时的特点,逐渐成为现代气象观测的先锋。它不仅极大地提升了气象观测的效率和准确性,还为农业生产、交通运输、环境保护等领域提供了重要的气象
    的头像 发表于 06-14 09:15 538次阅读
    什么是自动<b class='flag-5'>气象站</b>?

    小型气象站是什么?有哪些作用?

    小型气象站可以监测多种气象参数,包括但不限于温度、湿度、气压、风速、风向、降水量等。这些数据对于农业、气象预测、交通运输、环境监测等领域都至关重要。例如,在农业领域,农民可以根据气象站
    的头像 发表于 05-29 17:03 570次阅读

    多参数自动气象站:科技前沿与应用尖端

    JD-CQX10 多参数自动气象站代表了气象监测领域的科技前沿与应用尖端,其集成了多种传感器和先进技术,能够实现对气象要素的全面监测和高效数据采集。 这些先进的自动气象站
    的头像 发表于 05-16 17:16 433次阅读

    微型气象站的性能表现如何?

    微型气象站是一种小型化、轻便化的气象监测设备,通常用于户外环境的气象监测和数据采集。其性能表现主要包括准确性、稳定性、灵敏度和易用性等方面。 首先,微型气象站的准确性是评价其性能
    的头像 发表于 05-10 16:22 414次阅读

    农业小型自动气象站应用

    小型自动气象站作为现代农业的重要组成部分,其应用价值不可忽视。在农业生产中,气象条件是影响作物生长和产量的重要因素之一。因此,小型自动气象站通过提供准确、及时的气象数据,为农业生产提供
    的头像 发表于 04-24 16:42 453次阅读

    小型农业气象站厂家:数据分析与决策支持

    ,助力农业增产致富。 一、智能化农业气象站——助力农民科学种植 小型农业气象站厂家推出的智能化农业气象站,集成了先进的气象传感器、数据采集系统和
    的头像 发表于 04-02 16:35 458次阅读

    罐区防爆气象站:科技保障,安全生产

    JD-FBCQ罐区防爆气象站是指在石油、化工等工业罐区内设置的一种气象监测设备,旨在监测和分析当地气象变化,提供关键气象信息,以保障罐区安全生产。科技保障在这里主要体现在提供高精度、实
    的头像 发表于 03-19 16:40 608次阅读

    什么是科研用的小型气象站

      JD-CQX7科研用的小型气象站是一种专门设计用于科学研究领域的气象监测设备,其主要特点是小巧轻便、灵活易用,并具有高精度的测量性能。这种气象站通常包括多个传感器,能够测量和记录气温、湿度、风速、风向、气压、降水量等多种
    的头像 发表于 03-15 15:26 387次阅读

    农业气象站:助力现代农业发展

    农业气象站:助力现代农业发展
    的头像 发表于 01-31 11:28 427次阅读