ブログだいちゃん

ブログだいちゃん

趣味のブログ

ブログだいちゃん

ESP32でWebRadioを作成 その3ブラウザで設定する

WebRadioの番組登録・修正はSDカード内にある「stations.txt」の中身を書き換えることにより出来ますが、ブラウザで設定出来るようになっていますのでこちらの方が設定しやすいです。

WebRadioのIPアドレスを調べる

WebRadioが自宅WiFiのどのIPアドレスを使用しているのか調べないとWebRadioにアクセスして設定することが出来ません。

ウエブラジオのIPアドレスLCDディスプレイの下段にmyIP:192.168.○.○と表示されていますのでこのIPアドレスをブラウザに打ち込み設定画面を表示させます。

WebRadioの設定

接続すると以下の画面が表示されます、左上のラジオのアイコンが反転表示され確認出来ます、各ボタンで番組切り替え音量・音質などを調整できます。

f:id:blogdaichan:20190103102401j:plain

まず最初に虫眼鏡マークのボタンを押し番組の登録を行います、好きな番組を選び修正して登録します。

f:id:blogdaichan:20190103102357j:plainf:id:blogdaichan:20190103102411j:plain

最後に WebRadioのSDカードに登録してブラウザを閉じます。

f:id:blogdaichan:20190103102408j:plain

ダウンロードしたロゴファイルは、編集したラジオ局と同じ名前にしてSDカード内の「logo」フォルダーに入れるとLCDに表示されます。

一部不具合はありますがこれで仮組みでの設定は出来ました、さてどのようなケースにして組み込むかこれから考えます。

関連記事

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

ESP32でWebRadioを作成 その2

前の記事でESP32とVS1053 MP3モジュールの最小構成でWebRadioが動作するのが確認出来たので、続きの作業としてLCDタッチパネルとリモコンを取付け動作確認を行います。

回路図とパーツの配線

参考動画の説明欄よりGithubに移動しZipファイルをダウンロードし解凍します、additional_infoフォルダー内に回路図、プログラム説明、画像などが入っています。

回路図の画像を開き確認しながら配線していきますが、使用しているLCDがHX8367Dで今回使用する手持ちのLCD(ILI9341)とは違います修正が必要なので画像に手を加えました、適当にLCDの端子を割り当てただけですので実物の端子位置とは異なります、LCD及びIRモジュールは3.3V使用、MP3モジュールは5Vです。

f:id:blogdaichan:20190103103730j:plain
回路図

動作確認のため仮組みしてみました、最終的にはケースを作成して組み込みます。

f:id:blogdaichan:20190103103726j:plainf:id:blogdaichan:20190103103723j:plain

スケッチの書込み

additional_infoフォルダー内にある英語表記のPDFファイルに設定方法が書いてあります、またMiniWebRadio.inoファイルのコメント欄にも8項目ほど書かれていますので1番目から設定していきます。

私の環境での設定

1)スケッチ容量が大きいのでパーティションテーブルを書き換える。 解凍したMiniWebradioフォルダー内にあるdefault.csvArduinoData/packages/esp32 /hardware/esp32/1.0.0/ tools / partitions /フォルダ内のdefaut.csvと置き換える。 boards.txtのしきい値を1310720から3145728に設定します、具体的にはArduinoData/packages/esp32 /hardware/esp32/1.0.0/ にあるboards.txtを開きesp32.name=ESP32 Dev Moduleの項目のesp32.upload.maximum_size=3145728に書き換えて保存する。 これをしないとメモリーオーバーで書き込めません。

2)Timezoneを日本時間(JST-9)を指定する。

3)Content_on_SD_Card.zipファイルを解凍しSDカードに書き込む。

4)WiFiSSIDPassを設定する、SDカードのnetworks.txtにも記入する。

5)ESP32 DEV Module の場合GPIOの変更は必要なし。

6)必要なライブラリをMiniWebRadio.inoと同じフォルダーに入れるPDFファイル参照。

7)tft.hの#include "fonts / Times_New_Roman.h"のコメントを外します。

8)TFTコントローラはILI9341ですのでtft0)に設定。

リモコンはこのままではコードが合いませんので自分が使用するリモコンに合わせてコードを書き換えます、書き換えるファイルはIR.cppです、私のリモコンの場合下記のように書き換えました。

