head

2017年5月2日火曜日

esp32,複数の BLE beacon + WIFI Bridge の設置 (Deep Sleep版)



前回と同様、esp32 +BLE関係となります。
複数の BLE Beaconからの wifi ブリッジ機能で
Beacon 発信側 のみを Deep Sleep版に修正し、省エネ構成としています。

*) 機器構成面は、前回(スリープなし) と同じです。


# 発信側センサ値等のログ


# 参考の BETA版
https://github.com/kuc-arc-f/ble_adv_bridge_ds

*) 300秒スリープですが、様子みて調整したいと思います。



====Update: 2017/05/02 ====
スリープ解除後の
BLE配信側の消費電力の波形測定しました。
予想以上に消費が大きく、残念な結果に。。なりましたが

アイドル時: 110mA /表示電圧 11mV
最大: 210mA /表示電圧 21mV (スパイク状に瞬間電力が上昇した部分)




*1) センサー等は接続されてない基板です
*2) 電流検出用の抵抗は ,0.1Rです
*3) deep Sleep中は、大幅に消費が下がるの為、記載しておりません。
BLEで消費電力を下げる方法があれば、探したいと思います。



# 関連ページ
esp32,複数の BLE beacon + WIFI Bridge の設置
http://knaka0209.blogspot.jp/2017/04/esp32-10-advBridge.html



# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288



2017年4月20日木曜日

esp32+ BLE, Eddystone対応 (Beacon 編)



前回と同様、esp32 +BLE
Broadcast network のテストのついでに、
googleのEddystone試してみました。
*) BLE Beacon系で Appleの iBeaconの対抗馬らしいですね。

テストは、
スマホで、パケット受信して表示。
URLスキーマが使えて、リンクをタップすると対象ページが開いたり。
できました


# 参考のコード
https://github.com/pcbreflux/espressif/tree/master/esp32/app/ble_app_eddystone

Advertisingの配信に、処理は似てました



# アプリ起動画面



RAW DATA が見れたり、
[OPEN] おすと、ブラウザ起動で送信したページが開けます、



適当な、短縮URLを
GAP profileにセットして、配信してみました。

#
Eddystone  対応のスマホアプリや、デバイスで使えそうですね。
esp32 で配信装置は、安価で作れそうです。






esp32+ BLE, Advertising パケットを受信する。




前回と同様、esp32 +BLEで、デバイス間通信で
Broadcast Networkの、Advertising を使って通信のテストしてみました。
一方向の送信のみで、GAP Profileで、最大 31 byteらしいのですが、
GATT に比べて、connect不要でも通信できそうです。


# 参考のコード
adv(配信側 / Peripheral device):
examples/bluetooth/ble_adv
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/ble_adv

client(Central device):
前回の Gatt Client実装 参考にしています。
http://knaka0209.blogspot.jp/2017/04/esp32-7-BLE.html

# 解説
Advertising(配信):
ble_adv/main/app_bt.c
 static void hci_cmd_send_ble_set_adv_data(void) で、
 配信データを作成部、デバイス名の後ろに、
送信データを追加しておきます。(センサ値/デバイス制御コード等 )

client(受信):
 esp_gap_cb()
  adv_name = esp_ble_resolve_adv_data(scan_result->scan_rst.ble_adv,
    ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len);
*) esp_ble_resolve_adv_dataの戻り値で、データ部(デバイス名 含む)が取得できましたので
 追加したデータ取得できました。

#Log ,client




# 参考のサイト
https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap

https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/ble_adv

http://esp-idf.readthedocs.io/en/latest/api/bluetooth/esp_gap_ble.html




# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288




2017年4月18日火曜日

esp32+ BLE, デバイス間通信、 GattC to GattS



前回の続編で、esp32でBLE 関係となります。

2台の esp32を使用した、 デバイス間の通信を確認できました。
主要なデータは、Gatt Client ⇒ Gatt Serverの方向で送信



# 参考のページ、thanks
複数のデバイス間、通信を探し。このページを発見できました
https://www.esp32.com/viewtopic.php?f=18&t=1184&hilit=gatt

記載されている
[ Nicholas3388/LuaNode/tree/master/LuaNode_Esp32/LuaNode32/examples/esp32_nrf51822_ble_conn ]
あたりのコード参考にしましたが、Serverが nrf51x で手持ちの部品が無かったので、両方esp32の

https://github.com/Nicholas3388/LuaNode/tree/master/LuaNode_Esp32/LuaNode32/examples/ble_led_control
を検索できました。thanks!!

gatt Client から、esp_ble_gattc_write_char_descr()
で、送信できるようですので。

