延續上一篇文章,我接下來要完成光照部分的感測,我使用的是bh1750,I2C數字感測模組
考慮到光敏電阻在陽光下無法分辨出差別,我使用比較精準的感測模組,可以實際放在互外。
低光強度下的數值比較不穩,但是超過100後就呈線性變化,應該感測出來的數值會蠻穩定的。
開始寫code前我找到這篇github:Micropython bh1750 i2c digital light sensor driver
但這不能直接使用,必須先改成ePy-Lite的I2C協定,所以我再次地請教吳老師
這邊特別感謝吳老師大力幫忙,在星期五的晚上幫我修改庫,並寫了簡單的測試碼給我測試。
另外,我需要製作一個電源模組讓ePy-Lite可以獨立在室外運作
我買一個3.7聚合物鋰電池、2A5V充放電模組,本來還有一個5V太陽能板,但一開箱就發現太陽能板已破裂無法使用,傻眼。經過焊接、裝塑膠柱和測試之後一切正常!
接下來我們來寫code
第8、11和14行為初始化I2C,因為ePy-Lite-X V1上的I2C0已經被OLED與HTU21D占用,所以我把BH1750接在I2C1。
第21~23行為宣告感測溫度、濕度和亮度的變數
第31行和第40是一個黑色矩形,單獨把感測的數值更新,OLED上其他固定的部分就不更新。
這樣做只是單純我不喜歡畫面因為更新而有閃頻的現象。
剩下就是把感測的單位放在適當的位置。
完成圖如下,測試的影片在這邊
接下來我們就可以來試試其他的應用,我要把數值丟到app inventor上使用,或者可以使用MQTT來傳送資料!