こんにちは。今回は高専生である私が、小学生(小学校高学年)、中学生でもできるかな~と思ったマイコンを使った自由研究(自由工作)について書いていきます。
商品リンクも貼っておきますが、単なる自分のおすすめなので、動作確認はしていないのでご了承下さい。たぶん、動きます。
また、今回やっていくのはかなりハイレベルなもの(上級者向け)となっていますが、人によっては「意外と簡単だった」と感じる人もいるかもしれません。
小学生低学年、パソコン初心者の高学年の方は、保護者の方と一緒にすることをお勧めします。
保護者の方、頑張ってください(笑)
上手く言ったらコメントをくれると嬉しいです!
今回作るもの
今回は、スマホからbluetoothで信号を飛ばして遠隔でon/offするled電球を作りたいと思います。
いわゆる「IoT」の一歩ですね。

準備するもの&用語説明
今回準備してもらうものは、
- ESP32
- 抵抗(200~300Ω)
- led
- ブレッドボード
- ジャンパ線
- パソコン
- usbケーブル(esp32の規格に合ったもの)
- 段ボール
- モバイルバッテリー
- スマホ(できればandroid)
です。
スマホは持ち込み禁止のところが多いと思いますが、自由研究等にして「使えた」という証拠があればいいと思います。または、先生のスマホを借りましょう。これについては最後の方に書いておきます。
下に各パーツごとの説明を書いていきますが、よくわからない方は下のセットのものを購入したらいいです。
ですが、ジャンパ線(説明は下記参照)は、メス-メス(メスが刺される方)があると楽です。
理由はこのセットだとジャンパ線がオス-オス(オスが刺す方)しかなく、esp32をブレッドボードに刺さなくてはならないのでめんどくさいからです。
参考:https://labo.mycabin.net/electronics-programming/arduino-esp32/645/

Freenove Basic Starter Kit for ESP32-WROVER
ESP32
ESP32は、小さなコンピューターのようなものです。LEGOブロックのように、いろいろなものをくっつけて新しいものを作ることができます。例えば、温度を測ったり、音を鳴らしたり、インターネットに繋いだりもできます。
くっつける部品をモジュール、小さなコンピューターをマイコンと言ったりします。
有名なマイコンはarduinoですが、
esp32は 安い wifiとbluetoothが使える (多分)性能がいい などのメリットしかないのでこれを使っていきます。

【技適認証品】ESP32 ESP-32S NodeMCU開発ボード2.4GHz WiFi + Bluetoothデュアルモード
抵抗
抵抗は、電気の流れをちょっと邪魔するものです。水の流れを想像してみて、太いパイプだと水はスーッと流れるけど、細いパイプだと流れにくくなるよね?電気もそれと同じで、抵抗が大きいと電気がゆっくり流れる感じです。
ledに、マイコンから出る電流を直接流すとぶっ壊れる場合が多いのでつけます。
抵抗の大きさは、200Ω~300Ωでいいと思います。

KOA MO2C 2W 酸化金属皮膜抵抗器 300Ω 10本入り 許容差±5% サンキン ストレードリードタイプ NN
led
LED電球は聞いたことあるかな?光を出す部品です。

IRエミッタダイオード?LED IRエミッター発光ダイオード?クリアブルーラウンドヘッドTSAL6200?Arduino用 20個 5mm 940nm クリア
ブレッドボード
これは聞いたことがないと思う。配線を簡単に組めるやつです。
線を差し込むだけで簡単に電気が流せます。マイコンするならこれは必須です。

【サンハヤト Sunhayato】サンハヤト SAD-101 ニューブレッドボード
ジャンパ線
電気を流す線です。これから電気工作をしたいならこれは普通に買っておくことをお勧めします。
これもマイコンを使うなら絶対に必要になってくるものです。

DiyStudio 10CM ジャンパー線多色デュポンワイヤー120pcs、用28AWGケーブル ブレッドボード・ジャンパーワイヤー、オス-メス・オス-オス・メス-メスピッチ2.54mm * 40Pin【2021人気限定】
usbケーブル
usbケーブルです。esp32の商品によって規格が異なるのであったものを選びましょう。
よくあるのは、type-cかUSB 2.0 Micro-Bです
ちなみに私が書いたesp32だと、USB 2.0 Micro-Bです。
ps4のコントローラーと同じです。

U2C-DAMB20BK エレコム 両面挿しUSBケーブル 2.0m(USB Aオス – USB Micro-Bオス・ブラック)
作っていこう!
配線
配線をしていきましょう。
私は、https://wokwi.com/ このサイトで配線を組んでいきます。
シミュレーターです。
実際に作るときはリアルで配線を組んでください。
ブレッドボードはアルファベット書かれている方向と、+と-の列が同じ線でつながれています。

それを踏まえたうえで、次の配線を作ってみましょう。

4番ピンがプラス、GNDがマイナスです。
上の線で赤色の線をジャンパ線でつなげてください。
ledは、線が長いほうがプラスです。
抵抗は、200~300Ωのものを付けましょうよくわからなければ、おすすめのもの(セットのやつを買ったなら220Ω、単品は300Ω)を使いましょう。
抵抗は、プラスマイナスがないので向きはどっちでもいいです。
パソコン側の操作
arduino IDEのインストール

上のリンクから、arduino IDEというものをインストールします。
ESP32に書き込む用のソフトです。



インストーラーがダウンロードされるので、それを実行してインストールして下さい。
インストール手順は書くのが難しかったので簡単になってしまいましたが、
googleで「arduino ide インストール方法」等検索してくれたらいいと思います。
インストールできたら開いてみて、ctrlキーと カンマキー(”、”日本語だと点)を押します。
出てきたもので、language(言語)を日本語にします。

そして、追加ボードマネージャーのURLに、次の文を入力します。
https://dl.espressif.com/dl/package_esp32_index.json
それができたらokを押して設定を閉じます。
そしたら左の列からボードマネージャーを押して「esp32」と検索しましょう。そしてでてきたものでインストールを押します。

ESP32を接続する
まず最初にesp32とパソコンをusbで接続しましょう。usbの種類については、上の方に書いてあります。
また、esp32の種類は商品によって異なるので自分が購入したものを調べてください。
ここでは、私が一番最初にセットで買う用に紹介したものを書いていきます。
他のボードとポートを選択をおす。

「esp32 wrover」(単品を買ったなら”nodemcu”)と検索して、ポートは表示されているものをクリック
そしたらokを押す。

プログラミング!
次のコードをarduino ide に書きます。
#include <BluetoothSerial.h>
// Bluetoothを開始するやつ
BluetoothSerial SerialBT;
// LEDを接続するピン番号
const int ledPin = 4;
void setup() {
// シリアル通信の開始
Serial.begin(115200);
Serial.println("Bluetooth Serial Start");
// Bluetoothの初期化
SerialBT.begin("leno");
Serial.println("Bluetooth Device online");
}
void loop() {
// Bluetoothからデータを受信
if (SerialBT.available()) {
char data = SerialBT.read();
Serial.print("受信: ");
Serial.println(data);
// 受信したデータに応じてLEDを制御
if (data == '1') {
digitalWrite(ledPin, HIGH);//1なら4番ピンに電流を流す
SerialBT.println("LED ON");
} else if (data == '0') {
digitalWrite(ledPin, LOW);//0なら電気を止める
SerialBT.println("LED OFF");
}
}
}
入力できたら「書き込み」を押して書き込みましょう。

また、書き込み中はbootボタンをを押しましょう。
(素手で押しても大丈夫ですが、力を入れてピンを押さないようにしましょう。微妙に痛いです)

使ってみる
スマホに、次のアプリをダウンロードします。
android:
iOS(iPhone):

iPhoneは使ってないので動作確認できませんが、こちらのサイトを参考にしてください。
devicesを押します

scanを押します

そこに、「leno」が出てきたら接続してください。

connectedになったらokです。
↓いい感じですね

発表するとき
led電球の明るさはたかが知れているので段ボール等で囲うと分かりやすいです。
また、esp32は一度書き込むと書き換えるまではモバイルバッテリー等でも動作するので学校にモバイルバッテリーをもっていって接続して先生のスマホからbluetooth接続してもらうのも手です。
これだけでなく、ledの数を増やして手動の信号機を作ってみても面白いかもしれません。
さいごに
どうでしたか?難しいですよね。もしかしたら意外と簡単だったかもしれません。分からないところがあればコメントやdiscordで教えて下さい。
もし、これを参考にして提出してくれる方がいたらこのサイトのurl(https://lorinta.xsrv.jp/)かgithub(https://github.com/rintaro-s)等のurlを参考文献として記載してくれると嬉しいです。

とある高専生。
AIとネットが好き。
将来はAIの妹と火星に住みたい。
discord : r_nightcore
このサイトの管理者。
コメント