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

ESP32 ( ESP-WROOM-32 )
2018/06/28以降の最新版 Arduino – ESP32 が大幅更新されたので、それに合わせてスケッチを大幅変更しました。
また、ESP32_WebGet ライブラリは beta ver 1.13 を使って下さい。
(2018/07/14)

 

こんばんは。

今回は、ESP32 ( ESP-WROOM-32 ) 開発ボード用の FRISK ケースを加工してみました。
でも、ケース内に ESP-WROOM-32 開発ボードと OLED は収納できなかったので、ディスプレイモジュールはケースの外側に出しました。
私個人としては、開発ボードやディスプレイモジュールは自由に取り外ししたかったし、いろいろなパーツをマウントできるようにしたかったので、ブレッドボードのようにある程度自由に配線できるようにしてみました。
要は、ケース収納の安心安全性にプラスして、ブレッドボードの様な手軽さが欲しかったのです。

以前、旧型のFRISK ケースでは、ESP8266 と OLED 1306 のケースを作ったことがありました。

FRISKケースにESP-WROOM-02開発ボードとOLED( SSD1306 )を入れてみた( Webニュースミニ電光掲示板 )

これは、基板にハンダ付けして、ケースに完全収納できて良かったのですが、他の用途にモジュールを使い回せませんでした。
だったら、ブレッドボードでもいいじゃないかと思いますが、やっぱりケースに収納したい。
どうせ入れるなら、まずは FRISK ケースです。

今の FRISK ケースは旧型よりも容量が大きくなったので、スイッチサイエンスさんの ESPr Developer 32 はスッポリ入ります。
しかも余裕の空間があるので、そこを利用してブレッドボードっぽいことをやってみました。
以下の動画は、前半は製作過程のスライドショーで、後半に動作状況動画を載せています。

いかがでしょうか?
Yahoo! Japan RSS ニュースは、SSD1306 の方はトップニューストピックスで、フルカラー SSD1331 の方はスポーツニューストピックスを表示させています。
天気予報は Yahoo! Japan RSS から取得したものです。

こういう動画を作るのは骨が折れますね。
しみじみ、YouTuber の方々の大変さを実感しました。

我ながら、このコンパクトさで、結構目立つ Yahoo! ニュース電光掲示板ができたなぁと思いました。
やっぱり私の様な老眼の年配者にとっては、SSD1306 の大きい文字電光掲示板がイイですね。

ただ、注意点があります。
ピンソケットにロープロファイルピンソケットを使用しているので、ジャンパーワイヤーが外れやすいという欠点があります。
また、普通のピンヘッダを無造作に挿し込むと、ピンソケット側の内部コンタクトが破損する場合がありますので、十分注意してください。
もし、頑丈さを狙うのならば、丸ピンヘッダの方が良いかもしれません。
いずれにしても、これはブレッドボードよりも接触不良が起きやすいので、あくまで仮の試作とお考えください。
バッテリーとの併用使用は思わぬトラブルになりますので、この方法は止めた方が良いと思います。

ただ、このロープロファイルピンソケットは、普通のピンソケットより遙かに背が低く、しかも、普通のピンヘッダが挿せるというところが魅力で、電子工作用途の小型化には捨て難い魅力がありますね。

ということで、以上をご理解していただいた上で以下の記事をご覧いただければと思います。

スポンサーリンク

準備するもの

FRISK

金属ケースでないものを使用します。

ESPr Developer 32 ( ESP-WROOM-32 開発ボード)

ESPr Developer 32
スイッチサイエンス(Switch Science)

スイッチサイエンスさんの ESP-WROOM-32 開発ボードです。
これは FRISKケース内収納に丁度良いだけでなく、USB電源周りの保護機能が充実していて、突入電流対策も施してあり安心です。

ESPr Developer 32 については以下のページも合わせて参照してください。

ESPr Developer 32 ( スイッチサイエンス製 ) を使ってみました

OLED SSD1331 SPIインターフェースモジュール

フルカラー有機EL ( OLED ) SSD1331 モジュールで、SPIインターフェースの物を使用します。
これは、Amazon.co.jp では中国販売店のものしかありません。
到着までに10日~2週間くらいかかります。

OLED SSD1306 I2C インターフェースモジュール

今回はモノクロ有機EL ( OLED ) SSD1306 モジュールで、I2C インターフェースの物を使用します。

ロープロファイル、シングルピンソケット1×20 4本

以下のリンクの秋月電子通商さんで売っています。
今回は1×20のものを使いました。
因みに、このソケットは、ジャンパーワイヤーとの接触不良が起きやすいことを十分認識の上、使用してください。

シングルピンソケット (低メス) 1×20 (20P)

ジャンパーワイヤー

協和ハーモネット 耐熱通信機器用ビニル電線 H-PVC 0.65mm 2mX10色 茶赤橙黄緑青紫灰白黒
協和ハーモネット(Kyowa Harmonet)
¥1,448(2024/03/27 23:16時点)

ブレッドボードに直接挿せる、φ0.65mm の軟銅線(単線)を使ってください。

工具類

一般的な電子工作用のハンダコテ、ハンダ、ドリル、カッター、ヤスリ、ニッパ、ワイヤーストリッパー、定規等が必要です。

カッターがあれば、FRISK の穴あけは可能ですが、大き目の四角い穴を開ける場合は、ハンドニブラがあると便利です。

ハンドニブラはφ8mm 程度の下穴を開けないといけないので、テーパーリーマーやステップアップドリルを使って穴広げる工具が必要になります。

ESPr Developer 32 にシングルピンヘッダをハンダ付けする

ESPr Developer 32 ( ESP-WROOM-32 , ESP32 開発ボード)については以下の記事も合わせてご参照ください。

ESPr Developer 32 ( スイッチサイエンス製 ) を使ってみました

まず、ESPr Developer 32 ( ESP-WROOM-32 , ESP32 開発ボード ) にロープロファイルピンソケットをハンダ付けしていきます。
丁度20ピンなのでカットせずにそのまま使えますね。

ハンダ付けし終わった図は以下の通りです。

ピンソケットの背が低くてイイ感じです。

次のページでは、ケース加工を説明します。

コメント

  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をコピーしました