f:id:blogdaichan:20190103103720p:plain

リモコンのコードの確認法は以前の記事にあります、同じリモコンであれば多分このコードでいけると思います。

以上を設定してスケッチを書き込みます。

動作確認

結線を確認し電源を入れてみました。

f:id:blogdaichan:20190103103738j:plainf:id:blogdaichan:20190103103735j:plain

番組の一覧はSDカード内のstations.txtに記載されていますが内容が海外の物ばかりです、上の画像は番組内容を日本版に書換たものです。

タッチパネルの反応が悪く、また時間の表示などで文字化けみたいに表示され使い物になりませんでしたこれは検討課題です、リモコンは正常動作しますので番組の切り替え音量調節などはリモコンで出来ます。

また、ブラウザで番組の登録削除など出来ますので次回の記事で紹介します。

追 記

この記事を作成した後に Github が更新され Arduino IDE ではなく sloeber を使用した書込み方法が書かれております、この方法が書き込みやすいし Arduino IDE の設定変更も必要ありませんのでお勧めです。

実際にやってみましたが問題なく書き込めました、以後この方法で書き込んでいます。

タッチパネルの反応の悪さはディスプレイの上下反転で正常になりました、また文字化けのような症状の改善は「ESP32 Web Radio のLCD表示に時々不具合が出る」に記載しています。

書込みエラーが出た場合

対処法は、この記事にありました。

記事の中の「手動書込み」方法でで行なうと書込み出来ました。

手 順
  1. ESP32のBOOTボタンを押しっぱなしにする。
  2. ENボタンを1回押す。
  3. sloeber の書込みボタンを押す。
  4. 書込み開始の横バーが表示されたらBOOTボタンをはなす。
  5. 書込みが終了したらENボタンを1回押す。

以上です。

関連記事

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

ESP32でWebRadioを作成

ラジオはあまり聞くことはないのですが、今ハマっているNodeMCU(ESP32)を使いウエブラジオを作成しようと思います。

使用パーツ

ESP Wroom32 開発ボード

VS1053 MP3モジュール(アマゾン)

2.8インチLCDタッチパネル(アマゾン)

赤外線リモコン受信モジュール(秋月電子)

赤外線リモコン(アマゾン) 

2GB程度のSDカード:MP3ファイルを入れる場合は容量に応じて増やして下さい

赤外線リモコンには受信モジュールが付属します、私の場合リモコンがありましたので受信モジュールのみ購入しております。

MP3モジュール単体ではスピーカーを鳴らすことが出来ませんアンプ付スピーカー などを使用するかオーディオアンプボード を使用しスピーカーに接続します、なおイヤホンは使用出来ます。

まずは、最小構成で鳴らしてみる

最小構成でラジオが聴けるか試します、参考にしたのはこのYouTube動画です。


最終的にはこれを目指しますが、動画の説明欄にあるGitHubへのリンクから最小の構成でウエブラジオが鳴るか確認します。

GitHubの右上「Clone or Download」からZipファイルをダウンロードし、中にある画像を参考に配線します。

ブレッドボード上にジャンパー線で配線しました、このスケッチでは再生できるのは1局だけです。

vs1053_ext.inoを開き自宅WiFiSSID及びPass を設定して書き込みます。

最小構成でのウエブラジオは出来たので、次はLCDを使用しリモコンで制御出来るように作成します。

関連記事

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

blogdaichan.hatenablog.com

BME280を使用し外気温を Blynk で表示する その2

前の記事で、仮組みをして表示確認出来たので外に設置します、都合良く2階の軒下に外付けのコンセントがありますのでこれを利用し電源供給して使用したいと思います。

組み込みに使ったもの

ケースは市販の綿棒が入っていたビニールケースにパーツを取付けるためのフレームを3Dプリンターで作成し取付けました、蓋を取り除き逆さにして使用します。

取付けた場所

これを外付けのコンセントがある二階の軒に吊しました。

結果は

表示させてみたところ室内より温度が高く表示されました、南向きの角で日当たりが良く熱がこもっているようです、軒から5cm位下げた所に取付けましたがもっと下げた方がよさそうです、やはり百葉箱のような環境に置かないとダメですね、曇りの日や夜などは大丈夫でしょうか?、まあ取敢えずこれで外気温が計れるようになりました。

 

