安いリレーをWROOM-02, WROOM-32につないでみた

水中ポンプ4台のOn/Offを制御したくてWROOMで動作しそうなリレーを探していたら、amazonでこんなのが見つかりました。たったの500円というお買い得商品です。

4連リレー

amazonで安い電子部品を買うと、中国からの発送になって1〜2週間かかることが多いのですが、こちらの商品はamazon倉庫からの発送で翌日に届きました。

箱の中身

箱の中にはリレーとコネクター用のネジ回しが入っていました。

端子

端子部分

右下に、電源と信号線を接続する端子と、リレー駆動電源を選択するジャンパー端子があります。ジャンパーを取り付けている状態では、VCCに供給した電源をリレー駆動に使います。ジャンパーを取り外してJD-VCCピンに別の電源を接続するとVCCとは違う電源でリレーを駆動できるようになります。

WROOMのGPIOは3.3VなのでVCCには3.3Vを供給します。リレーは5V仕様なので3.3Vだと動作が不安定になります。ジャンパーを外して5Vを供給すればしっかり動くようになります。

 

出力端子

出力端子は、1つのリレーに対して3つ用意されています。

中央と左側の端子に接続すると、リレーが動作していないときは回路が切断状態になり、リレーが動作しているときは回路が接続状態になります。

中央と右側の端子に接続すると、逆の動作になります。

Deep Sleepしたときの動作

このリレーはActive Lowです。信号線がHIGHのときリレーは動作せず、LOWのときリレーが動作します。wroomをdeep sleepさせたときGPIOの出力がLOWになってリレーが動いてしまうのではないかという心配があります。

実際にWROOM-02とWROOM-32で実験してみたところ、deep sleep時にはリレーはOffのままでした。実験に使用した開発ボードは下記のものです。

WROOM-02: スイッチサイエンスESPr Developer

WROOM-32: M5Stack Gray

M5StackにGrove SHT31温度湿度計をつないでみた

Grove SHT31温度湿度計をM5Stackにつないでみました。接続はGroveケーブルを使ってM5StackのGroveソケットに挿しました。

Groveソケット接続

プログラムはSeeed StudioのGrove WikiのSHT31のページにあるライブラリとサンプルコードを使いました。

#include <M5Stack.h>
#include <Arduino.h>
#include <Wire.h>
#include "SHT31.h"

SHT31 sht31 = SHT31();

void setup() {  
  // Initialize the M5Stack object
  M5.begin();

  Serial.begin(115200);
  while(!Serial);
  Serial.println("begin...");  
  sht31.begin();  
}

void loop() {
  float temp = sht31.getTemperature();
  float hum = sht31.getHumidity();
  Serial.print("Temp = "); 
  Serial.print(temp);
  Serial.println(" C"); //The unit for  Celsius because original arduino don't support speical symbols
  Serial.print("Hum = "); 
  Serial.print(hum);
  Serial.println("%"); 
  Serial.println();
  
  M5.Lcd.printf("Temp. = %f  Hum. = %f\n", temp, hum);
  
  delay(1000);
}

変更点は、

  • 1行目に #include <M5Stack.h> を追加
  • 10行目にM5.begin( ); を追加
  • 12行目のボーレートを115200に変更
  • 29行目にLCDへの表示を追加

だけです。LCD表示はスクロールのコードを書いていないので、画面最後の行まで到達したらそれ以降画面更新はありません。

Groveソケットを使わないで、GPIO端子に接続するのも試してみました。接続ケーブルはGrove-4ピン-ジャンパメスケーブルを使い、接続先は、

黄 → SCL(GPIO22)
白 → SDA(GPIO21)
赤 → 3.3V
黒 → GND

としました。

GPIO端子に接続

こちらも問題なく動作しました。