このページの目次
ショップ
- https://www.amazon.co.jp/dp/B0C6FW4HWQ
- https://www.amazon.co.jp/dp/B0C5VDPFNM
- ESP32-C3M-SLIMとのセット
取扱説明書
製品概要
各種のマイクロコントローラで使用できるセンサーと表示器の搭載ボードです。信号電圧が3.3Vのマイクロコントローラを使用したプロトタイピングで入出力用にご利用いただけます。弊社の各種ESP32/ESP8266開発ボードやRaspberry Pi Pico/RP2040開発ボードなどと組み合わせてご利用いただくことができます。
SENSOR-PLUSの上部にはピンソケットが搭載されており、マイクロコントローラの信号をジャンパー線などで接続して使用することができます。また、そのピンソケットの上にはピンヘッダを装着できるようになっており、ピンヘッダを基板の裏側に装着しブレッドボードに挿して使用することもできます。
SENSOR-PLUSは、多様なプロトタイピングで使用される代表的な入出力デバイスを搭載しており、入出力デバイスを利用した簡単な実験は、マイクロコントローラとSENSOR-PLUSのみで行うことができます。
また、様々なプロトタイピングを行う際に、多用する入出力デバイスはSENSOR-PLUSに搭載されているので、ブレッドボード上には新たに試作したい回路のみを作成し少ない労力で効率よく実験することができます。以下にESP32-C3M-SLIMにSENSOR-PULSを接続し、ブレッドボードに乗せた例を示します。
ESP32-C3M-SLIMとESP32-SLIMでは、ESP32モジュールのそばに配置されている信号端子にピンソケットを取り付けることにより、ブレッドボード上の配線と独立して、SENSOR-PLUSと接続して使用することができます。
SENSOR-PLUSの搭載入出力デバイスを紹介します。
- OLEDディスプレイ (ssd1306)
- タクトスイッチ2個
- WS2812タイプのカラーLED3個
- 圧電スピーカー
- 温度、湿度センサー (AHT21)
- 加速度センサー (KXTJ3-1057)
- 明るさセンサー (フォトトランジスタ)
通常は見えませんが、加速度センサーは、OLEDディスプレイの下の基板中央部に取り付けられています。
ESP32-C3M-SLIMでのMicroPythonプログラム例
OLEDディスプレイに気温・湿度センサーAHT21で得られた気温と湿度、明るさセンサー(フォトトランジスタ)で得られた明るさを表示するプログラム例です。
from machine import Pin, I2C、ADC
import time
import ssd1306
import ahtx0
i2c = I2C(0, scl=Pin(9), sda=Pin(8), freq=400000)
oled = ssd1306.SSD1306_I2C(128, 64, i2c) # OLEDディスプレイ
aht21 = ahtx0.AHT20(i2c) # 温度・湿度センサー
brt = ADC(Pin(2)) # 明るさセンサー
while True:
oled.fill(0)
oled.text("TEMP: " + str(round(aht21.temperature,1)),0,0,1)
oled.text("HUM: " + str(round(aht21.relative_humidity,1)),0,16,1)
oled.text("BRT: " + str(round(brt.read_u16()/65535,3)),0,32,1)
oled.show()
time.sleep_ms(1000)
# CTRL-Cで終了
MicroPythonでのプログラミングは、下記のリンクをご参照ください。
ESP32-C3M-SLIMでのArduinoプログラム例
OLEDディスプレイに気温・湿度センサーAHT21で得られた気温と湿度、明るさセンサー(フォトトランジスタ)で得られた明るさを表示するプログラム例です。
#include <U8x8lib.h>
#include <Adafruit_AHTX0.h>
U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE);
Adafruit_AHTX0 aht;
void setup() {
pinMode(21, OUTPUT) ; // 圧電スピーカーのノイズ止め
u8x8.begin();
u8x8.setFont(u8x8_font_amstrad_cpc_extended_r);
u8x8.clearDisplay();
aht.begin(); // AHT21の初期化
}
char tstr[20];
void loop() {
sensors_event_t humidity, temp;
aht.getEvent(&humidity, &temp); // AHT21から湿度と温度の取得
u8x8.draw1x2String(0, 0, "TEMP: ");
dtostrf(temp.temperature, 4, 1, tstr); // sprintf は実数の変換ができない
u8x8.draw1x2String(6, 0, tstr);
u8x8.draw1x2String(10, 0, "'C");
sprintf(tstr, "%2d%%", (int)humidity.relative_humidity);
u8x8.draw1x2String(0, 2, "HUM: ");
u8x8.draw1x2String(5, 2, tstr);
u8x8.draw1x2String(0, 4, "BRT: ") ;
dtostrf(analogRead(2)/4095.0, 4, 2, tstr); // sprintf は実数の変換ができない
u8x8.draw1x2String(5, 4, tstr);
delay(1000);
}
Arduinoでのプログラミングは、下記のリンクをご参照ください。