Blynkについて

無料版のBlynkは2022年12月31日で終了となりました、残念ですね。

BME280を使用し外気温を Blynk で表示する

以前フルカラードットマトリックスLEDで時計を作成しました、これもBME280を使用し温度・湿度・気圧を表示させています、室内ではこれで充分ですが外気温も測定したいなと思い探していたところ、おもしろい記事(ベランダの温湿度センサーをDHT11から気圧も計れるBME280に変更した)があり参考にさせて頂きました。

BME280・ESP8266 もありますので早速作成してみることにしました、Blynk は今回が初めての使用になります。

とりあえず仮組みをしてみる

ブレッドボードにESP8266 BME280 を配置しジャンパー線で繋ぐだけですので至って簡単です、配線及びスケッチは参考にさせて頂いた所に書かれていますのでそちらをご覧下さい。

Blynkの設定

Blynkを初めて使用してみましたが、ネット上に使い方が多くアップされていますし、参考にさせて頂いた所でも設定方法が書かれていますので意外と簡単に設定できました。

自分用に変更した箇所

スマフォの画面表示サイズが大きく表示に空きがあったので不快指数をバー表示させました(T:温度 H:湿度)。

不快指数=0.81×T+0.01×H(0.99×T-14.3)+46.3

LED表示の上段を 不快指数に基づき、快適度とし3段階:寒い・快適・暑い を表示するように設定しました。

気圧は標高により変化します(500mまでは100mにつき平均11.6hPa下がる)ので自宅の標高を考慮して海抜0mに換算しています。

次は外に置くためのケースを作成して設置したいと思います。  

追 記 (2024/03/03)

  2022/12/31でBlynk legacy は終了してBlynk 2 となりました、残念でしたが Blynk Local Server を構築して使用している記事を読み、私もRaspberry Pi 3B を使用して構築しました。 Blynk legacy が使い放題になり諦めていた外部温度計も再びBlynkで表示出来るようになりました。  

関連記事

  blogdaichan.hatenablog.com

B-Robot ESP32 version 3号機 その2

前回の記事ででハード面の作成を行いましたので、続いてソフトウエアのインストールを行い完成させます。

スケッチの書込み

B-Robot forum で投稿されている ghmartin77 の記事にGithub へのリンクがありますのでZip ファイルをダウンロードします、また不具合などの対処もフォーラム内で議論されていますので最後まで目を通して下さい。

書込みには Arduino IDE を使用しますので使用したことがある方が対象です、使用方法はネット上に山ほどありますのでここでは省きます。

ESP32のライブラリが必要です。

また、Arduino IDEのバージョンがVer1.8.7ではコンパイル時にエラーが出ましたのでベーター版のVer1.9.0を使用しました。

まずGithubからダウンロードしたZipファイルを解凍し、出来たフォルダーの中の「BRobotEvo2ESP32」フォルダーをArduinoで使用するフォルダー(通常ドキュメント内のAruduinoフォルダー)に移動します、フォルダー内にファイルが14個ありますが「BRobotEvo2ESP32.ino」は中身はメッセージだけなので削除し、「ESP32SelfbalancingBot.CPP」ファイルを「ESP32SelfbalancingBot.ino」にリネームします。

その他、フォーラムに書かれている不具合箇所の修正などがありますが、どのファイルを修正したのか覚えておりませんので、この3号機用に修正したファイルをまとめてZipファイルにしたのでアップしておきます。

B-Robot_ESP32_ZIP_file

スケッチを書き込む前に不要動作防止のため、サーボコネクターと電池は外しておきます。

ステッパーモータードライバーの電流値調整

書込みが無事終了したらステッパーモータードライバーの電流値を調整します、まずサーボ、左右のステッパーモーターのコネクターを外した状態で電流値を測定しますこのロボットの場合150mA程度流れています。

いったん電源を落とし片方のステッパーモーターを接続し電源を入れステッパーモーターが動作したときの電流値を250mA程度にドライバーモジュール上のボリュームで調整します、もう片方も同様に調整します。

この電流値で私の場合ちょうど良い感じでしたが、個体差があるかもしれないので実際に動作させてみて調整した方がよいでしょう、調整が済んだら全てのコネクターを接続し寝かせた状態で電源を入れます、暫くすると車輪が少し動きます、動きが止まったら車体をゆっくり持ち上げると立ち上がります。

