高通台灣AI黑客松|競賽說明會
|

【自造DIARY】micro:bit 空氣盒子製作教學(上篇)

   

作者:創客萊吧 MakerLab

本篇文章教大家用 micro:bit 製作空氣盒子,空氣感測、溫度、濕度一應具全,有興趣的人一起做看看吧!

曾有人用 Arduino 、 NodeMCU 與 LinkIt7697 各製作了可以偵測 PM2.5 、溫度與濕度的版本的空氣盒子,並將資料透過 Wi-Fi 放在 ThingSpeak 上,那若換成 micro:bit 能不能成功呢?答案是當然可以,馬上來看看製作教學吧!

所需材料:

  1. micro:bit x1
  2. MbitBot x1
  3. 0.96 OLED 顯示螢幕 x1
  4. ESP-12F 模組(需改成 5V ) x1
  5. 震動感應器 x1
  6. PMS3003(G3)x1(需將 VCC、 GND、 SET 與 TXD 的線拉出製成杜邦公端)
  7. Micro USB 數據線
  8. DHT11下列線材與螺絲請視自己使用的各模組接口與螺絲孔而定。
  9. Grove 母座雙頭線 x2
  10. Grove 母座 to 母端杜邦線 x3
  11. 固定用螺絲螺帽與外殼(可自行設計)

注意事項:

在所需材料中有特別提到要將 ESP-12F 修改成 5V  ,因為 MbitBot IO 的電壓接近 5V ,直接接上 ESP-12F 可能會損壞。修改非常簡單,一般購買的 ESP-12F 會附贈一個轉板,將 ESP-12F 焊在轉板後,在轉板的背面焊上一顆 AMS1117( 3..3V ) ,並將正面中間那顆電組解焊就完成了,記得將轉板焊上連接用的排針。

至於空氣品質感測器 PMS3003 的部份,需將線拉出製成杜邦公端,只需將 VCC 、 GND 、 SET 與 TXD  的線拉出即可, PMS3003 的接口標示如下:

VCC、GND 是用於供電,TXD 的線是傳輸偵測值,SET 可設定是否進入低功耗模式(圖片來源:創客萊吧提供)

連接時間:

MbitBot 上面有八個接口,分別將各個模組如下圖位置連接,程式示範將會以下圖接的位置來撰寫。

MbitBot 有8個接口(圖片來源:創客萊吧提供)

每個模組除了 VCC 與 GND 接在 MbitBot 各個接口的 5V 與 G 的位置外,其餘訊號線的連接如下描述:

  1. PMS3003 的 TXD 接在 MbitBot 的 P1 , SET 接在 P2 。
  2. DHT11 的訊號接在 MbitBot 的 P5 。
  3. ESP-12F 的 RXD 接在 MbitBot 的 P15 , TXD 接在 P16 。
  4. OLED 的 SDA 接在 MbitBot 的 SDA, SCL 接在 SCL 。
  5. 震動感應器的訊號接在 MbitBot 的 P13 。

組裝完成的樣子(圖片來源:創客萊吧提供)

程式示範:

確認接線無誤就可以來撰寫程式囉,首先打開 MakeCode 並安裝 MbitBot 的程式庫,沒使用過 MbitBot  可以參考:

https://www.makerlab.tw/blog/categories/micro-bit%E7%B3%BB%E5%88%97

目前安裝最新的 MbitBot 程式庫同時也會自動搜尋並安裝 OLED 與 Neopixel 兩個程式庫。

安裝MbitBot程式庫時便會自動搜尋、安裝OLED 與Neopixel (圖片來源:創客萊吧提供)

第一步先讓感測器的值顯示在螢幕上,點選 OLED 並拉出初始化設定的積木「initialize OLED with height 64 width 128」 這個積木,並放到當啟動時。

將「initialize OLED with height 64 width 128」 這個積木,放到「當啟動時」(圖片來源:創客萊吧提供)

新增五個變數並點選 MbitBot 拉出 PMS3003 與 DHT11 的值,將數值放入變數內,再放到重複無限次,這一步是為了一口氣將所有數值讀取出來,記得選擇所接的接口編號喔。

這一步驟是為了將所有數值讀取出來,別忘了選擇所接的接口編號(圖片來源:創客萊吧提供)

接下來將感測器數值透過螢幕顯示出來,點選 OLED 並拖曳出如下圖所示的程式積木,內容是先清除螢幕並新增標題為「 AirBox 」,透過「 insert newline 」這個積木可以空一行,並依序新增標題與數值。

