基于ACSip S76S使用LoRa技术的智慧家庭无线-智慧插座方案

家庭智慧化是我们一直以来努力的目标,市面上也出现很多智慧的产品,大抵可以分为两类
一类是大场作品如华硕、Google、Apple小米等等
一类是独立购买的单一功能产品,如无线门铃、智慧插座、无线灯控等等

大厂作品的好处是系统整合完整,可以互相支援连动,但是缺点也很明显,就是‘天地万物﹐朕赐给你的才是你的﹐朕不给﹐你不能抢。 ’,就是大厂没出的你就不能用独立购买单功能的好处是想要什么买什么,但是缺点就是,没有整合,当设备一多起来,光遥控器就要搞死你

这个系列就要要来合并上面两个优点整合起来,将家里会用到的设备全部无线化,又有统一的界面可以管理。既然讲到无线,当然要提到最适合DIY应用的LoRa无线技术,LoRa有4大优点
1.使用免授权费就可以使用的Sub1GHz频段,绕射能力强,传输距离长,全家都收的到
2.尺寸小巧,而且省电,不用常常换电池
3.市面上唯一可以建构网路的IOT技术,适合家庭应用
4.设计图与code原厂都开放网路可以查询,建置成本低廉
这次为了简化开发难度我们使用诠鼎代理群登的LoRa模组S76S。S76S的好处是尺寸小巧,只有11mm x 13mm,而且有开发版,脚位有外拉出来,方便开发。

前三集有温湿度统计、照明统计与空气品质统计
都是单方面的接收资讯,接下来我们就开始进阶
在第四集中加入了双向互动,除了可以收集电力资讯之外,还可以远端控制

请看: 智慧家庭无线化四:智慧插座无线化

目标:
1. 电力控制
i. 透过继电器模组控制电力开关来控制是否供应电力
ii. 整合网路校时进而提供定时开启与关闭
2. 电流监控
i. 透过 ACS712 电流感测器模组进行使用电流之监控
ii. 透过 ACS712 电流感测器模组进行电流负载控制
4. 整合云端系统
i. 整合 Node-Red,提供云端控制电力开关的能力
ii. 整合 Node-Red,提供云端使用电流之监控

使用元件:


实作:
一、感应器端硬体分析与设置一:
电流侦测:
一般来说要侦测电流,主要的重点当然是电流侦测电路,但是以常用的50A来说,都必须将之等比例下降到安全范围内(约500mA)来侦测,一来比较安全,二来就可以使用一般的元件,不用特制元件,降低成本。
为了做到这一点一般电流侦测元件都会用类比数位转换 IC,就 是所谓的 ADC,然后从线上的电阻分压取出压降,再从 ADC 转换出相对的数值,因为要记录数值与曲线,所以我们采用这样的做法。

