Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

センサーのサンプルプログラムを充実させる #48

Open
wamisnet opened this issue Jan 20, 2017 · 25 comments
Open

センサーのサンプルプログラムを充実させる #48

wamisnet opened this issue Jan 20, 2017 · 25 comments

Comments

@wamisnet
Copy link
Member

温度とか明るさとかいろいろ

@knkhdk
Copy link

knkhdk commented Dec 8, 2017

温湿度のセンサーで数値をとるところまではなんとかなったのですが、Milkcocoaに値を投げることができない。。。サンプルプログラムがあれば助かります。
サンプルを探してどんな仕組みになっているか勉強したいのですが、スイッチを押したりLEDを光らせたりというものしか見つからなくて。

@wamisnet
Copy link
Member Author

wamisnet commented Dec 8, 2017

@knkhdk どの型番のセンサをつなげてみたいのか教えていただければ、それのコードを紹介することができるかと思います。
私がセンサを持っていないかもしれないので、一応その値が取れたセンサのプログラムを教えていただけると具体的になるので助かります

@knkhdk
Copy link

knkhdk commented Dec 8, 2017

お返事たいへんありがとうございます。
センサーはGrove Temp & Humi Sensor と 同じく Grove Light sensor を持っています。
ビニルハウス内の環境測定などに使えればと素人ながら手を出してみました。
なにかヒントになる情報等ございましたらよろしくお願いします。

@wamisnet
Copy link
Member Author

wamisnet commented Dec 8, 2017

明日中にコード確認してみますので少々お待ちしていただいても大丈夫でしょうか?
ちなみにお持ちになられているNefryはNefry v2かNefry BTのどちらでしょうか?

@knkhdk
Copy link

knkhdk commented Dec 8, 2017

Nefry v2 です。
時間は全然大丈夫です。
どうぞよろしくおねがいします。

@knkhdk
Copy link

knkhdk commented Dec 12, 2017

Nefryではむずかしいようですね。ESP8266というものだと参考になる資料が多くあるようなのでそちらで頑張ってみます。

@knkhdk
Copy link

knkhdk commented Dec 12, 2017

あちゃーNefryってESP8266なんですね ハズい

@wamisnet
Copy link
Member Author

すみません。私用の方で忙しく触れていませんでした。おっしゃっているとおりNefryはESP8266なので、サンプルコードが多数あると思います。
https://github.com/Nefry-Community/Arduino/blob/master/libraries/Nefry/examples/Nefry_Analog/Nefry_Analog.ino

おそらくこちらのコードで動くかと思います。A0ピンに接続してもらえば必要なデータを取得できるはずです。

@knkhdk
Copy link

knkhdk commented Dec 12, 2017

ご対応ありがとうございます。
急かしてしまったみたいでもうしわけありません。
上記コードをためしてみました。
アナログ値が出力されましたが、これを温度なり湿度なりをその値として出力し、
Ambientかmilkcocoaに表示したいとおもっております。
例 Ambientの公開チャネル:https://ambidata.io/ch/channel.html?id=1646
また、ESP8266のサンプルコードはライブラリの追加等ちゃんとおこなっていれば
そのままでNefryは動くのでしょうか?
師走の忙しい時期ですし、お時間のある時で構いませんので、ご回答いただければと思っております。
どうぞよろしくおねがいします。

@wamisnet
Copy link
Member Author

#include <Nefry.h>
#include <Nefry_Milkcocoa.h>

Nefry_Milkcocoa *milkcocoa;

char *datastore;
void onpush(DataElement *elem);

void setup() {
  milkcocoa->print();//Setup ModuleにAPPIDの表示をする
  milkcocoa = Nefry_Milkcocoa::begin();
  datastore = Nefry.getConfStr(3);
  Nefry.println( milkcocoa->on( datastore, "push", onpush) ? "Milkcocoa onPush OK" : "Milkcocoa onPush NG" );
}

void loop() {
  Nefry.println( milkcocoa->loop(10000) ? "Milkcocoa Connect OK" : "Milkcocoa Connect NG" );
  DataElement elem = DataElement();
  elem.setValue("sensor", analogRead(A0));
  milkcocoa->push(datastore, &elem);
  Nefry.ndelay(5000);
}

void onpush(DataElement *elem) {//MilkcocoaのOn関数と同一
  Nefry.print("onpush:");
  Nefry.println(elem->getInt("sensor"));
}

@wamisnet
Copy link
Member Author

こんな風で試せるかと思います。

@knkhdk
Copy link

knkhdk commented Dec 13, 2017

ご回答ありがとうございました。
早速試してみたところ、Milkcocoaのデータストアにデータがとどかないようなので、
NefryのWeb Consoleで確認したところ
Milkcocoa onPushはOKになっているのですが、その後の
Milkcocoa ConnectがNGで出力されつづけておりました。
認証の問題なのかと思い、Setup ModuleでAPIKeyやApiSecretを確認し、
Milkcocoaで生成したものと間違いがないか確認したのですが、問題ないようです。

いろいろと検索しながら自分で解決できるように試みているのですが、うまくいかず
お願いばかりで本当に申し訳ないのですが、なにか原因がわかればお教えいただきたいと思います。
どうぞよろしくお願いいたします。

@knkhdk
Copy link

knkhdk commented Dec 13, 2017

改めて確認したところMilkcocoa ConnectがOKになりました。
wi-fiの接続に問題があったのかもしれません。
申し訳ありません。
あとはMilkcocoaの設定でなんとかなりそうなので、いちおうご報告差し上げます。

