2023年5月16日火曜日

ESP32のGPIO12

 ESP32-CAMのGPIO12を電池電圧検出に使っていたが、満充電すると

こんなメッセージが出続ける

 
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
invalid header: 0xffffffff
ets Jul 29 2019 12:21:46
 

GPIO12は内蔵FLASHの電圧選択に使用されていてHにしてはいけないらしい。

 なので電池(リチウムイオンを1/2分圧)を満充電にするとギリギリHになって

起動しなかったわけか。

結構GPIO周り(というかPIN)の制約が多く、気をつけないと嵌る。

 

 

2023年5月11日木曜日

ESP32-CAMの外部リセット

 ESP32-CAMをaliで久々に買ってみた。

 頼んでもいないのに書き込み用の基板が付いていた(ラッキー)

 

 

で、ESP32-CAM用に起こした基板に挿してF/Wを書こうとしたが、書き込めない。

ESP32-CAMのリセットを押してもシリアルに何も出てこない。

本来ならBOOT LOADERのメッセージが送信されるはず。

消費電流もほぼ流れない(10mAくらい) 



 

 

 

 

 

 

 

 でもおまけの基板に挿せば書ける。

であれば、ESP32-CAMの不良ではない。

手持ちの ESP32-CAMを基板に挿すと問題なく動作する。

★おまけの書き込み基板では 書ける

★自分で作成した基板では書けない

★でも自分で作成した基板で他のCAMは書ける

 

で、 おまけの書き込み基板を調べたところ回路図ではGNDになっている

はずの端子がESP32のリセットにつながっていました。

 

 

手持ちのESP23-CAMを比べてみると、抵抗の位置が違う

 

 

 

 

 

 

 

 

 

 

 

 

そもそも アートワークが異なる基板もある。

 

 

 

 

 

 

 

 

 

いろんなバージョンがあると言う事ですね。

 抵抗ジャンパを切替えるだけで外部リセットを使える事がわかっただけでも

 良しとしましょう。

 

2021年2月1日月曜日

Radiko録音出来ず 3局目

adobeによると1/12からflashの実行を停止したとある。

https://www.adobe.com/jp/products/flashplayer/end-of-life.html

 

だとすると.flvファイルを用いて行っているradikoへの認証やkey取得が出来ていない

可能性が高い。

 

ダウンロード出来なくなった時期からしてこれが原因か・・・

と、いうことは pythonとかで同様の事をすれば引き続きストリーミングで取得できる可能性が出てきた事になる

 

 

 

 

 

2021年1月19日火曜日

Radiko録音出来ず 2局目

巷ではRtmpdumpでエラーになったという情報がなかなか上がってこない。

いろいろ調べていく過程で、www.lifewithunix.jpさんが開発した「RadikoPad」という

ツールを見つけた。

※ダウンロードページが見つからないので、ダウンロードや詳細な使い方はこちらから。 

これだとエリア内の番組はaacやm4aとしてダウンロードできる。

ストリームとしてではなく、一括ダウンロードするところがRtmpdumpと違うが、

番組終了後にダウンロードするなら問題は無い

ffmpegの起動は以下の様な感じ

ffmpeg.exe -headers "X-Radiko-AuthToken: hVXxxxXXXXMjao3pt3eifpA" -i "https://radiko.jp/v2/api/ts/playlist.m3u8?station_id=TBS&&l=15&&ft=20210119010000&&to=20210119030000" -acodec copy -bsf aac_adtstoasc "TBS.m4a" -report

ffmpegのバージョンは以下の通り。

ffmpeg version 3.2.2

これがエリアフリーも含めてUbuntsuやDebianで動けば良いのだが。


2021年1月16日土曜日

radiko録音出来ず

2020/1/13頃からRadikoの仕様が変わった様で録音が出来ていない。

 

rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp --app LFR/_definst_ --playpath simul-stream.stream -W https://radiko.jp/apps/js/flash/myplayer-release.swf -C S: -C S: -C S: -C S:cXd7JsdUNbObVaaESUCvbg --live --stop 120 --flv /tmp/LFR_210115_0938
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
Connecting ...
ERROR: RTMP_Connect0, failed to connect socket. 111 (Connection refused)

 

f-radiko.smartstream.ne.jpに接続出来なくなっているっぽい。

HTTPやHTTPSでは接続できる

Wowza Streaming Engine 4 Subscription Edition 4.8.5.05 build20201006161917

そもそもConnection refusedなのでFWとかの設定が変わったのだろうか。

rtmpeの脆弱性を嫌ってrtmpsに変更したのかも。試しにrtmpsに変えてみる。

rtmpdump -v -r rtmps://f-radiko.smartstream.ne.jp --app LFR/_definst
_ --playpath simul-stream.stream -W https://radiko.jp/apps/js/flash/myplayer-rel
ease.swf -C S: -C S: -C S: -C S:cXd7JsdUNbObVaaESUCvbg --live --stop 120 --flv /
tmp/LFR_210115_0938
 

RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL
WARNING: No application or playpath in URL!
Connecting ...
INFO: Connected...
ERROR: rtmp server sent error
ERROR: rtmp server requested close

サーバーが対応していないらしい・・・・

 

 

2020年1月4日土曜日

グリーンハウス製GH-UDG-MCLTECではまる


SIM7500とは別件でグリーンハウス製GH-UDG-MCLTECという
USBドングルをRasPi3で使用する機会があったが、ちと嵌ったので
備忘録的に情報を共有。

普段はDocomo系のMVNO SIMを使用するのだが、
今回は仕様でau契約のものを使用する事になった。

明確にau対応とうたっているのはこれだけなのでこれ一択。

https://www.amazon.co.jp/GH-UDG-MCLTEC/dp/B01NALGD3T

購入直後はNDISモードになっており、ネットワークアダプタとして
認識される仕様。













「Remote NDIS based なんたら」がUSBポートに刺した直後。

このままでもRasPi3では使用出来るらしいが、pppd配下で
コントロールしたかったので、COMとして認識させる。

取り扱い説明書によると
 http://am.webcm/QCMAP_engineer.html
にアクセスして、設定画面でモードを変更するらしい。





















PCからACMに変更してapplyを押す
















再起動が完了するとCOMポートとして認識されている。















この状態でRasPi3のUSBポートに刺せば/dev/ttyACM0として
見えるので、ppp設定をすれば使えるはず。

だかしかし。(続く)


2019年7月13日土曜日

Mbed OS 5におけるUART文字化け

ああ、本業が忙しくて畑カメラが進まない orz

気軽にテストツールを作るのに良くmedを使用するのだが、
LPC54113というNXPの変態CPUを使用していてはまったので
備忘録。

現象は115200bpsのときだけ文字化けする。


#include "mbed.h"

Serial  device(P0_1, P0_0);  // tx, rx

