Arduinoのプロジェクトをさがす
初級から上級まで、回路図・コード・動画付きのプロジェクトを数百件収録しています。自分のレベルに合ったところから始められます。

ESP32とHC-SR04で作る超音波距離計
HC-SR04超音波センサーは、発した音波が物体に反射して戻るまでの時間(Time of Flight)を測定して距離を計算します。このプロジェクトでは、ESP32からセンサーのTRIGピンに10マイクロ秒のパルスを送り、ECHOピンからの反射波の持続時間を`pulseIn()`で読み取ります。計算した距離をcm単位で16x2 I2C LCDに表示します。HC-SR04は5Vで動作するため、ECHOピンには**分圧回路**が必須です。分圧しないとESP32の3.3V GPIOが破損します。

ESP32 DHT22温湿度計(LCDディスプレイ付き)
DHT22センサーで周囲の温度と湿度を測定し、16x2 I2C LCDにリアルタイムで表示するプロジェクトです。Adafruit DHTライブラリを使い、1本の信号線を使うプロトコルでセンサーからデータを読み取ります。IoT気象観測装置やスマートホームの自動化、温室の環境監視システムの基礎となります。ESP32のGPIO 4ピンを介してDHT22と通信します。

ESP32 I2C LCDディスプレイ(16x2)
このプロジェクトでは、16x2文字のLCDをI2CでESP32に接続して文字を表示します。I2Cならデータ用の2本のピン(SDAとSCL)だけで制御でき、従来のパラレル接続のように6本以上のピンを使わずに済みます。コードでは1行目に固定メッセージ、2行目に毎秒増えるカウンターを表示します。また、起動時にI2Cスキャナーを実行し、ディスプレイのアドレス(通常は0x27または0x3F)をシリアルモニタに表示します。

ESP32とDS1307 RTCのデジタル時計(I2C + LCD)
このプロジェクトでは、DS1307リアルタイムクロック(RTC)モジュールを使って16x2 I2C LCDに時刻と日付を表示します。DS1307は電池でバックアップされるRTCで、ESP32の電源を切っても時刻を保持します。両方のモジュールが同じI2Cバス(SDA/SCL)を共有するため、2本の信号線だけで複数の機器を制御する方法を学べます。I2C通信プロトコルやRTCモジュールの動作原理、LCDの表示データを随時更新する方法を実践的に学ぶプロジェクトです。

ESP32 RFID RC522カードリーダー(LCD付き)
このプロジェクトでは、MFRC522を搭載したRC522 RFIDモジュールをSPIでESP32に接続し、カードやタグのUIDを読み取ります。ドアロック、会員システム、入退室管理などの基礎となる仕組みです。読み取ったUIDはLCDディスプレイに表示します。このバージョンでは、許可されたカードのリストとの照合は行いません。**注意:**RC522は**3.3V**専用です。5Vを供給するとモジュールが焼損します!

ESP32とIR受信機によるリモコン操作(LCDディスプレイ付き)
このプロジェクトでは、TSOP4838 IR受信モジュールを使い、テレビやエアコンなどの赤外線リモコンが送る信号をESP32で受信します。IRremote v4ライブラリでデコードした0以外の生コードを、I2C LCDディスプレイに表示します。このサンプルはリモコンのコードを調べるためのもので、リモコンによるLEDの点灯・消灯や明るさの調整は含みません。古いリモコンをスマートホームの操作に活用するための出発点になります。

ESP32 TM1637 4桁7セグメントディスプレイ
TM1637ドライバーを搭載した4桁7セグメントディスプレイモジュールをESP32で制御します。2本のGPIOピン(CLKとDIO)だけで0~9999のカウンターを動かし、明るさを調整し、中央のコロン(`:`)を時計のように表示します。TM1637Displayライブラリを使えば、数値、16進数、セグメント、文字列を簡単に扱えます。

ESP32ロボットの目(OLEDディスプレイ+TTP223タッチセンサー)
感情を表現する卓上ロボットを作ります!**ESP32**が**0.96インチOLED**に2つの目を描き、自動で周りを見たり、まばたきしたりします。**TTP223タッチセンサー**に触れると喜び、長く触れると目がハートになり、何度も続けて触れると怒り、20秒間何もしないと眠ります。**パッシブブザー**がそれぞれの気分に合った音を鳴らします。状態マシン、図形によるアニメーション、他の処理を止めない音の出力を1つのプロジェクトで学べます。

ESP32のT-Rex Run恐竜ゲーム(OLEDディスプレイ+ボタン+ブザー)
Chromeの「インターネット未接続」時の恐竜ゲームを机の上で楽しめます!**ESP32**が**0.96インチOLED**に走る恐竜を描きます。**ボタン**を押すとジャンプし、サボテンは次第に速くなります。スコアとハイスコアは画面の最上段に表示され、ハイスコアは**Preferences**でESP32のフラッシュメモリに保存されるため、電源が切れても残ります。ArduinoのOLED T-Rex RunプロジェクトのESP32版で、**パッシブブザー**がジャンプ、100点達成、衝突の効果音を鳴らします。

ESP32で金価格・為替のリアルタイム表示(Wi-Fi+OLEDディスプレイ+ボタン)
金1グラムの今の相場は?スマートフォンを確認する必要はありません!**ESP32**がWi-Fiに接続し、APIキー不要の無料JSONデータソースから**金1グラム**、**米ドル**、**ユーロ**の価格を取得して、**0.96インチOLED**に表示します。価格は60秒ごとに更新されます。**ボタン**でページを切り替え、長押しですぐに更新できます。インターネットが切断されても最後の値は画面に残り、`OFFLINE`と表示されます。

ESP32で礼拝時刻時計(Wi-Fi+OLEDディスプレイ+ブザー)
日没の礼拝まであと何分でしょうか?**ESP32**がインターネットから現在時刻を取得し、Diyanet方式で計算された地域の礼拝時刻を読み込みます。**0.96インチOLED**には、次の礼拝までの**カウントダウン**を大きく表示します。時刻になると**パッシブブザー**が短く穏やかなメロディーを鳴らします。**ボタン**を押すと今日の時刻一覧を表示し、長押しするとデモモードですぐに通知を試せます。

ESP32の2人対戦連打レース(OLEDディスプレイ+ボタン2個+ブザー)
友達と10秒間の連打レースで対戦しましょう!2人とも自分の**ボタン**を押して準備し、3-2-1のカウントダウンが終わったら全力で連打します。**ESP32**が**0.96インチOLED**上で2本のバーを並べて競わせ、残り時間、両者のスコア、リードしているプレイヤーをリアルタイムに表示します。時間切れになると勝者と1秒あたりの連打数が表示され、最高スコアは**Preferences**で保存されます。**パッシブブザー**がプレイヤーごとに異なるクリック音や、ホイッスル音、ファンファーレを鳴らします。