内容は、Gatt Client からLED制御データを送信、
 Gatt Server側で BLE受信しているようです。


# Server Log,


[0;32mI (1353179) GATTS_DEMO: GATT_WRITE_EVT, value len 2, value 00000001
> value=受信値、その後 LED制御 判定してるようですね。

*) Gatt Server側に、LED 結線しています。


# 参考のサイト
https://www.esp32.com/viewtopic.php?f=18&t=1184&hilit=gatt

https://github.com/Nicholas3388/LuaNode/tree/master/LuaNode_Esp32/LuaNode32/examples/esp32_nrf51822_ble_conn

https://github.com/Nicholas3388/LuaNode/tree/master/LuaNode_Esp32/LuaNode32/examples/ble_led_control

http://esp-idf.readthedocs.io/en/latest/api/bluetooth/esp_gattc.html




# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288



2017年4月16日日曜日

ESP32, Gatt Server (+BLE Gateway)




esp32で、BLE試してみました。
カンタンなBLE通信と、wifi-http転送機能も追加した仕組みも検証できました。
*) ESP-IDFで開発してます。

# 概要、2種類
[1] BLE通信
Gatt Server : esp32
Gatt Client : android(アプリ Nordic/nRF connect )

[2] BLE通信 +WIFIブリッジ的な BLE Gateway


[1] Gatt Server - Client(android)
ESP-IDFの、 examples/bluetooth/gatt_server 、参考してます。
https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/gatt_server

#Client (ホスト側) データ送信 /アプリの操作例 (TEXT 形式)
Gatt Serverを起動し ,
アプリ起動すると、server検証が実行され、一覧に追加されます。
NAME = ESP_GATTS_DEMO (* 修正しない場合。
データ送信する場合、接続先の [connect] おします。



タブが追加されて、下の Serviceを押します



[↑] みたいな送信押して、
送信画面が開きます。
種類= TEXT
値= 123 (Write value の下)
[SEND] 押すと、送信されます


# Log , Gatt Server


[0;32mI (52334) GATTS_DEMO: GATT_WRITE_EVT, value len 3, value 00333231
の行が、受信した行で。 value が値(16進)

# gatts_demo.c
gatts_profile_a_event_handler()
 case ESP_GATTS_WRITE_EVT
あたりが実行されているようです。




[2] BLE通信 +WIFIブリッジ的な BLE Gateway



1 の、Gatt serverが受信した、値をWIFI経由で
クラウド転送します。

追加した処理は、
http の別Taskを追加し、値を転送している程度です

# 送信した値。




# 参考
https://ja.wikipedia.org/wiki/Bluetooth_Low_Energy

https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gatt

https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap

https://github.com/espressif/esp-idf/tree/master/examples/bluetooth/



# まとめ
今回はClient(子機)は、アプリで手動送信でしたが、
次回は 自作デバイスで、自動実行 -送信とか検討したいと思います。


# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288




2017年3月24日金曜日

ESP32 電力測定 ,3V3 1.5A



前回の続編で、esp32の電力測定の1.5A 調査を行いました。

*1) 安価な測定部品/計測器な為、参考程度とさせて頂きます。
*2) LOD 出力3V3 1Aの結果も、下に記載しております。


LDO : 3.3V1.5A NJM2396F33
*) 一般のリード線、4本足。4pin(右) はON/OFF制御の為、未使用。

# 先に結果のまとめ
Title 通常 起動時
WIFI  140mA -290mA  450mA
Blink( LED )  40mA - 60mA 70mA

# 電流値の測定方法
前回(2A) と、同一の回路にて測定。省略します。
計算も同一で、オシロで瞬間電圧を測定し、電流に換算しています。
電流検出抵抗も同一の 0.1R

# 下記は波形等
WIFI起動時 450mA, 表示ピーク電圧 = 45mV 

WIFI 稼動中 140mA - 290mA , 表示電圧= 15mV

WIFI起動時の、電圧ドロップ。さほどドロップなく。
多少上下していますが、約200mV以下

blink電流 40 - 60mA、表示電圧= 6mV


# LDO  3V3 1A の測定

LDO : 3.3V1A NJM2391DL1-33
SMD型、手配線で基板に実装。
入出力コンデンサ: 出力=10u,  入力=0.1u

Title 通常 起動時
WIFI  170mA - 250mA      430mA - 550mA 
Blink( LED )  40mA - 60mA  70mA

*) wifi起動時,ピーク時のバラツキが多かったので、数回テスト繰り返すと
 600mA程度まで上昇する予想できました。

# 下記は波形等
WIFI起動時 電流= 510mA, 表示ピーク電圧 = 51mV


