基於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去做畫面演示

第一步:先將流程圖一一拉出來設定好:
如下圖

第二步就是將資料顯示出來就大功告成了
如下圖

附件檔案列表

►場景應用圖

►展示板照片

►方案方塊圖

►架構圖Sensor

►核心技術優勢

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