新增標題「 AirBox 」,並利用「 insert newline 」這個積木空一行(圖片來源:創客萊吧提供)

後面依序新增標題與數值(圖片來源:創客萊吧提供)

這時可以暫停一秒來做個測試,如果接線無誤,下載程式到 micro:bit 應該就會顯示了。因為讀取程式需要時間,所以開機後要耐心等待個幾秒鐘,螢幕才會顯示,不過如果等超過 10 秒還沒顯示就代表是錯誤,請不要再癡癡等待。

螢幕顯示就代表接線成功(圖片來源:創客萊吧提供)

上傳 ThingSpeak

接下來我們就將感測器的數值送上 ThingSpeak 吧!不想傳到網路上的夥伴可以跳過這段,關於 ThingSpeak 的註冊與使用這邊就不贅述了,不知道的夥伴可以 Google  一下。因為我們總共有 5 個數值( PM1.0 、 PM2.5 、 PM10 、溫度與濕度),所以要在自己的 Channel 增 5 個 Chart ,這裡用的排序是 PM1.0 、 PM2.5 、 PM10 、溫度、濕度。

回到 MakeCode ,先刪除暫停一秒的程式,點選 MbitBot 並拖曳出如下圖的兩個積木,第一個 ESP8266  程式積木記得選擇連接的接口,並在 SSID 與 KEY 填入您的 Wi-Fi 帳號密碼,第二個 Upload ThingSpeak 程式積木請在 API Keys 的位置填入您 ThingSpeak Channel 的 Write API Key ,並依照 Chart 的排序在下方欄位放入感測器讀值,因為只有 5 個,其餘的空著即可。

點選 MbitBot 並拖曳出兩個積木(圖片來源:創客萊吧提供)

因為連接與上傳需要時間,所以程式積木本身已內含所需的延遲時間,所以不需要再額外新增暫停的積木。將上述程式下載到 micro:bit ,耐心等待一段時間後應該就能在 ThingSpeak 上看到自己的資料囉!

程式積木本身已包含所需的延遲時間,所以不需再新增暫停的積木(圖片來源:創客萊吧提供)

如果您過了幾分鐘都看不到資料,或是是因為您的 Wi-Fi 較弱,程式內建的時間太短,還來不及連不上 Wi-Fi ,程式就執行下一步了。可以在剛剛新增的 ESP8266 程式積木下方加入暫停時間,如下圖所示。

看不到有可能是 Wifi 問題,可以另外新增暫停時間(圖片來源:創客萊吧提供)

除了顯示與上傳,當然也要亮個燈讓 Micro:bit 直覺顯示空氣品質概況,我們就以PM2.5 的值來作為顯示什麼顏色的依據吧!

首先點選左邊選單的 Neopixel 並拉出如下圖的積木新增到當啟動時,並設定 pin 為 P12 (因為 MbitBot 上的 RGB 燈是連接在 P12 喔),後方輸入 4 是因為我們有 4 個 RGB LED ,並拉出設定亮度的積木「 strip set brightness 」將光線調弱一點。

設定 pin 為 P12 是因為 MbitBot 上的 RGB 燈是連接在 P12(圖片來源:創客萊吧提供)

接下來新增一系列的如果…否則…邏輯積木,將透過偵測 PM2.5 的數值大小分為 4 種顏色,顯示顏色的積木「 strip show color 」在左側積木列的 Neopixel 裡。

透過偵測 PM2.5 的數值大小分為 4 種顏色(圖片來源:創客萊吧提供)

您也可以新增 micro:bit 的表情讓空氣盒子的表達更生動。

添加可愛的表情讓空氣盒子更加活潑生動吧(圖片來源:創客萊吧提供)

新增完成後下載到 micro:bit 裡就能如下圖般顯示囉!

空氣盒子大功告成(圖片來源:創客萊吧提供)

本篇的完整範例程式:

https://makecode.microbit.org/_W0qPPk4Fg3xu

小結

這次的教學介紹就到這裡,基本上該有的功能都已經在本篇完成了,之後會再教大家如何使用 PMS3003  與 ESP-12F 的低功號模式,並加入震動感測器的功能,大家先動手做做看,完成本篇的進度吧!

(本文轉載自創客萊吧原文連結;責任編輯:楊子嫻)

CIRCUS Pi

訂閱MakerPRO知識充電報

與40000位開發者一同掌握科技創新的技術資訊!

Author: CIRCUS Pi

分享有趣的創作與教學,提供Maker們創作的軍火庫,DIY 零件 | 套件| 工具,官網連結

Share This Post On
468 ad

Submit a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *