材料清单硬件端完整源码--定义函数:将传感器输出电压(单位:mv)转换成紫外线指数indexfunctionGetUvIndex(v)ifv50.0thenindex=0elseifv227.0thenindex=1;elseifv318.0thenindex=2;elseifv408.0thenindex=...
本文实现的气象站集成了各种常用的气象测量传感器(包含:温度、湿度、气压、紫外线、PM2.5、风速、雨水感应) , ShineBlink万能核心板采集这些传感器数据 , 并将它们上传至机智云 , 然后我们就可以在远程通过手机App或者Web网页端来访问这个气象站测量的所有传感器数据 。
视频教程及实物展示 视频演示教程:
文章图片
文章图片
硬件端接线图
文章图片
需要注意的是:由于连接的电路传感器比较多 , 因此给 ShineBlink 开发板提供5V的电源带载能力至少要大于1A 。
材料清单
文章图片
硬件端完整源码 --定义函数:将传感器输出电压(单位: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
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
