巧用LoRa无线网络 远距离采集温湿度
来源:互联网 发布:linux开发入门 编辑:程序博客网 时间:2024/06/09 16:01
巧用LoRa无线网络 远距离采集温湿度
一. 采集系统意义
温湿度是自然界中和人类打交道最多的两个物理参数,无论是在生产实验场所,还是在居住休闲场所,温湿度的采集或控制都十分频繁和重要,比如机房,变电站,粮仓,冷库,图书馆,博物馆,药厂等都需要监测环境的温湿度,而且,网络化远程采集温湿度并报警是现代科技发展的一个必然趋势。
如果您购买锐米公司的LoRa终端和LoRa网关,可以快速搭建一个采集温湿度的物联网系统,该系统如下图所示,可以将温湿度采集到云服务器,通过智能手机查看。
快速搭建锐米物联网系统请链接:http://www.rimelink.com/nd.jsp?id=36&_np=105_315
如上图红色虚线框所示,为快速设计Demo系统硬件采用了RNDU470T和温湿度传感器SHT71,开发语言为ASNI C,开发环境为IAR for STM8(免费下载链接:http://www.rimelink.com/nd.jsp?id=33&_np=105_315),为降低复杂度没有使用操作系统。
二. 硬件连接
采集系统硬件基于RNDU470T(锐米LoRa终端www.rimelink.com)设计,它的引脚定义如下:
引脚号
引脚名称
引脚类型
描述
1
VCC
Supply
3.3V电源
2
GND
Supply
电源地
3
RXD
D IN/OUT
UART接收
4
TXD
D IN/OUT
UART发送
5
CON1
DIN/OUT
UART输出信号端口
6
CON2
DIN/OUT
UART输入信号端口
7
CON3
D IN/OUT
保留
8
RST
D IN/OUT
复位引脚
A
/
/
固定引脚1
B
/
/
固定引脚2
SMA
/
/
焊接天线使用
SHT71是SENSIRION公司(www.sensirion.com)的温湿度传感器,它的4针引脚定义如下:
Pin
1
2
3
4
Function
SCK
VDD
GND
DATA
采集系统硬件与SHT71连接如下图左所示,采集系统硬件与RNDU470T连接如下图右所示。
三. 采集系统逻辑
采集系统系统的主程序逻辑如上图所示,非常简洁,基于最简单的软件结构:while(1)无限循环。
经过实测:采集系统系统采集SHT71的12位湿度约用时62毫秒,采集14位温度约用时216毫秒。
采集系统系统采集的温湿度数据什么时候传输给RNDU470T合适呢?这个依赖于RNDU470T定时上报频率,如定时上报是5秒一次,那么采集系统系统每5秒传输一次温湿度数据最佳(即同步传输)。当然,用户可以提高采集密度(如1秒一次),进行自定义计算(如计算5次采集数据的平均值),再将数据传输给RNDU470T。
采集系统系统传输数据与RNDU470T上报温湿度数据时序图如下:
四. UART驱动时序
RNDU470T是超低功耗产品,它大部分时间都处于休眠状态,因此采集系统系统需要“唤醒”RNDU470T才能发送UART数据帧;同理,考虑采集系统系统也可能处于休眠状态,RNDU470T在发送UART数据帧也通过信号线“唤醒”用户系统。具体时序请查看《锐米LoRa终端说明书》http://www.rimelink.com/nd.jsp?id=38&_np=105_315。
如下图所示,当采集系统系统发送UART数据帧时,先置高P7引脚,然后启动UART端口发送序列,当发送结束时再拉低P7引脚;置高P7引脚(T0时刻)与启动UART端口发送(T1时刻)有一个延时Tx prepare time,它的最小值为100微秒。
五. UART通信帧解析算法
RNDU470T的UART通信帧格式如下图所示,它是变长数据帧,帧具体的定义请参考《锐米LoRa终端说明书》。
为简化系统设计,我们强烈建议您采用“状态机”来解析该UART数据帧,并且把解析工作放在ISR(中断服务程序)完成,仅当接收到最后一个字节(0x0D)时,再将整个数据帧提交给进程(Demo系统为main程序)处理。
该解析状态机的原理如下图所示:
六. 代码与工程
整个工程文件如下图所示:
main.c:采集系统系统的整体逻辑代码;
SHT7x.c/.h:SHT71驱动代码;
stm8l15x_it.c/.h:MCU中断服务程序注册文件
timer.c/.h:定时器驱动代码;
uart.c/.h:UART驱动代码。
Project下存放基于IAR开发环境的工程文件;
STM8L15x_StdPeriph_Driver:ST公司官方驱动库文件。
源代码下载链接:http://www.rimelink.com/nd.jsp?id=38&_np=105_315
- 巧用LoRa无线网络 远距离采集温湿度
- 巧用LoRa无线网络 实现工厂节能减排
- arduino采集温湿度
- ESP8266采集SHT10温湿度
- 基于LoRa远距离无线通讯技术的传感网络
- 无线传感器网络-仓库温湿度采集系统
- tinyos CTP温湿度采集 android终端显示
- STM32 SHT10温湿度传感器的信号采集
- 【BLE】CC2541之DHT11温湿度采集
- ZigBee/ZWave注意了:LoRa远距离、低功耗网络技术悄然发展
- 5千米传输距离,Semtech LoRa扩频调制技术SX1276+MCU超远距离无线通信解决方案
- 嵌入式多路温湿度监控系统(十51单片机温湿度采集模块)
- LoRa
- 【物联网智能网关-01】通过AD采集获取温湿度
- 基于FSIOT_A 实验平台SAM3S4B cortex-M3的温湿度采集
- PM2.5+温湿度采集+Wifi上网模块设计方案
- 利用arduino采集温湿度,客户端程序显示实时曲线图
- LoRa组网案例1:温度采集,主动上报
- tab的简单写法
- (嵌入式 实时操作系统 rtos nuttx 7.1 stm32 源代码分析)
- C++格式化字符串
- python学习之win下安装记录
- nefuoj-943:黑屏
- 巧用LoRa无线网络 远距离采集温湿度
- Retrofit三步理解之二 ------------------ Retrofit的进一步总结
- cron表达式详解
- Map的底层结构及分析
- C#中的Socket编程详解
- Android自定义控件1
- Hello World
- Appium for win7 环境搭建
- TStringList 的使用方法详解