@wamisnet
Copy link
Member Author

なんとか動いているようで良かったです。

もしよろしければこちらにNefryコミュニティグループがありますのでぜひご参加ください。
https://www.facebook.com/groups/nefry

@knkhdk
Copy link

knkhdk commented Dec 13, 2017

大変お手数おかけいたしました。
ありがとうございました。

@knkhdk
Copy link

knkhdk commented Dec 14, 2017

先日はお世話になりました。
その後Milkcocoaの設定を確認し、いろいろとやってみたのですが、Milkcocoaにコネクトはされているのですが、センサーからの数値は送られていないような気がします。

Nefry Consoleを見てもMilkcocoa Connect OKを連投しているのみで具体的なセンサーの数値を送っているようではありませんし、Milkcocoa側を見てもコネクトは1になっているのに対し、今日の配信メッセージ数は0のまま変化しません。
void loop()以下の内容を素人ながら読解してみても、Groveセンサーの温度、湿度と2種類の数値でおくっているようではないような気が。。。

とりあえず、自分なりにもう少しがんばってみます。

@wamisnet
Copy link
Member Author

あれ?今持っておられるセンサってhttp://wiki.seeed.cc/Grove-TemperatureAndHumidity_Sensor/ これと同等ですか?

@knkhdk
Copy link

knkhdk commented Dec 14, 2017 via email

@wamisnet
Copy link
Member Author

wamisnet commented Dec 15, 2017

いえいえ、私の認識が間違っていただけでした。ちょっとコードが別でした。
http://shangtian.hatenablog.com/entry/2017/04/09/212730
上の手順でライブラリのインストールをしていただいてから下に貼るコードを試していただけますか?

#include <Nefry.h>
#include <Nefry_Milkcocoa.h>
#include <DHT.h>

const int PIN_DHT = D2;
DHT dht(PIN_DHT,DHT11);
Nefry_Milkcocoa *milkcocoa;

char *datastore;
void onpush(DataElement *elem);

void setup() {
  milkcocoa->print();//Setup ModuleにAPPIDの表示をする
  milkcocoa = Nefry_Milkcocoa::begin();
  datastore = Nefry.getConfStr(3);
  Nefry.println( milkcocoa->on( datastore, "push", onpush) ? "Milkcocoa onPush OK" : "Milkcocoa onPush NG" );
dht.begin();
}
void loop() {
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  Serial.print("Humidity:  ");
  Serial.print(humidity);
  Serial.println("%\t");
  Serial.print("Temperature:  ");
  Serial.print(temperature);
  Serial.println(" *C");

  Nefry.println( milkcocoa->loop(10000) ? "Milkcocoa Connect OK" : "Milkcocoa Connect NG" );
  DataElement elem = DataElement();
  elem.setValue("Humidity", humidity);
  elem.setValue("Temperature", temperature);
  milkcocoa->push(datastore, &elem);
  Nefry.ndelay(5000);
}

void onpush(DataElement *elem) {//MilkcocoaのOn関数と同一
  Nefry.print("onpush:");
  //Nefry.println(elem->getInt("sensor"));
}

@knkhdk
Copy link

knkhdk commented Dec 15, 2017

ありがとうございました。
ライブラリをインストールし上記コードで作成したバイナリをアップロードしてみたところ、
水色LED→緑→緑点滅を繰り返してしまうようになり、どうも再起動をくりかえしているようなので
通常の起動をするバイナリをWIFIを止めてアップロードし、落ち着かせたのちに
再度Arduinoを新規作成からコードを貼り付け、コンパイル、バイナリ出力したものをアップロードしてみたのですが、同じ症状が再現されてしまいます。
手順を確認しながら再度挑戦してみます。

@wamisnet
Copy link
Member Author

その時に出るシリアルモニタのログをここに貼ってもらうことは可能でしょうか?

@knkhdk
Copy link

knkhdk commented Dec 15, 2017

はずかしながら、シリアルモニタの存在を知らなかったので調べてみたのですが、PCと直接接続することで書き込みや、動作のログをとれるようになるという解釈でよろしいでしょうか。

Nefryもドライバ等を入れることでUSBで書き込みやログをとれるようになるのでしょうか。(ちょっと調べた範囲ではドライバ等はみあたらなかったのですが。。。)

とりあえずUSB接続してみたものの、給電はできるものの、ボードCOM1は利用できませんと表示されログをとることができません。
PCと接続し上記作業ができる方法があればURL等お教えいただければと思います。

いろいろとお手数かけっぱなしで申し訳ありません。

@wamisnet
Copy link
Member Author

あ、そうでしたね… Nefry v2にはシリアル変換が載ってないんでした…うっかり忘れていました…

@knkhdk
Copy link

knkhdk commented Dec 16, 2017

いちおうお聞きしたいのですが、Nefryで上記のような使い方は成功した事例はありますでしょうか?
また、web sketch downloadを利用するすることでエラーを回避できたりはしないでしょうか?

@knkhdk
Copy link

knkhdk commented Dec 16, 2017

あと、もう一点すいません。
https://dotstud.io/blog/nefry-data-show-graphically/
Ambientでは光センサーを使用してますが、温湿度センサーで成功したことはありませんでしょうか。
追記:
上記URLの02.Ambientとはで貼り付けてある画像に温湿度センサーで成功しているようなのですが、
そのソースコードを公開いただけないでしょうか。
何卒、よろしくおねがいします。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants