ああ、本業が忙しくて畑カメラが進まない 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年7月13日土曜日
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:
確認方法
$ 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は
うっすらなら点いていても問題はないので放置でも
良いが、点灯させない方向で改造するか。
回路図を良く見ると、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のゲートでドライブされているので
中途半端な状態にはならないはずだが。
調査継続。
・撮影
・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消灯
開発環境
開発環境(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ファイルはテスト的に作成されたものの様。
ここまで出来ていると、もう先が見えてきた。
偉大な先人に感謝。
まだスケッチ内容を理解していないが、
を追加する事になる。
ところでNTP設定は何のために使っているんだろう
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日日曜日
2019年5月31日金曜日
ESP32-CAMのWiFiの相性
ESP32-CAMのテストで手持ちのWiFiルーターをAPとして
使おうとしたらつながらない。
通常使っているスマホとかAPには
つながる
もちろん、ZTEは通常使用出来ている
暗号化とかで微妙に違いがあるのだろうか?
ArduinoベースのESP32ではWiFi関連の細かい設定方法の
情報が少ないなぁ。
(そもそも技適が・・・・・)
継続調査!!
使おうとしたらつながらない。
通常使っているスマホとかAPには
つながる
- ZTE MF98N WiFiルーター × (WPA-PSK)
- HAUWAI P20 PRO スマホ ○ (WPA-PSK)
- BUFFALO AirStationPro AP ○ (WEP64)
もちろん、ZTEは通常使用出来ている
暗号化とかで微妙に違いがあるのだろうか?
ArduinoベースのESP32ではWiFi関連の細かい設定方法の
情報が少ないなぁ。
(そもそも技適が・・・・・)
継続調査!!
2019年5月30日木曜日
SIM7500JCのSMS
FTPからは外れるが、SIM7500のSMS機能を調べてみた。
もちろんSMSオプションのついたSIMである事が前提。
まず受信から。
普段使いのスマホからIIJの電話番号にSMSを送信する。
するとATコマンドのターミナルに次のようなメッセージが
表示される
-------------------------------------------
+CMTI: "SM",0
-------------------------------------------
これで受信を認識する。
次にメッセージの読み取り
以下は全メッセージの表示だが、個別に表示する事も
出来る
(スマホからは「test」というメッセージを送信した)
-------------------------------------------
AT+CMGL="ALL"
+CMGL: 0,"REC UNREAD","09026776837","","19/05/25,16:20:14+36"
test
OK
-------------------------------------------
逆にスマホへの送信は以下の様になる
(「TEST RETURN」を送信する)
-------------------------------------------
AT+CMGS="09026776837"
> TEST RETURN
+CMGS: 13
OK
-------------------------------------------
スマホでも受信する事が出来た。
1回の通信毎にSMS料金が発生するので
常時の使用は出来ないが、緊急でRESETを
かけたりするには便利かもしれない。
もちろんSMSオプションのついたSIMである事が前提。
まず受信から。
普段使いのスマホからIIJの電話番号にSMSを送信する。
するとATコマンドのターミナルに次のようなメッセージが
表示される
-------------------------------------------
+CMTI: "SM",0
-------------------------------------------
これで受信を認識する。
次にメッセージの読み取り
以下は全メッセージの表示だが、個別に表示する事も
出来る
(スマホからは「test」というメッセージを送信した)
-------------------------------------------
AT+CMGL="ALL"
+CMGL: 0,"REC UNREAD","09026776837","","19/05/25,16:20:14+36"
test
OK
-------------------------------------------
逆にスマホへの送信は以下の様になる
(「TEST RETURN」を送信する)
-------------------------------------------
AT+CMGS="09026776837"
> TEST RETURN
+CMGS: 13
OK
-------------------------------------------
スマホでも受信する事が出来た。
1回の通信毎にSMS料金が発生するので
常時の使用は出来ないが、緊急でRESETを
かけたりするには便利かもしれない。
2019年5月28日火曜日
直動機構によるロボット駆動
Youtubeで面白いのを見つけた。
https://www.youtube.com/watch?v=0BoPoWF_FwY&list=PLpwJoq86vov_PkA0bla0eiUTsCAPi_mZf
BostonDynamicsとかガチでやっているところを除けば
いままでこの手のロボットはサーボモータ状のものが圧倒的に多かったと
思うが、やはり関節数+αのサーボモーターが必要となると
二の足を踏む。
モーターの数としては同じ位だし、モータドライバもその数分
必要だけれど、機構部分はシンプルになると思う。
4足歩行を前提とすれば、それぞれの関節の可動域はそれほど
広く無くてすみ、それならば180度可動のサーボモータを使用する
必要はない。
問題点としては
https://www.youtube.com/watch?v=0BoPoWF_FwY&list=PLpwJoq86vov_PkA0bla0eiUTsCAPi_mZf
BostonDynamicsとかガチでやっているところを除けば
いままでこの手のロボットはサーボモータ状のものが圧倒的に多かったと
思うが、やはり関節数+αのサーボモーターが必要となると
二の足を踏む。
モーターの数としては同じ位だし、モータドライバもその数分
必要だけれど、機構部分はシンプルになると思う。
4足歩行を前提とすれば、それぞれの関節の可動域はそれほど
広く無くてすみ、それならば180度可動のサーボモータを使用する
必要はない。
問題点としては
- 直動->角度変化への変換機構が大変そう(ロックしないか)
- 回転->直動なので速度が出せない?
- 停止点を決めるセンサー(マイクロスイッチ)が関節毎に必要となる
2019年5月27日月曜日
ESP32-CAM 農業用カメラを作る 11shutter
IIJに接続できたので、早速FTPアクセスを試してみる。
https://simcom.ee/documents/SIM7100E/SIM7100_FTP_Application_Note_V0.01.pdf
を参考に。
まずはFTPサーバーに接続する設定。
-------------------------------------------
AT+CFTPSERV="server.url"
AT+CFTPPORT=21
AT+CFTPMODE=1
AT+CFTPTYPE=I
AT+CFTPUN="username"
AT+CFTPPW="password"
-------------------------------------------
サーバー名、ユーザーID、PASSは当然秘密。
全てOKになったらまずはFTPサーバー上の情報を
取得
lsコマンドに該当するコマンドを送信
-------------------------------------------
AT+CFTPLIST="/home/xxxxxx/"
OK
+CFTPLIST: DATA,1460
drwx------ 29 xxxxx users 4608 May 25 16:54 .
drwxr-xr-x 129 root wheel 3072 Nov 1 2018 ..
-rw------- 1 xxxxx users 2191 Apr 26 15:01 .bash_history
中 略
drwx---r-x 2 xxxxx users 1024 Dec 4 2016 yume
+CFTPLIST: 0
-------------------------------------------
無事に取得出来た。
次にサーバー上のファイルを取得してみる。
-------------------------------------------
AT+CFTPGET="/home/xxxxx/index.html"
OK
+CFTPGET: DATA,119
GET / HTTP/1.1
User-Agent: Wget/1.14 (freebsd9.1)
Accept: */*
Host: www.pipipi.net:20080
Connection: Keep-Alive
+CFTPGET: 0
-------------------------------------------
例としてTEXTファイルを取得したが、
BINの場合もそのまま垂れ流される?のだろうか。
そしていよいよバイナリデータを送信してみる。
サーバー上にtest.pngというファイルを作成する
前提です。
-------------------------------------------
AT+CFTPPUT="/home/xxxxx/test.png"
+CFTPPUT: BEGIN
OK
-------------------------------------------
OKを受信したところで、データを送信する。
ここで若干嵌る。
送信の終了を指示する方法として
0x1aを送信するのだが、データ中の0x1aと区別する
為に0x1aを送信する場合は前に0x03を付加する。
つまり
0x1aは 0x03 0x1aとなる。
又、この0x03を区別する為にデータ中に0x03が存在した
場合も前に0x03を付加する。
つまり
0x03は0x03 0x03となる。
単純に画像ファイルを送信すれば良いのではなく、
1バイト毎にデータをチェックして上記の変換を
行う必要がある。
最後に0x1a(CTRL + Z)を送信するとサーバー上にファイルが作成された。
https://simcom.ee/documents/SIM7100E/SIM7100_FTP_Application_Note_V0.01.pdf
を参考に。
まずはFTPサーバーに接続する設定。
-------------------------------------------
AT+CFTPSERV="server.url"
AT+CFTPPORT=21
AT+CFTPMODE=1
AT+CFTPTYPE=I
AT+CFTPUN="username"
AT+CFTPPW="password"
-------------------------------------------
サーバー名、ユーザーID、PASSは当然秘密。
全てOKになったらまずはFTPサーバー上の情報を
取得
lsコマンドに該当するコマンドを送信
-------------------------------------------
AT+CFTPLIST="/home/xxxxxx/"
OK
+CFTPLIST: DATA,1460
drwx------ 29 xxxxx users 4608 May 25 16:54 .
drwxr-xr-x 129 root wheel 3072 Nov 1 2018 ..
-rw------- 1 xxxxx users 2191 Apr 26 15:01 .bash_history
中 略
drwx---r-x 2 xxxxx users 1024 Dec 4 2016 yume
+CFTPLIST: 0
-------------------------------------------
無事に取得出来た。
次にサーバー上のファイルを取得してみる。
-------------------------------------------
AT+CFTPGET="/home/xxxxx/index.html"
OK
+CFTPGET: DATA,119
GET / HTTP/1.1
User-Agent: Wget/1.14 (freebsd9.1)
Accept: */*
Host: www.pipipi.net:20080
Connection: Keep-Alive
+CFTPGET: 0
-------------------------------------------
例としてTEXTファイルを取得したが、
BINの場合もそのまま垂れ流される?のだろうか。
そしていよいよバイナリデータを送信してみる。
サーバー上にtest.pngというファイルを作成する
前提です。
-------------------------------------------
AT+CFTPPUT="/home/xxxxx/test.png"
+CFTPPUT: BEGIN
OK
-------------------------------------------
OKを受信したところで、データを送信する。
ここで若干嵌る。
送信の終了を指示する方法として
0x1aを送信するのだが、データ中の0x1aと区別する
為に0x1aを送信する場合は前に0x03を付加する。
つまり
0x1aは 0x03 0x1aとなる。
又、この0x03を区別する為にデータ中に0x03が存在した
場合も前に0x03を付加する。
つまり
0x03は0x03 0x03となる。
単純に画像ファイルを送信すれば良いのではなく、
1バイト毎にデータをチェックして上記の変換を
行う必要がある。
最後に0x1a(CTRL + Z)を送信するとサーバー上にファイルが作成された。
2019年5月26日日曜日
ESP32-CAM 農業用カメラを作る 10shutter
COMポートが見えたので、ATのCOM21(環境により番号は変わる)に
TeraTerm等で接続する。
パラメータはこんな感じ。ボーレートは何でもいいみたい。
AT[ENTER]と打つとOKが返ってくれば成功。
確認用のコマンドを色々投げてみる
------------------------------------------
AT
OK
ATI
Manufacturer: SIMCOM INCORPORATED
Model: SIMCOM_SIM7500JC
Revision: SIM7500JC-OL_V1.1
IMEI: 8614780300*****
+GCAP: +CGSM
OK
AT+CNUM
+CNUM: "","090********",129
OK
AT+CSQ
+CSQ: 25,99
OK
AT+CPSI?
+CPSI: NO SERVICE,Online
OK
------------------------------------------
*** の部分は実際は数字
ATIコマンドのRevisionがSIM7500JC-OL_V1.1に
なっているのは大人の事情。(通常OLはつかない)
AT+CSQのレスポンスで
電波強度が15より大きくて、AT+CPSI?のレスポンスが
NO SERVICEになっているのはAPNが正しく設定できていない。
IIJのAPNは
------------------------------------------
AT+CGAUTH=1,3,"mio@iij","iij"
OK
AT+CGDCONT=1,"IP","iijmio.jp"
OK
AT+CGDCONT=6,"IP","" <--おまじない
OK
AT+CGAUTH?
+CGAUTH: 1,3,"iij","mio@iij"
+CGAUTH: 2,0
+CGAUTH: 3,0
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","iijmio.jp","0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","sos","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,1
+CGDCONT: 6,"IP","","0.0.0.0",0,0,0,0
OK
------------------------------------------
で、再度AT+CPSI?を送信すると
+CPSI: LTE,Online,440-10,0x117D,41201172,143,EUTRAN-BAND19,6100,3,3,-104,-888,-614,11
となり、無事にONLINEとなりました。
TeraTerm等で接続する。
パラメータはこんな感じ。ボーレートは何でもいいみたい。
AT[ENTER]と打つとOKが返ってくれば成功。
1.確認
確認用のコマンドを色々投げてみる
------------------------------------------
AT
OK
ATI
Manufacturer: SIMCOM INCORPORATED
Model: SIMCOM_SIM7500JC
Revision: SIM7500JC-OL_V1.1
IMEI: 8614780300*****
+GCAP: +CGSM
OK
AT+CNUM
+CNUM: "","090********",129
OK
AT+CSQ
+CSQ: 25,99
OK
AT+CPSI?
+CPSI: NO SERVICE,Online
OK
------------------------------------------
*** の部分は実際は数字
ATIコマンドのRevisionがSIM7500JC-OL_V1.1に
なっているのは大人の事情。(通常OLはつかない)
AT+CSQのレスポンスで
電波強度が15より大きくて、AT+CPSI?のレスポンスが
NO SERVICEになっているのはAPNが正しく設定できていない。
IIJのAPNは
- APN:iijmio.jp
- ユーザ名:mio@iij
- パスワード:iij
- 認証タイプ:PAPまたはCHAP
------------------------------------------
AT+CGAUTH=1,3,"mio@iij","iij"
OK
AT+CGDCONT=1,"IP","iijmio.jp"
OK
AT+CGDCONT=6,"IP","" <--おまじない
OK
AT+CGAUTH?
+CGAUTH: 1,3,"iij","mio@iij"
+CGAUTH: 2,0
+CGAUTH: 3,0
OK
AT+CGDCONT?
+CGDCONT: 1,"IP","iijmio.jp","0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV4V6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","sos","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,1
+CGDCONT: 6,"IP","","0.0.0.0",0,0,0,0
OK
------------------------------------------
で、再度AT+CPSI?を送信すると
+CPSI: LTE,Online,440-10,0x117D,41201172,143,EUTRAN-BAND19,6100,3,3,-104,-888,-614,11
となり、無事にONLINEとなりました。
2019年5月25日土曜日
ESP32-CAM 農業用カメラを作る 9shutter
空いているSIMを探したらIIJのnanoSIMがあった。(解約忘れwww)
基板に載っているSIMスロットは標準SIMなので
変換カードを使用する。
マイクロSIM → nanoSIM → 標準SIMという変遷
基板に取り付けるとこんな感じ。
写真の真ん中辺に赤いPUSH SWがあるが、これがPOWER KEY信号につながって
いる。
LEDはSTATUS。
写真はPWRKEYを押下して起動した状態。
これでUSBポートとPCを接続すればCOMポートして見えるはず。
(ドライバインストール前提)
COM19からCOM23までがSIM7500JCのポート。
無事に認識したみたいです。
ドライバは代理店(キャセイトライテック)から入手できるのですが
インストールにちとコツがいるのでこちらを参考に。
https://github.com/botletics/SIM7500-LTE-Shield/wiki/USB-Drivers
基板に載っているSIMスロットは標準SIMなので
変換カードを使用する。
マイクロSIM → nanoSIM → 標準SIMという変遷
基板に取り付けるとこんな感じ。
写真の真ん中辺に赤いPUSH SWがあるが、これがPOWER KEY信号につながって
いる。
LEDはSTATUS。
写真はPWRKEYを押下して起動した状態。
これでUSBポートとPCを接続すればCOMポートして見えるはず。
(ドライバインストール前提)
COM19からCOM23までがSIM7500JCのポート。
無事に認識したみたいです。
ドライバは代理店(キャセイトライテック)から入手できるのですが
インストールにちとコツがいるのでこちらを参考に。
https://github.com/botletics/SIM7500-LTE-Shield/wiki/USB-Drivers
登録:
投稿 (Atom)