ESP32

ESP32 でマイクロマウスを作るメリットとデメリット

ESP32 でマイクロマウスを作るメリットとデメリット

この記事は Micro Mouse Advent Calendar 2020 の 11 日目の記事です。

昨日の記事は、FND さんの「今年買ったもの」でした。
めっちゃいろんなもの買っててやっぱ社会人パワー最高ですね!!
ぼくもグラボほしーーー

はじめに

さてさて今回の記事では、私が今までに ESP32 でマウスを作ってきてよかったことと辛かったことを紹介したいと思います。

今後 ESP32 でマウスを作ろうと思っている方の参考になれば幸いです。

ESP-IDFプロジェクトをPlatformIOプロジェクトに変換する

ESP-IDFプロジェクトをPlatformIOプロジェクトに変換する

概要

ESP32 の公式開発環境は ESP-IDF ですが、コマンドライン開発環境なので初心者向けではないかもしれません。

一方、以前の記事 PlatformIOでESP32の開発をしよう で紹介した PlatformIO では、GUIのVSCodeに拡張機能としてインストールするだけで環境が整うのでとても便利です。

しかしながら、ESP-IDFやGitHubなどにあるたくさんのサンプルコードは、PlatformIOで直接実行することができません。

そこで今回は、単純なESP-IDFのプロジェクトをPlatformIOプロジェクトに変換する方法を紹介します。

PlatformIOでESP32の開発をしよう

PlatformIOでESP32の開発をしよう

概要

この記事は 東京工業大学ロボット技術研究会(rogy) Advent Calendar 2018 の 22日目の記事です。

こんにちは。けりです。

今回は、PlatformIOという強力な マイコン開発環境 の紹介です。

PlatformIO とは?

PlatformIO とは、mbedやArduinoと似たような感じで、さまざまなボードやライブラリを統一的に開発できる開発環境です。

PlatformIO はESP32マイコンを公式にサポートしていて、ESP-IDFArduino Core for the ESP32 から選んで開発することができます。

ESP32にSmartConfigでWiFi情報を伝える

ESP32にSmartConfigでWiFi情報を伝える

WiFiのSSIDとパスワードをどう伝えるか問題

ESP32はWiFiに接続することができますが、ソースコードにWiFiのSSIDとパスワードを書いてしまうと、後から変更できません。

さらに、ソースコードを公開するときは、SSIDとパスワードの部分をいちいち削除しなければならず、けっこう面倒です。

以前はSDカードを使ってWiFi情報を伝える方法 を紹介しましたが、これも割と手間でした。

SmartConfigとは、そんな悩みをスマホで解決する機能です。

秋月の時計キットをNTP時計化

秋月の時計キットをNTP時計化

家の玄関で地味に役に立っていた時計

かなり前に秋月電子で買った時計キット
数字が大きく、遠くからでもよく見えるので自宅の玄関で地味に役立っていました。

しかし、水晶の精度がいまいちでよくズレるので、7セグの表示部だけを残してESP32によるNTP時計にアップデートしました。

ESP32の設定管理ライブラリの紹介

ESP32の設定管理ライブラリの紹介

概要

みなさん、ESP32使ってますか?僕は使っています。その偉大さには驚くばかりです。

さて、今回紹介するのは、Arduino core for ESP32に含まれているライブラリ「Preferences 」です。

ESP32で何か物を作るとき、電源を切っても保存しておきたいデータなどがあると思います。独自の形式やJSONなどでファイルに保存する方法もありますが、保存と復元の処理を実装するのはなかなか面倒です。

みんなどうせ同じようなことをするでしょうということで、ESP32ではライブラリが用意されていました。

不揮発性のフラッシュ領域を使ってデータを保存&復元します。

ESP32で時間取得

ESP32で時間取得

概要

今回はESP32で現在時刻を取得するサンプルコードの紹介です。

今回のコードではC++標準の時刻を合わせるので、std::time()関数で時刻を取得することができるようになります。

ESP32からメールを送る

ESP32からメールを送る

概要

ESP32にはHTTPSクライアントライブラリがあるので、SMTPプロトコルを使ってGmailを送信してみました。意外にもうまくいってしまったので、共有します。

Arduino上で動くコードです。esp32-arduino-coreは最新のものを使用してください。古いものだと、SSLまわりでエラーが発生します。

ESP32用UIライブラリ

ESP32用UIライブラリ

概要

ESP32も徐々に使い慣れてきました。今回の記事では、ちょっとした工作には欠かせないユーザーインターフェースのコードを紹介します。

  • スピーカーから音階を鳴らすブザークラス
  • タクトスイッチなどのボタンを扱うボタンクラス

今回のコードは、ESP32用に書かれています。ご注意ください。