1.Lora无线传输协议技术浅析
2.SX1278替换,码解SX1262替换方案!码解ASR6501/6502及6505真的码解很强大
3.EMQX-简介、安装部署、码解基础功能、码解python代码测试
4.低耗能,码解100的源码补码小安派-LRW-TH1传感器通用板,码解一块板即可连接多种传感器!码解
5.LoRaWAN网关搭建
Lora无线传输协议技术浅析
在年,码解我首次接触到了Lora无线传输协议技术。码解当时,码解我们公司面临了一个棘手的码解问题:一款传统的安防报警系统在几个国内项目中出现了无法解决的问题。传统的码解安防报警主机系统采用的是成本低、开发容易的码解MHz ASK无线通讯,它虽然传输距离较远,码解但也存在抗干扰能力差、数据传输效率低以及容易串码等问题。这种传统系统主要出口到欧美地区,欧美地区人口稀少,每家每户住着大别墅,相隔距离远,所以ASK无线通讯在一定范围内并无太大问题。然而,国内情况不同,大多数居民住在楼房里,一户挨着一户,传感器数量多,信号容易相互干扰、碰撞,导致串码。这种问题在年的一个新疆十户联防农村防护报警项目中再次暴露出来,因为MHz的传输距离无法满足农村一户到一户之间的距离要求。为了寻找新技术优化局域网无线通讯,我们需要解决抗干扰能力差、传输距离不够远的问题。经过测试验证了Zigbee、FSK、Z-wave等无线通讯方案,增加无线通讯的中继器以及增加无线发射的功率等方法,但都未能满足需求。就在这个时候,我们发现了Lora技术。
Lora是一种基于扩频技术的远距离无线传输技术,主要在ISM频段运行,包括、、mktime源码MHz等。它具有穿透力强、抗干扰能力强、功耗低、数据通讯效率高等优势,并且支持半双工的双向通讯。在年,Lora技术在安防报警系统和智能家居系统中被视为一项新技术,市面上类似的成熟模块较少。为了应对十户联防报警系统中传输距离的问题,我们自主开发了Lora模块,并设计了私有通讯协议。这使得系统性能得到了显著提升。之后,我们基于Lora技术开发了一套新的安防报警系统和智能家居系统,特别适用于别墅和高档公寓的安全报警。
然而,Lora模块在价格方面存在一个明显的缺点,相对于ASK模块,Lora模块的价格要高出许多,大约是后者的6-8倍。此外,提到Lora,人们自然而然会联想到LoraWan。LoraWan是由LoRa联盟发布的基于开源MAC层协议的低功耗广域网通信协议,主要为电池供电的无线设备提供局域、全国或全球的网络通信。LoRaWan的开发势头在年非常强劲,许多国内巨头如腾讯、阿里、中国电信等都参与了这一领域。然而,由于LoraWan的核心技术专利和芯片制造基本上被美国Semtech公司垄断,年月日,工信部无线电管理局发布的《微功率短距离无线电发射设备技术要求(征求意见稿)》中限制了-MHz频段的使用,仅限于民用无线电计量仪表,且为单频点使用,不能用于组网应用。这导致LoraWan的发展在年初出现急刹车,并一直保持在低谷状态。
尽管在国内LoraWan的发展受到一些限制,但这并未阻碍Lora无线通讯技术的发展。我们使用的十户联防项目以及基于Lora通讯的新安防报警系统,采用的都是私有协议,不在LoraWan的dsplink源码网络范畴内,因此不受上述限制。就技术而言,Lora确实解决了局域网无线通讯传输的一些痛点,提升了无线通讯的稳定性和可靠性。然而,年对电子行业来说是一个寒冬,关于技术垄断的问题,我也深切期望国内科技能够不断进步和发展,摆脱被外国卡脖子的局面。芯片价格的飞涨也引发了对国产化芯片技术的期待。
最后,值得一提的是,最近有同学向我询问单片机相关资料,我特别花了一个月的时间总结了过去十年产品研发经验,整理了一份涵盖从入门到高级的单片机教程、工具包以及个热门项目的资料包,并且无偿分享给有需要的同学。这份资料包几乎涵盖了C语言、单片机、模电数电、原理图和PCB设计、单片机高级编程等内容,非常适合初学者入门和进阶。此外,我还含泪分享了个热门开源项目的源码、原理图、PCB设计以及详细说明文档,以帮助大家快速提升技术能力。据传,有同学通过这份资料顺利入职BAT等公司,因此请务必保存并好好学习。后期我还会组建一些技术交流群,提供一个与行业大佬交流的平台,让大家能站在行业的最前沿。如果你对上面的单片机入门到高级教程工具包或想加入单片机交流群感兴趣,可以点击下方卡片领取。或者你可以关注“无际单片机”,全网同名,这里提供更多的个人成长经历、行业经验、技术干货。
SX替换,SX替换方案!ASR/及真的很强大
ASR是一款集成LoRa无线电收发器、调制解调器和8位CISC MCU的cooledit 源码通用LORA无线通信芯片组,采用先进的STM 8位核心,频率高达MHz。该芯片组支持LoRa调制和(G)FSK调制,频率覆盖范围为MHz至MHz,最大输出功率为dBm,灵敏度达到-dBm。ASR模块为LPWAN应用提供超长距离和超低功耗通信,封装尺寸为8mm x 8mm,共有个引脚,特性包括深度休眠电流2uA、接收电流mA、支持可编程速率最高.5kbps至kbps等。
ASR和ASR芯片组采用M0核心与SX芯片组合,主打性能与外设资源丰富,支持Lo rawAN和LinkWAN,源码开放,上手快速。ASR芯片组则采用STM8L核心与SX芯片组合,以价格和标准化为主打,支持LoRaWAN和LinkWAN,Class A或C模式,适合直接对接传感器,上手容易,成本低。ASRS芯片组由SX芯片和射频前端组成,外加MCU SPI和天线模块,是替换SX///的理想选择,SIP性能优于任何PCB布局。
国产LORA芯片ASR系列芯片,包括ASR、ASR、ASR及ASRS,性能强大,上手容易,成本更具优势。这些芯片组的出现,将为LPWAN应用提供更经济、更高效的无线通信解决方案。欢迎交流。
EMQX-简介、安装部署、基础功能、python代码测试
MQTT属于是物联网的通信协议,在MQTT协议中有两大角色:客户端(发布者/订阅者),服务端(Mqtt broker);针对客户端和服务端需要有遵循该协议的猎鸟 源码的具体实现,EMQ/EMQX就是MQTT Broker的一种实现。
EMQX是基于 Erlang/OTP 平台开发的 MQTT 消息服务器,是开源社区中最流行的 MQTT 消息服务器。EMQ X 是开源百万级分布式 MQTT 消息服务器(MQTT Messaging Broker),用于支持各种接入标准 MQTT协议的设备,实现从设备端到服务器端的消息传递,以及从服务器端到设备端的设备控制消息转发。从而实现物联网设备的数据采集,和对设备的操作和控制。
到目前为止,比较流行的 MQTT Broker 有几个:使用 C 语言实现的 MQTT Broker,使用 Erlang 语言开发的 MQTT Broker,使用 Node.JS 开发的 MQTT Broker,同样使用 Erlang 开发的 MQTT Broker。从支持 MQTT5.0、稳定性、扩展性、集群能力等方面考虑,EMQX 的表现应该是最好的。
与别的MQTT服务器相比EMQ X 主要有以下的特点:经过+版本的迭代,EMQ X 目前为开源社区中最流行的 MQTT 消息中间件,在各种客户严格的生产环境上经受了严苛的考验;支持丰富的物联网协议,包括 MQTT、MQTT-SN、CoAP、 LwM2M、LoRaWAN 和 WebSocket等;优化的架构设计,支持超大规模的设备连接。企业版单机能支持百万的 MQTT 连接;集群能支持千万级别的 MQTT 连接;易于安装和使用;灵活的扩展性,支持企业的一些定制场景;中国本地的技术支持服务,通过微信、QQ等线上渠道快速响应客户需求;基于 Apache 2.0 协议许可,完全开源。EMQ X 的代码都放在 Github 中,用户可以查看所有源代码;EMQ X 3.0 支持 MQTT 5.0 协议,是开源社区中第一个支持 5.0协议规范的消息服务器,并且完全兼容 MQTT V3.1 和 V3.1.1 协议。除了 MQTT 协议之外,EMQ X 还支持别的一些物联网协议;单机支持百万连接,集群支持千万级连接;毫秒级消息转发。EMQ X 中应用了多种技术以实现上述功能;利用 Erlang/OTP 平台的软实时、高并发和容错(电信领域久经考验的语言);全异步架构;连接、会话、路由、集群的分层设计;消息平面和控制平面的分离等;扩展模块和插件,EMQ X 提供了灵活的扩展机制,可以实现私有协议、认证鉴权、数据持久化、桥接发和管理控制台等的扩展;桥接:EMQ X 可以跟别的消息系统进行对接,比如 EMQ X Enterprise 版本中可以支持将消息转发到 Kafka、RabbitMQ 或者别的 EMQ 节点等;共享订阅:共享订阅支持通过负载均衡的方式在多个订阅者之间来分发 MQTT 消息。比如针对物联网等 数据采集场景,会有比较多的设备在发送数据,通过共享订阅的方式可以在订阅端设置多个订阅者来实现这几个订阅者之间的工作负载均衡。
典型的物联网平台包括设备硬件、数据采集、数据存储、分析、Web / 移动应用等。EMQX 位于数据采集这一层,分别与硬件和数据存储、分析进行交互,是物联网平台的核心:前端的硬件通过 MQTT 协议与位于数据采集层的 EMQX 交互,通过 EMQX 将数据采集后,通过 EMQX 提供的数据接口,将数据保存到后台的持久化平台中(各种关系型数据库和 NOSQL 数据库),或者流式数据处理框架等,上层应用通过这些数据分析后得到的结果呈现给最终用户。
EMQX 公司主要提供三个产品,可在官网首页产品导航查看每一种产品;主要体现在支持的连接数量、产品功能和商业服务等方面的区别。
完整的 MQTT V3.1/V3.1.1 及 V5.0 协议规范支持;QoS0, QoS1, QoS2 消息支持;持久会话与离线消息支持;Retained 消息支持;Last Will 消息支持;TCP/SSL 连接支持;MQTT/WebSocket/SSL 支持;HTTP 消息发布接口支持;$SYS/# 系统主题支持;客户端在线状态查询与订阅支持;客户端 ID 或 IP 地址认证支持;用户名密码认证支持;LDAP 认证;Redis、MySQL、PostgreSQL、MongoDB、HTTP 认证集成;浏览器 Cookie 认证;基于客户端 ID、IP 地址、用户名的访问控制 (ACL);多服务器节点集群 (Cluster);支持 manual、mcast、dns、etcd、k8s 等多种集群发现方式;网络分区自动愈合;消息速率限制;连接速率限制;按分区配置节点;多服务器节点桥接 (Bridge);MQTT Broker 桥接支持;Stomp 协议支持;MQTT-SN 协议支持;CoAP 协议支持;Stomp/SockJS 支持;延时 Publish ($delay/topic);Flapping 检测;黑名单支持;共享订阅 ($share/:group/topic);TLS/PSK 支持;规则引擎;空动作 (调试);消息重新发布;桥接数据到 MQTT Broker;检查 (调试);发送数据到 Web 服务。
EMQ X 目前支持的操作系统:Centos6、Centos7、OpenSUSE tumbleweed、Debian 8、Debian 9、Debian 、Ubuntu .、Ubuntu .、Ubuntu .、macOS .、macOS .、macOS .、Windows Server 。产品部署建议 Linux 服务器,不推荐 Windows 服务器。安装的方式有很多种,可供自由选择:Shell脚本安装、包管理器安装、二进制包安装、ZIP压缩包安装、Homebrew安装、Docker运行安装、Helm安装、源码编译安装。
Dashboard界面查看基本信息。
身份认证是大多数应用的重要组成部分,MQTT 协议支持用户名密码认证,启用身份认证能有效阻止非法客户端的连接。EMQ X 中的认证指的是当一个客户端连接到 EMQ X 的时候,通过服务器端的配置来控制客户端连接服务器的权限。EMQ X 的认证支持包括两个层面:MQTT 协议本身在 CONNECT 报文中指定用户名和密码,EMQ X 以插件形式支持基于 Username、ClientID、HTTP、JWT、LDAP 及各类数据库如 MongoDB、MySQL、PostgreSQL、Redis 等多种形式的认证;在传输层上,TLS 可以保证使用客户端证书的客户端到服务器的身份验证,并确保服务器向客户端验证服务器证书。也支持基于 PSK 的 TLS/DTLS 认证。
EMQ X 支持使用内置数据源(文件、内置数据库)、JWT、外部主流数据库和自定义 HTTP API 作为身份认证数据源。连接数据源、进行认证逻辑通过插件实现的,每个插件对应一种认证方式,使用前需要启用相应的插件。客户端连接时插件通过检查其 username/clientid 和 password 是否与指定数据源的信息一致来实现对客户端的身份认证。(v5.0以上默认集成)EMQ X 支持的认证方式:内置数据源、外部数据库、其他。认证结果:认证成功、认证失败、忽略认证(ignore)。
EMQ X 默认配置中启用了匿名认证,任何客户端都能接入 EMQ X。没有启用认证插件或认证插件没有显式允许/拒绝(ignore)连接请求时,EMQ X 将根据匿名认证启用情况决定是否允许客户端连接。
可以订阅多个主题。
安装 paho-mqtt:导入 Paho MQTT 客户端。
通过TCP连接:设置 broker、port、topic、client_id,连接 MQTT Broker。
通过SSL/TLS连接:设置 broker、port、topic、client_id,连接 MQTT Broker,使用 CA certificate,设置用户名密码。
订阅主题:设置 on_message 回调函数,当收到消息时执行。
取消订阅:通过以下代码取消订阅,此时应指定取消订阅的主题。
发布消息:通过以下代码发布消息,设置消息内容、主题,调用 publish 方法。
接收消息:通过以下代码指定客户端对消息事件进行监听,并在收到消息后执行回调函数,将接收到的消息及其主题打印到控制台。
断开连接:如客户端希望主动断开连接,可以通过如下代码实现。
完整代码:导入 random、time、paho.mqtt.client as mqtt_client,设置 broker、port、topic、client_id,连接 MQTT Broker,设置 on_connect 回调函数,设置 publish 回调函数,运行客户端。
低耗能,小安派-LRW-TH1传感器通用板,一块板即可连接多种传感器!
小安派-LRW-TH1传感器通用板是安信可开源团队推出的一款创新产品,旨在解决家庭设备网络化管理的问题,提升生活便利性。通过这款板卡,用户可以轻松连接各种传感器,如温湿度、烟雾、光照、水浸等,实现安全、智能的家庭环境监测。
连接传感器后,小安派-LRW-TH1能够实时监测并收集数据,例如在烟雾检测时,一旦检测到烟雾数值异常,板卡会立即发出警报,保障人员安全。连接燃气设备时,系统检测到漏气情况,会迅速发出警报,确保家中安全。
AiPi-LRW-TH1传感器通用板专为Ra-H设计,支持I2C、ADC、GPIO等通讯接口,提供电池供电、充电接口,以及拨码开关,便于设备的接入与管理。其通过LoRaWAN协议传输传感器数据,传输距离可达4公里,且在待机状态下的功耗极低,仅为2μA,确保设备持久稳定运行。
这款板卡广泛应用于智慧农业、智慧路灯、智能家居等多个场景,实现高效的数据传输和智能决策支持。通过集成的传感器接口、充电电路、电池拨码开关等设计,小安派-LRW-TH1为用户提供了一站式解决方案,简化了设备的接入和管理过程,提升家庭智能化水平。
为了深入了解和获取更多资源,用户可以访问在线PCB工程地址、查阅官方文档,以及查看源码,以获取详细的使用指南和技术支持。
LoRaWAN网关搭建
搭建LoRaWAN网关的方案使用南京仁珏的LoRaWAN网关开发组件M-GWS-EV。该组件以树莓派的CM3+作为主要处理器,搭载南京仁珏自研的M-GWS射频模块,集成GPS、RJ和4G模块,方便软件开发。
M-GWS-EV的接口包括GPS、RJ和4G模块等,与CM3+的SPI0接口相连接。GPIO7连接到M-GWS的LoRa_PERST管脚,确保硬件接口的正确配置。
搭建过程中,选择使用官方带桌面的Raspberry Pi OS作为运行系统,直接运行CM3+模块。Semtech的官方代码库sx_hal提供快速搭建网关接入LoRaWAN服务器的方案,简化了开发过程。在本地目录下获取gws源码,通过编译工程生成可执行文件,然后安装到CM3+上,执行make install_conf完成配置项的安装。
为了解决复位问题,修改reset_lgw.sh脚本,使用Raspberry Pi OS提供的gpio操作工具替代,确保了启动gwstart.sh脚本的正确执行。配置global.json文件,修改server_address为自建服务器地址,完成基本配置。
接入Chirpstack服务器,通过浏览器登录后台,选择Gateways选项,添加网关的gateway_ID,完成服务器接入。至此,LoRaWAN网关的构建和服务器接入流程全部完成。