2019年5月31日金曜日

ESP32-CAMのWiFiの相性

ESP32-CAMのテストで手持ちのWiFiルーターをAPとして
使おうとしたらつながらない。

通常使っているスマホとか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を
かけたりするには便利かもしれない。


2019年5月28日火曜日

直動機構によるロボット駆動

Youtubeで面白いのを見つけた。

https://www.youtube.com/watch?v=0BoPoWF_FwY&list=PLpwJoq86vov_PkA0bla0eiUTsCAPi_mZf


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)を送信するとサーバー上にファイルが作成された。

2019年5月26日日曜日

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

COMポートが見えたので、ATのCOM21(環境により番号は変わる)に
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 

2019年5月24日金曜日

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

とにかくSIM7500JCのFTP転送を確認しないと先に進まない。
本業で作り散らかした残材を使って
  • SIM7500JC(モジュール版)
  • SIMカードスロット
  • 電源SW
  • STATUS LED
を載せた基板を作った。



シリアルポートは1.8Vのレベル変換が必要なので
USBの口だけ出す。
USBドライバを入れておけばいくつかのUSBシリアルの
ポートが現れ、そのうちの1つがATコマンドの口となる。

まずは100byteのデータ転送からだな。

2019年5月23日木曜日

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

SIM7500JCでFTP送信を調べてみた。
サーバー接続までは以下の一連のコマンドで出来そう。


AT+CFTPPORT
AT+CFTPMODE
AT+CFTPTYPE
AT+CFTPSERV
AT+CFTPUN
AT+CFTPPW

ただUARTからFTP UPLOADするコマンドが無い。
いや、AT+CFTPPUTがあるのだが、

Description
This command is used to upload the DATA from serial port to FTP server as a file . Each <Ctrl+Z> character present in the data flow of serial port when downloading FTP data will be coded as <ETX><Ctrl+Z>. Each <ETX> character will be coded as <ETX><ETX>. Single <Ctrl+Z> means end of the FTP data. <ETX> is 0x03, and <Ctrl+Z> is 0x1A.

とか書いてあって、JPEGとか送れるか疑問。

引き続き調査だな
(さっさと基板作って試せや)

2019年5月22日水曜日

ゲームボーイの開発環境 その2


 Qiiteに「GBDKによるゲームボーイソフト制作-0回 準備編-
というページがあり、ざっくり開発手順がわかった。
  • GBDKの入手
  • エミュレータの入手
  • サンプルプログラムの動作

まではあっさり完了
(zip解凍してBAT走らすだけwww)


GameBoyのHWを調べていると、GB Specというページを見つけた。
これによるとシリアル通信にはクロック同期らしい・・・orz

UARTでないとつらいなぁ。


ゲームボーイの開発環境

ハードオフとかでゲームボーイ各種が100円とかで売られているのを見て
簡易な端末とかに使えるんじゃね?
  • 通信ケーブルがあるということはUART使える?
  • プリンタやカメラの付いたカートリッジがあるということはカートリッジ経由ならI/Oも使える?

と思ったので、こそこそ情報集めから
備忘録的に。
GBDK これが主流みたいね。

参考サイト
簡単にゲームボーイソフトが作れる「GB Studio」公開。ROMやウェブアプリで書き出し可能


2019年5月20日月曜日

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

SIM7500JCを用いたファイル転送を考える。
ESP32-CAMによるSDカードへの撮影画像保存が先か?
とも思うがやれる事から。
SIM7500JCはATコマンドを用いて
  • HTTP
  • HTTPS
  • FTP
  • FTPS
  • TCP/IP
の通信を行う事が出来る。
画像データ自体は単なる畑の写真なので、FTP、もしくはFTPSで
サーバーにデータを送信するものとする。

■状態確認のコマンド
ATI ・・・ IMEI表示
AT+CNUM ・・・ SIMの電話番号表示
AT+CSQ  ・・・ 電波状態
AT+CPSI? ・・・ 接続状態

■初期設定
AT+CFOTASWITCH=0,0 ・・・ FOTA OFF(これをやらないとRESET時にメッセージがうざい。)
AT+CGDCONT=6,"IP","" ・・・ これを入れておかないと繋がらない。(嵌った)

■APN設定
AT+CGAUTH=1,3,"userID","PASSWORD"
AT+CGDCONT=1,"IP","APN"

