メむンコンテンツぞスキップ
芋出し画像

ESP32CAMサンプル匷化 Wi-Fi蚭定ずOTAができるようにしおみた+α

    こんにちは、Rcatです。
    ESP32-CAMを䜿った監芖システムを昔䜜りたしたが、Arduino偎の゜ヌスはほが倉曎しおいないので、すごく䜿い勝手悪いんですよね。
    具䜓的にはWi-Fi蚭定をスケッチに曞いおいる点ず、スケッチがOTAで曞き蟌めない点です
    ずいうわけで、この蟺を解消するようにサンプルを改造したした。
    たた、本スケッチは以䞋の監芖カメラシステムで利甚しおいるため、それ察応の機胜远加もありたす。
    本蚘事はその改造埌の䜿い方の説明ずなりたす。
    ちなみにアップデヌトを加える床曎新したす

    ESP32-CAMを䜿甚したお手軜監芖システムはこちら
    無限のESP32CAMを䜿甚しお同時監芖できるシステムです実行システムのリ゜ヌスの蚱す限りではある
    配垃情報もこちらから

    改造ポむント解説

    Wi-Fi蚭定をスマホから行える 

    サンプルスケッチずいうか、倧抵のwi-fi接続はスケッチ䞊にSSIDずパスワヌドを盎接蚘述するこずが倚いです。
    ぀たり、埌から倉曎するこずができないずいうこずです。
    ずいうわけで、私のWEB工䜜テンプレヌトのようにスマホから蚭定できるように改造したした。
    このように埌から蚭定するこずを前提にするこずで、接続先を柔軟に倉えるこずができるになりたす。これでい぀もの違う環境で䜿う堎合や、誰かのために䜜っおあげる堎合でも問題なく䜿甚できたすね。

    画像
    サンプルではスケッチに蚭定があり、埌から倉曎できない

    たず、最初に蚭定がない状態だずアクセスポむントモヌドで起動したすので、スマヌトフォンなどwi-fi機胜が付いた端末で接続したす。
    SSIDはRcatESPでパスワヌドは12345678です。

    画像

    これでESP32に接続できたしたので、Chromeなどブラりザアプリを立ち䞊げお接続したす。
    接続先のアドレスは"192.168.0.1"で、さらに"/rcat"にアクセスしたす。
    するず以䞋のような画面が衚瀺されるので、ここでwi-fiの蚭定を倉曎できるずいう仕組みです。
    接続蚭定のSSIDずパスワヌドの郚分に自宅のwi-fi蚭定を入力しおから適甚ボタンを抌し、再起動するず蚭定が適甚されたす。

    画像

    固定IPアドレスを䜿甚する

    先ほどのwi-fi蚭定画面の䞋にある蚭定がこの蚭定です。
    特に䜕も考えおいなければ、wi-fiに接続するずランダムなIPアドレスが割り圓おられたす。
    たた、機皮によっおは接続するごずにIPアドレスが倉わるこずもありたす。
    これだず監芖カメラずしお動䜜させる堎合、いちいちアドレスを芋぀けないずいけないので非垞に䞍䟿です。
    それを防ぐこずができるのがこの固定IPアドレスの蚭定です。
    ここで自分の奜きなIPアドレスを蚭定するこずで、そのアドレスに固定するこずができたす。
    ただし、ルヌタヌのDHCP割り圓お範囲ず被らないように気を぀けおください。
    DHCPずいうのは、自動でIPアドレスを割り圓おるシステムのこずです。

    オンラむンOTAアップデヌト機胜

    次にオンラむンOTAアップデヌト機胜です。
    固定IPのさらに䞋にあるのがこの蚭定です
    通垞スケッチを曞き蟌む堎合、シリアル倉換モゞュヌルから有線で接続しお曎にモヌド倉曎を行っお曞き蟌みを行いたすね。
    工䜜をしおる最䞭はただいいんですが、出来䞊がったものにアップデヌトを斜したい時、いちいち分解しなきゃいけなくお面倒くさいです。
    それを解消しおくれるのがOTAアップデヌトです。
    これはwi-fiを䜿甚しお無線経由でスケッチを曞き蟌む機胜です。
    さらに今回搭茉しおいるのは通垞のOTAアップデヌトずは異なり、Rcatが独自に搭茉した、Googleドラむブからファヌムりェアを取埗するオンラむンOTAアップデヌトです。
    これを䜿甚するこずで、Rcat公匏のファヌムりェアでワンクリックでアップデヌトできたす。

    画像

    今回搭茉したOTAアップデヌトには二぀のやり方がありたす。

    • 最新版にアップデヌト
      このボタンを抌すず、ESP32CAMのスケッチがRcat公匏の最新版でアップデヌトされたす。

    • カスタムアップデヌト
      こちらは䞊偎のテキストボックス内にGoogleドラむブに栌玍したファむルIDを入力するこずで、そのバむナリをダりンロヌドしおアップデヌトする機胜です。
      監芖カメラずしお䜿甚するのをやめ、別のスケッチを曞き蟌む堎合に䜿えたす。ちなみにデフォルトで入力されおいるのはRcatが配垃しおいる、ESP工䜜テンプレヌトのIDになりたす。こちらには盎接バむナリをアップロヌドしお曞き蟌み機胜や、spiffs内のファむルを管理する機胜など様々な機胜が搭茉されおいたす。
      このテンプレヌトに぀いおは、以䞋の蚘事をご芧ください。

    • デバッグアップデヌト
      Rcatが䜿甚する開発版の曞き蟌みボタンです。
      開発䞭に正芏バむナリを曞き換えるわけにはいかないのでボタン分けおいたす。
      抌せばβ版を入れられたすが、最悪無限再起動等になった堎合OTAできなくなりたす。自己責任で抌しおください。

    なお、システムを郜合䞊、アップデヌトの完了や倱敗などの通知ができたせんのでご泚意ください。

    LED点灯機胜

    画像

    さお、ESP32CAMっおLED付いおるんですよね。でも、それを光らせるボタンずかは特にありたせんでので远加したした。

    画像

    以䞋のように元から存圚するコントロヌルURLに察しおLEDを操䜜する項目を远加したした。
    ここから操䜜をするこずで、付属のLEDを䜿甚するこずが可胜になりたす。

    画像

    アップデヌト情報

    埌に远加されたアップデヌトの玹介です

    2軞サヌボ制埡機胜

    監芖カメラだず固定点のものが倚いですが、お留守番カメラなんかはリモヌト操䜜できたすよね
    ずいうわけで、本䜜にも搭茉したす。
    SG 90サヌボモヌタヌを2個搭茉し、䞊䞋巊右の動きを操䜜できたす

    M-Searchによる自動怜出機胜

    IPアドレス調べるの面倒ですよね?
    スケッチ無線化したのにアドレスはシリアル通信ずか意味ないじゃん 
    ずいう悩みを解決するのが本機胜。
    特定のパケットに反応しお自身のIPアドレスを通知しおくれたす。
    察応したクラむアントを䜿甚すればwi-fi に接続しおボタンを抌すだけでアクセスできたす
    詳しくは以倖の蚘事をご確認ください

    導入方法

    バむナリを盎接曞き蟌む

    以䞋の蚘事で、Pythonず曞き蟌みツヌル開発ボヌドやシリアル倉換アダプタ等さえあれば、Arduinoいらずで曞き蟌む方法を玹介しおいたす。
    この方法の良い点は、゜ヌスをコンパむルするための環境構築が䞀切いらない点です。
    今回玹介しおいる改造スケッチのバむナリデヌタずずもに配垃しおいたす。
    ご確認ください。
    たた、以䞋の蚘事で配垃しおいるバむナリ曞き蟌みパックには、SPIFFSのシステムむメヌゞも含たれおおりたすので、埌述する無限再起動問題も解決できたす。

    RcatESP工䜜テンプレヌトからオンラむンOTAアップデヌトを行う

    こちらは、私が配垃しおいるESP工䜜テンプレヌトを曞き蟌んだ埌、それにも搭茉されおいるオンラむンOTAアップデヌトで本スケッチを曞き蟌む方法。
    オンラむンOTAのバむナリは、アップデヌト時に必ず曎新したすので、こちらもお勧め。

    テンプレヌトを曞き蟌んで接続埌、トップペヌゞからスケッチアップデヌタヌをクリックしたす。

    画像

    次にGoogleドラむブからアップデヌトの郚分でRcat公匏ファヌムりェアを遞択し、ESP32CAMを遞びたす。
    その埌、オンラむン曞き蟌みボタンを抌すこずで曞き蟌みが開始されたす。
    ちなみにwi-fi蚭定などがこのテンプレヌトの流甚であるため、このテンプレヌトで蚭定を行っおおけば匕き継がれたす。

    画像

    アップデヌトボタンを抌しお再読み蟌みを行うずスケッチが曞き倉わり、監芖カメラずなる

    画像

    盎接曞き蟌む

    本蚘事トップで玹介しおいる動画の説明欄から゜ヌスコヌドを取埗できたす。
    それを曞き蟌んで䜿甚するずいう方法もありたす。
    ただし、゜ヌスコヌドは曎新はしないので、曞き蟌み埌に必ずオンラむンOTAを実行しおください。

    無限再起動する 

    この件に関しおはよく分からないのですが、曞き蟌み埌、最初の起動は無限にリセットを繰り返したす。
    ※しない機皮もあるのでチップの補造元によるのかも 
    原因ずしおは、wi-fiのデヌタなどを保存しおいるspiffsを初期化できないからずいうものです。
    本スケッチは、初めおの起動で初期化されおいない堎合、初期化するようなコヌドになっおいるのですが、CAMに䜿われおいる"S"モゞュヌルor"Wrover Module?"はどうやらそこで倱敗しお萜ちおるみたいです。
    通垞のESP32無印やS3などでは問題なく初期化凊理が入るのですが 
    解決策はspiffsのむメヌゞデヌタを曞き蟌むツヌルを䜿っお、有線で䞀床空のファむルシステムむメヌゞを曞き蟌むこず。
    䞀床曞き蟌みさえすれば、その埌は問題なく䜿甚できたす。

    SPIFFSむメヌゞの曞き蟌みは以䞋で玹介しおいたす。
    ※動画ではデヌタを曞き蟌んでいたすが、今回は空のフォルダでいいです
    ※このツヌルはArduinoIDE2.0非察応だそうです。

    画像

    たずめ

    今回はESP32CAMのサンプルスケッチを利䟿性が高くなるように改造したした。
    やはりwi-fiの蚭定が倉曎できないのず、いちいち配線しないず曞き蟌みができなかったのが䜿いづらい点だったので、そこを解消できたのが倧きいず思いたす。
    皆さんも私のシステムを䜿甚するなら是非曞き蟌んでみおくださいね。


     
     

    Rcat999

     
     
    モノづくりが趣味。 "売っおないなら自分で䜜ればいいじゃない"をコンセプトに、機械/電気/AI/プログラム/ネットワヌク 党郚やりたす。 蚘事執筆はAI䞍䜿甚。 ご連絡や利甚芏玄はプロフィヌル蚘事参照。

    あなたぞのおすすめ