基于使用Semtech SX1276之奇邑科技TLM906-P01A模组与Atmel328之温湿度节点方案

场景描述

本方案是设定应用于精致农业的场域,主要是使用来监测并纪录温室的温湿度。其目的是让我们可以将长时间的环境纪录数据与作物的产出来做分析比较,在其中获得最佳的环境曲线来得到最大的产出和效率。而进一步的应用是可以从温湿度纪录中获得启动排风、遮阳和灌溉的时机来节省所需电力与水资源。


市场所占优势

解决问题一 (如何减少硬体成本及功耗):

在初接触LoRa模组的人中有需多会先使用既有厂商开发的UART模组,其原因是可以加快开发时间及人力成本。但其中会碰到两个问题为UART模组中必定有一颗微处理器MCU,而外部也必须再外接一颗MCU来处理系统流程如下图。


图1

当使用两个MCU时就必须考虑到多一颗MCU就是多一个价格成本,除此之外还有多一个功率消耗。当然曾经有厂商开发可以在其模组可开发自有程式的产品,但是因为其需要较大的技术支援所以会有最小采购需要MOQ的限制或是NRE工程费用的产生。此次方案我们就是介绍如何自行使用ATMEGA328来处理感测器的信号后将其资料由SX1276传送出去及接收。如此可让使用LoRa的工程师有另一个选择。

 

解决问题二 (使用LoRa改善传输技术改善通讯能力):

对于大楼建筑、工厂或是农场以至于如欧美之家庭之安全需求是一大需求,对于此类安防之系统架构一般都是使用实体有线、FSK(频率偏移调变)、Zigbee、Bluetooth或是Wifi等传输模式来做为通讯方式。但这些通讯方式或多或少都有其先天的限制,下面为我约略做的整理比较表


图2

 

依上表来看,如果我们要在此等警告系统中使用上列技术的话会有点挑战性。所以我们以本方案来提出使用LoRa方式来解决如下问题

距离: LoRa 可提供高至-148 dB 的感度,可提供长距离及高穿透性的应用。

干扰: 使用展频技术可提供高抗杂讯。

省电: 低至0.1uA之耗电可提供长时间不需更换电池使用。

 

方案特色说明

在本方案中我们是使用奇邑科技在现有市场已经内含LoRa协议的模组外提供另一个选择。这个TLM906-P01A模组是专为SPI界面所开发的,其核心为Semtech SX1276IMLTRT 半双工LoRa收发芯片和经过专业调校下的高频匹配回路来提供非高频设计者能有一个高信赖及性能表现的LoRa模组来加速开发。另外本方案使用市面上常见之ATMEL出品之ATMEGA328 MCU在ARDUINO开发平台上设计自己的应用程式及LoRa协议,这个优势可以供开发人员在开放的平台上设计产品及降低产品需要两个微处理器的成本和消耗来增加待机和工作的时间的优势。

另外在方案中我们是采用DHT11温湿度传感器,该感测器具有经过校准的数字信号输出。DHT11传感器将电阻元件、湿式NTC温度测量元件与高性能的8位微控制器整合一起。此技术提高可靠性与出色的长期稳定性。该传感器具有优良的品质,快速的响应,抗干扰能力和高性能。每个DHT11传感器均具有极其精确的湿度校准功能,而其校准系数也存储在OTP程序存储器中。

 

工作原理描述说明

我们这里就是使用奇邑科技TLM906-P01A模组再加上市场上广为使用的Atmega328微处理器在Arduino开发环境上来示范。本方案中我们是以微处理器作为核心,其主要的功能为接收及处理DHT11送来的资料和控制SX1276的收发。当Atmel328接收到从HDT11接收到的1 wire温湿度串列资料后,再将其资料经过处理后转换为可以判读的相对应数据。下一步微处理器将该数据经驱动程式由SPI通讯埠之MOSI、MISO、SS、SCLK 界面至SX1276 传送至空中。

 

如何使用TLM906-P01A SPI模组开发

TLM906-P01A架构解析

该TLM906-P01A为Semtech LoRa开发平台Eiger Platform中的SPI模组,其主要的组成为做为核心的LoRa芯片SX1276、记忆参数的24AA128 EEPROM(在本方案中不会使用)、高频通道切换芯片PE4259及匹配回路如图三如下。


图3

如何连接SX12761KASATMEGA328硬体架构

  1. 图四中所示当我们使用SX1276时我们需要连结其中的SPI (MOSI、MISO、NSS及SCK),Reset、DIO0及电源等接线如下。下图为SX1276RF1KAS之接脚图


图4

 

  1. 在图五中为我们在这个方案中所使用的Arduino Nano开发板中的接脚图,其中除了MISO、MOSI、SCK为固定脚位外其他NSS、DIO0及Reset皆可以按需求在程式库中改变其脚位。


图5


图6  TLM906-P01A及Arduino Nano 接脚对照图

 

安装Arduino开发环境及操作说明

步骤一 (环境安装):

示范如何安装 Arduino

步骤二 (软体开发及上传至MCU):

按下面连接开启程式、组译及烧录至IC

 

如何在在Arduino下使用Library开发LoRa

步骤一: 寻找及安装程式库

在网路上我们可以找到各式各样的程式库,在这个方案中我们使用的是由Sandeep Mistry所提供的LoRa程式库;其版权为根据MIT License来授权使用。

我们会使用Sandeep的程式库是其API简洁易用,其次可以简单的描述来设定如频率、展频因子、频宽等等参数。详细API说明可参考如下

https://github.com/sandeepmistry/arduino-LoRa/blob/master/API.md


图7 Sandeep Mistry 程式库相关资料

步骤二: 如何安装Sandeep LoRa 程式库

步骤三: 开启范例测试SPI沟通


图8

步骤四: 开启发送及接收程式范例:


图9

 

基本程式结构


图10 感测器节点


图11 接收端

 

 

►场景应用图

►产品实体图

►展示板照片

►方案方块图

►核心技术优势

SX1276 芯片为具有LoRa®远程调制解调器,可提供超长距离扩频通信和高抗干扰性,同时将电流消耗降至最低。Semtech的专利LoRa调制技术SX1276可以使用低成本的震荡晶体和材料清单来实现-148dBm以上的灵敏度。高灵敏度与高达+ 20dBm功率放大器相结合,产生了业界领先的链路预算,使其成为物联网应用的最佳选择之一。 与传统的调制技术相比,LoRa提供了优异的抗干扰性和低耗能之间的最佳方案。

►方案规格

芯片组 ~ SEMTECH LoRa SX1276系列  频率 ~ 862-1020MHz(型号:LM-230H)  传输功率 ~ 100mW(MAX。)  传输媒体 ~ UART  UART波特率 ~ 1200/2400/4800/9600/19200/38400/57600bps  电流消费 ~ 接收:13 mA(典型值),发射:120 mA(典型值),睡眠:2.2uA(典型值)  传输距离 ~ 1KM〜10KM(0.81Kbps)  接收灵敏度 ~ -132dBm@0.81Kbps  工作温度 ~ -40°C~85°C  尺寸 ~ 尺寸25毫米x 18毫米x T2.6毫米:身份验证和加密 感测器主要特点  检出种类:环境的湿度和温度  检测范围:湿度20%-95%(测量误差 +-5%) 温度0度-50度 (测量误差 +-2度)  工作电压:3.3V~5V  输出类型:1线式数位输出

技术文档

类型标题档案
硬件product brief