macsbug

Archive for 7月 2022

Weather and Kyoshin

with 2 comments

天気と強震モニタを M5Stack と 3.5″ Display で表示しました。  2022.07.16

天気は 地域の日時,時刻, 温度, 湿度, 気圧を表示します。
強震モニタは 地震発生時に音の知らせ、震源地と震度を表示します。
地震発生時に 判断や対応が出来ます。
_ 謝辞:強震モニタは RIALAB makoto氏の
_ M5Stackで強震モニタのデータをウォッチする を移植させて戴きました。
_ パソコンでは Yahooのリアルタイム震度 を使用しています。


.
仕様:
天気は OpenWeather を使用し 地域の天気を表示します。
強震モニタは 防災科研強震モニタがあります。
日時,時間は WorldTimeAPI を使用しました。
開発環境:Arduino IDE 1.8.19
_ Board Manager : arduino-esp32 2.0.3-RC1
_ M5Stack:
_  Board : ”M5Stack-Core-ESP32”
_  Partition Scheme : “No OTA (large App)” or
_  ”Minimal SPIFFS (Large APPS woth OTA)”
_ ESP32 MiniKit:
_  Board : ”MH-ET LIVE ESP32MiniKit”
_  Partition Scheme:”No OTA (Large APP)”
_ Library:LovyanGFX
_ Library:AnimatedGIF
_ Hard:M5Stack
_ Hard:3.5″ 380×480 Display Touch and ESP32 MiniKIt Box


.
🟢 Down Load:Weather_Kyoshin_M5Stack_LGFX.zip
_ DL後 pdf(_.pdf)を削除しzipを解凍します。
🟢 Down Load:Weather_Kyoshin_320x480V_MiniKit.zip
_ DL後 pdf(_.pdf)を削除しzipを解凍します。
以下の設定が必要です。

const char *ssid = "."; // Access point name for Wi-Fi connection
const char *pass = "."; // Wi-Fi connection password
const String key = "."; // OpenWeather key

OpenWeatherWeather API 参照とAPI取得方法。
Free APIkey : 60 calls/Minute, 1,000,000 calls/Month
sign up:sign up後 mailにAPI key, OpenWeather HPで見れます。


.
操作方法:
Aボタン:強震を表示。5秒後に消灯。
Bボタン:天気を表示。5秒後に消灯。
Cボタン:連続表示と消灯の切り替え。

.
上 をタッチ:5秒表示し消灯。
中央をタッチ:連続表示。
下 をタッチ:消灯。


.
3.5inch Display:以下の MiniKit版を使用します。
380×480 SPI Display with touch and ESP32 miniKit Box

LCDのバックライトコントロールを追加する為に 改修しました。
配線:ILI9488_BL(Green) – MiniKit_13(Green), and M5StampC3_9
- ILI9488のBLは 3V3接続でしたが 3V3を外し MiniKitの13pinに接続します。
- ILI9488のBLは Transistor Driveで MiniKitの13pinへの接続は可能です。


.
メモ:
01. 防災科研の強震モニタは 多彩な機能があります。
02. M5Stack用は 機能が簡略化されたものです。
_  防災科研の日本地図は 352×400で 320×240に変換され 横長になります。
03. 移植は 強震の日本地図へのScaleの追加と新たに天気を追加しました。
04. 日本地図は WEBからの入手をやめて bin.cに変換し使用しています。
_  bin.c への変換は lcd-image-converter で 16bit にて作成しました。
05. WorldTimeAPI は Text抽出が可能です。JSTや時間変換は不要になります。
_  TomeZponeを参照にTokyoとかを指定します。
06. Library Arduino JSONは不要です。(使用時 verで問題になる時がある)
07. OpenWeatherは Free APIkeyがあります。登録するとメールでkeyが届きます。
_  制限:60 calls/Minute, 1,000,000 calls/month です。
08. 表示の高速化:
_  LovyanGFXの固定幅フォント(lgfxJapanMincho_xx)を使用します。
_  背景色がDKGREENの時 tft.setTextColor(TFT_WHITE,TFT_DKGREEN);
_  と準備し tft.drawString(hms,188,38); 又は
_  tft.setCursor(188,38); tft.println(String(hms));
_  とすると 前回の文字を背景色で消す形で白文字で重ね書きします。
_  重ね書きには 数値や文字は固定幅フォント(等幅)が必要になります。
_  表示場所に 先にfillRect で前回表示を消すとチラつきが多くなります。
09. tft.drawStringよりも tft.print の方がメモリーに 優しい様です。
10. メモリー:スケッチは 1.38MB。4MB中1.3MBを超えていますので
_ Arduino IDE / Partition Scheme : “No OTA (large App)” が必要です。
11.. M5Stack USB消費電流:USB Current consumption
_ 強震モニタは LCD BackLight(BL) と Sleep, WiFi が使用されています。
_ では それぞれが どの程度の消費電流なのでしょうか?

