head

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








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を結線すると、バックライト点灯しました。

# 全体の 概観


=== 2017/02/27 ====
レイアウト少し変えてみました。
基板の下に、絶縁テープを貼って、LCD配線を
短めに結線。bread bord配線ですが。。少し小型にできました
=======


#温度ログ



# 関連のまとめ: IoT な電子工作まとめ










2017年2月15日水曜日

TFT LCD(ILI9341)+アナログセンサ



esp8266+ MCU連携の作例となります。
eBayから入手した 2.4inch TFT +Analog Sensor
のDeepSleep(省エネ)版で、モバイル電源駆動
NTP時計,アナログ温度センサー値の表示、
センサー値のクラウド送信の機能としています

# youtube

# Parts


1) 2.4" 240x320 SPI TFT LCD Serial Port Module+3.3V Pbc Adapter SD ILI9341
 / 9.5 USD
 Display area:36.72(W)X48.96(H)mm
 Resolution (dots): 240RGB*320Dots
 Driver IC: ILI9341
2) Sensor LM60BIZ / 100JPY

# Git
*) Adafruit さんのライブラリ参考にしています。
https://github.com/adafruit/Adafruit_ILI9341

makeKuc-TFT-1:
https://github.com/kuc-arc-f/makeKuc-TFT-1

# Schematic
esp8266+arduino搭載基板で、
TFT 周辺のみです。


*1) ボード側の都合で
REST : D2
DC : D3
としていますが。
arduino で使用する場合は、
REST : D8
DC : D9  で良いと思います。

*2) adafruitのサンプル (examples/graphicstest )
が動作しなかった為、RESET結線を追加し、コンストラクタを修正しています。
// Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC
Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST);

*3) LED(#7)は、VCC(3V3)  結線する必要があります。
*) 配線数が多めで、時間かかりました。

#温度ログ


# related:
http://www.instructables.com/id/Cheap-TFT-22-inch-Display-on-Arduino-ILI9340C-or-I/

http://ht-deko.com/arduino/tft_spi.html

# まとめ
画面のレイアウト/描画表示速度の調整 等は。別途検討したいと思います。
とりあえず機能の実装を優先し、完了できたレベルです。




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





2017年2月7日火曜日

Alexa + IoT (esp8266) Custom ,アナログセンサー編



前回と同様のAlexa関係となります

amazon Alexa と、esp8266連携で
custom Skill を追加し、
今回も、echo系の代用品は、echosim.io(モバイル版chrome) を使用しています

デモは、
設置場所のIoT-アナログ 水分センサー値を、Alexa に読み上げ実行してもらうように
機能追加しています。(植物や農作作物の対応仕様 )

会話の例:
呼ひかけ: [ask Moisture to check ]
Alexa : [ok, moisture is 56 % ,  time is 10 hour 48 minute. ]

*) esp8266モジュールは、arduinoマイコンも搭載し、ADCが数本使用可能な
 機種で、連携しています。

# youtube



# Git
checkMoisture:
https://github.com/kuc-arc-f/alexa-custom-esp8266-2

esp8266-Driver
https://github.com/kuc-arc-f/makeKuc-moisture1

 # schmatics





# 関連のページ: Alexa + IoT (esp8266) Custom Skill (1)
http://knaka0209.blogspot.jp/2017/02/esp-wroom-02-40.html


# 関連のまとめ: 
Alexa + IoT のリンク集となります。
http://kuc-arc-f.com/make/?p=1262






2017年2月6日月曜日

Alexa + IoT (esp8266) Custom Skill(2) IoT連携



前回と同様のAlexa関係となります

前回は、custom Skill実装の概要やサンプルの説明でした
今回は、IoT連携部分の説明としています。

# code 
*) custom skill設定/Lambdaの追加方法の詳細は、
公式ページ等参考下さい。

参考のGit : https://github.com/kuc-arc-f/alexa-custom-esp8266-1
Lanmbda function (python): Lambda-function.py

lambda_handler() から、on_intent()が呼ばれ、
intentName検証後、rest-API経由でセンサー値と取り出し
Alexaに 出力メッセージ渡しています。

