head

2017年7月28日金曜日

nanoPi NEO で、BLE Gateway Server を設置する




前の raspBerry Pi 2版の BLE Server 環境を、 nano Pi に移植してみました。
Ubuntu core にインストールしてます。
BLE子機も、前回と同じRN4020基板でセンサ値を送信しています。


# 概要



Central device=nanoPi, advertise スキャンしてクラウド転送します。



# version
> uname -a
Linux NanoPi-NEO 4.11.2 #266 SMP Thu Jun 29 17:46:10 CST 2017 armv7l armv7l armv7l GNU/Linux

# bluepy インストール方法は、前回と同じです、
bluez はインストール済みでした。
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html

# python service の起動も前回と同じ systemctl
を使いました。
参考 : http://knaka0209.blogspot.jp/2017/07/raspi-6-BLE.html

# Log



# code ,python server は前回のrasPi版と同じです。
最新のble_gateway_sv2、 public addressに対応しています。
https://github.com/kuc-arc-f/ble_gateway_sv2

関連 blog:
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html

http://knaka0209.blogspot.jp/2017/09/nanoPi-8.html


*)旧版 server、randam addressも対応できますが、最大送信桁数は短めです
https://github.com/kuc-arc-f/ble_gateway_sv


# まとめ
安定稼動できるか。しばらく様子見としたいと思います。
nanoPi は安価で、rasPi 2と比較して、 1/3程度の価格で
低価格な サーバー機として安定して使えると。良いのですが



=== update:2018/01/13 ====
OS 再インストール時の BLE処理エラー対応 (2018-01 版)
*)新規インストールもほぼ同様
復旧に時間かかったので、メモです。

昨年から半年程度、連続稼動していた。BLE gateway機能ですが
原因は不明で停止した為、復旧作業を行いました。
再度電源投入すると、電源LEDが点灯したり。
ハード故障に見えませんでしたが、ネットワークが起動せず。
ログインできない状況でした。
SDカードの破損が予想されましたが、
予備SDカードにOS書込み、起動確認後。
使用していた元のSDカードに再インストールしています。

# OSインストール、前回と同様のURLからコピー、zip解凍し
imgファイルを取り出し。SD書込み
*) 下記のファイル名
nanopi-neo_FriendlyCore-Xenial_4.11.2_20171122.img

#version、更新版みたいです。
pi@NanoPi-NEO:~$ uname -a
Linux NanoPi-NEO 4.11.2 #38 SMP Tue Nov 21 16:45:21 CST 2017 armv7l armv7l armv7l GNU/Linux

# bluepyのインストール
今回は、gitからinstall
https://github.com/IanHarvey/bluepy

$ sudo apt-get install git build-essential libglib2.0-dev
$ git clone https://github.com/IanHarvey/bluepy.git
$ cd bluepy
$ python setup.py build
$ sudo python setup.py install

# centralでscan機能のチェック
scanのサンプルを実行
bluepy のエラーが発生し、scan出来ませんでした。。

bluepy.btle.BTLEException: Failed to execute mgmt cmd 'scanend'

# lsusb を確認しましたが。問題なく認識してそうです。
> lsusb
Bus 008 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

# いろいろ調べたのですが、下記を参考にしました。感謝です

Raspberry Pi で Bluetooth を使ってみた。(2)
https://qiita.com/tchisaka/items/80d4dcbfe83bb88acf02

sudo apt-get update
sudo apt-get install libdbus-1-dev libdbus-glib-1-dev libglib2.0-dev libical-dev libreadline-dev libudev-dev libusb-dev make
sudo apt-get install bluez

hciconfig を実行し、 hci0 を up変えると、正常に動作しました。
>sudo hciconfig
hci0:   Type: BR/EDR  Bus: USB
        BD Address: 00:1B:DC:06:BD:89  ACL MTU: 310:10  SCO MTU: 64:8
        UP RUNNING
        RX bytes:543588 acl:0 sco:0 events:21808 errors:0
        TX bytes:52112 acl:0 sco:0 commands:6995 errors:0
修正前は、UP RUNNING の部分が、
downと表示されていたので、
下記の upを設定、実行できました。
>sudo hciconfig hci0 up

結局は、初期時はドライバ設定は無効みたいで、
修正が必要みたいですね。


# その他、systemctlのログの設定、
気になったので、
今回はログの容量を制限追加しました。
関連するjournalctl コマンド
ログ確認
journalctl --disk-usage
ログ表示
journalctl -e

# conf の修正
/etc/systemd/journald.conf
SystemMaxUse=3M

