2019年2月11日月曜日

ラズベリーパイ Cayenne(カイエン)1

一日放置しGUIをいじった
Liveはしたのようにグラフが見えるが m など 違う区切りにすると
その下のように データが無いと表示される。
コミュニティーに聞いてみたら、デフォルトで取得される値は
グラフ表示されないとのことでした。
まともに動いていないかと心配して調べるのを躊躇していたがもう少し調べてみることにした、まずは デフォルトではない 数値のグラフ化を調べる












Docsを読む
Cayenne は クライアントとサーバが MQTT(Message Queuing Telemetry Transport)を使って通信する、 これはMTM IoTデバイスなどのフットプリントが小さなプロトコルで非常に軽く限られた不安定なネットワークでも通信が可能
Cayenne Cloud は沢山のデバイスとのブローカーとして機能する

MQTT初めて聞いた

クライアントにMQTT Clients をインストールしてこれから Cayenne Cloud に転送するのだけど、pythonにした、書いたことないし、 C/C++ 嫌いだし 
Paho: The Eclipse Paho project provides open-source MQTT clients for C/C++, Python, Java, Javascript, Go and C#. If you are using one of Cayenne’s libraries, the Paho client is bundled in the library to make using MQTT with Cayenne easy.

Add New  >Device/Wiget追加 選択
3つがあとで必要になる
MQTT_USERNAME  = "MQTT_USERNAME"
MQTT_PASSWORD  = "MQTT_PASSWORD"
MQTT_CLIENT_ID = "MQTT_CLIENT_ID"














クリックすると 下記が表示される
https://github.com/myDevicesIoT/Cayenne-MQTT-Python

インストールはこれだけでOK
pip install cayenne-mqtt
読み進めていくとサンプルが、
import cayenne.client
import time

# Cayenne authentication info. This should be obtained from the Cayenne Dashboard.
MQTT_USERNAME  = "MQTT_USERNAME"
MQTT_PASSWORD  = "MQTT_PASSWORD"
MQTT_CLIENT_ID = "MQTT_CLIENT_ID"

# The callback for when a message is received from Cayenne.
def on_message(message):
  print("message received: " + str(message))
  # If there is an error processing the message return an error string, otherwise return nothing.

client = cayenne.client.CayenneMQTTClient()
client.on_message = on_message
client.begin(MQTT_USERNAME, MQTT_PASSWORD, MQTT_CLIENT_ID)
# For a secure connection use port 8883 when calling client.begin:
# client.begin(MQTT_USERNAME, MQTT_PASSWORD, MQTT_CLIENT_ID, port=8883)

i=0
timestamp = 0

while True:
  client.loop()

  if (time.time() > timestamp + 10):
    client.celsiusWrite(1, i)
    client.luxWrite(2, i*10)
    client.hectoPascalWrite(3, i+800)
    timestamp = time.time()
    i = i+1
vi  Cayenee_sample.py 
chmod 755 Cayenee_sample.py

authentication 書き換え
python Cayenee_sample.py > log.text &

グラフができました。





データを送付するのはこの部分であると推測 で 
client.celsiusWrite(1, i)    # 1がDB iがデータ たぶん 



    client.celsiusWrite(1, i)
    client.luxWrite(2, i*10)
    client.hectoPascalWrite(3, i+800)

ここを書き換える
client.celsiusWrite(1, commands.getoutput("vcgencmd measure_temp | sed -e 's/temp=//g'  -e 's/C//g' |  rev | cut -c 2- | rev") )
    client.luxWrite(2, commands.getoutput("vcgencmd measure_clock arm | sed -e 's/frequency(45)=//g' ") )
    client.luxWrite(3, commands.getoutput("vcgencmd measure_volts| sed -e ' s/volt=//g' -e 's/V//g' "))
    client.luxWrite(4, commands.getoutput("vcgencmd get_mem arm | sed -e 's/arm=//g'  -e 's/M//g' "))
    client.luxWrite(5, commands.getoutput("vcgencmd get_mem arm | sed -e 's/gpu=//g'  -e 's/M//g' "))
    client.luxWrite(6, commands.getoutput("grep wlan0 /proc/net/dev  | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((x2 / 1024 / 1024)); done "))
    client.luxWrite(7, commands.getoutput("grep wlan0 /proc/net/dev  | while read x1 x2 x3 x4 x5 x6 x7 x8 x9 x10 x11; do echo $((x2 / 1024 / 1024)); done "))

shell 呼び出ししているので 下記も必要
import commands




アイコンはめちゃくちゃだけど とりあえずデータは上がっている
よって ラズベリーパイで取得できるデータを  Cayenne に uploadできることを
確認した




センサーの調達

アマゾンなどでもセンサーが購入できるけど、やはり高い
初めて https://best.aliexpress.com/ AliExpressで購入してみた

eBayに慣れているので非常に驚いた、WEBサイトとてもよくできている。

  • 販売者は10日以内に配送を行う
  • 60日以内に届かない、違うものが配送された場合 AliExpressが補償する
購入直後に10日のカントダウンが始まって
今日どうなっているか確認した
60日は非常に意識されているようで、カウントダウンが表示されてる(中国人が中国人向けに作っているのが理解できる作り、言い逃れはさせないぜって感じで、好感がもてます)

実際は届いてみてからだけど 
まずは 2月9日発注が いつ届くか楽しみ
Your order should arrive within 15-29 Days,  

  • BME280   1個 240円
  • INA226  1個 120円    
  • BH1750   1個   95円
    送料   合計 192円






