LoRa点对点系统1 需求分析

1 引入为更进一步了解LoRa终端和Contiki系统,我们设计一个P2P(Point to Point)系统。虽然该系统简单,我们还是采用软件工程的方法来实现,借此展示一个嵌入式产品的开发过程。2 连接设备如下图所示,2个LoRa终端,分别通过USB转UART连接2台PC,终端之间通过LoRa无线通信。这样一来,PC#i发送的数据,PC#j能远程接收;反之,亦然。当然,这2个终端也可以连接到同一台PC,只是不能体现LoRa远距离通信的功能。3 通信时序这4个设备的一次通信时序如下图所示:#1:PC#i接收用户数据;#2:PC#i将用户数据封装成UART帧#i,并交付给LoRa终端#i;#3:LoRa终端#i抽取用户数据,封装成RF数据包#i,通过LoRa射频发送;#4:LoRa终端#j接收到RF数据包#i,抽取用户数据,封装成UART帧#i;#5:LoRa终端#j将UART帧#i交付给PC#j。#6:PC#j打印用户数据。了解详情

基于LoRa远距离无线通讯技术的传感网络概述

一、背景概述2013年8月Semtech公司向业界发布了一种新型的,基于1GHz以下的超长距低功耗数据传输技术(简称LoRa)的芯片。其接受灵敏度达到了惊人的-148dbm,与业界其他先进水平的sub-GHz芯片相比,最高的接收灵敏度改善了20db以上,其功耗极低。LoRa 作为低功耗广域网(LPWAN)的一种长距离通信技术,近些年受到越来越多的关注。随着物联网从近距离到远距离的发展,必将会产生一些新的行业应用和商务模式。Cisco、IBM、SemtechMicrochip等正在积极推广LoRa技术。二、技术特点:LoRa的优势在于技术方面的长距离能力。LoRa技术在高性能、远距离、低功耗,支持大规模组网,测距和定位等方面突出的特点,这使得该方案(终端+网关)成为物联网大规模推广应用的一种理想的技术选择。LoRa是低功耗广域网通信技术中的一种,是物理层或无线调制用于建立长距离通信链路。许多传统的无线系统使用频移键控(FSK)调制作为物理层,因为它是一种实现低功耗的非常有效的调制。LoRa是基于线性调频扩频调制,它保持了像FSK调制相同的低功耗特性,但明显地增加了通信距离。LoRa技术本身拥有超高的接收灵敏度(RSSI)和超强信噪比(SNR)。此外使用跳频技术,通过伪随机码序列进行频移键控,使载波频率不断跳变而扩展频谱,防止定频干扰。三、LoRa网络架构在网状网络中,个别终端节点转发其他节点的信息,以增加网络的通信距离和网络区域规模大小。虽然这增加了范围,但也增加了复杂性,降低了网络容量,并降低了电池寿命,因节点接受和转发来自其他节点的可能与其不相关的信息。当实现长距离连接时,长距离星型架构最有意义的是保护了电池寿命。如果把网关安装在现有移动通信基站的位置,发射功率20dBm,(100mW),那么在高建筑密集的城市环境可以覆盖2公里左右,而在密度较低的郊区,覆盖范围可达10公里。该网关/集中器还包含MAC层协议,对于高层它是透明的。四、解决方案平台架构:解决方案系统架构为:网络/应用服务器、LoRa 网关、LoRa 节点;五、应用案例1、智慧油田图片  2、智慧水务  3、智慧供热  4、智慧燃气了解详情

LoRa开发8: 下载源代码

1 源代码下载地址源代码可以从以下链接下载http://download.csdn.net/detail/jiangjunjie_2005/96571612 开发环境与工具硬件平台:锐米LoRa终端http://www.rimelink.com/pd.jsp?id=2测试套件:USB转串口 + LoRa终端转接板https://shop140974727.taobao.com/?spm=2013.1.1000126.d21.DL6hVR仿真器: ST LINK V2https://item.taobao.com/item.htm?spm=2013.1.20141002.4.Sj743Y&scm=1007.10009.31621.100200300000004&id=540446816750&pvid=8a31520e-d2bd-4a21-b940-aa421c82d92dIDE环境:IAR for STM8http://www.rimelink.com/nd.jsp?id=33&_np=105_3153 编译对应的进程void main(void){//process_start(&TxRandData, NULL);//process_start(&RxPrintSNRRSSI, NULL);process_start(&PingPong, NULL);}在源代码main.c中,屏蔽不需要的进程,仅允许编译一个进程,即可将LoRa终端设置成对应的系统。如上例所示,编译了PingPong进程。4 源代码结构main.c 基于C语言系统的入口函数main.h 系统的全局配置文件Application应用程序,以Contiki系统的protothread方式组织Contiki Contiki操作系统Driver 驱动:ST官方驱动库和MCU外设驱动文件Project IAR环境下所有工程文档RF SX1278射频芯片驱动代码了解详情

