このページは、有料コンテンツとして
note.mu にて公開しております。
https://note.mu/knaka0209/n/n022385db77ff
head
2017年4月30日日曜日
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 #5: BLE / Bluetooth Eddystone implementation
https://www.youtube.com/watch?v=TqAWQNyWHqc
https://github.com/google/eddystone/tree/master/eddystone-url
https://www.bluetooth.com/specifications/assigned-numbers/16-bit-uuids-for-members
https://www.bluetooth.com/specifications/assigned-numbers/generic-access-profile
https://learn.adafruit.com/introduction-to-bluetooth-low-energy/gap
# 関連の esp32まとめ
http://kuc-arc-f.com/make/?p=1288
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
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 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/
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
今回は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
SMD型、手配線で基板に実装。
入出力コンデンサ: 出力=10u, 入力=0.1u
| Title | 通常 | 起動時 |
|---|---|---|
| WIFI | 170mA - 250mA | 430mA - 550mA |
| Blink( LED ) | 40mA - 60mA | 70mA |
*) wifi起動時,ピーク時のバラツキが多かったので、数回テスト繰り返すと
600mA程度まで上昇する予想できました。
# 下記は波形等
# 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 以下 )
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使ってない為、別回路で電源の出力電流値を少なめ
別途検討してみたいと思います。
その他のプロトコル動作については、負荷が多い場合は
消費電力は多めになりそうです。
今回 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
2017年2月17日金曜日
Cheap, NOKIA 5110+ Analog Sensor
esp8266+ MCU連携の作例となります。
eBay から入手した nokia 5110 LCD (Philips PCD8544 コントローラ )
+Analog Sensor のDeepSleep(省エネ)版
NTP時計,アナログ温度センサー値の表示、センサー値のクラウド送信の機能としています
# Youtube
# Parts
84*48 LCD Module White Backlight Adapter PCB for Nokia 5110 Arduino
/ 1.97 USD
Sensor LM60BIZ / 100JPY
*) 安いです。周辺の主要部品は センサー付で 300円前後 (送料別)
# Git
arduino.cc さんのコード参考にしています。
makeKuc-nokia5110-1:
# Schematic
esp8266+arduino搭載基板で、
LCD 周辺のみです。
*1) ボード側の都合でピン結線を参考コードから変えています。
arduinoと結線する場合は、そのまま修正なしで良いかと思います。
*2) GNDと、LIGHTを結線すると、バックライト点灯しました。
arduinoと結線する場合は、そのまま修正なしで良いかと思います。
*2) GNDと、LIGHTを結線すると、バックライト点灯しました。
# 全体の 概観
=== 2017/02/27 ====
レイアウト少し変えてみました。
基板の下に、絶縁テープを貼って、LCD配線を
短めに結線。bread bord配線ですが。。少し小型にできました
=======
#温度ログ
登録:
投稿 (Atom)
google colaboratory お試し編 、GPUも使える機械学習の環境構築
前回続き、機械学習の関連となります。 開発環境まわりの内容となり。先人様の情報を元に調査しました。 google colab(google colaboratory) を試してみました。機械学習系の いくつかのライブラリがインストール済みで、 クラウド上で、ある程度機械学...
Social
-
8mm RGB LED を活用して ガジェット検討したいと思います [概要] 8mm LED のOST4ML8132A (OptoSupply社) をマイコン LPC111FN28で制御、 [おおまかな仕様] VDD : 3.5 - 6 V 4pin 直...
-
esp32 での、SNTP JST 取得、ESP-IDF 版 事例が少なかったので、メモです。 時刻の表示や、指定時刻のデバイス稼動制御 等で使えそうです。 # Code UTC 時間を取得し、 struct tm に、日本時間 JST (UTC + 9) を...