2019年2月9日土曜日

ラズベリーパイ Cayenne(カイエン)

ラズベリーパイ いじっていたらこんなサイトをみつけました
hhttp://yagitsawa.github.io/2017/03/12/cayenne-mydevices-raspberrypi/

面白そうなのでやってみた
SSH接続ができていればコマンド 2つで完成

wget https://cayenne.mydevices.com/dl/rpi_1nd3ugcsmu.sh
sudo bash rpi_1nd3ugcsmu.sh -v

本当に簡単だった
あっという間にグラフサイトができた。
GCPでCactiでグラフにしようと予定していたけど、辞めて Cyanne カイエンをもう少し調べることにした
だって、 カッコいいじゃん、こっちのが




一日放置したけど、グラフが書けない、 その瞬間の値は取得できているようなのだけど
もう2-3日放置して様子をみるか、 マニュアル読むか、、
2-3日放置決定

外しかたも学習しないと、、 電気を食うようになりました 100mAくらいは増えている感じ

ラズベリーパイ3 SSH 設定

学習ポイント
  1. IPアドレス固定
  2. TERATERMからSSHアクセス パスワード認証
  3. SSH 公開鍵認証に変更する

検索 しまくり 方法を確認  LINUXは結構変わってきていて知らない部分が
多くて理解するのに時間がかかった TERATERM最近使っていなかったので
なんとなく 思い出してきた
viを久しぶりに使ったが、コマンド覚えてた(^^; 

  • IPアドレスを固定する
    • 自宅のルータ設定を確認を含めて 確認
      pi@raspberrypi:/etc $ ifconfig
      下記追加 100に固定した
      sudo vi /etc/dhcpcd.conf
      interface wlan0  # 必要なのかわからないstatic ip_address=192.168.1.100
      static routers=192.168.1.1
      static domain_name_servers=192.168.1.1

      Routerによってはレンジが違う
      192.168.11.0/24 だったりするので第4オクテッド のみ 設定したいIPにする

  • TERATERMからのアクセス
    まずはパスワード認証

初回は表示される 次回表示ふようなので マークする


画面変わらず

         デフォルトは pi   raspberry だと思うけど、、、    
         ログインできないのでついでにパスワードも変更
         sudo passwd pi


       今度も緑のまま いったん接続を切ってつないだらつながった。
       パスワードも変更終わったのでよいとする




最終的にはつながったからいいとするけど、原因がわからない



2019年2月6日水曜日

GCP3 TERATERMからアクセス

TERATERMがおかしかったみたい 時間がかかってしまった

PCからの TERATERMを設定してみた
検索ワード Teraterm key を作ってSSH GCP
接続失敗した点
key作って登録して TERATERM起動してIP入れて 通常なら SSHのkeyを指定する
画面が出てくるはずが、出てこない、、 TERATERM入れ直しで治った

TERATERM ログイン 知ってしまえは簡単なんだけど、知らないとログインできない

Keyの作成
設定 > SSHキー作成 (何も変更なし)


パスフレーズは忘れない
コメント欄は ログインアカウント 
鍵を保存


ユーザー名はGCPインスタンスのログインアカウント
パスフレーズは 上でSSH keyを作る時に指定したフレーズ
保存した秘密キーを選択する




ログインするまでは早くなったけど、キーボードの反応は変わらないかなぁ。





次は WEBサーバのインストール 予定
疲れたから 昼寝する

2019年2月3日日曜日

ラズベリーパイ2 OSセットアップ2

NOOBOS ダウンロード時間がとてもかかった。

で 放置しておいて 、失敗もして何回かやって落ちた
手順は
  1. ファイルを展開
  2. SDをフォーマット 
    検索ワード raspberry pi sd フォーマット
    本当に上の作業いるのか? FAT32でもよさそうだけど 
  3. 起動する 

一番面倒なのは 時間がかかること
疑問なのは、 起動するとインストールが始まる、、って NBOOBOSには
OSが全部入っていると思うが、
https://www.raspberrypi.org/downloads/raspbian/ から普通にOSイメージをSDに
インストールしたほうが、SDに無駄なファイルが入らないのではないかと思う

BOOBOS vs echer (インストール) で SDの量の違いがあるのか
確認しないといけないかも。



GCP1 VM作成

無料でクラウドサーバを立てたいので検索
    検索ワード    無料 google cloud platform
1年間は無償、で、サーバーの構成によっては無償になるらしい。
大した負荷ではないから 無料の条件を確認
    検索ワード  gcp 無料

いろいろ検索ワードを調べて
クラウドインスタンス = クラウドサーバ =  VM = 仮想マシン
(直接的には同じではないけど、、)



さっき検索した gcp 無料 インスタンス作成 
 検索ワード GCP 無料 インスタンス作成

Devianを選択(Raspiに合わせた) 

作ったインスタンスに Cloud shell でアクセス
クラウドシェル ログインに時間がかかるので


ここまではとても簡単、戸惑うことはなかった。









注目の投稿

ラズベリーパイ Cayenne(カイエン)1

一日放置しGUIをいじった Liveはしたのようにグラフが見えるが m など 違う区切りにすると その下のように データが無いと表示される。 コミュニティーに聞いてみたら、デフォルトで取得される値は グラフ表示されないとのことでした。 まともに動いていないかと...