■接続例
AT+CGAUTH? ・・・ 確認
+CGAUTH=1,3,"userID","PASSWORD"
AT+CGDCONT? ・・・ 確認
+CGDCONT: 1,"IP","APN SAMPLE","0.0.0.0",0,0,0,0
+CGDCONT: 2,"IPV6","ims","0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0",0,0,0,0
+CGDCONT: 3,"IPV4V6","","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

AT+CFUN=1 ・・・ WAN有効化

これ以降FTPの接続、データ送信をすれば良いのだが、
完全に忘れているので又後日。

ところで、SIM7500JCのUARTの信号レベルは1.8V。
なので3.3V系のESP32と接続するにはレベル変換が必要となる。

この辺も整理していこう。

2019年5月19日日曜日

畑 2畝目

苗植えてから1ヶ月放置で雑草だらけ。
土日毎朝2時間かけて雑草抜き

マジで雑草抜きロボ欲しいわ。

2019年5月18日土曜日

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

ESP32-CAMは現時点では技適が取れていないので、WiFiの電波を
放出すると、電波法に触れる恐れがあります。

実害は無いのは解っていますが、気になるので
WiFiを停止させる方法を調べてみました。
 Arduinoベースだと
setupの中で


  WiFi.disconnect();
  WiFi.mode(WIFI_OFF);
  WiFi.forceSleepBegin();


を記述すれば良いみたい。

誰か技適取ってくれませんかね




2019年5月17日金曜日

監視カメラ用のSIMを考える

以前の記事で、激安MVNO SIMはロケットモバイルか?
みたいな事を書いたが、少し調べてみる
まず前提条件
  • 通信速度は問わない。なんなら3Gでも良い位。
  • SMSは有っても無くても良い。
  • SIMはマイクロSIMかnanoSIM
  • 安ければ安いほど良い
 で、以下に良い一覧が。

【SMS付き格安SIM】1,000円以下で運用可能なプランまとめ

これによると
SMS付(税込み)
b-mobile 190PadSIM
SMS付SIM(ドコモのみ)
100MB 346円

SMS無し(税込み)
ロケットモバイル Dプラン(ドコモ)
データプラン
神プラン
200kbps
322円

なので、やはりロケットモバイルが今回の使用目的では最安か!?

と、思ったがb-mobileのHPを良く見てみると、
(税別)
データ使用量 データ通信専用SIM(ドコモorソフトバンク) SMS付SIM (ドコモのみ)
100MBまで 190円 320円
1GBまで 480円 610円
3GBまで 850円 980円
6GBまで 1,450円 1,580円
10GBまで (初期設定上限値) 2,190円 2,320円
15GBまで 3,280円 3,410円
15GB以降も低速度でご利用になれます。

となっており、税込み205円から使用できる。
但し、100MBを超えたら段階的に料金が上がる。
1日3.3MB・・・・は越えないよなぁ。
(一応管理ページでは3GBの制限は出来るみたい)

制限無し 322円
100MB制限  205円

じっくり考えよう。


2019年5月16日木曜日

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

電源 その2


各デバイスの電源は前ページに書いたが、大元の電源をどうするか?
基本的に畑に設置するので、商用電源(100V)はまず使えない。
なので電池を使う事になるが、当然充電可能な2次電池となる。
現実的なところとしては
  • リチウムイオン電池
  • 鉛蓄電池
のどっちか。
且つ、充電方法は太陽電池によるもの意外は現実的ではない。
大容量のものを2個用意して週代わりで入れ替える、という手もあるが
「暑い」「寒い」「雨」「風」を理由に毎週行かない可能性も
高いので、極力自然エネルギーに依存したい。

そもそもどの程度の容量を必要とするのかを定義しないと
種類、サイズを絞れない。

  1. 最低1日1回の撮影と送信をしたい
  2. 将来的にはサーボモーターを使って3方向くらいに振って撮影したい。
  3. 将来的には、WiFiの機能かBLE機能を用いて温度/湿度の採取もしたい。

まず1に絞って考えてみると、ざっくり消費電力を以下の様に仮定する。
  • 撮影  100mA x 5sec
  • 送信 300mA x60sec
  • その他 100mA x 10sec
すると、1回の撮影と送信にかかる消費電流は
100mA*(5/3600)+300mA*(60/3600)+100mA*(10/3600)
=5.41mA/h
但し、DC/DCとかの損失分を加味してざっと2倍(そんなにひどいか?)
を掛けると
10.8mA/h
となる。


365回でも4000mA/h弱なので、モバイルバッテリ1個で
結構いけるんじゃね!?
という気になるが、経験上こんなには持たない事はわかりきってる。

