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

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

3天内不再提示

4G气象站的设计与实现

9GxC_IoTMaker 来源:机智云开发者 作者:机智云开发者 2022-08-27 11:17 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

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

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

一、本章实现功能介绍

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

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

58fe4c7e-25b5-11ed-ba43-dac502259ad0.png

5923a0aa-25b5-11ed-ba43-dac502259ad0.png

二、硬件端接线图

593b10e6-25b5-11ed-ba43-dac502259ad0.png

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

三、材料清单

59530958-25b5-11ed-ba43-dac502259ad0.png

四、硬件端完整源代码
--定义函数:将传感器输出电压(单位:mv)转换成紫外线指数indexfunction 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 indexend--使能USB print输出打印LIB_UsbConfig("CDC")--机智云平台为每个产品类别分配的唯一PK和PS,一定要改成您自己的PK和PSPK = "7ebaec64beaf4e389a2957f38711fcda"PS = "b4a4ef17dbf74463b0f1b3c525a8b8de"--初始化4G模块LIB_Giz4GConfig(PK,PS,1000,120,"UART0","D5","HIGH","D6","HIGH")--配置A0-A3这四个电压采集通道同时开始工作,当每个通道采集满50个点时缓存满,每个点的采集时间间隔为10msLIB_ADConfig(50,10000)--设置PM2.5传感器占用TX1和RX1引脚LIB_ZPH04Config("UART1")--设置sht3x传感器占用SCL0SDA0引脚,并启动传感器以每秒出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
humi: %.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
", 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
", vol_mv))    uv_index = GetUvIndex(vol_mv)--将电压转换成紫外等级指数    --打印紫外线等级,0~11    print(string.format("ultraviolet level=%d
", 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
", vol))    --向机智云服务器发送(雨滴值)浮点型小数值(范围应是-100.00~500.00)    LIB_SendToGizCloud("Rf3", vol)  endend
五、机智云接入和App开发

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

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

59a35a16-25b5-11ed-ba43-dac502259ad0.png

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

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

随后下载机智云测试APP

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

即可实现APP控制设备了。

具体过程可参考:

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

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

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

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

再关联相应的智能产品,

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

开发好以后的页面如下:

5923a0aa-25b5-11ed-ba43-dac502259ad0.png

具体过程可参考:

http://www.shineblink.com/html/gizwits/9_4_4GJoinSaiBoTan/4GJoinSaiBoTan.html

审核编辑:汤梓红

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

    关注

    2939

    文章

    47317

    浏览量

    407849
  • 开发板
    +关注

    关注

    25

    文章

    6122

    浏览量

    113317
  • 气象站
    +关注

    关注

    1

    文章

    841

    浏览量

    16902
  • 机智云
    +关注

    关注

    3

    文章

    629

    浏览量

    27631

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

文章出处:【微信号:IoTMaker,微信公众号:机智云开发者】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LabVIEW自动气象站演示

    基于LabVIEW自动气象站演示,包括可执行文件及源代码
    发表于 04-01 21:59

    野外无人自动气象站联网方案

    准确性,实现利用精细化的城市内涝气象预警服务系统为市排水集团排除积水服务。各地市气象局不断增设无人自动气象站,以提高预报的精准度;无人自动气象站
    发表于 12-28 17:13

    如何使用miniprog3设置气象站

    你好,可以请人帮我,我想计划的cy3271-exp1 PSoC气象站板采用miniprog3这样我可以把周围的光强读数然后发送阅读通过串行命令我写的一个应用程序并存储的数据画成了GR促性腺激素释放
    发表于 04-15 08:32

    采用LabVIEW实现虚拟自动气象站设计

    QLI50气象数据采集器,实现虚拟自动气象站设计。2 虚拟自动气象站功能介绍  自动气象站由传感器、数据采集器、数据处理终端等组成。传感器感
    发表于 04-16 09:40

    如何使用树莓派制作小气象站

    自动气象站可以实时探测气温、湿度、气压、风速、风向、降雨量、紫外线辐射等气象信息,通过不同的传感器采集地面气象数据,数据采集完成后通过网络统一传输到气象服务器上,再经
    发表于 05-19 07:59

    基于机智云gokit4.0(G)和MDM9206的 小型智能气象站

    项目介绍小型气象站广泛应用于气象、农业、环境检测和治理等领域。小型气象站对空气温湿度、光照、风速、风向、雨量、土壤湿度、蒸发量、大气压力等环境气象要素进行全天候现场检测。通过更换不同的
    发表于 07-19 16:18

    基于51单片机的气象站系统功能描述

    基于51单片机的气象站系统功能描述,使用51单片机实现气象站的全部功能,如温湿度、大气压强,光照度、风向、风强的检测,并有LCD12864、GSM、整流稳压等电路的部分。气象站系统电路
    发表于 11-19 08:59

    分享一个气象站项目

    描述气象站 | 风向
    发表于 07-11 07:16

    Wemos Mini Di继电器和气象站

    描述Wemos Mini Di继电器和气象站Wemos D1 迷你转接板,用于 3 个中继或 2 个中继+气象站
    发表于 08-17 06:26

    基于LoPy4气象站设计

    气象站 PCB 是使用低成本硬件和 LoPy4 板简化气象站组装的板。LoPy4 板配备了多种连接选项(例如 Sigfox、LoRa、Wi-Fi 和蓝牙)。目前,
    发表于 12-23 11:54 0次下载

    何为气象站气象站有什么作用?

    气象站,可以监测空气温湿度,风速风向,光照,大气压力,辐射度,降雨量等参数,根据使用场景可分为农业气象站,校园气象站,交通气象站,环境监测站等。
    发表于 02-14 09:29 1544次阅读

    气象站的发展历程和分类

    气象站分为手持气象站和无线远程传输气象站,手持气象站又称为便携式气象站,可移动监测不同环境的参数数值,遥测
    的头像 发表于 04-10 09:09 1651次阅读

    气象站的设备有哪些?

    气象站的设备有哪些? 推荐山东风途小型自动气象站FT-QC4、FT-QC5、FT-QC6、FT-QC7、FT-QC8、FT-QC9、FT-QC10等,根据参数可定制不同气象站设备,超
    的头像 发表于 03-09 15:12 1815次阅读
    <b class='flag-5'>气象站</b>的设备有哪些?

    校园气象站的功能和作用

    等。这些数据会通过4G方式上传至环境监控平台,用于分析和预测天气情况,学校可以校园气象站监测到的数据制定学生的户外实践课程。 ②数据记录与传输 校园气象站监测到的气象数据可以被环境监控
    的头像 发表于 09-01 17:11 1523次阅读

    什么是气象站气象站的简介

    什么是气象站气象站的简介
    的头像 发表于 09-14 16:14 2171次阅读