# systemctl 再起動、又はOS再起動
systemctl restart systemd-journald

# この設定でしばらくすると、5M程消費していました。
それ以上増えないようです。
pi@NanoPi-NEO:~$ sudo journalctl --disk-usage
Archived and active journals take up 5.0M on disk.

# 関連
systemd(journald)のログ容量を制限する
https://qiita.com/sharow/items/c56e81e4c2a658c3c921

journalctl 最低限覚えておくコマンド
https://qiita.com/aosho235/items/9fbff75e9cccf351345c


=========


# 参考
NANOPI NEO 512MB 初期設定編
http://knaka0209.blogspot.jp/2017/07/nanoPi-1.html



nanoPi NEO 512MB 初期設定編



安価で 小型のボードPCの、 nanoPi NEOを設定してみました。
無線機能は無いのですが、有線LANが使えてネット接続は可能ですので
いろいろな用途で使えそうな機がします。

[仕様]
CPU:Allwinner H3(クアッドコア Cortex-A7 @1.2GHz)
RAM:DDR3 512MB
EtherNet:10/100M




# 追加した部品
Nano Pi NEO 512MB
http://akizukidenshi.com/catalog/g/gM-12301/

Nano Pi NEOシリーズ用ヒートシンク
http://akizukidenshi.com/catalog/g/gP-12303/


# 裏面、ヒートシンク側



# セットアップ
先人さまの記事を参考に、 OS install しました。

# OS download

https://www.mediafire.com/folder/n5o8ihvqhnf6s/Nanopi-NEO

Ubuntu-core を選びました。
nanopi-neo_ubuntu-core-xenial_4.11.2_20170705.img.zip

DL し、zip解凍しておきます。

# SD 書込み
Win32DiskImager
で書込みました。

SDカードをセットし、有線LANを接続。
電源を投入。

# Login
1) ip アドレスを調べます。

他Linux PCから、fping で調べました。

2) ログインできました。
user =pi  ,pass= pi


=== update :2017/07/30 ===
5Vラインの消費電力を測定すると
アイドル時 170mA でした。 (10A  レンジ)
起動時は200mA以上に上昇していました。
波形は測定しませんでしたが




*1) raspPi-2 が 1W(1000mW / 200mA)
程度だった気がします。 ほぼ同等程度にみえます。

BLEの通信時に、210mAまで上昇しましたので、
ドングルの消費電力はやや多めにみえます。

==== Update:2017/07/30 (2 )  ====
ケースもをDIYで作成しました。100均さまの3個で108円
の食品用プラ箱を、側面にドリルで穴空け 程度です。



耐熱素材を準備していなかったのが、良くなかったのですが、
通常のLANポートを上面にした場合は、CPU ヒートシンクは底面になり。
耐熱性の低いプラ部品は溶けやすいので危険と見えました。
回避方法は考えたのですが、上下逆にして
ヒートシンクは上面にすると、底面は温度の高い部品は少なくなり
上面は、容器上部にスキマがあるので、ケースの温度上昇は少なめとなりました。
*)デメリットは、USB付近の電源ランプ類(LED)が底面に配置されるので、
見えにくくなりました。




*) ケース上フタは、風穴をあける予定ですが、
ホコリ等がケース内に入りやすくなるので、様子見て調整したいと思います。




# 関連のページ
NANOPI NEO で、BLE GATEWAY SERVER を設置する
http://knaka0209.blogspot.com/2017/07/nanoPi-2.html


2017年7月22日土曜日

BLE -IoT関連まとめ

BLE(Bluetooth 4.x)を活用した、IoT事例のまとめ となります。
BLEについては、ルーターに接続できない為、ネット接続が困難なイメージはありますが、
これまでに開発してきた、BLE server(中継機)等を活用した IoT構成の製作事例
設計ノウハウを中心に公開してきた関連 リストとなります。

*) 事例内容に wifi機器と比較し、大幅な省電力化が可能になる場合があります。
省エネ思考 IoT設計の方にオススメです。




# micro:bitでIoT ,mbed編
http://knaka0209.blogspot.jp/2017/10/mbit-1.html





# 電池1本駆動、BLE バッテリー小型化編
http://knaka0209.blogspot.jp/2017/09/RN4020-4.html






# 周辺センサ等の電源スイッチングの追加



# BLE 子機 電池配線/ケース etc,DIY編
http://knaka0209.blogspot.com/2017/09/RN4020-2.html





# Update, python BLE gateway server v 0.9.3
http://knaka0209.blogspot.jp/2017/09/nanoPi-8.html