まずはざっくり試作基板を作って実電流を測ってみないとね。


 これでも2年いけちゃうの?
無理だよなぁ。。。



2019年5月15日水曜日

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

電源 その1


電源は大きく分けて2系統必要。
  • ESP32は2.7V~3.6V
  • SIM7500JCは3.4~4.2V
なんとなく3.5Vとか用意すれば1系統のDC/DCとかで
いけるんじゃね?とおもうが、SIM7500は電源ON時の突入電流が
600mAくらい流れるので、下手なDC/DCやシリーズレギュレータを
使うと電圧効果を起こしてESP32がリセットしてしまう。

これを 防ぐためには
大き目の電解コン(470uF以上?)を付けて突入電流に備えるか
電源系統を別にするしかない。
(3.4~4.2Vという時点でLion直結を想定している気がするが)


2019年5月14日火曜日

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

LTEモジュール


外部との通信で使用するLTEモジュールとしては
SIMCOM製 SIM7500JCを使用する。


SIM7500シリーズの国内向けには
  • SIM7500JE SoftBank用
  • SIM7500JC NTTDocomo/KDDI用
の2種類が存在する。

何故このモジュールを選択したかと言うと本業で使用した事が
あるからw

LTE-CAT1専用モジュールだが、SIMは通常のLTE用が使用出来る。
なので 、ロケットモバイルとかの\298(税抜き)とかの激安MVNO SIM
が使えるはず。
(LTE-CAT1専用のSIMも存在し、数分の1の金額だが個人での入手は
現時点では難しい)




2019年5月13日月曜日

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

ESP32-CAMが御手頃価格で買えて、畑を始めたので、
「作物監視カメラ」を作りたくなるのは自然な流れだと思う。

ESP32-CAMが安価なので、極力費用は掛けたくない。
また、現時点で技適は取れていない(すくなくとも手持ちのは)ので
 WiFiは封印する。

とすると、遠隔から画像を確認するには、3G/LTE回線を用いて
外部サーバーに飛ばす、という方法を考え付く
↓こんな感じ


ESP32-CAMにはMicroSDスロットが搭載されているので
これに撮影画像を保存して、一定間隔でLTEモジュール経由で
サーバーに送信する。
ちょっと調べたところ、こんな記事が見つかった。

SDカードに保存


少しずつ進めていこう。



2019年5月12日日曜日

畑 1畝目

今年から家庭菜園を借りた。
まずは25㎡から。
植えたものは
・ジャガイモ
・サツマイモ
・枝豆
・ズッキーニ
・茄子
・ピーマン
・きゅうり
・空芯菜
・小松菜
あと
・ すいか
・ゴーヤ
を植える予定。
一週間ぶりに行ってみたら雑草の勢力がすごい。
作業の8割は雑草とり。

除草ロボット作るか。

2019年5月11日土曜日

ESP32-CAMにはまる CH2

ESP32-CAMが順調(でもなかったけど)に動いたので、
今度はAliで2台目を購入。10日くらいで到着。
送料込み$8.11だったけど、今見たら更に値下げ。
送料込みで$6くらいになってくれればいいのに。
(実質カメラが無料)

で、アンテナはパターンアンテナになっていました。
 チップコンデンサ(か0Ω抵抗)の付け替えだけなんだけど
型番やLotで違いがあるのか?




2019年5月10日金曜日

ESP32-CAMにはまる CH1

ESP-32に2Mpixlのカメラが付属したモジュールが最近話題なので
買ってみた。



Amaで1200円くらい。
Aliだと送料込みで$9くらい
この値段なら、監視カメラとかでも気軽に使える。

で、いきなりWiFiにつながらない刑に嵌った。
Verposeオプションを付けて詳細情報をDUMPしてみると
APは見えているが信号レベルがやたら低い
(-97dbとか)
原因は何で??みたいな事だったけど、
他にも嵌ってる人がいるかも知れないので
備忘録として残しておく。
 

原因は簡単で、オンボードのパターンアンテナと外部アンテナ用のFLコネクタの切り替えが「外部アンテナ」になっていた。
他の記事とかだとデフォでオンボードアンテナになっている様だが、
こいつは外部アンテナ用にチップ(コンデンサか0Ω抵抗)が
実装されていた。
2.4GHzのWiFiアンテナは手持ちでなかったが、2.1GHzLTE用の
アンテナを付けてみたらすんなりAPにつながった。
(技適的にはアウトなのでゴニョゴニョ・・・)
商品説明には全く記載は無かった。
原因不明でAPに繋がらない人はこのチップを確認してみては。