_ ESP32(IP5306,CP2104等を含む)とLCD表示は 80mA です。
_ LCD BLは 20mA で BLを消すと ESP32 は 60mA で動作。
_ WiFiを使用すると 20mA 追加され 100mA になります。
_ (WiFiの値は Peak値を考慮した数値ではありません。)
_ sleepは 10mA です。 sleep を使用し LCD BLを消すと 50mA です。
_ LCDのBLを消すと LCDの劣化を防げます。
_ LCDのBLは 3.3V駆動で 67mA です。
12. MiniKit ILI9488 LCDの USB LCD消費電流は 50mAです。
_ ILI9488 BLは Transistor(S8050)でDriveされ ESP32のGPIOで接続可能です。
_ 大きなDisplayは消費電流が増えます。7inchの場合は 電源の考慮が必要です。
13. 消費電流を考慮すると BL制御や sleep が必要か判断できます。
14. MiniKit ILI9488は Speaker未接続の為 後日 改修する予定です。
15. 気象情報:多数の気象情報があり PC や iPad で見る事が出来ます。
_ PC や iPad で見れますので 電子工作でどうなのかと言う面もあります。
_ Windy リアルタイム天気予報
_ 世界の気象リアルタイム
_ 世界の大気汚染状況
_ 世界中の気象状況
_ 気象庁アメダス
_ 東京アメッシュ
_ 強震モニタ


.
感想:
強震モニタは 地震発生時に 震源地が分かると判断と対応ができ便利です。
防災に役立ちます。
RIALAB makoto氏の強震モニタは 実に良くできています。感謝!
経緯や目的も含め何度もこの記事を読み直す程です。
ネット上にある画像を容易に表示できると多くの事が出来る様になります。

gif取得や変換, 表示方法に興味があり スケッチを見ていますが 私には難解です。
gif変換が出来て表示していますので感心しています。

防災科研の強震モニタは ボタンや入力があり多彩な対応が可能で良く出来ています
これをタッチ操作で実現するには 双方向の通信をマスターする必要があります。
これが出来ると かなりの事が出来る様になります。

ESP32でブラウザーが動いたり Youtubeが見れるアプリが実現すると良いのですが
そう簡単にはいかないでしょうね。

課題:メモリー
漢字が可能な固定幅フォントは メモリーを使用する様です。
Arduino IDE / Partition Scheme : “Default” でコンパイル不可になりました。
最初は 使用する漢字の部分を bin.c で使用していましたが 試作中での
対応は臨機応変ではなくなりました。
その為に LovyanGFXの固定幅フォントに切り替え便利になりました。
LovyanGFXで漢字が容易に使用できるのは 素晴らしいです。
メモリー使用量を考慮すると 表示する漢字の部分を bin.c にした方が
良いかと感じました。多くの事を熟知していないと こうなります。

 

.


.
M5Stack , ESP32 MiniKIt . ILI9488 , LovyanGFX , 天気 , 強震モニタ ,

Written by macsbug

7月 16, 2022 at 12:34 pm

カテゴリー: ESP32, M5STACK

USB Cable Tester for M5Stack

leave a comment »

USB Cable Tester for M5Stack             2022.07.08

USB Cableの断線や抵抗(電圧降下)を デジタルとアナログで表示します。
500円 の USB Cable Tester を M5Stackに接続します。


費用: 900円。
たまに使用する為 取り付け取り外しが容易な
M5Stackの横に接続する Extension方式を採用しました。
測定するUSB Cableは上下に接続します。

Cableが 断線している場合は
該当端子に [ OPEN ] を表示。
電圧降下(mV)を数値とグラフで表示し
抵抗値が 大きい場合は 赤色で表示。
グラフは抵抗の変化を目視できます。

.


.
🟢 Down Load:M5_USB_Cable_Tester.zip
_ DL後 pdf(_.pdf)を削除しzipを解凍します。
🔴 Down Load:LovyanGFX版です。M5_USB_Cable_Tester_LGFX.zip
_ DL後 pdf(_.pdf)を削除しzipを解凍します。
_ LovyanGFX版は 表示が綺麗で高速です。
_ 開発環境:Arduino IDE 1.8.19
.


.
構成:

500円の USB Cable Tester を使用。
コネクタの端子は基板上にあります。
サイズはM5Stackに入る50x50mm。
USB Cable Tester の 基板を
M5Stack PROTO Caseへ装着。
M5 PROTO Boardと接続します。

.


.
回路図:

USB Cable Tester の回路図です。

_ R1,R2,R3,R4,R5 は 300Ω です。LEDは高輝度青色です。
_ Lighning, type-c, Micro は パラレル接続されています。
_ 基板には コネクターのCheck Pointが24個あります。
_ 動作:USB 5Vから 300Ω、測定するUSB Cableを挟み
_ Cableが正常の場合 LEDは点灯します。
_ Cableが断線の場合 LEDは点灯しません。
_ この方法は Cableの抵抗値の測定はできません。
:

改修方法:M5Stackへ接続する回路図。