#  RN4020 BLE 搭載用ベース基板 試作編
http://knaka0209.blogspot.jp/2017/09/RN4020-1.html







# BLE 子機 消費電力測定結果 ,RN4020 +atmega (第1回)
http://knaka0209.blogspot.jp/2017/08/nanoPi-7.html




# Update, BLE gateway server 0.9.2
http://knaka0209.blogspot.jp/2017/08/nanoPi-6.html



# python ,GATT characteristic通信編 #nanoPi #IoT #BLE #Bluetooth
http://knaka0209.blogspot.jp/2017/08/nanoPi-5.html





# Update, nanoPi BLE gateway server アドレス指定編(ble_gateway_sv2)
http://knaka0209.blogspot.jp/2017/08/nanoPi-4.html





# nanoPi ,BLE gateway Server 負荷テスト (第1回目)
http://knaka0209.blogspot.jp/2017/08/nanoPi-3.html





# nanoPi NEO で、BLE Gateway Server を設置する
http://knaka0209.blogspot.jp/2017/07/nanoPi-2.html





#RN4020


# 電源ライン電圧値の送信、RN4020+ATMEGA基板
http://knaka0209.blogspot.jp/2017/07/raspi-9.html










# 消費電力比較、RN4020 BLE とESP8266(途中編)
http://knaka0209.blogspot.jp/2017/07/raspi-8.html





# DHT11 / BME280 SENSOR対応、RN4020 BLE基板
http://knaka0209.blogspot.jp/2017/07/raspi-7.html





#RASPBERRY PI , BLE GATEWAY 設置、 複数台のBEACON からの送信値をクラウド転送。
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html





# RN4020 BLE + ATMEGA328, センサ値検知アラーム音出力
http://knaka0209.blogspot.jp/2017/07/esp32-22.html





# RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html





# RN4020 BLE, ESP32 WIFI BRIDGE 接続編
http://knaka0209.blogspot.jp/2017/05/esp32-13.html




# その他

# ESP32,複数の BLE BEACON + WIFI BRIDGE の設置 (DEEP SLEEP版)
http://knaka0209.blogspot.jp/2017/05/esp32-11.html



#  ESP32,複数の BLE BEACON + WIFI BRIDGE の設置 (ESP-IDF)
http://knaka0209.blogspot.jp/2017/04/esp32-10-advBridge.html




# ESP32+ BLE, EDDYSTONE対応 (BEACON 編)
http://knaka0209.blogspot.jp/2017/04/esp32-9-BLE.html



# ESP32+ BLE, ADVERTISING パケットを受信する。
http://knaka0209.blogspot.jp/2017/04/esp32-8-BLE.html



# ESP32+ BLE, デバイス間通信、 GATTC TO GATTS
http://knaka0209.blogspot.jp/2017/04/esp32-7-BLE.html



#

2017年7月17日月曜日

電源ライン電圧値の送信、RN4020+atmega基板



電源の電圧値をarduino 内臓 ADC で測定し、クラウド転送する機能を
追加してみました。
電池駆動の場合で、電圧降下をチェックし。
電池切れの予想ができれば良いかと考えました。

測定用のICを使用せず、基板の空きスペースで なんとか
機能追加できないか検討しましたが。ギリギリ配線できました。

# 測定方法
3V3 arduino ですと、5V電源 ラインをADCで読み込むのは困難でしたので、
分圧抵抗で、1/10 程に降圧後 ADC(A1) で読み込み、
その後、下げた電圧分 約10 倍の電圧値を計算します。
analogRead(), map() あたりで可能でした。
直接電圧を測定していないので、精度は低めでした。

分圧抵抗、周辺の配線を追加した為、
基板の空きスペースが、ほぼ無くなりましたが。。
なんとか RN4020 BLE経由で、クラウド送信まで完了できました。



# 電圧値のLog



=== update:2017/08/20 ===
回路図を追加しました。
A1 に、分圧抵抗を結線しています。
終端抵抗(R6) 47K にしています。
分圧 : R4=47K ,R5=10K
この部分追加により、消費電力が上昇した為、
下げるように調整したいと思います。
(約 0.1mAh  程度)

driver (arduino IDE ):
https://gist.github.com/kuc-arc-f/e5a53f1ed64bedfd184c5eec30a835f1

PDF 回路図:
https://github.com/kuc-arc-f/ble_adv_bridge_RN4020/blob/master/schematics_breadBord/test-RN4020-2-sch.pdf





=======



# 関連のページ
RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html

Raspberry Pi , BLE gateway 設置、 複数台のBeacon からの送信値をクラウド転送
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html