*) blink電流は、稼動時 40mA - 60mA


# WIFI起動時の、電圧ドロップ。さほどドロップなく。
多少上下していますが、約200mV以下


# まとめ
前回の安定化された 2A アダプタと比較して、
LDO出力 1.5Aはさほど、大差はないと見えました。
1Aは、消費電力大きな起動時はピーク電流は上昇。
今回のテストでは、両方動作面では問題は出ない結果となりました。
データ通信量の増加や、負荷を増やす動作等でも、
瞬間波形等を見ながら、
電力供給面で安定するか判定した方が良いかもしれません。


# 関連, ESP32 電力測定 ,3V3 2A


2017年3月21日火曜日

ESP32 電力測定 ,3V3 2A



esp32で、電力測定の調査を行いました。
*) 安価な測定部品/計測器な為、精度は低めで 参考程度とさせて頂きます。

# 先に結果のまとめ


WIFI http送信: 150mA -250mA 起動時 : 450mA
Blink( LED ) 50mA - 60mA 起動時 : 70mA

*1) WIFI の起動時は 450mA 程度まで上昇
*2) WIFIのTCP送信間隔は、10sec とやや短めで連続稼動した場合。

# 電流値の計算
オシロ波形見ながら、電圧値をメモし、
電流最高値、平均値等を計算で算出してます。
I = V /R
wifiの場合は(150mA)、下記となります
I= 15mA / 100 mR
I= 0.15A ( 150mA)
その他も同様の計算。

# テストの 電源: 3V3 2A( 2,000mA ) ACアダプタ
1) 電流測定
 電流検出用の抵抗( 0.1 R) を電源付近に直列に結線。
 プローバを抵抗の両端付近に結線。


2) 電圧測定
 電源ラインに、並列にプローバ結線。



*) 参考の部品
不燃性酸化金属皮膜抵抗 3W0.1Ω
http://akizukidenshi.com/catalog/g/gR-11011/
ACアダプター3.3V2A GF12-US03320
http://akizukidenshi.com/catalog/g/gM-02212/


# 下記は詳細、波形など
WIFI 起動時 、最大 450mA (表示ピーク電圧: 45mV)



WIFI ,アイドル/ HTTP 送信 約150mA以上 (表示電圧: 16mV)


blink , 50mA (表示電圧: 5mV)


*) WIFI 使わない場合は、起動時 電流も少なめでした 70mA程度まで上昇。

#電圧、 blink 起動時。
入力 2A の場合、
Y軸目盛 1Vでわかりにくいですが、電圧ドロップはさほど大きくなさそうです。
 (300mV 以下 )




#まとめ
今回 LDO使ってない為、別回路で電源の出力電流値を少なめ
別途検討してみたいと思います。
その他のプロトコル動作については、負荷が多い場合は
消費電力は多めになりそうです。


# 関連のまとめ






2017年3月9日木曜日

ESP32, Deep Sleep テスト



esp32で、 deep Sleep テストを行いました。

環境:
ESP-IDF (Ubuntu 16.04 /VMware上) です。
機能:
約 10秒間スリープし、waku Up できました。

# ESP-IDF 関連の参考
Set up of Toolchain for Linux
http://esp-idf.readthedocs.io/en/latest/linux-setup.html

# deep Sleep
下記を参考してます (thanks)
Deep Sleep:
http://esp-idf.readthedocs.io/en/latest/api/system/deep_sleep.html
ESP32 Deep Sleep Example:
https://pcbreflux.blogspot.jp/2017/02/esp32-deep-sleep-example.html

# template を参考に
https://github.com/espressif/esp-idf-template.git

main/main.c を作成し、
make menuconfig
make
make flash
で書込みます。

*) UART ログは、gtkterm 使う場合は下記例となります。
gtkterm -p /dev/ttyUSB0  -s 115200


# 関連のまとめ
http://kuc-arc-f.com/make/?p=1288




2017年3月8日水曜日

ESP32 +OLED お試し編



esp32で、 I2C OLED 0.96 inch 試してみたいと思います。
arduino IDE (1.8.1)+arduino-esp32 の環境です。

機能: 文字を表示するサンプル
*) u8g2 ライブラリ使用

# 配線
SDA: #21
SCL: #22



#code 
Git:

下記を参考してます (thanks)
https://github.com/pcbreflux/espressif/tree/master/esp32/arduino/sketchbook/ESP32_i2c_Si7021_oled
ESP32 #11: Weather Station with Si7021 and OLED
https://www.youtube.com/watch?v=uGOBxG9EiUY