*) cutom skill 設定 項目:
Invocation Name: sensor

IntentSchema:
text/IntentSchema.json

sampleUtterrances:
text/sampleUtterrances.txt

rest-API のresponse:
text/rest-data.json
*) esp8266からの更新処理を追加し、
 jsonレスポンスを出力する機能の準備が必要です。


# esp8266 ドライバ
/esp8266

# Youtube
前回と同じ動画ですが、最終目標として、
キーワードを音声入力して
alexaに IoT連携センサー値を、発言してもらうデモとなります。




#関連
ALEXA + IOT (ESP8266) CUSTOM SKILL (1)
http://knaka0209.blogspot.jp/2017/02/esp-wroom-02-40.html


# 関連のまとめ: 
Alexa + IoT のリンク集となります。
http://kuc-arc-f.com/make/?p=1262



Alexa + IoT (esp8266) Custom Skill (1)



前回と同様のAlexa関係となります

amazon Alexa と、esp8266連携で
custom Skill を追加し、
今回も、echo系の代用品は、echosim.io(モバイル版chrome) を使用しています

デモは、
設置場所のIoT センサー値を、Alexa に読み上げ実行してもらうように
カスタマイズしています。

会話の例:
呼ひかけ: [ask Sensor to check ]
Alexa : [ok, temperature is 17 degree, and humidity is 44 % , now time is 10 hour 48 minute. ]

*1 ) 少し長めですが。。
後半の、日本時刻も含む内容も応答内容に含まれていますが、
おまけです。
*2) AWS 使う場合は無料枠もありますが、原則は従量課金となりそうですので、予算面ではご注意下さい。

# Youtube



# 今回の custom Skill の構成


alexa は拡張方法として、
Skill Kit が利用可能で、この場合 問合せ系の機能で
custom Skill を使っています。

custom Skillから、Lambda function 呼出までは、事例でよくありそうでしたが、
今回は IoT連携部分は、Lambdaから Rest-APIで、ec2などのweb serverから
センサー値を取得し、alexa に渡してもらいます。
センサー値は事前に esp8266から、web serverのストレージ側に定期更新させておき、
最新データを、alexa に出力可能な構成としています。

*) esp8266の周辺センサはdht11 で、温度/湿度が計測可能でクラウド連携も可能

# code
公式ヘルプや、先人様の記事を参考にしています。
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-skill-as-a-lambda-function

*) 環境面は、下記にログインして作業が必要です。
alexa Skill Kit : developer amazon ( developer.amazon.com  )
Lambda : AWS ( aws.amazon.com ) のマネジメントコンソール

(1) 参考のサンプル, node.js版
https://github.com/amzn/alexa-skills-kit-js

helloWorld:
samples/helloWorld/ --カンタンな[hello world] 応答するサンプル、
設定手順や、コードが参考になりました。

[ ASK/ custom Skill 設定 ]:
name : helloWorld
InvocationName : hello world
*) alexa の呼出に関係するキー単語

Interaction model/ intent Schema:
https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/helloWorld/speechAssets/IntentSchema.json

Interaction model/ sample Utterances:
https://github.com/amzn/alexa-skills-kit-js/blob/master/samples/helloWorld/speechAssets/SampleUtterances.txt
*) custom Skill を呼出す、単語パターンみたいなもの?

configuration:
endPoint: Lambda functionを呼び出す指定が必要。

[ Lambda function ]
src/
下のコードを zip圧縮して、デプロイしておきます

テストは、echo系デバイス/ /echosim.io で使用可能です。
tell, Hello world to say hello
ask, Hello world to say hello
と、alexa に話しかけると。[hello world]と返答してくれます。


*) IoT連携部分の実装は、追加しました。
http://knaka0209.blogspot.jp/2017/02/esp-wroom-02-41.html



# 関連のまとめ: 
Alexa + IoT のリンク集となります。
http://kuc-arc-f.com/make/?p=1262



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

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

AD-parts

Shop
Bluetooth搭載
ベース基板

Social