スマートフォンでのコントロール

jjrobotsAndroid 及び iOS 用にアプリを公開しています、私はAndroidスマフォを使用していますのでGoogle Play よりアプリをインストールしました。

B-Robotの電源を入れるとスマフォのWiFi設定一覧に「Bbot」が表示されますので選択しパスワード「12345678」を入力して接続します。

アプリを立ち上げ「B-ROBOT EVO2」を選択してコントロールします。

サーボは右側のボタンで操作、設定画面ではPIDの調整がスマフォから行えます。

※注意点

ロボットを立たせている時にスマフォを接続すると、一瞬動作がストップしロボットが倒れますので、ロボットを倒した状態でスマフォをWiFi接続し、スマフォでコントロール出来るようにしてからロボットを立たせます。

動 画

関連記事

blogdaichan.hatenablog.com

B-Robot ESP32 version 3号機

この所セルフバランシングロボットばかり作っているような感じですが、また作りました。。。(^_^;)

前回の改良版としてフレームの見直しとサーボの追加、ステッパーモーターを一般的なNEMA14に変更しました。

このセルフバランシングロボットはjjrobotsオープンソースを公開しているBROBOT EVOを参考にしています、B-Robot forum に掲載されています「ghmartin77」さんの記事が大変参考になりました感謝です。   

 

3Dプリンターで作成したフレーム

フレームはPLAフィラメントを使用しています、サーボ取付けやステッパーモーターの仕様変更により以前のものとは多少変更がありますが、大きさはほぼ同じです。   展開図と組み上がりのイメージです。  

  サーボに取付けるハンマーです、B-Robotが倒れたときの起き上がりにも使用します。

  STLファイルが必要な方は以下からダウンロードして下さい。   STL_ZIP_File

主要パーツ

ステッパモーター・サーボ以外は、以前作成したB-Robotと殆ど変りはありませんのでそちらを参照して下さい、以下主要パーツのリンクを張っておきます。   ESP32-DevKitC ESP-WROOM-32開発ボード

ジャイロ:MPU6050

ステッパーモーターNEMA14

ステッパーモータードライバー:DRV8825

サーボ:MG90S

スイッチ:丸型スイッチ(アマゾン)

回路図

サーボを追加した回路図です。

基盤作成

ユニバーサル基板は70mm×50mmを使用します。

ESP32及びDRV8825用のピンヘッダー メスとステッパーモーター用及びサーボ用のピンヘッダーは画像のような配置になりました、短いピンヘッダー メスはMPU6050用でESP32の下に配置しています、5Vのレギュレータは結構熱くなりますのでヒートシンクを取付けています、その右側は電源及びスイッチ用のブロックコネクターです。

MPU6050はジンバルコントローラーに付属のものを流用しています、市販のMPU6050はピン数が異なります、また取付け方向に注意が必要です。

  画像の手前が前進方向です、このMPU6050の場合はこの方向になりました、市販のMPU6050の場合は下の画像のようになります。

↓ 矢印の方向が前進

基盤の仕上がりです、しかしよく見たらLED用の抵抗1KΩ×2個を忘れてました、基盤の空いているところに取付け配線しました、ESP32だと部品数が少なくて済み配線も楽ですね。

組み立て

フレームの展開図を見れば分かると思います、基板用のプレートに基盤を2mmのタップネジで取付けます、ステッピングモーターは8mm×3mmのネジで固定します。

基板用プレートと側面フレームなどは3mmのタップを切りナイロンネジで固定します(タップがない場合は3mmのタップネジでもOK)

ホイールはOリングを取付けて、3mmのタップを切りイモネジでシャフトに固定します、サーボはSG90の場合裏側から2mmのタップネジで固定、MG90Sの場合表側からサーボを差し込みタップネジで固定します、スイッチは押し込みます。

電池は画像のようにベルクロでフレームに固定します、ちなみにコネクターは左側から、サーボ・左モーター/右モーターの順になります(車体の後ろから見た状態)

フレームカバーは0.5mmの塩ビ板を83mm×160mmにカットしたものをフレームの溝にはめ込みます、シールのプリント用紙にイラストを印刷し貼り付けました。

次回はソフトウエア-のインストールです。

関連記事

blogdaichan.hatenablog.com