ESP32って何だ
ESP32というものをTwitterで教えてもらいましたので、自分なりに調べて、ソフトウェア、ハードウェアに詳しくない方でも理解できるようなレベルでまとめてみました。
是非、読んでみて興味がわけば、挑戦してみてください。
ESP32シリーズは Wi-FiとBluetoothを内蔵する低コスト、低消費電力なSoCのマイクロコントローラである。 TensilicaのXtensa LX6マイクロプロセッサを採用しデュアルコアとシングルコア版のバリエーションがある。
随分前の記事で、Arduino、microbitというものを紹介しました。
ESP32というのも、これらと同じくOpen Hardware、Open Sourceで提供されているマイクロコントローラーです。
We’re totally open-source, as ever! The schematics and PCB layout of all modules in the ESP32 WROOM Series are freely available for download and may be used as a reference for developing fully-customized ESP32-based hardware designs.
Arduinnoやmicro:bitは、プログラミング学習が主目的でしたが、ESP32は商用に耐えられるHardwareを採用していて、-40から85℃の範囲で動作することを想定しています。
All modules in the ESP32 WROOM Series are suitable for commercial application development with a robust 4-layer FCC, CE ( RED ), IC, TELEC, SRRC & KCC-compliant design and a wide operating temperature range of -40°C to 85°C.
Arduinoでも商用利用は可能ですが、あくまでも学術目的で作られています。しかし、こちらは最初から商用利用することを目的にしているので、大きな違いがあります。
Arduinoは、温度保証範囲をみたことがありませんので、そもそも気にしてはいけないものだと思っています。動かなくてもご愛嬌です。
このESP32というデバイスは、低価格でWiFiもBluetoothも動作可能です。
Aruduinoでも別の基盤を接続すれば可能でしたが、基盤を増設しなければいけないため、その部品を別途購入する必用がありましたし、その分サイズも大きくなってしまいます。ESP32はそのままで通信動作にチャレンジしてみることができるのです。
ESP32でできること
使う想定としては、Aruduinoでできることは、ほぼ同じようにできます。
- LEDを接続して光り方をプログラムしてみる。
- センサー類を接続して、入力されたセンサーの情報にしたがって動作を決定する。
- カメラを接続して、一定時間毎であったり、特定のセンサーの入力のタイミングで撮影を行うことができます。
- モーターを制御して、ラジコンやDroneを作ってみることもできる
ネットワークの機能を持っていますので、スマートフォンやパソコンからの指示でLEDを変化させたり、取得した温度や湿度などのセンサーの情報や、カメラで撮影した画像をサーバーへアップすることもできます。
当然、モーターを廻したり、外部の電気機器のスイッチを制御したりすることもできますので、できることは無限です。
EPS32の開発環境がスゴイ、プログラミングの勉強に最適
商用利用できる想定のハードウェアスペックですが、プログラミングの学習にも最適です。
先発しているArduinoのIDEを利用しての開発ができてしまいます。
ArduinoのIDEは、既に世界中で利用されているので、使い勝手も日々向上しているのですが、そのままESP32でも利用可能です。
そして、様々なDevice KitがGitHubという形で提供されています。
GitHubとは、CodeをShareするための仕組みですが、これからSoftware開発に関わる人は、知らないと困るレベルのものです。安心してGitHub勉強しましょう。GitHub経由でCodeを取得して、活用しましょう。
ESP32では、Python という今流行りの言語もサポートしているので、C言語では書きたくない人、Pythonを勉強しようと思っている人にも最適です。
ESP32 での MicroPython の始め方 — MicroPython 1.12 ドキュメント
夢の有りすぎるSDK群で、さらに何でもできそう
公式ページでは、以下のようなSDKも提供されています。
- IoT Development Framework
- HomeKit SDK
- Audio Development Framework
- Mesh Development Framework
他にもまだまだありますが、これからも増えていきそうです。
HomeKit SDKは、Apple HomeKitと連携するためのSDKです。iPhoneやiPadでSiriを使って操作するデバイスの一つになることができます。試してみたくなりませんか?
そして、Mesh Developmentキット、なんだか難しい技術なんですが、公式の動画がありました。見れば同じく試してみたくなるのではないでしょうか。
安くて高性能、ESP32は、これから注目のデバイスです
Arduinoは、電子工作できないと何もできないイメージですが、こちらのデバイスは、電子工作よりも、ソフトウェアの開発者としては、プログラム次第で何でもできそうな気がしてきます。
Linuxをそのまま動かすことのできるRaspberry Pi等のデバイスでも、もちろん同じようなことはできますが、まずOSであるLinuxの勉強や理解をしなければなりません。その点、ArduinoやESP32は、OSの理解はすっ飛ばして、プログラムに没頭できるという魅力があります。しかもESP32は最初からNetworkが利用可能で、SDKのバリエーションも豊富です。
まだまだ日本ではマイナーなため、Wikipediaさえも非常にわかりにくい状態です。ESP32に関する日本語の情報も少ない状況です。
しかし、今後の発展が非常に気になるデバイスです。
いまから使いこなしていれば、かなり格好良いかもしれません。
気になった方は、まずは動かしてみましょう。
壊れたら、買い直せば良いレベルなので安心してチャレンジしてみてください。