基于ACSip S76S使用LoRa技术的智慧家庭无线-照明统计与调配方案

家庭智慧化是我们一直以来努力的目标,市面上也出现很多智能的产品,大抵可以分为两类
一类是大场作品如华硕、Google、Apple小米等等
一类是独立购买的单一功能产品,如无线门铃、智能插座、无线灯控等等
大厂作品的好处是系统整合完整,可以互相支持连动,但是缺点也很明显,就是『天地万物﹐朕赐给你的才是你的﹐朕不给﹐你不能抢。 』,就是大厂没出的你就不能用。独立购买单功能的好处是想要什么买什么,但是缺点就是,没有整合,当设备一多起来,光遥控器就要搞死你

这个系列就要要来合并上面两个优点整合起来,将家里会用到的设备全部无线化,又有统一的接口可以管理。既然讲到无线,当然要提到最适合DIY应用的LoRa无线技术LoRa有4大优点: 
1.使用Sub1GHz频段,绕射能力强,传输距离长,全家都收的到
2.尺寸小巧,而且省电,不用常常换电池
3.市面上唯一可以建构网络的IOT技术,适合家庭应用
4.设计图与code原厂都开放网络可以查询,建置成本低廉

这次为了简化开发难度我们使用诠鼎代理群登的LoRa模块S76S。S76S的好处是尺寸小巧,只有11mm x 13mm,而且有开发版,脚位有外拉出来,方便开发。之前的第一系列温湿度计无线化帮助我们有了第一个无线的产品跟平台,现在就来第二集: 智慧家庭无线化二:照明统计与调配

目标:
1. DIY制作包含LoRa模块的照度计
2. 接收小主机要可以使用计算机,手机监看,并作数据统计
3. 要可以一个小主机接收多个照度计
4. 可以整合第一集的温湿度数据

使用组件:



 
  延伸阅读    基于ACSip S76S使用LoRa技术的智能家庭无线温湿度侦测方案

  延伸阅读    基于ACSip S76S使用LoRa技术的智能家庭无线-室内空气质量侦测方案



实作:
一、传感器端硬件设置:

使用的光照感应IC是BH1750,这里为了演示方便,使用现成的模块GY-30来实作
将GY-30的VCC接Arduino的3.3V脚位,SCL接到NANO的A5,SDA接到NANO的A4,GND直接接地
S76S的3.3V脚位接到UNO的3.3V,TX、RX脚位分别接到UNO的pin0跟pin1,GND接地
接线示意图如下

实际接线图如下


二、ATMEGA328跟照度计读取设定:
使用Arduino的好处是可以有链接库可以直接呼叫而且还是以面向对象的方式撰写
宣告与启动设定画面



GY-30里面的ADD脚位是用来设定I2C地址的
如果有输入电压超过0.7V的话地址是0X5C,低于0.7V的话地址则是0X23,预设为0X23
BH1750 lightMeter(0x23);

有一点比较要注意的地方是
BH1750两种测量模式,分为一次量测与连续量测,两种模式又各自细分为三种精细度,所以总共有6种模式
-低分辨率模式-(4 lx精度,16ms测量时间)
-高分辨率模式-(1 lx精度,120ms测量时间)
-高分辨率模式2-(0.5 lx精度,120ms测量时间)
预设为:连续量测-高分辨率模式-(1 lx精度,120ms测量时间)

// begin returns a boolean that can be used to detect setup problems.
if (lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE)) {
Serial.println(F("BH1750 Advanced begin"));
}
else {
Serial.println(F("Error initialising BH1750"));
}


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

设定如下:
详细设定可以参考第一集或是可以看附件的手册

我们这里直接写好子函式,呼叫就可以设定设定

四、ATMEGA328+照度计+LoRa:


以上全部设定完成之后,以Arduino端只要做一件事情,就是将GY-30收到的数据透过S76S送出去,因为这是照度计,不需要控制,所以只要单向传送就可以了。
数据传送子函式


传感器端主程序

完整的程序代码请看附件



五、接收器端硬件设置:

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

实际接线图如下


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


七、ESP-32S设定:

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



启动设定



网络校时子函式


网络传送子函式:

主程序:

展示:

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

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

第二步就是将数据显示出来就大功告成了
如下图

附件档案列表

►场景应用图

►展示板照片

►方案方块图

►核心技术优势

1: 感测器端 : 此处我们是使用 GY-30 (BH1750FVI)模组,传感器内置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℃ ~~~微型数位光强度光照感测模组~~~ ◎ 感测芯片:ROHM原装BH1750FVI芯片 ◎ 电源:DC3 ~ 5V ◎ 感测范围:1 ~ 65535 Lux ◎ 感测器内置16bit,AD转换器直接数位输出,省略复杂的计算 ◎ 不区分环境光源、接近于视觉灵敏度的分光特性 ◎ 可对广泛的亮度进行1Lux的高精度测定 ◎ 具有低电流断电保护 ◎ 受到红外线影响非常小

技术文档

类型标题档案
操作手册User Manual
硬件Schematics + PCB