LoRaWAN实战 中国470频段的代码实现
前言在LoRaWAN协议中文版_配套文件 地区参数(物理层)中已经为中国规划了470频段,因此国内开发者对此需求很强烈。在最新(2017-02-27)的V4.3.1版本协议栈上已经新增了中国470频段。这篇文章从源码角度解析下其实现方式。目前国内的LoRaWAN基站产品都和标准有一些不同,比如CLAA等,所以搞清楚整个代码实现还是很有必要的。只要熟悉了整个流程,对接任何一个基站都不是难事。我正在陆续对协议的各个章节进行翻译,具体其他章节的译文,以及译文之外的代码解析,可点此查看帖子LoRa学习笔记_汇总。本文作者twowinter,转载请注明作者:http://blog.csdn.net/iotisan/源码解析1.前导码格式的源码实现同步字的处理在SX1276的驱动中:而前导码长度则是在每次SetTxConfig和SetRxConfig时配置进去。2.信道频率的源码实现先说上行信道的处理。第一步,初始化时把所有信道6*16=96个上行信道都使能了。第二步,紧接着把96个信道的频点赋值一遍。第三步,发送时在SetNextChannel中选择合适的频点,默认是96个信道中随机选择。这上面是上行信道处理三部曲,下行信道处理则轻松多了。主要是配合接收窗口处理,由这个宏定义了下行的起始频点。具体可以看下面第7点。3.数据速率和节点发射功率编码速率编码如下:发射功率编码如下:速率范围如下:发射功率范围如下:4.CFList中国没有。具体见OnRadioRxDone中的FRAME_TYPE_JOIN_ACCEPT分支。5.LinkAdrReq命令对于 ChMaskCntl 的处理都在 ProcessMacCommands() 的 SRV_MAC_LINK_ADR_REQ 分支中。小彩蛋一个:你发现没,注释里写着Channel mask KO。不知是djaeckle (loramac-node的作者之一)调皮,还是语言习惯如此。6.最大载荷长度这在RxWindowSetup()进行处理,调用了最终的驱动函数。7.接收窗口处理。RX1的处理在OnRxWindow1TimerEvent()中,满足协议要求。RX2的默认参数见如下宏:RX2的处理在OnRxWindow2TimerEvent()中:速率偏移处理如下:8.默认设置目前基本各地区的参数都一样,因此协议栈也是直接共用如下参数:End了解详情基于Semtech SX1276/SX1278 LoRa的智能酒店门禁方案
SX1276/SX1278智能酒店门禁方案,智能酒店系统摆脱了传统意义上的单独智能系统,将照明系统、智能场景、影音系统、音乐系统、智能云端集中控制系统完美融合,从实现了真正意义上的智慧酒店,让每一位入住酒店的客户享受轻松便捷的生活。替换原来的机械开关,电工轻松搞定。按照说明书即可组网调试,用户自己DIY控制。方便扩展及升级功能,用户可随时增添控制设备。无需专业的技术工程师保障后期系统正常运行该系统提供了安卓& IO...了解详情基于LoRaWAN的物联网生态系统介绍
什么是LoRaWANLoRaWAN是众多低功率广域网LPWAN, Low Power Wide Area Network)规范中的其中一种,它的设计目标是能够让以电池供电的装置可以部署在较广域的网络中(原文是区域级-regional, 国家级-national 或 全球级-global)。因此,注重的点是「远距离、低功耗」这类应用需求。LoRaWAN网络架构的特点采用星型网络拓扑(Star topology),终端点的通讯是双向的(bi-directional):即数据可收可发,LoRaWAN资料传输率可以从0.3 kbps 到 150 kbps(与距离成反比,且在未来还有进一步提升空间)。LoRa三种终端装置的 ClassLoRaWAN 将终端装置 (end-point devices)区分为 A, B, C 三类 (classes),各自能运用远距离通信的不同需求 (有些要求很省电、有些需要很即时)。这里先说明一下 uplink 与 downlink 的意思:uplink transmission (上行传输):终端装置传给服务器downlink transmission (下行传输):服务器传给终端装置。Class A可双向通讯的终端装置(bi-directional end-devices),每个装置的uplink transmission 之后接有两个短暂的 downlink receive windows 用于需要以最低功耗操作的终端装置。这种装置常常在它送出 uplink 之后,只需要与 server 端进行很短暂的 downlink 通讯 (例如只收个 ACK 而已),在任何其他时间,从server downlink 必须等到下一次的 scheduled uplink (所以通讯没办法很即时,例如下一次的 scheduled uplink 可能是在 128 秒之后)。Class B必须至少有 A 类的功能,可双向通讯的终端装置,但有scheduled receive slots (有固定接收时槽接收服务器过来的讯息,相较于 A 类会更即时一点),相较于 A 类的随机 receive windows,Class B 的装置会在排程的时间打开一个额外的接收窗。为了让终端装置在排程时间打开,它的 receive window,它需要从 gateway 接收一个用于时间同步的 Beacon (如此一來,服务器就能知道终端装置何时在侦听)。Class C必须至少有 A 类的功能,可双向通讯的终端装置,尽可能安排最多的 receive slots,C 类的终端装置是几乎连续地开着 receive windows,只有在发送时才关闭接收视窗,C 类对 server 于终端装置通讯带来最低的延迟 (latency),所以即时性最好,但消耗功率最高。资料传输率与通讯距离LoRa 的资料传输率 (data rate)、通讯距离,它的资料传输率大约在 100 bps ~ 20 kbps之间,而可靠通讯距离在 5 公里的范围(实际测试也有高达10几20公里的,尤其接收器在高地直线传输情况下,参见《唯传LoRa网关路由器测试结果惊人,稳定传输可达21.5公里》)。LoRa 的传输率可以自由调整,传输率越低,传输的距离可以越远。LoRa通讯架构LoRa应用领域LoRa模块介绍低功耗LoRaWAN节点模块产品概述QBIA-00201模块的射频芯片采用的是Semtech公司的LoRa芯片SX1278,主控芯片采用STM32L151,是一款低功耗、低成本、小体积的LoRaWAN模块。QBIA-00201模块主要应用于物联网、无线传感器网络、嵌入式等低功耗需求的场景中。产品应用范围LoRa/LoRaWAN终端节点物联网抄表集中器工业控制安全警报系统...了解详情为Arduino模拟量传感器添加物联App功能
Karlno从网上淘了两个Arduino传感器,一个光照强度,一个土壤湿度,输出都是模拟量电压的,因为万纳模块有ADC输入功能,于是不需编程,将他们很方便的接到了酷享系统里。【图】光照强度传感器、土壤湿度传感器【图】万纳模块【图】硬件连接硬件连接很简单,将两个传感器的输出口,接到万纳模块的IO1和IO2即可。两个传感器及万纳模块都要供电。实际连接的时候,直接用了万纳模块实验板,用杜邦线就可以完成连接。逻辑上,万纳模块连接传感器,将数据采集并传给酷享系统主机(主节点),主节点类似路由器,自动将数据上报到云端和App中。万纳模块出厂的时候,是空白配置,可以搜索并使用官方的ADC配置。官方ADC配置是将IO1-IO4配置成ADC输入的,我们实际使用了两路。如上图,搜索电压,选择“电压采集设备(百分值)”这个配置,并将它从云端下载下来。配置文件可以通过产品编辑器直接打开查看或者编辑,可以修改成我们需要的功能,不过这里使用默认即可。“电压采集设备(百分值)”这个配置文件,使用了万纳模块的IO1-IO4这四个IO口,将他们配置成了ADC采集,并新建了4个变量,并将ADC采集的结果放到这四个变量里。由于ADC采集的结果实际是一个0-3300的电压值,即0-3.3V。配置文件里通过设置ADC的因子参数为3.3,将ADC采样值除以3.3,得到的就是百分值,这个数值会存储到变量中。附件:电压采样设备(百分值显示)(示范)给酷享系统主机上电,连上网线,通过主机,将配置文件下载到万纳模块中,万纳模块就会被配置成相应功能。如果设计者希望将传感器封装成产品,那可以一次性量产一批万纳模块嵌入到产品中,对于终端用户而言,是不需要接触上述配置工具的。打开App,添加设备,搜索设备类型“电压”,选择”电压采集设备(百分值)“,这个跟刚才的是同一个文件,存储于云端。搜索万纳模块,并添加进去。由于“电压采集设备(百分值)”是一个示范产品,所以没有绑定UI,我们可以搜YwRobot这个UI,将其设置给设备。添加完成之后,就可以点击设备,看到我们模块传来的数据了。任何地方只要手机有网络,都可以看到设备数据。产品型号文件(也就是万纳模块配置文件)及设备UI,可以自己修改,可以本地调试,也可以上传到云,可以实现功能很多,文件见附件。如果使用的主节点是带屏幕的,这些数据可以展示到液晶屏上。可以将传感器数据做成触发源来触发情景动作,比如实现“当光照强度低于60,并且持续了300秒后,就打开灯光或者插座”之类的联动。联动是脱离手机运行的,不需要App在线。附件:UI感谢YwRobot厂商提供的传感器及相关资料、资源。了解详情LoRa(I) – 相爱容易相处难
之前在 facebook 上,對 LoRa 發了一點牢騷,恐怕有些人以為我討厭 LoRa,但其實並沒有。我只是對於「拱 LoRa」這件事情有點小意見而已啦!我對 LoRa 也是小有興趣的啦!之後隨著我自身的學習,也希望能盡量抽出時間整理一下我的學習成果,跟大家一起分享。(靠~~ 我想寫的東西真他媽多….接下來,我們就開始來認識一下 LoRa 吧!文章的圖與內容有很多都是從官方文件讀(借)來的,所以若有興趣,不妨可以到LoRa 官網給他逛一逛哦!什麼是 LoRaWAN?LoRaWAN 是眾多低功率廣域網路LPWAN,Low Power Wide Area Network)規範的其中一種,它的訴求是能夠讓以電池供電的裝置可以部署在較廣域的網路中(原文是 regional, nati...了解详情LoRa(II) – A类装置,装置属性与入网程序
在上一篇跟我一起學 LoRa (I) – 相愛容易相處難」已經介紹過 LoRaWAN 的大概念,這裡很快做一下回顧。下圖是一個典型的 LoRaWAN 的網路架構示意圖,一個網路中有(1) 網路伺服器(2) 閘道器 (或稱基地台)(3) 終端裝置(通常是感測裝置)其中網路伺服器多由系統營運商 (operators) 負責建設,可進一步提供服務給 End User Application,或是由 (4) 應用服務商利用建設進一步發展某種產品,再提供給 (5) End User Application 使用。不過在台灣,大家是怎麼玩的我就不清楚了(有人知道的話,歡迎跟大家 share 一下)。LoRa 終端裝置的 A, B, C 三種類型,也很快地回顧一下:Class 可雙向通訊的終端裝置 (bi-directional end-devices通訊最不頻繁,最省電 (適合電池供電),但即時性也最差Class 必須至少有 A 類的功能通訊較頻繁,較耗電 (能以電池供電),即時性較好Class 必須至少有 A 類的功能通訊最頻繁,最耗電 (不適合電池供電),但即時性最好A 類終端裝置如何與伺服器通訊這篇文章要聊 A 類的裝置,所以我們先...了解详情物联网技术业务思考和展望
卢斌 中国电信股份有限公司广东研究院摘要为了分析物联网技术业务并展望其未来的发展,从对物联网业务的预测出发,归纳分析物联网可能的业务场景,分析各种场景对应的无线接入技术的优缺点,最后对物联网的发展和商业模式进行展望。一、引言经过20多年的高速发展,移动通信成为当今经济发展的推动力,在以人为中心的手机通信市场,人口普及率达到90%甚至超过100%。为了寻找新的增长点,物联网业务逐步进入无线通信产业...了解详情LoRa / LoRaWAN最远通信世界纪录实验!我会成功吗?
在本视频中,我想得到两个世界纪录:1. 与TTN网关的最长连接;2. 最长的低功率广域网(LPWAN)地对地连接。欢迎跟我一起经历这段有趣的旅程...【如果您的浏览器不支持直接播放下列视频,可以点击此处下载播放】相关资料:世界纪录的文件:http://ttnmapper.org/special.php?node=03ffeebb&allnodes=on&date=2017-02-14&gateways=on魏森斯坦网关:https://www.thethingsnetwork.org/community/Bern/post/hello-switzerland100公里LPWAN连接:https://www.youtube.com/watch?v=wgqtEu5PfAw覆盖软件:http://www.cplus.org/rmw/rmonline.html视线:http://geo.ebp.ch/gelaendeprofil/覆盖图用的参数:天线高度(m以上)20天线类型天线方位角(°)0天线倾斜(°)0天线增益(dBi)6移动天线高度(m)2移动天线增益(dBi)2频率(MHz)902发射功率(瓦特)20Tx线损耗(dB)3Rx线损耗(dB)0.5Rx阈值(μV)0.5所需可靠性(%)70学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情视频揭示LoRa / LoraWAN:真正达到了多远的通信距离呢?
在本视频中,我开车测试了LoRa和RFM69HW模块的通信范围。想随我一同来知道它们的通信距离到底有多远吗?【如果您的浏览器不支持直接播放下列视频,可以点击此处下载播放】相关资料:Dragino Shield:https://www.aliexpress.com/item/Long-distance-wireless-433-868-915Mhz-Lora-Shield-for-Arduino-Leonardo-UNO-Mega2560-Duemilanove-Due/32684723912.htmlRFM69HW:https://www.aliexpress.com/item/4pcs-lot-FSK-module-RFM69HW-20dBm-RF-FSK-transceiver-MODULE-433-868-915MHZ-can-be-selected/32433459219.html耳语节点:https://talk2.wisen.com.au/product-talk2-whisper-node-avr/学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情自己动手制作LoRa节点:让Arduino和Dragino Shield连接到TTN LoRaWAN
在本视频中,我们将构建一个Lora节点并将其连接到TTN LoRaWAN网络。 我还会向您展示一些技巧来节省您的时间并解释一下调制问题。【如果您的浏览器不支持直接播放下列视频,可以点击此处下载播放】相关资料:代码:https://github.com/SensorsIot/LoRa图书馆:https://github.com/matthijskooijman/arduino-lmic公平访问政策:https://www.thethingsnetwork.org/forum/t/limitations-data-rate-packet-size-30-seconds-uplink-and-10-messages-downlink-per-day-fair-access-policy/1300学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情如何使用IC880a板构建LoRa / LoraWAN网关并将其连接到TTN?
在这个视频中,我们构建了第一个Sub-GHz LoRa网关(一步一步),并将其连接到物联网(TTN)。该网关可用于将节点与Arduino或ESP8266和希望RFM95板连接到互联网。 这是我们将在后来的一集中做的。【如果您的浏览器不支持直接播放下列视频,可以点击此处下载播放】相关资料:IC880a Concentrator:http://webshop.imst.de/ic880a-spi-lor...Raspberry Pi 3:http://bit.ly/2kezAfZSimple PCB:https://www.tindie.com/products/gnz/i...Complex PCB:https://github.com/ch2i/iC880A-Raspbe...https://github.com/ttn-zh/ic880a-gate...Remote Gateway Repository (json):https://github.com/ttn-zh/gateway-rem...How-to:https://github.com/ttn-zh/ic880a-gate...The Things Network:https://www.thethingsnetwork.org/Add a gateway:https://console.thethingsnetwork.org/...Check Status:https://staging.thethingsnetwork.org/...Gateway Map:https://www.thethingsnetwork.org/mapOther concentrator (e.g. for US):https://kuziel.nz/notes/2016/08/lora-...https://github.com/mirakonta/lora_gat...学习小组招募:喜欢动手的程序猿们喜大普奔时刻来临了!来临了!来临了!来自安爵士亲手制作的有关LoRa网关、终端等硬件开发系列学习视频登陆LoRa学习站,英文好的同学们可以先睹为快了,如果你英文足够好,又有兴趣参与LoRa学习资料翻译组,欢迎注册我们的网站会员并留言“加入学习视频翻译”。了解详情LoRaWAN介绍20 中国地区
“模块接口应该像冰山:八分之七都是位于水面以下,而你只能看到水面上的八分之一”—Steve McConnell《代码大全LoRaWAN V1.0.2有一个进步,它将核心机制和和地区无线电规范剥离开来,这样做的好处是,机制和策略分离,接口与引擎分离,实现低耦合。中国地区有2个频段可用:CN779~CN787、CN470~CN510。1 CN779~CN787该频段有一个硬伤:它的最大发射功率仅10mW(10dBm),这对于实际应用是十分有限的。2 CN470~CN510这是中国无委会规定的民用抄表频段,属于ISM免费频段。2.1 EIRP和duty cycleEIRP(最大发射功率)为50mW(17dBm);Duty cycle = 5000ms.2.2 信道范围共96个上行信道,其中6~38和45~77被国家电网使用。信道 | 0~ | 6~3 | 39~4 | 45~7 | 78~9 |
MH | 470.3~471.... |
LoRaWAN介绍19 Server开源
“UNIX很简单,但需要有一定天赋的人才能理解这种简单。”–Dennis RitchiLoRa Server是一个开源的LoRaWAN Server。它能完成Server最主要的任务:处理来自1个或多个GW的上行RF数据包,调度最优的GW回复下行RF数据包。1 整体架构很明显,LoRa Server基本遵循LoRaWAN对Server的4层架构,它们的对应关系如下。loraserver <=> NS (Network Server)lora-app-server <=> AS (Application Server)lora-controller <=> NC (Network Controller)application <=> CS (Customer Server)LoRaWAN规定GW和NS的接口协议是JSON,而本项目使用的是MQTT格式,因此它设计了一个 lora-gateway-bridge 层,它负责JSON和MQTT的转换。2 实现LoRaWAN功能2.1 支持类别Clas | 支持 | 说明 |
完全支持Class-A,NS采用poll方式从AS获取下行RF数据包,这样可以支持最低速率下最大应用数据的发送。 | ||
不支持... |