_ 配線は 両側(D+,D-,VCC,GND x2)の8本と電源2本です。
_ 8本は M5Stackの ADC端子(Analog Input) へ接続します。
_ 2本は M5Stackの 3.3V電源(330Ωを含む)とGNDへ接続します。
_ USB Cableの両端をM5StackのADC端子へ接続し電圧を測ります。
_ コネクター間の電位差を測定し断線や抵抗値を判断できます。
_ 電源は 3.3Vで 10mA程度にする為に 330Ωを入れます。
_ USB Cableの導通が正常の場合 D+ 端子は 2.54Vです。
_ この時 LEDは 2106Ω に相当します。

_ メモ:GPIO_0 を使用する為に プログラム書き込み時と
_  電源投入時は 測定するUSB Cableを 外しておきます。
_  R1,R2,R3,R4,R5,LED は 他の抵抗に交換しても良いですが
_  基板に手を加えない様にする為に そのまま使用しました。
.


.
部品リスト:費用:830円

No. Nomen Purchase Price
1 USB Cable Tester, 50x50mm
Wozniak Store 405円
1 USB Cable Tester, 50x50mm
MECHANIC Factory Store
. $3.39
. 輸送期間 : 18日
455円
2 Extension Adapter
M5Stack Extension Adapter 356円
3 CASE Cover
3D Printerで製作 50円
4 Resistor 330Ω 10円
5 Screw : 2φ x 2ea 10円
6 Wire : 0.26mm ジョンフロン線

.
補足:同等の USB Cable Tester で 45×48.5mm。

No. Nomen Purchase Price
1 Quick Cable Test, 45×48.5mm
YH Repair Tools Store
. $4.53
632円

.


.
製作:回路図に従い配線します。
_ M-BUS 3.3V には 330Ωを入れます。
_ USB Cable TesterからのWireは PROTO基板のスルーホールを通します。

USB Cable Tester of M5Stack , Pin Assignments
Type-A PWR IN VCC GND D+ D- VCC GND
M-BUS 330Ω + 3V3 GND 35 36 26 0
type-C PWR IN VCC GND D+ D- VCC GND
M-BUS 330Ω + 3V3 GND 12 34 13 15

サイズは 50x50mmでM5Stackに入ります。 Caseに固定する穴を開けます。
各端子に Wire ( 10本 ) を接続。
8本のWireを M-BUSへ接続します。
3V3は 330Ωを接続。GNDも接続。
基板を ネジで止めた状態です。
各コネクターは 丁度良い位置。
基板をネジで止めた状態です。
ケースの高さは 15mm です。
M5StackのM-BUS拡張コネクタです。
コネクタは縦2段で 緩みは出ません。

.
完成:M5Stackに 必要な時に接続し 不要な時に容易に外せます。

.


.
ADC:アナログ入力について
- アナログ入力 ADCには ADC1とADC2とがあります。
- Wi-Fi使用時 ADC2は機能しません。
- ADC1 : GPIO 34, 35, 36, 37, 38, 39, Hall Phase 1, Hall Phase 0
- ADC2 : GPIO 0, 2, 4, 12, 13, 14, 15, 25, 26, 27
.


.
プログラム:フォントを綺麗に高速に表示する。
- フォントを同じ場所で重ね書きするには フォントの背景色を黒とかにします。
- この方法で重ね書きをすると 高速な表示が可能です。
- M5.Lcd.setTextColor(TFT_WHITE); :文字を白。以前の白い文字と重なります。
- M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK); :文字を白。背景色を黒で重なりません。
- 
- フォントを重ね書きするには 数値や文字は 等幅が必要です。
- 幅が変化するフォントは 位置がずれて綺麗に表示できません。
- M5StackでFreeFontsのFMB12を使用し何とか表示ができました。
- ただし 妙な細工をして完璧ではありませんでした。
- 
- LonyanGFXは 固定幅フォントがあります。
- fonts::lgfxJapanMincho_12 // 明朝体 サイズ12 固定幅フォント
- fonts::lgfxJapanGothic_20 // ゴシック体 サイズ20 固定幅フォント
- サイズは 8, 12, 16, 20, 24, 28, 32, 36, 40 が用意されています。
- LovyanGFX/examples/HowToUse/3_fonts/3_fonts.ino
- このフォントを使用すると プログラムが容易である事と綺麗に表示できます。
.


.
感想:
USB Cable Testerの基板は MECHANIC Factory Storeの商品です。
価格;500円。
- 作るより購入した方が安いです。
- コネクター部品を集めて作ると これ以上の価格になるでしょう。
サイズ:50 x 50mm。
- M5Stack用に作られたかの様なピッタリのサイズです。
- コネクターの位置も最適な距離にあります。
ネジ穴の場所:
- ネジを止める為の穴の場所は 適切な場所が確保されています。
課題:
- 使用されているコネクターの品質が課題になります。

メモ:低抵抗のCableを測定する時は 両サイドに抵抗を接続します。

案:USB Cable Testerの基板を使用せず M5Stack用に再設計し
-  ソフトを充実すると素晴らしいモノができると考えています。


.
.


M5Stack , USB Cable Tester ,

Written by macsbug

7月 8, 2022 at 9:10 am

カテゴリー: ESP32, M5STACK