XinaBoxとZerynthで卓上扇風機を制御しよう
Follow project
部品リスト
Qty | Product | 品番 | |
---|---|---|---|
1 | XinaBox インターフェース開発キット USB Programming Interface モジュール for FT232R | 174-3703 | |
1 | WI-FI & BLUETOOTH コア(ESP32),CW02 | ||
1 | OC03レイアウトXinaBox モジュール for PCA9554A | 174-3715 | |
1 | XinaBox BME280 高性能気象センサー | 174-3744 | |
1 | BTB AVX 2mmピッチ 10極 2列 ストレート SMT オス カードエッジコネクタ カードエッジ | 174-4977 | |
1 | Zerynth Studio | ||
1 | ベル線 | ||
はじめに
XinaBoxのモジュール型でコーディングしやすいハードウェアを使えば、はんだ付けや配線またはハードウェアの知識がなくても、数分で電子回路を作成できる。
このチュートリアルでは、ソリッドステートリレー(xChip OC03)を介したデスクファンの制御を目的として、気温データを取得できるBosch BME280気象センサー(xChip SW01)の使用方法を説明する。今後の記事では、Zerynthアプリを使用して、無線かつリアルタイムでより高度にファンを制御する方法について説明する予定だ。
ハードウェアのセットアップ
図1の写真のようにxChipを接続する。このとき、xChipの名前とXinaBoxのロゴがすべて同じ側から見えるように配置する。
IP01 xChipのスイッチが「B」および「DCE」の位置にあることを確認する。
図1: xChipを接続した様子 図2: xChipとファン
ベル線をOC03の端子に接続する。図2に示すように、ファンのUSB電源線のどちらかを切断し、ベル線と端同士を接続してスイッチを作成する。
Zerynthのセットアップ
Zerynthの使用経験がある場合は、デバイスを仮想化して[Connecting the Device]セクションに進む。
初めてZerynthを使用する場合は、次の手順に従ってセットアップをおこなう。
- まずZerynth Studioをダウンロード&インストールする。不明な点があれば、インストールガイドを参照してもらいたい。Zerynth Studioは、DesignSparkエンジニアリングコミュニティのポータルから「DesignSpark Zerynth Studio」バージョンとしても利用でき、使用者はツールのダウンロードとライセンスの追加購入がしやすくなる。
- 入門ガイドに沿って進める。Connect, Register and Virtualise your Deviceの節は特に注意して作業する。
- 使用中のデバイスがXinaBox CW02(ESP32)ボードとしてZerynth Studioで正しく仮想化(virtulized)されたら、次のステップに進む。
デバイスのプログラミング
プロジェクトを作成し、Zerynth Studioのプロジェクトのmain.pyタブで、次のコードをコピーしてボードに書き込む。
# Temperature Controlled Desk Fan
# Created at 2018-10-03 by Daniel Berman, XinaBox
# Turn on fan via OC03 when SW01 temp > a set temperature (here 25 degrees Celsius)
# import xChips and settings
import streams
streams.serial() # opens serial monitor
from bosch.bme280 import bme280
SW01 = bme280.BME280(I2C0, 0x76, 100000)
from xinabox.oc03 import oc03
OC03 = oc03.OC03(I2C0)
OC03.start()
OC03.init()
pinMode(D26,OUTPUT) # defining CW01 LED output
temp_threshold = 25 # setting threshold temperature for fan operation
# loop forever
while True:
tempC = SW01.get_temp()
if tempC > temp_threshold:
OC03.writePin(True) # turn on OC03 relay
digitalWrite(D26, HIGH) # turn the CW01 LED ON by setting the voltage HIGH
print("Temperature sensor shows " + str(tempC) + ", which is above the threshold of " + str(temp_threshold))
sleep(2000) # wait for 2 secs
else:
OC03.writePin(False) # turn off OC03 relay
digitalWrite(D26, LOW) # turn the CW01 LED OFF by setting the voltage LOW
print("Temperature sensor shows " + str(tempC) + ", which is below the threshold of " + str(temp_threshold))
sleep(2000) # wait for 2 secs
図3: Zerynth Studioのスクリーンショット
実行中、設定されたしきい値を測定温度が上回っているか下回っているかに応じて、シリアルモニターにはいずれかのprint文の結果が表示される(図4を参照)。 これは、if文が正常に機能していることを確認し、温度データを確認するのに役立つ。したがって、センサー情報がCW01によって適切に受信され、Zerynthによって正しく受信されていることがわかる。
温度がしきい値を超えると、CW01 LEDが点灯し、OC03を含む回路が完成しファンがオンになる。
図4: シリアルモニタの出力
以下のビデオは、ファンの動作の様子を示している。 最初は、ファンによって温度センサーの測定値が下がるため、ファンはまたすぐにオフになる。 風がセンサーに当たらないようにファンを配置すると、センサーの測定温度は25℃を超えたままになり、ファン(およびLED)はオンのままになる。
さらに情報が必要であれば、 Espressif Systemsが公開したXinaBoxデバイス用のZerynthチュートリアルに関するブログ上の記事を参照してほしい。スキルレベルによらず誰もがチェックするべき、整理された有用な情報が紹介されている。
コメント
ログインしてコメント