剛拿到鈜鉅科技的擴充板ePy-Lite-X V1,趕快來時做一個專題
為了可以搭配之後的追日裝置,我先製作一個簡易的感測專題。
我想要感測環境的溫濕度和照度,並可以做到太陽能充電,獨立放在室外的裝置。
這次使用的是比較精準的感測模組:溫溼度我使用的是HTU21D,採用I2C傳輸數據,照度的部分我使用的是BH1750,也同樣採I2C的方式傳輸數據。
將感測的數據print在OLED上!
下圖是ePy-Lite-X V1的功能,是不是很齊全!之後會再跟大家介紹V2擴充板
感測模組HTU21D:
供電電壓:1.5V—3.6V
濕度測量範圍:0—100%RH
溫度測量範圍:-40℃—105℃
最大消耗功率:2.7uW
通信方式:I2C
濕度精度範圍(10%RH to 95%RH):HTU21D±2%RH
濕度遲滯:±1%RH
測量時間:50ms
年漂移量:-0.5%RH/year
響應時間:5 s
我們會需要兩個函式庫,一個是ssd1306.py,另一個是htu21d.py
接著我使用的是Thonny進行python編譯。
再請教請教吳奇峯老師之後,吳老師很慷慨地提供他的武功秘笈給我
就是中文字庫!
吳老師自己編譯了一個可以進行字碼轉換的ssd1306.py函式庫,讓我我可以透過chinese_font.bin中進行中文字的轉碼,隨後在OLED上顯示中文字!
再者,這個chinese_font.bin檔可以直接裝在ePy-Lite中,所以基本上可以轉出想要的中文字,超級方便!
七月底吳老師更會教學如何顯示不同國家的文字!課程連結在此。
在ePy-Lite-X V1擴充板上有兩個I2C0的位置,剛好可以給OLED與htu21d,對應下圖的腳位圖,我們可以知道是位在GPIO 16與GPIO 17,鮑率為100000
第15與第16行分別是讀取溫溼度感測值
第17號我把刷新給註解掉的原因是我本人不喜歡螢幕畫面出現刷新時的閃屏,所以我在第19行加入一個為黑色填滿的矩形,每次刷新數值時,矩形的大小剛好蓋住溫濕度變化的數值,其語法為fill_rect(X0,Y0,矩形長度,矩形寬度,顏色)所以當數值改變時,黑色的矩形會先把舊的資料蓋掉,然後再顯示新的數值。
第21行是顯示°C的「°」,我用一個點來替代,並放在剛剛好的位置,畢竟這是特殊符號。
接下來會再把光照加入,同樣是I2C感測應該不會出問題。