LoRa开发7:PingPong系统

1 引言前2章介绍了SX1278的发送和接收,在此基础上,我们设计一个有趣的PingPong系统,更好地理解LoRa终端的收发逻辑。该系统将LoRa终端自动定义成2种角色:master和slave。master主动发送ping数据帧,接收pong数据帧;slave如果接收到ping数据帧,回应pong数据帧。2 整体逻辑流程如上图所示,当LoRa终端上电后,在(2 * PingPongPeriod)周期内没有接收到ping数据帧,它就认为自己是master。Master节点每隔(1 * PingPongPeriod)周期主动发送ping数据帧,然后启动RF接收,可能接收到pong回应帧(正常通信),也可能接收超时(slave没有上电或通信失败)。同理,当LoRa终端上电后,在(2 * PingPongPeriod)周期内接收到ping数据帧,它就认为自己是slave。Slave节点启动RF接收,如果接收到ping数据帧,它将发送pong回应帧。一个节点从上电,判断自身角色,根据角色处理逻辑,如下流程图所示。3 代码剖析PROCESS_THREAD(PingPong, ev, data){#definePING “ping, this is MASTER ofrime node.”#definePONG “pong, this is SLAVE of rimenode.”#definePING_SIZE 34#definePONG_SIZE 33staticbool s_bIsMaster;staticuint16_t s_wPingPongPeriod;staticint32_t s_lTxCnt = 0;staticint32_t s_lRxCnt = 0;PROCESS_BEGIN();InitSetLoRa();s_wPingPongPeriod =SX1278GetTimeOnAir(4) + SX1278GetTimeOnAir(4) + 15; 1/*Determine MASTER or SLAVE by RX “ping”. */SX1278Receive(2 * s_wPingPongPeriod); 2PROCESS_YIELD(); /* Yield until receive or timeout. */ 3SX1278SetSleep(); /* MUST stop RxContinuous mode manually. */ 4if(GetCompareRxFrame(PING, PING_SIZE)) 5{s_bIsMaster = FALSE;}else{s_bIsMaster = TRUE;}if(s_bIsMaster) /* Is MASTER */{while (1){/* TX “ping” */++s_lTxCnt;SX1278Send(PING, PING_SIZE); 6PROCESS_YIELD_UNTIL( (RF_Tx_Done == s_tRFResult) ||(RF_Tx_Timeout ==s_tRFResult) ); 7/* RX “pong” */SX1278Receive(s_wPingPongPeriod); 8PROCESS_YIELD(); /* Yield until receive a frame or timeout. */SX1278SetSleep(); /* MUST stop RxContinuous mode manually. */if (GetCompareRxFrame(PONG, PONG_SIZE)) 9{++s_lRxCnt;RIME_DBG( RIME_DBG_ON,“TxCnt=%ld, Rx Cnt=%ld, SNR=%d, RSSI=%d.\r\n”,s_lTxCnt, s_lRxCnt, s_chPacketSnr,s_nPacketRssi ); 10}}}else /* Is SLAVE */{while (1){/* RX “ping” */SX1278Receive(0); 11PROCESS_YIELD(); /* Yield until receive a frame or rx error. */SX1278SetSleep(); /* MUST stop RxContinuous mode manually. */if (GetCompareRxFrame(PING, PING_SIZE)) 12{/* TX “pong” */++s_lTxCnt;SX1278Send(PONG, PONG_SIZE); 13PROCESS_YIELD_UNTIL( (RF_Tx_Done ==s_tRFResult) ||(RF_Tx_Timeout == s_tRFResult) ); 14++s_lRxCnt;RIME_DBG( RIME_DBG_ON,“Tx Cnt=%ld, RxCnt=%ld, SNR=%d, RSSI=%d.\r\n”,s_lTxCnt, s_lRxCnt,s_chPacketSnr, s_nPacketRssi );}}}PROCESS_END();}Line#1:计算PingPong通信空中时间,添加15ms做为收发准备时间;Line#2:启动接收功能,超时时长为2倍PingPong通信空中时间;Line#3:阻塞进程,直到接收数据帧或超时;Line#4:设置SX1278为休眠,否则它将处于持续接收状态(那怕超时亦如此);Line#5:GetCompareRxFrame()复制数据帧到解析工作区,比较是否为ping帧;Master节点逻辑Line#6:master节点发送ping数据帧;Line#7:阻塞进程,直到发送ping数据帧完毕;Line#8:启动接收功能,超时时长为PingPong通信空中时间;Line#9:比较是否为pong回应帧;Line#10:打印发送和接收数据帧个数,SNR和RSSI值;Slave节点逻辑Line#11:启动持续接收功能,为0表明关闭超时功能;Line#12:比较是否为ping数据帧;Line#13:slave节点发送pong回应帧;Line#14:阻塞进程,直到发送pong回应帧完毕;了解详情

LoRa开发6:接收数据帧

1 引言接收LoRa数据帧比发送稍复杂一些,接收是一个异步动作—-不知道下一帧什么时候到来;因为干扰或信号微弱等,接收可能会出错;甚至,当多次接收错误后,RF可能会宕机—-再也无法接收任何数据帧。本章,我们继续基于Contiki和SX1278,开发接收数据帧的代码。2 整体逻辑流程接收数据帧的整体逻辑流程如下所示,特别注意的是,添加了处理异常的代码:如果RF接收错误(硬件自检payloadcrc16失败)或数据帧错误(用户CRC16失败),进程会重启动RF的接收,以防止陷入宕机(根据我们多年的经验,这种缺陷是可能发生的)。3 进程时序t0时刻:进程启动RF接收;t1时刻:SX1278接收到数据帧,中断服务程序poll进程;t2时刻:进程检验数据帧的CRC16,闪烁LED,打印计数、SNR和RSSI;4 代码剖析PROCESS_THREAD(RxPrintSNRRSSI, ev, data){/*ATTENTION: stack variables can NOT cross any “XX_YIELD()”. */bool bFrameOK; 1RF_FRAME_RAND_DATA *p_stFrameData;staticint32_t s_lRxRandCnt = 0;PROCESS_BEGIN(); 2InitSetLoRa(); 3SX1278Receive(0);/* Explain: 0 means RX forever */ 4while(1){PROCESS_YIELD(); /* Yield until receive aframe. */ 5bFrameOK = FALSE;if (RF_Rx_Done == s_tRFResult) 6{/* Check CRC16 of this received frame. */s_stParseRFBuf.bySize = GetRadioBuf(s_stParseRFBuf.a_byBuf,RF_FIFO_SIZE); 7p_stFrameData = (RF_FRAME_RAND_DATA *)s_stParseRFBuf.a_byBuf;if ( p_stFrameData->wCRC16 ==util_CRC16( p_stFrameData,GET_ST_FLD_OFFSET(RF_FRAME_RAND_DATA, wCRC16)) ) 8{bFrameOK = TRUE;chip_LEDToogle();++s_lRxRandCnt;RIME_DBG( RIME_DBG_ON,“Rx Rand Cnt=%ld, SNR=%d,RSSI=%d.\r\n”,s_lRxRandCnt, s_chPacketSnr, s_nPacketRssi ); 9}}/*EXPLAIN: Restore the RX of RF if Rx-Error or frame is NOT integrity.*/if(!bFrameOK) 10{SX1278SetSleep();SX1278Receive(0);}}PROCESS_END(); 11}Line#1:小心!在Contiki系统自动变量不能跨越阻塞语句,详细原因请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44725997Line#2:Contiki进程的第一条语句,详解请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44600365Line#3:初始化SX1278,详解请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/52824184Line#4:启动RF接收,参数为0代表关闭超时定时器,即持续接收;Line#5:阻塞进程,等待RF中断唤醒;Line#6:判断RF是否接收一帧数据;Line#7:从RF缓冲区复制数据帧到解析工作区;Line#8:检测数据帧的CRC16是否正确;Line#9:打印接收次数、SNR和RSSI,RIME_DBG()的原理和使用,请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/51869953Line#10:如果接收错误或数据帧CRC16错误,重启动RF接收,防止宕机;Line#11:Contiki进程的最后一条语句,详解请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44600365了解详情

LoRa开发5:发送随机数据

1 引言学习需要循序渐进,做开发也不例外。在LoRa终端开发中,最简单的代码是通过SX1278发送数据帧。因此,我们先从发送开始,了解初始化SX1278和建立Contiki进程的入门知识。2 整体逻辑流程发送数据帧的整体逻辑流程如下所示,很明显,进程是一个无限循环:生成随机数据帧-> 发送 -> 生成随机数据帧 ->…3 初始化SX1278初始化SX1278的代码清单如下,它主要完成射频参数的配置。static void InitSetLoRa(void){SX1278Init(&s_stRFEvents); 1SX1278SetFreq(RADIO_FREQ); 2SX1278SetPAOutput(PA_OUTPUT_PIN_BOOST); 3SX1278SetTxPower(20); 4SX1278SetPreambleLen(6); 5SX1278SetLowDatarateOptimize(FALSE); 6SX1278SetFixLen(FALSE); 7SX1278SetCrcOn(TRUE); 8SX1278SetRxContinuous(TRUE); 9SX1278SetBandwidth(RF_BW_500000); 10SX1278SetSpreadingFactor(RF_SF_7); 11SX1278SetCodingRate(RF_FEC_4_5); 12SX1278SetLoRaSettings(); 13SX1278SetTxTimeout(SX1278GetTimeOnAir(255) + 10); 14return;}Line#1:传递一个回调函数指针数组给SX1278驱动,这样一来,当射频中断发生时,可以让调用者执行必需的动作 (一般用于给进程发消息)。该原理的解释,请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/52798757Line#2:设置频率为470MHz;Line#3:使用PA(Power Amplifier,功率放大器)引脚输出;Line#4:设置发射功率为最大值20dBm;Line#5:设置preamble(前导码,用于接收同步)长度为6,根据我们多年的测试经验,6是最小值,低于该值将会导致接收误码率上升;Line#6:关闭低速率优化功能:当symbol驻空时间超过16ms时,打开此选项可以提高LoRa链路健壮性。注意:发送和接收双方必须设置一致!Line#7:允许发射数据帧长度可变;Line#8:使能SX1278对接收数据帧payload进行CRC16校验;Line#9:使能持续接收;Line#10:设置BW为500kHz;Line#11:设置扩频因子为7,即1symbol(每bit用户payload),LoRa扩频到2^7=128 chip(实际发射信号);Line#12:设置前向纠错码,每发送4symbol,添加1symbol纠错码;Line#13:将设置参数写入SX1278寄存器(批量操作提高效率);Line#14:设置发送超时为最大值(使用MCU定时器避免SX1278发送宕机);4 进程时序t0时刻:进程生成随机数据帧,并发送;t1时刻:SX1278启动发送;t2时刻:SX1278发送完毕,中断服务程序poll进程;t3时刻:进程打印发送次数,再次生成随机数据帧和发送;5 代码剖析PROCESS_THREAD(TxRandData, ev, data){/*ATTENTION: stack variables can NOT cross any “XX_YIELD()”. */RF_FRAME_RAND_DATA *p_stFrameData; 1staticint32_t s_lTxRandCnt = 0;PROCESS_BEGIN(); 2InitSetLoRa(); 3while(1) 4{/* Makethe frame of random data, TX it. */p_stFrameData= (RF_FRAME_RAND_DATA *)s_abyTxRFBuf;MakeRandData(p_stFrameData->a_byBuf,sizeof(p_stFrameData->a_byBuf)); 5p_stFrameData->wCRC16= util_CRC16( p_stFrameData,GET_ST_FLD_OFFSET(RF_FRAME_RAND_DATA, wCRC16)); 6SX1278Send(s_abyTxRFBuf, sizeof(RF_FRAME_RAND_DATA)); 7/* Block process until Tx Done or timeout. */PROCESS_YIELD_UNTIL( (RF_Tx_Done == s_tRFResult) ||(RF_Tx_Timeout == s_tRFResult) ); 8++s_lTxRandCnt;RIME_DBG(RIME_DBG_ON, “Tx Rand Cnt=%ld\r\n”, s_lTxRandCnt); 9}PROCESS_END(); 10}Line#1:小心!在Contiki系统自动变量不能跨越阻塞语句,详细原因请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44725997Line#2:Contiki进程的第一条语句,详解请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44600365Line#3:初始化SX1278;Line#4:一般而言,进程都是无限循环;Line#5:生成随机数据;Line#6:计算CRC16,宏GET_ST_FLD_OFFSET()用于取结构体中域的偏移;Line#7:发送随机数据帧;Line#8:阻塞进程,直到发送数据帧结束或超时;Line#9:打印总发送次数,RIME_DBG()的原理和使用,请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/51869953Line#10:Contiki进程的最后一条语句,详解请链接:http://blog.csdn.net/jiangjunjie_2005/article/details/44600365了解详情

LoRa开发4:移植Contiki

1 LoRa终端需要OS吗?尽管工程师有很多理由拒绝在LoRa终端上使用OS(Operating System,操作系统):“它很复杂”,“没必要”,“内存太小”,“有学习成本”,“要改变编程思维”,“可能不稳定”……然而,基于以下理由,我们强烈推荐移植一个小型OS降低复杂度LoRa终端的复杂度其实比我们想象的要高:它需要驱动SX1278,这需要处理很多事件,如接收数据超时,接收数据错误等;它需...了解详情

LoRa开发3:终端驱动设计

1 引言从表面看,终端驱动就是MCU通过读写SX1278的寄存器,实现射频收发功能。然而,一个优秀的驱动设计,至少满足以下设计目标;最具喜挑战的是,有些目标是相互抵触的。提供机制:区分策略和机制,驱动仅提供机制,由用户进程实现策略;接口简单:接口越简单,驱动越好使用,另外,更好实现“高内聚、低耦合”;提高效率:最大化硬件设备性能,是驱动的重要使命;节能内存:内存复用和指针传递等方法可以节省MCU宝贵的内存;...了解详情

LoRa开发2:终端硬件平台

1 硬件基本框图一般而言,LoRa终端主要部件包括:MCU,SX1278,TCXO,RF_SWITCH,它们的功能如下表
部件功能
MC驱动SX1278,实现无线网络协议,与用户系统交互等
SX127完成LoRa无线信号的接收与发送
TCX为SX1278高频电路提供精确时钟
RF_SWITC为半双工的SX1278切换输入或输出状态
一个LoRa终端硬件框图如下所示在实际工程应用中,为更好地移植射频...了解详情

LoRa开发1:LoRa设计10问

引言近2年来,LoRa技术在国内受重视,从高校到企业,再到自主创业者,都在了解和研究。作为从事LoRa研发3年,推出2代LoRa网关的锐米通信,接触许多问询LoRa技术的客户。为此,我们解释一些LoRa技术的常见问题。1问:LoRa是什么?答:LoRa是Long Range(长距离)的简称,是一种长距离、低功耗无线通信技术。2009年法国公司Cycleo设计出一种优异的扩频通信算法,后来,该公司被美国semtech公司收购,后者于2013年推出LoRa芯片。目前,semtech公司是LoRa芯片唯一供应商。2问:LoRaWAN是什么?答:LoRaWAN是LoRa Wide Area Network(LoRa广域网)的简称,是基于LoRa技术的一种通信协议。它主要包括三个层次的通信实体:LoRa终端、LoRa网关和LoRa服务器。LoRaWAN是一个较庞大的体系结构,支持CLASS A / B / C三种终端,使用LoRa MAC协议为网关和终端提供防冲突通信和同步机制,有4种服务器角色,分别担任:网络连接、应用管理、接入控制和用户数据。它的层次关系如下:3问:LoRa有什么优点?答:最大的优点是长距离传输,采用扩频增益,它的传输距离约FSK的3倍;其次是低功耗,尽管它通信距离空旷能达到5km,仍保持良好的节能特性;再次,它工作在免费ISM频段,这为普通民众使用该无线网络打开了一道便捷之门,极大降低网络铺设成本。4问:LoRa有哪些缺点?答:第一个缺点,传输速率低,因为扩频调制后的通信带宽窄,一般只适合传感器网络;第二个缺点,硬件价格高,推出市场的时间不长,没有大规模应用,成本没有被摊薄;第三个缺点,LoRaWAN核心技术(通信协议和算法)需要缴纳会费才能获取,这提高了研发成本和难度。5问:LoRa与常见无线技术的区别?答:确实,我们身边的无线技术已经很多了:3G/4G、WiFi、蓝牙和ZigBee,为什么还需要LoRa这种无线技术呢?其实,每种无线技术都只能适应特定通信场景,需要配合使用才能构建高效率、低成本的网络。打个比方,现代化的军事组织,单兵武器都是配合使用,才能达到最佳火力配制。
无线技术类比武器距离...
了解详情

四个案例告诉你“定制树莓派”在企业级市场大有所为

树莓派自2012年推出以来,经过4年技术积淀以及社区运营,它在创客中间已经具备相当的名气了,去年仅英蓓特出货量就达到200多万片,这个对非消费类电路板块来说,是一个很不错的成绩了。近年来智能硬件概念的兴起,再加上国家层面大力推动“互联网+”、“智慧城市”,越来越多的传统企业参与其中,由此也诞生了很多新的创业公司以及新的业务,涌现出一批批刷新三观的应用。在这个讲究速度与激情的商业时代,比竞争对手先一...了解详情

WAZIUP欧洲项目的教学视频:构建低成本的LoRa物联网设备

如何构建低成本的LoRa IoT设备。 有关github的更多信息https://github.com/CongducPham/LowCostLoRaGw学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情

LoRa组网案例5:无线电表,唤醒+总线

案例背景某用电采集系统,为减少布线和施工的代价,计划使用无线采集方案。在方圆1km的区域,连接400块电表。基于国网电表通信协议,响应时间要求小于10秒。需要和某电表通信时先广播该电表号和请求命令,约20字节;对应表号的电表根据命令发送回复帧,约100字节;非该表号的电表不予回应。通信拓扑如下图所示提取需求
因素指标
距离1000米,墙壁、门等会造成信号衰减
带宽纯负载带宽:(20 * 8 + 100 * ...
了解详情

LoRa组网案例4:无线水表,上报+唤醒

案例背景水表无线集抄具备很多好处:容易施工、缴费便捷、方便查询等。长期以来困扰该方案的是,既要长距离通信,又要低功耗以延长电池使用寿命。现在,LoRa无线可以解决该难题。以32层高,每层4户为例,集抄128支水表;每15分钟抄读约10字节用水数据;10秒内能控制任意表计开阀(2字节,欠费停水,续费使用)。提取需求
因素指标
距离层高可达32楼,墙壁和门等会造成信号衰减
带宽纯负载带宽:(128 * 10 * 8...
了解详情

LoRa组网案例3:智能温控,上报+唤醒

案例背景舒适的温度可以提高人们的工作效率,一般办公楼都配置中央空调,如此一来,一方面保证温度合适,另一方面需要节能减排。可以设计一个智能温控系统,在办公区域布置100个温湿度传感器,温湿度值为8字节,每5分钟自动调节中央空调的温控功率。提取需求
因素指标
距离方圆500米,层高可达36楼,墙壁和门等会造成信号衰减
带宽纯负载带宽:(100 * 8 * 8 + 10 *8) bit / (5 * 60) s =2...
了解详情

LoRa组网案例2:控制路灯,唤醒下发

案例背景现代城市,一般在马路的两侧每30米布置一盏路灯,对路灯的控制包括开关:灵活地对“全部 / 部分 / 单盏”路灯进行开启和关闭;策略:根据昼夜长短、天色亮暗、车行人多寡和节假日,调节亮度。上述控制数据不超过10字节,要求在5秒钟内路灯做出响应,单个子网覆盖6km。提取需求
因素指标
距离3000米,城市高楼会造成信号衰减
带宽纯负载带宽:(10 * 8bit) / 5s=16bps,属于超低带宽要求
功耗严格,路灯有市电供应,但数量庞大,节能意义十分重大...
了解详情

LoRa组网案例1:温度采集,主动上报

案例背景一方圆500米的冶炼厂,需要将窑温控制在1200摄氏度,为此设计一个自动测温与添料系统:布置100个温度监测点,温度值为4字节,每5分钟采集一轮,电池供电。使用无线系统将温度值传输到服务器,计算并控制添加燃料的数量。提取需求
因素指标
距离约500米,有少许障碍物,有电磁干扰
带宽纯负载带宽:(100 * 4 * 8bit) / (5 * 60s)=11bps,属于超低带宽要求
功耗苛刻,电池供电,非采集时段要求休眠节能...
了解详情

锐米通信:如何规划中小型LoRa物联网系统

1 背景概述无线通信技术在物联网应用中大致分为三大阵营,它们的特征如下表所示
无线技术市场份额适合场景不适合
2G/3G/410长距离,高速率电池供电,低价格
WiFi/ZigBee/B35短距离,室内通信电池供电,长距离
LoRa等55长距离,低价格,低功耗高速率
LoRa以其“一长三低”(长距离,低功耗,低价格,低速率)的特点,特别适应大量的物联网需求:表计集抄、资产管理、环境监测等场合。本...了解详情