# BLE -IoT関連まとめ
http://knaka0209.blogspot.jp/2017/07/BLE-matome.html



2017年7月14日金曜日

消費電力比較、RN4020 BLE とesp8266(途中編)

前回製作した、rasPi対応のRN4020+ atmega基板で省エネ化が進んだ為
主に他機種との比較の消費電力調査を行いました。
測定機器/部品等の関係で誤差が出ましたので、測定方法等の見直し必要の状態ですが
ある程度まとまりましたので、公開したいと思います。

比較対象は WIFI(esp8266)とし、
測定方法としては、特定の時間帯の消費電力を測定し
理論値でモバイル電源の連続可能時間を予想する方法としており。
実測値での、連続稼動時間(電池切れまで)を測定している方法ではありません。

*1 ) esp32は、消費電力が大きい為 対象外としました。
*2) BLE server(rasPi)機の消費電力は計測しておりません。
 子機の消費部分となります。


#結果
RN4020 基板が消費電力が少なく、約 1/ 8.5 の電力で稼動できそうです
*) 測定誤差が確認でましたので、補正の計算を実施しています。


# 測定方法/測定機
arduino UNO 内臓 ADCを使って、100mSec 単位で電圧を測定、
PCに送信し、python でファイル保存 (集計)
電流測定用抵抗 =1R
を ADC/GNDで結線し、電位差を測定。電流値を算出
この場合 1Rなので、電圧値= 電流値として読んでいます。


計測条件:
測定間隔= 0.1sec (100 mSec)
測定時間 : 1H
測定サンプリング数: 36000 件(3600秒 * 10)
デバイス Sleep間隔: 5分 (300 sec)
測定箇所 : 5Vライン

*1) センサ等の周辺部品は外して計測しています。(両方のデバイス)
実際には接続するセンサ消費電力との合計値を把握する必要があると思います。
*2) 結果の差が大きかった為、各3回測定しています。
さほど差は出ませんでした。


*) 補正の計算処理について
この計測方法での、ADCの読み込み値が 1mV(1mA)より少ない値が、読み込み出来なかった為、
実際の消費と差が生じている点を発見できました。
暫定対応で、スリープ時の消費電力をテスタで計測し、
加算した計算結果を、最終比較データとしています。

# 消費電力グラフ


*) スリープ解除後の、上昇値で差が出ている部分は、
測定間隔(100 mSec) が長く、瞬間上昇値のタイミングを
計測できていない為と予想しています。

# 累計消費


*1) 累積 折れ線グラフを見ると、大差がよく把握できました。
*2) スリープ時が、平行になっている部分は。測定方法の問題で
実際には、少し右上がりに傾くのが正解と予想しています。

[考察]
右側が補正後の集計値となります。
測定不可能だった、 1mA以下のスリープ時 電流値を テスタ計測で加算しています。
補正値:
esp8266    : 0.80 mA
RN4020 : 0.10 mA

*) esp8266のスリープ時の消費電力が多いのは、
 電源周辺の部品(LDO)で、消費が多いようです。
 消費の少ない部品に変更できれば 基板全体で消費は下がると予想されますが
 LDO出力値の高い機種は、やや消費電力は多いのかもしれません。
 1mA - 0.5mAでも、この場合長時間が多くなると。悪影響が大きくなるようです

最終的に機種比較している電流値(mAh /1時間当り消費電流  )は
esp8266= 1.961527 mAh
RN4020 = 0.23011 mAh
*) ケタ違いで大差がでています。

[連続可能時間 (仮計算) ]
 例として、単三(二次電池)×4本の場合
1000mAh * 1.2V * 4 = 4800 mWh ですが、
出力誤差を考慮して、 4000mWh程度で仮定します。
電池容量 / 1Hあたりの消費電力(mWh) = 連続稼動時間(予想)
として、計算しています。













# まとめ
BLEデバイス等での、IoT 省電力化の検討面で
ご参考になればと。思います


# 関連のページ
RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html

Raspberry Pi , BLE gateway 設置、 複数台のBeacon からの送信値をクラウド転送
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html



# BLE -IoT関連まとめ
http://knaka0209.blogspot.jp/2017/07/BLE-matome.html








2017年7月12日水曜日

dht11 / BME280 sensor対応、RN4020 BLE基板

前回の、rasPi接続版 rn4020基板の続編となります。

センサー接続での組合せで、dht11 / BME280 のパターン。
BLE発信のテストを行いました。

*) arduino Pro mini 3V3 でビルドしていますが、atmega328P
 でも同様にビルド可能とおもわれます。



# dht11