电流感测模组数值的误差与校正:
为了测试方便我们采用Allegro ACS712 电流感测模组来加快速度与简化流程,但是一般的电流侦测模组都无法读取电压的负值,以至于数值都会不正确,要解决这个问题有硬体跟软体两种解决方案,硬体为输入端加一个桥氏整流电路将频率变为两倍,来解决这个问题,软体方案就是,直接利用程式做校正,我们这里使用软体方案:我们利用电压差来计算补偿电压频率周期变化与消除杂讯,成功将误差压到30mA,但是还是太高,参考网路资料后,决定使用使用 方平均数(Quadratic mean),简称方均根(Root Mean Square,缩写为 RMS), 是 2 次方的广义平均数的表达式,也可叫做 2 次幂平均数。来计算,修正后差异值已经降到满意的10以内,于是利用电流均方差来计算最终耗电的瓦特值
(资料来源可以参考 WiKi 平方平均数
http://zh.wikipedia.org/wiki/%E5%B9%B3%E6%96%B9%E5%B9%B3%E5%9D%87%E6 %95%B0)
请参考图片
修正前每次量测的数值差异很大,最多可以相差到30


利用电压差来计算补偿电压后, 误差已经低于10以内


Sensor_宣告+设定


电流读取子涵式


计算方均根子涵式




二、感应器端硬体分析与设置二:电源控制
一般来说,要做电源控制使用继电器是一个简单、低成本整合性强的解决方案,利用小电力来控制大电力的开关在日常生活到处见的到。例如:电风扇的切换、灯泡的开关切换等等,在工业的应用上为了维护与安装的方便,会使用插拔试继电器模组配合继电器底座使用,我们这里为了方便演示,使用的是市面上买的继电器模组,这个模组还有包含光耦合隔离线路,以免110V的大电影响到5V的控制设备

内部接线图如下:


接线示意图如下

实际接线图如下




三、S76S设定:
S76S使用的是群登P2P的程式码
这个程式码的特点是已经定义好他的群组为1个Master对32个Slave,每一个Slave占用的时间为0.5秒,所以询问完一个群组为16秒钟
32个Slave的设计是适合智慧家庭的
架构图如下:


设定如下:
详细设定可以参考第一集或是可以看附件的手册
我们这里直接写好子函式,呼叫就可以设定设定


四、ATMEGA328+电流计+固态继电器+LoRa:
以上全部设定完成之后,Arduino端就需要同时做两件事情,一是将计算过的耗电资料透过S76S送出,二是监听与分析S76S收到的资料是否包含控制指令,如果有收到控制指令,则透过固态继电器去控制智慧插座的开关,并同时将状态反馈

资料传送子函式


感应器端主程式

完整的程式码请看附件



五、接收器端硬体设置:

将S76S的3.3V与GND分别接到ESP-32S左右两边的pin19,再将S76S的TX、RX分别接到ESP-32S的pin17与pin16

接线示意图如下


实际接线图如下



六、S76S设定:
S76S的设定同上,差别是,改成设定为Master,在启动即可
一样已经写成子函式直接呼叫即可设定
S76S_Master设定子函式



七、ESP-32S设定:

ESP-32S的部分,一样可以利用ARduino编辑程式,
实际操作说明:
宣告设定


启动设定



网路校时子函式


网路传送子函式:


主程式:


展示:
因为这个方案是利用ESP-32S将资料用UDP的方式丢出 所以接收端就非常自由,只要可以接收UDP讯号的设备都可以当作 接收界面
在这里是用IBM开发的Node-Red去做画面演示

第一步:先将流程图一一拉出来设定好:
如下图



第二步跟第三部 就是将资料显示出来并且利用Node-red做反向控制
利用按下Switch的按钮,手动关闭电源,下图分别代表开启跟关闭


►场景应用图

►产品实体图

►展示板照片

►方案方块图

►核心技术优势

1: 感测器端 : 此处我们是使用电流侦测模组(ACS712),传感器内置16bitAD转换器,直接数位输出,经度可以到小数点以下2位。 2: 微处理器端 : 利用 ATMEGA328 微处理器之I/O 埠在接收到温湿度的资料以UART传送至LoRa模组。 3: LoRa无线传输端 : 使用协力厂商所制造之 S76S 模组,使用其高抗杂讯及高灵敏度特性来连接两通讯端。其通讯界面为UART,所以只要使用AT command就可以传送资料。 4: 接收端 : 使用ESP-32S这颗带MCU+Wifi+BT模组,将资料转成UDP讯号送出 5: 用户界面 : 使用者借由内部网路可在手机或是电脑端使用任何软体接收与显示资料。

►方案规格

~~~ LoRa ~~~ ◎ 型号: S76S ◎ 使用芯片 : SEMTECH LoRa SX1276 + ST STM32L073 ◎ 频率 : 863-870, 902-928MHz ◎ 传输界面 : UART ◎ UART波特率 : 38400/115200bps ◎ 工作电压 : 2.4V〜3.3V ◎ 电流消耗 : 接收:17.5 mA,发射:127 mA,睡眠:5uA ◎ 输出功率 : +20dBm ◎ 资料速率:146 ~ 37500bps ◎ 接收灵敏度 : 109 ~ -137dBm ◎ 工作温度 : -40°C~85°C ◎ 尺寸 :13毫米x 11毫米x 1.1毫米 ~~~ WiFi模组 ~~~ ◎ 基于ESP32 芯片组 ◎ WiFi : 802.11g/n ◎ 频率 : 2.4GHz ◎ 天线 : 电路板天线 ◎ 尺寸:14.3 x 24.8 x 3毫米 ◎ 电流消耗 : 接收:80~90 mA, 发射(13dBm~21dBm):160 ~ 260 mA, 睡眠:0.15 ~ 0.9mA ◎ 工业温度范围为-40℃至+ 85℃ ~~~电流侦测模组~~~ ◎ 芯片:ACS712ELCTR-20A。 ◎ 工作电压:5V。 ◎ 工作电流:10mA ◎ 工作温度:-40~85 ◎ 尺寸:18mm×36mm×11.6mm ◎ 模组可以测量正负 20 安电流,对应模拟量输出 100mV/A; ◎ 没有检测电流通过时,输出的的电压是 VCC/2; ◎ Low-noise 类比信号 ◎ 5 μs 输出回应上升时间 ◎ 总输出 50 kHz 频宽, 1.5% 错误率 ~~~固态继电器~~~ ◎ 芯片:松乐 SRD-05VDC-SL-C ◎ 特点:光偶合隔离与高低电位触发(可调整) ◎ 工作电压:5V ◎ 工作电流:5mA ◎ 额定负载:10A 125VAC/10A 250VDC/10A 28VDC/10A 30VDC ◎ 工作温度:-30~80(未结冰,表面无水珠) ◎ 尺寸:26mm × 50mm

技术文档

类型标题档案
操作手册User Manual
硬件Schematics
软件INO