2連 ディスプレイ 搭載可能な ESP32 の FRISK ケース作ってみた

ESP32 ( ESP-WROOM-32 )

ロープロファイルピンソケットハンダ付け

次に、別途配置するロープロファイルピンソケットをハンダ付けします。
要するに、ブレッドボードっぽい役割をするピンソケットの製作です。

まず、下図の様に、ピンソケットをハンダ付けし易いように折り曲げます。
正直言って反則技です。
破損しやすいので、慎重に折り曲げてください。

ここで一旦ハンダ付けします。

ケースに収める時に余分だった場合、ニッパ―でカットします。

ハンダ付け後にカットすると、応力がかかって、ハンダ割れを起こすことがあるので、再度ハンダを盛っておくことを忘れないでください。

次に、個人的に3.3V や GND の並列接続が複数欲しいと思ったので、下図の様に端の方2組をハンダ付けしておきます。

そうしたら、間違わないように下図の様にマーカーしておきます。

ケースに収めるとこんな感じになります。

ジャンパーワイヤーで接続する

では、下図を参照して接続してみてください。

 

ジャンパーワイヤーを適当な長さにカットして、ケースに収めた様子はこんな感じです。
かなり強引です。

ESP-WROOM-32 ( ESP32 ) のケースの放熱を妨げないように配線する必要があります。
この図では分かりにくいですが、中央の電源レギュレーター ( LDO )の放熱も邪魔しないように配線することが大切です。
発熱するところは、ESP-WROOM-32 ( ESP32 ) と LDO 部分です。

蓋がしっかり閉まるようにうまく曲げながら配線するのも難しいですね。
油断すると、ピンソケットとジャンパーワイヤーが外れてしまいます。
やはり、ロープロファイルピンソケットは接触が甘いですね。
こうやって作ってみると良く分かります。
ですから、あくまで仮の仮配線と思ってください。
接触不良の可能性があることをよく認識しておいてください

フタを閉めるとこんな感じです。

OLED ディスプレイをはめ込んだ様子はこんな感じです。

Arduino core for ESP32 、SPIFFS、フォントファイル、自作ライブラリ、Yahoo ルート証明書等

これについては、省略させていただきます。
以下の過去の記事を参照してください。

Google Home と ESP32 で、音声をテキスト表示させた WiFi 電光掲示板を作ってみた

ESP32 で I2C OLED SSD1306 に東雲フォントを4倍角で表示させてみた

フォントファイルは以下の物が必要です。

●Utf8Sjis.tbl ( 自作 )
●shnmk16.bdf ( 東雲フォント全角)
●shnm8x16.bdf ( 東雲フォント半角 ※ファイル名の最後の ”r” を削除したもの)
●MyFont.fnt ( 自作 )

MyFont.fnt については以下の記事を参照してください。
ESP32 と 有機EL SSD1331 で Yahoo News 、 天気予報 、 NTP 時計 Wi-FI ガジェットを作ってみた

私の自作ライブラリについては、最新版の以下のものが必要です。
アマチュア自作です。無保証です。
※古いライブラリは必ずフォルダごと削除してからインストールしてください

●ESP32_SPIFFS_SSD1331_Gadgets ( Beta ver 1.1 )
●ESP32_SPIFFS_ShinonomeFNT.h ( Beta ver 1.32 )
●ESP32_SPIFFS_UTF8toSJIS ( Beta ver 1.2 )
●ESP32_SSD1331 ( Beta ver 1.71 )
●ESP32_I2C_SSD1306 ( Beta ver 1.10 )
●ESP32_WebGet ( Beta ver 1.12 )

あと、Arduino 標準の Time ライブラリが必要ですので忘れないでください。

また、Yahoo! Japan RSS サイトのルート証明書をブラウザから取得して、SPIFFS メモリにアップロードしておいてください。
ルート証明書の取得方法は以下の記事を参照してください。