// main() runs in its own thread in the OS
int main()
{

    device.baud(115200);
   
    device.printf("Hello World\n");


上記だと化ける。9600,19200,38400は問題なし。
オシロとかで見てないけど多分クロック設定のミス?

いろいろ調べたらRawSerialというものがあり、
割り込みとかも便利らしい

以下の様に修正して解決。

115200bpsでもばっちり。

#include "mbed.h"
#include "RawSerial.h" 

RawSerial  device(P0_1, P0_0);  // tx, rx

// main() runs in its own thread in the OS
int main()
{

    device.baud(115200);
   
    device.printf("Hello World\n");


2019年6月17日月曜日

pythonスクレイピングの覚書

chromedriver-binaryとcromeのバージョンは合っていないといけない

確認方法

$ pip3 show chromedriver-binary
Name: chromedriver-binary
Version: 76.0.3809.25.0
Summary: Installer for chromedriver.
Home-page: https://github.com/danielkaiser/python-chromedriver-binary
Author: Daniel Kaiser
Author-email: daniel.kaiser94@gmail.com
License: MIT
Location: /usr/lib/python3.8/site-packages
Requires:
Required-by:



# Chromeが75の場合
pip3 install chromedriver-binary==75.0.3770.8.0
 
# Chromeが76の場合
pip3 install chromedriver-binary 

参考にさせて頂きました
 

2019年6月13日木曜日

ESP32-CAM 農業用カメラを作る 15shutter

前回のフラッシュLEDがうっすらと点灯する件、なんとなく判明

回路図を良く見ると、LEDの点灯ポートは


「HS2_DATA1」という信号名(ArduinoではD4)。
で、SDカードの信号を良く見ると、


しっかり「HS2_DATA1」を使っている(笑)。
しかも47Kでプルアップされている。

いやいや、そんな結線ありえんだろ。と、テスタであたってみるも
しっかり導通。

そりゃうっすらと点灯するわなヽ《 ゚Д゚》ノ

GPIOをLにすれば消灯するし、Hにすれば点灯するけど、D4がINPUT設定に
なっていればこのプルアップが効いてくる。

何故Light-Sleep時にうっすら点灯するかは謎だが、どこかの処理で
D4をINPUT設定にしているのかも知れない。

さて、どうするか。
本来の「畑作物監視カメラ」という目的からすると
夜間撮影するわけでもないのでLEDは不要。

SDカードを使わないわけにも行かないし、LEDは
うっすらなら点いていても問題はないので放置でも
良いが、点灯させない方向で改造するか。

2019年6月12日水曜日

ESP32-CAM 農業用カメラを作る 14shutter

ESP32-CAMで
・撮影
・SDに連番で保存
というだけのスケッチを書いたのだが、何かがおかしい。

フラッシュの代わりのLEDがうっすら点灯した状態のままになる



いろいろいじってみると、どうもlight_sleepが影響しているみたい。


void loop() {
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    Serial.println("Captuer");
    digitalWrite(LED_FLASH, HIGH);  //フラッシュLED消灯
//撮影処理とりあえずコメントアウト    capture_save_jpeg(cnt++);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    esp_sleep_enable_timer_wakeup(10*1000000); //10 seconds
    int ret = esp_light_sleep_start();

    Serial.println("Exit sleep");
}



上の処理だとうっすら点灯になるが、

void loop() {
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    Serial.println("Captuer");
    digitalWrite(LED_FLASH, HIGH);  //フラッシュLED消灯
//撮影処理とりあえずコメントアウト    capture_save_jpeg(cnt++);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    delay(10*1000);
 

    Serial.println("Exit sleep");
}


これだと「点灯」→「消灯」を繰り返す。




LED自体は単純なFETのゲートでドライブされているので
中途半端な状態にはならないはずだが。

調査継続。




2019年6月4日火曜日

ESP32-CAM 農業用カメラを作る 13shutter

いきなりESP32-CAMを動かし始めたが、補足の情報を。

開発環境

開発環境(Arduino)は
https://qiita.com/Nabeshin/items/b195cad1afe99ce29f1e
ここが詳しいので参照願います。



回路図



フラッシュLED

フラッシュLEDの点灯方法
但し、点灯時200mAくらい電流が流れる。

    #define LED_FLASH  4  //FLASH LED

    pinMode(LED_FLASH, OUTPUT);
    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯

    digitalWrite(LED_FLASH, HIGH); //フラッシュLED点灯

    digitalWrite(LED_FLASH, LOW);  //フラッシュLED消灯




2019年6月3日月曜日

ESP32-CAM 農業用カメラを作る 12shutter

いよいよESP32-CAMを使って撮影した画像を
SDカードに保存する。

いろいろNETを彷徨っているとこんなサンプルを発見

https://github.com/v12345vtm/CameraWebserver2SD/blob/master/CameraWebserver2SD/CameraWebserver2SD.ino

通常のサンプルはいろいろエラーが出て、動かすのに苦労があるのだが
このサンプルはいきなりOKだった。

WiFiの設定とNTPサーバーを国内のものに変更する

const char* ssid = "XXXXX";
const char* password = "PASS";
const char* ntpServer = "ntp.nict.jp"; //internet time server

RESETすると、シリアルポートに以下のメッセージ


ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x12 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:9232
load:0x40080400,len:6400
entry 0x400806a8
[D][esp32-hal-psram.c:47] psramInit(): PSRAM enabled

v12345vtm

[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 0 - WIFI_READY
[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 2 - STA_START
.[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:336] _eventCallback(): Event: 7 - STA_GOT_IP
[D][WiFiGeneric.cpp:379] _eventCallback(): STA IP: 192.168.200.109, MASK: 255.255.255.0, GW: 192.168.200.254
.
WiFi connected
Sunday, June 02 2019 16:57:14
 internet time ok

SD_MMC Card Type: SDHC
SD_MMC Card Size: 7600MB
Listing directory: /
  FILE: /.dropbox.device  SIZE: 56
Creating Dir: /mydir
Dir created
Listing directory: /
  DIR : /mydir
  FILE: /.dropbox.device  SIZE: 56
Removing Dir: /mydir
Dir removed
Listing directory: /
  FILE: /.dropbox.device  SIZE: 56
Writing file: /hello.txt
File written
Appending to file: /hello.txt
Message appended
Reading file: /hello.txt
Read from file: Hello World!
Deleting file: /foo.txt
[E][vfs_api.cpp:135] remove(): /foo.txt does not exists or is directory
Delete failed
Renaming file /hello.txt to /foo.txt
File renamed
Reading file: /foo.txt
Read from file: Hello World!
[E][vfs_api.cpp:64] open(): /sdcard/test.txt does not exist
1048576 bytes written for 2274 ms
Total space: 7582MB
Used space: 762MB
Starting web server on port: '80'
Starting stream server on port: '9601'
Camera Ready! Use 'http://192.168.200.109' to connect , de stream zit op een andere poortkanaal 9601
stream Ready! Use 'http://192.168.200.109:9601/stream
image Ready! Use 'http://192.168.200.109/capture


画像が欲しいので、
http://192.168.200.109/capture
にアクセスすると以下のメッセージが表示され、ブラウザに
1600x1200の画像が表示された。

lijn493
lijn496 pixformatjpg for httpd send
fb lengte=
106073
Writing file: /capture.jpg
succes to open file for SDwriting552
Writing file: /info.txt
File written
0
JPG: 106073B 978ms



SDカードの内容はこんな感じ


Textファイルはテスト的に作成されたものの様。

ここまで出来ていると、もう先が見えてきた。
偉大な先人に感謝。

まだスケッチ内容を理解していないが、

  • WiFi関連の削除
  • 定期的にCaptuerを実行
  • 余計なTextファイルを作らない
  • FTPによる画像ファイルの送信

を追加する事になる。


ところでNTP設定は何のために使っているんだろう



2019年6月2日日曜日

畑 3畝目

毎週日曜日の家庭菜園
先週植えたスイカがあまり育っていない


ズッキーニは巨大



なすときゅうりがぼちぼち採れ始めた。