消費電流:0.3mA(測定時)、60μA(スタンバイ時)
arduino dht ライブラリを使用しています。




#code (arduino)
https://gist.github.com/kuc-arc-f/e6384b52a0f402aaf4aaec6951481ea0




# BME280

arduino ライブラリを使用しています。( 感謝です )
https://github.com/embeddedadventures/BME280

# code
https://github.com/kuc-arc-f/ss_RN4020_bme280

*) データ項目数が増えたので(3項目)、プロトコルを拡張しています。
python BLE server 側 対応版:
https://github.com/kuc-arc-f/ble_gateway_sv_BME280

#配線 I2C (秋月さんの BME280モジュールです。)
左から、
BME280 - arduino
1) VDD -VDD
2) GND -GND
3) -
4) SDA -SDA(A4
5) GND -GND
6) SCL - SCL(A5





*) Log になります、気温/湿度/気圧





=== Update: 2017/09/12 ===
読込み部分のみもありますが、一部の機種追加しました。

# STTS751 ,I2C センサ
https://gist.github.com/kuc-arc-f/d93b330e37de0cb85829c4b2de34158e

関連(配線等) :
http://knaka0209.blogspot.jp/2016/06/SSTS571-1.html

# LM60BIZ
THT版の配線 (マニュアル抜粋)



https://gist.github.com/kuc-arc-f/b3e1aaa30c88843150e70f5d4b4620ab

=== ===



# 関連のページ
RASPBERRY PI , BLE GATEWAY 設置..
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html

RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html


# 関連のまとめ
BLE -IOT関連まとめ
http://knaka0209.blogspot.jp/2017/07/BLE-matome.html



2017年7月10日月曜日

Rasbian jessie でpython service(常駐サービス)を起動する


jessie で、サービスを起動する関連ファイル、起動方法等についてメモです。
以前は wheezy で、/etc/init.d 下に、起動スクリプト配置して、起動していましたが。
jessie だと、systemctl 推奨らしいので、関連ファイルを作成してみました。

ExecStart の部分が、実行処理みたいです。


# setup 例です。 /usr/local にプロジェクトを配置した場合です。
上記の例を参考に、serviceファイルを作成し、起動できました。

[install]
sudo cp -pr ble_gateway_sv/ /usr/local/

権限の変更(プロセス)
chmod +x /usr/local/ble_gateway_sv/ble_gateway_sv.py

起動シェルの追加
sudo cp -p ble_gateway_sv/ble_gateway_sv.service  /etc/systemd/system

起動シェル/権限の変更 (不要かも ? )
chmod +x /etc/systemd/system/ble_gateway_sv.service

sudo systemctl start ble_gateway_sv




#

Raspberry Pi , BLE gateway 設置、 複数台のBeacon からの送信値をクラウド転送。

このページは、有料コンテンツとして
note.mu にて公開しております。

https://note.mu/knaka0209/n/n6c10ffc014dd


2017年7月6日木曜日

RN4020 BLE + Atmega328, センサ値検知アラーム音出力



前回の、RN4020 BLE+ esp32(BLE中継機) の続編となります。
省エネ版に、前回センサ値の検知判定、アラーム音出力する機能を追加しました。

以前のesp32+アラーム機能と似ている機能です。
今回は、arduino のtone() 関数で、サウンド出力しています。
前回より、高温 : 高めアラーム音
前回より、低温 : 低めアラーム音

*) アラーム音で、センサ値の比較判定結果を、
サウンド出力してくれるので、近くに置いておくと分かりやすくなりました。


# 追加した部品
100均さま スピーカー(ダイソーさん) , 108円
オーディオコネクタ / http://akizukidenshi.com/catalog/g/gK-05363/

*) D7 にスピーカー追加しています。

# 裏面


電池ボックス( 単三の2本 ), 音量調整 (可変ボリューム)
オーディオコネクタ、等 配置しています。

# driver (BETA)
https://github.com/kuc-arc-f/ss_RN4020_alarm

*) BLE Central 側は、前回と同じです。
https://github.com/kuc-arc-f/ble_adv_bridge_RN4020

=== 2017/07/11 ===
Raspberry Pi版 ,BLE server も追加しました。
http://knaka0209.blogspot.jp/2017/07/raspi-5-BLE.html

=======


# 関連のページ
RN4020 BLE + ATMEGA328, 省エネ改良版
http://knaka0209.blogspot.jp/2017/07/esp32-21.html


# esp32 関連まとめ
http://knaka0209.blogspot.jp/2017/06/esp32-matome.html








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

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

AD-parts

Shop
Bluetooth搭載
ベース基板

Social