DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

XinaBoxとZerynthで卓上扇風機を制御しよう

このチュートリアルでは、ソリッドステートリレー(xChip OC03)を介したデスクファンの制御を目的として、気温データを取得できるBosch BME280気象センサー(xChip SW01)の使用方法を説明する。XinaBoxとRSのパートナーであるZerynth Studioを使用してPythonでプログラムした。

Parts List

Product
See more products

はじめに

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を使用する場合は、次の手順に従ってセットアップをおこなう。

  • 使用中のデバイスが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チュートリアルに関するブログ上の記事を参照してほしい。スキルレベルによらず誰もがチェックするべき、整理された有用な情報が紹介されている。

I love technology and am Co-Founder of modular electronics company, XinaBox.