# OLED +dht11 Sensor (センサー付 )
https://gist.github.com/kuc-arc-f/32eb085973eb6fc6bd838e28f2a51a3e

# UART Log



# 関連のまとめ



2017年3月7日火曜日

ESP32 組立て編



ESP-WROOM-32 を調達できましたので、
組立て、動作確認等試してみたいと思います。

公式ページ、先人さまのページを参考にしています。
https://espressif.com/
https://espressif.com/en/products/hardware/esp32/resources

# テスト用の変換基板は、DIY的に自作しました。
主に起動に必要なピンを配線しています。

上面: チップは下面を、上にして配線。
 公式の ピン配置図と逆の、ピン位置です


下面:


テストの配線。


# 材料 / 変換基板まわり (秋月さんで購入できました。)
1.27mm ユニバーサル基板
1.27mm ピンヘッダ
1.27mm ピンソケット
2.54mm ピンソケット : DIP間隔へ変換
*) 電源= 3.3V 2A 電源アダプタ




# 配線 / テスト 全体回路図 (変換基板の回路図ではありません。)
公式- esp32_development_board_reference_design の
ESP32-DevKitC(ESP32_Core_Board_V2)_SCH.pdf 参考にしています。
*) 書込み自動切換 回路に対応していません。

https://github.com/kuc-arc-f/test_esp32_pdf



EN: 10K pull Up
#2: 10K pull down
#0, EN: スイッチ追加 (押した時= GND結線 )

*)テストの為、電源ラインの電解コンデンサ(470u)を
安定化の為、追加してますが。コンデンサ無しでも起動しました

# arduino IDE での書込み環境設定。
arduino-esp32 参考にしています。
https://github.com/espressif/arduino-esp32/blob/master/doc/windows.md


設定完了後
ボード: ESP32 Dev Module を選択

書込み作業:手動スイッチ操作で行う場合。
#0( IO 0), ENのスイッチ操作で、押すタイミングが重要になりそうです。
 ESP32-DevKitC(ESP32_Core_Board_V2)_SCH.pdf の
 [Auto Program] 記述を参考に、


手順:
1) #0, EN スイッチ両方おす
*)順番はどちらでも良いのですが、#0 > EN の順で行いました
2) EN スイッチをはなす。(HIGH)
3) arduino IDEで書込み開始後、[マイコンボードに書き込んでいます]
のメッセージに出力後、#0 スイッチはなす。
以上で書込み完了です。

補足:
1)
Auto programの、状態の遷移で
3番目: EN=0(LOW), #0=1(HIGH) の設定後(ENスイッチ押)、
4番目: EN=1(HIGH), #0=0(LOW) の変更(ENスイッチ離す= HIGH) で、書込みモードに変更可能か
#0 をチェックしているようです。
この時。UART ログに[ waiting for download ] が出力されると
書込み可能になりました。


2) 書込み実行後の arduino IDEのメッセージ変化は下記の順番:
 a) スケッチをコンパイルしています。
 b) マイコンボードに書き込んでいます ←#0 スイッチはなす。
 c) ボードへの書込みが完了しました。

IDEの画面コピー(詳細):
 スケッチをコンパイルしています。


マイコンボードに書き込んでいます 


ボードへの書込みが完了しました。


*)
Wrint at 0x0000... (100% )

 Leaving..
 Hard resetting..
と出力されると完了。リセットすると。書込み後のスケッチが起動できます。

# 活用編
下記の [スケッチ例 ]、少し使ってみました。
全て正常に動作できました

WIFIscan
blink
WIFIClient

# dht11 センサーも利用可能でした。
#14 ピンに、センサー接続しています。
https://gist.github.com/kuc-arc-f/756937fa6060f99654b0ed206a2bab3c

# thingSpeak


#  まとめ
1) 改良されて 機能的にもヘビー級なイメージはありますが
2) 消費電力が大きいようですので、調査は別途 計画したいと思います。
3) arduino IDEは、ビルドは遅かった(古いPC。。)ですが、書込みは速度が速い為
 速く書込み完了できた気はします。

# 参考のページ (感謝です)
ESP32(ESP-WROOM-32)でLチカ
http://qiita.com/rukihena/items/6a904368700eb1c7d2a3

ESP32のプログラム書込みを安定させる
http://qiita.com/h_nari/items/b971e615688d69bb3564

# 関連のまとめ: IoT な電子工作まとめ
http://knaka0209.blogspot.jp/2015/11/iot-matome.html








google colaboratory お試し編 、GPUも使える機械学習の環境構築

前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...

AD-parts

Shop
Bluetooth搭載
ベース基板

Social