取得したルート証明書はパソコンのスケッチフォルダの /data/フォルダに、/root_ca/というフォルダを作成しておき、そこに、yahoo.cer というファイル名で保存しておきます。
それをフォントと一緒に SPIFFS フラッシュへアップロードしておいてください。

次のページでは、サンプルスケッチを紹介します。

コメント

  1. マッキー より:

    こんにちわ
    動作完全にいたしました。
    自作フォントを自作しようと思ってます(´・ω・`;)
    7セグ風にしたく思いました。
    他人に見せたいのですが、SSID、Passwの再設定がやっかいで
    実現できてません。
    プログラムの書き換え以外の方法はないでしょうか?

    • mgo-tec mgo-tec より:

      マッキーさん

      いつも記事ご覧いただき、ありがとうございます。

      無事、動作して安心しました。
      重ねてご報告ありがとうございます。

      自作フォントは是非やってみてください。
      多分、感動すると思いますよ!

      他人に見せたいということですが、なぜ SSID とパスワードの再設定が必要なのですか?
      ちょっと意味が分かりません。
      外に持ち出して、外部のルーターを使うということでしょうか?

      もし、事前に SSID とパスワードが分かっていれば、WiFiMulti ライブラリを使って、複数のアクセスポイントを入力することができます。
      Arduino IDE の「スケッチ例」で、複数のアクセスポイントを入力した例がありますので、参照してみてください。

  2. マッキー より:

    こんにちわ

    よそのお宅に行った場合、wifi設定はもちろんなんですけど、証明書の再収得とかが必要とかではないかと想像しています。
    フリスク等の小型ケースに収納したらお出かけしたくなるんです。
    ノートPC持ってけばすむことですが・・・

    あとディスプレイをもっと大きいものなども実験してください。
    ILI9341ドライバーあたりが一般的ですが、機会があればよろしくお願い申し上げます。

    • mgo-tec mgo-tec より:

      マッキーさん

      なるほど、そういうことだったんですね。
      証明書は、ルートCA証明書のことでしょうか?
      もし、そうならば、これの再取得は不要です。

      私もあまり詳しくないのですが、ルートCA証明書は、Yahoo Japan さんが契約している、Baltimore CyberTrust から発行されていて、Yahoo Japan RSS ユーザー全てに共通です。
      必要な時期に更新されているようで、頻繁に更新されるようなものではありません。
      数年単位だと思います。
      そうしたら、その時に変えれば良いようです。
      要するに、ユーザーが Yahoo Japan にアクセスしたところが偽物サイトでないことを証明するものですので、どこからアクセスしようが、証明書は同じです。

      あと、WiFi利用の件ですが、スマホを持っていらっしゃったら、デザリングを利用して、他のお宅で通信されてみてはいかがでしょうか?
      要するに、ご自分のスマホがネットに接続された Wi-Fiルーターアクセスポイントになるわけです。
      又は、モバイルルーターを使うという手もあります。

      よそのお宅のルーターを使うとか、公衆 Wi-Fi を使う場合は、やっぱりプログラム設定が必要になります。
      その場合は、スマホと連携したプログラムを組むしかありません。
      スマホブラウザのHTMLテキストボックスに、SSID と パスワードを入力するようなプログラムをご自分で組む必要があります。
      私もいつかトライしたいと思います。

      あと、大き目のディスプレイですね。
      これもいつかチャレンジしたいと思いますが、大きいディスプレイにしてしまうと、「スマホみたい・・・」と感じてしまうので敬遠してました。
      いつか試してみようと思ってはいます。

  3. H.W より:

    mgo-tecさん、初めまして…
    初めて投稿させて頂きます。
    これまで、Raspberrypie、Arduino、micro:bit等を弄ってきましたが、電子工作として多少物足りなさを感じておりました。
    そこで、GW明けに遅ればせながらESP32dev(HiLet製)を手に入れ、関連記事をWeb検索中にこのblogに辿り着き、ここ1週間程、貴殿の非常に興味深くかつ内容豊富で懇切丁寧な製作記事を拝見し、秀逸なスケッチ群を何とか摸写(?笑)してみたいと思い、その後BM280や互換品のSSD1331&1306、microSDカードアダプタ等を手に入れ、日々(摸写に)励んでいるところです…
    ところで、「2連ディスプレイ搭載可能なESP32のFRISKケースを作ってみた」の記事にて、先ずブレッドボードで組立て動作確認をしたところ、以下のエラーメッセージが出てWebゲットが出来ませんでした。
    「wifi:esp-wifi-scan-start(*** )wifi not start. 」
    これをクグッてみたところ、gethubに同様のトラブル報告(#1330)があり、その対策コメントが’sticilface’氏から発せられているのを見つけ、「Add SYSTEM_EVENT_WIFI_READY call back+WiFiMode fixes」(#1332)との指示に従い、「libraries/WiFi/src/WiFiGeneric.cpp」を修正(17行追加、6行削除)し再コンパイルしたところ、Wifiに無事接続して正常動作できましたので、既知情報かも知れませんが一応報告させて頂きます。
    尚、現在はP板にヘッドソケットを立て、ハンドスピナーが入っていた窓付缶を追加工して、ついでにLIPO電池(860mAh)、充電&昇圧回路、電源SWを追加内臓してみました。
    お陰様でESP32を使ったとてもハンディーなIOT機器を完成することができました。
    貴殿の貴重な製作情報と秀逸なスケッチ公開に改めて感謝致します。

    • mgo-tec mgo-tec より:

      H.W さん

      ブログをご覧いただき、ありがとうございます。

      ハンディーなIOT機器、いいですねぇ。
      私はまだバッテリー回路を組んだことが無いので、羨ましいですね。
      嬉しいご報告ありがとうございます。
      m(_ _)m

      さて、WiFi Multi の件ですが、確かに最新版 Arduino – ESP32 ( Commits on May 26, 2018 ) で WiFiMuti ライブラリでは接続できませんでした。
      GitHub の Issue #1330 から辿ったのですが、#1332 は見つかりませんでした。
      #1322 の間違いではないでしょうか?
      でも、これを読んでもイマイチ良く分かりませんでした。
      結局のところ、このバグは
      Commits on May 23, 2018
      で修正されたようなことが書いてあるように読み取れたのですが、勘違いでしょうかね???
      でも、最新版にアップデートしてもダメでした。

      結局、私の場合、こちらの記事の9番にあるように、wifiMulti.addAP関数の前に
      WiFi.disconnect(true);
      を置くと、正常に接続されました。

      WiFi.disconnect(true);
      delay(1000);
      wifiMulti.addAP(ssid, password);
      

      でも、結局のところ、必要に迫られない限り、WiFiMultiは使わない方が良いかと思いました。
      ということで、この記事のソースコードを普通の WiFi 関数に修正しました。

      しばらく M5stack を弄っていて WiFiMulti関数を使っていなかったので、こんなことになっているとは気づきませんでした。
      重要な情報感謝いたします。
      m(_ _)m

    • H.W より:

      mgo-tecさん、
      早速の確認対応有難うございます。
      githubの対策コメント番号は#1322の誤りでした。申し訳ありません。
      mgo-tecさんのスケッチやライブラリ側の問題ではなく、元のWiFiGeneric.cppを直接弄らなくてはならず、今回は敢えてやってみましたが、編集リスクも伴いこの対処法は決して万人向けではないでしょうね…

      尚、早速更新されたスケッチを使ってみましたが、残念ながら、元のWiFiGeneric.cppに
      戻してもシリアルモニターには「…..」が出続けてWifiに繋がりませんでした…
      尚、元のスケッチに戻すと1発で繋がります。(再現性あり。。。)
      ( 根本原因は別のところにあるのでしょうか…?)

      ところで、上記ハンドスピナー缶にBME280もSPI接続で実装したので、「ESP32のWiFiのみOFFおよび温度・湿度・気圧センサーBME280の再調整など」の記事を参考に、SSD1306の4倍角文字を小さくして、空いたスペースに温度・湿度・気圧センサー情報を表示したいと思い、チャレンジしてみたのですが、上記記事のスケッチが見当たらず、上手くできませんでした。
      スケッチの公開、もしくは何かアドバイスを頂けると幸いです。

      • mgo-tec mgo-tec より:

        あれ?
        おかしいですねぇ・・・。
        WiFi.begin(ssid, password);
        が接続できないとなると、Arduino – ESP32 のバージョン違いによるものか、環境の違いによるものでしょうか?
        謎ですねぇ・・・。

        こちらの記事でも述べてますが、私の場合、2週間くらい前、ESP32 ( ESP-WROOM-32 )が WiFi に急に繋がらなくなる症状が出ました。
        Arduino – ESP32 を最新版にしても、旧版に戻しても変化ありませんでした。

        ESP32 のフラッシュに元々ある WiFiセッティング領域メモリを破壊してしまったのかと思い、故障したと思いました。
        でも、GitHub issue #653 にあったように、スケッチ上で
        WiFi.disconnect(true);
        を置いてから、
        WiFi.begin(ssid, password);

        wifiMulti.addAP(ssid, password)
        を実行すると、WiFi が繋がるようになりました。
        それからは、スケッチ上に WiFi.disconnect(true); を置かなくても通常の
        WiFi.begin(ssid, password);
        は問題無く接続できています。

        WiFiGeneric.cpp
        は修正しても良いのですが、バージョンアップする度に編集することになるので、これは Issue に投げかけた方が良いですね。
        でも、修正されたようなことが書いてありますが何なんでしょうね?
        謎ですね。

        また、以下の記事
        ESP32 の Wi-Fi のみ OFF および温度・湿度・気圧センサー BME280 の再調整など
        のスケッチは公開しておりません。
        自分自身も実験中のもので、いつか公開しようと思いつつ、M5stack を購入してしまい、そっちにのめり込んでしまって開発中断しています。
        公開する予定は未定でございます。
        スイマセン。
        m(_ _)m
        (追伸: それには、SSD1331 を2つ、BME280 は SPI ではなく、I2C で接続しました)

        • H.W より:

          mgo-tecさん、
          早速の応答有難うございます。

          元の「WiFiGeneric.cpp」に戻した状態で、以下ご指摘の様に「WiFi.disconnect(true);」を追加すると接続できるようになることは再現性を含めて確認できました。(コメントアウトすると再度接続できなくなる。。)

          「WiFi.disconnect(true);
          delay(1000);
          wifiMulti.addAP(ssid, password);」

          但し、更新されたスケッチでは、「WiFi.begin(ssid,password);」の前に「WiFi.disconnect(true);」を追加しても、シリアルモニターでは「・・・・・・」を継続し、結局WiFi接続することができませんでした…(これも再現性あり。。)

          当該スケッチの公開未定の件は了解致しました。
          過去の類似スケッチを参考に摸写デッサンに取り組みたいと思います。
          (それができてから、M5stackにも手を伸ばしてみようと思います。)

          (p.s): mgo-tecとM5stack、何処となく音が似てますね…(笑)

          • mgo-tec mgo-tec より:

            そうですかぁ・・・。
            謎ですね。
            同じ最新版 Arduino – ESP32 でもそういう現象が起きるのは納得いかないですね。
            バージョンアップに期待するしかなさそうですね。

            因みに、私のライブラリやスケッチは素人コードでまだまだ勉強不足で無駄が多いです。
            他の方々のコードを模写された方が、よっぽど参考になると思います。
            私自身も昔のコードを見て、「なんじゃこりゃ!」状態で、お恥ずかしい限りです。

            追伸:確かに、M5 と mgo 似てました。今気づきました(^^)

          • mgo-tec mgo-tec より:

            H.W さん

            新しい M5stack を別途購入して、WiFi.begin を試してみたところ、H.W さんのおっしゃる通り、繋がりませんでした。
            wifiMulti に変えて、その前に WiFi.disconnect(true); を置くと接続できました。
            まだ、WiFiGeneric.cpp の修正は試していませんが、これを修正するのは現実的ではありません。
            このブログでは最新版をインストールされた方が見る場合が多いので、その都度修正を促すのは難しいです。
            ですから、応急処置として、WiFi.disconnect(true); と wifiMulti を使う方法で考えていきたいと思います。
            あとは Issue に投げるか、バージョンアップを待つかにしたいと思います。

  4. H.W より:

    mgo-tecさん、
    応答が遅れて申し訳ありません。

    >「WiFi.begin(ssid,password);」の前に
    「WiFi.disconnect(true);」
    >を追加しても、シリアルモニターでは「・・・・・・」を継続し、
    >結局WiFi接続することができませんでした…

    上記がそちらでも再現されましたか…?!
    当方のWiFi環境のせいではなかった模様で一安心しましたが、何かスッキリとしませんね…

    その後の状況ですが、とりあえず注文しておいたM5stack(Gray)が先日届いてしまったので、この’5cm四方美人'(?)にちょっと浮気して弄り始めました…
    (世のオヤジ連中がハマってしまう理由が分かりますね…笑)
    とりあえず、「yahoo!ニュース4記事同時スクロール」と最新記事の「変な漢数字時計…」についてはWiFi接続も含めて元スケッチのままで無事動作致しました。
    (タクトSWとの連携も含め、操作感触はとても素晴らしいです。。。)

    尚、ついでに、紹介されてたマグネット付きUSBケーブル(の類似品: 敢えてL字型のmicroUSB、TypeC、Lighteningの3種チップ付)を買ってみました。
    一本のUSBケーブルでAndroidスマホ、M5stack、iPadの充電&通信が付け替え共有できてとても便利です。

    今後、M5stack関係については、別途該当記事にて質問させて頂きたいと思います。

    • mgo-tec mgo-tec より:

      H.Wさん

      お返事ありがとうございます。
      残念ながら再現してしまいました。
      今後のバージョンアップで様子見です。

      M5stack スケッチを試していただき有難うございます。
      因みに、「変な漢数字時計」のスケッチは本日、一行だけ修正しました。
      不意に再起動してしまう場合がありました。
      でも、動作してホッとしました。
      ありがとうございます。

      マグネット付きUSBケーブルのL字型、確かに便利そうで安いですね。
      これはよさげですねぇ。
      無断コピー品でなければ良いのですが、買って試してみようと思います。
      情報ありがとうございます。
      m(_ _)m

  5. mgo-tec mgo-tec より:

    H.W さんから素晴らしいアレンジ工作写真を頂戴しましたので紹介させてください。

    見事に BME280 から、Lipo バッテリーまでケースに収めておられます。
    これは私には出来ないですね。
    ただ、これだと ESP32 の発熱やバッテーリーの熱に BME280 が影響を受けると思いますが、それを理解した上で敢えてそうされているとのことです。
    確かに、バッテリーの熱監視としても使えるかも知れません。
    素晴らしい!!!

    comment_hw_03.jpg
    comment_hw_04.jpg

  6. 安達尚道 より:

    ご無沙汰しております。楽しませていただいてます。
    最近「Git-Hub」サイトでライブラリーをダウンロードする時ボタンが「Code」のみでZIPファイルをダウンロードできませんが手法があればご指導宜しくお願いします。

    • mgo-tec mgo-tec より:

      安達さん

      ご無沙汰しております。そして、コメント投稿ありがとうございました。
      因みに、メールアドレスを記述されていたので、勝手ながら削除させていただきました。
      コメント投稿欄に記載してしまうと、公開されてしまいますので、載せないようにしてくださいね。

      GitHubですが、最近Microsoftに買収されて、デザインも変わりましたね。
      ちょっと使い辛いですが、使い方は今までと変わらないようです。
      要するに「Code」アイコンボタンの中の右側の小さい▼をクリックすると、プルダウンメニューが出てくるので、それにZIPダウンロードがあります。
      何でそこを「Code」に変えたのか、意味が良く解らないですね。

タイトルとURLをコピーしました