御社のサンプルを参考に、ESP8266を用いてARDUINO IDEにて開発を行っております。ESP8266を2台用い、1台は送信のみ、もう1台は受信のみを行う実装を行いたいのですが、受信側のkeyの設定がうまくいっていないのかエラーとなってしまいます。
※受信側でkey"v"の値を読み込む際に、elem.getInt("v")がエラー(→obj is NULL)となる。送信側でpushした直後にエラーが表示されるので、.on自体は機能しているようです。
受信のみを行う場合のkey設定方法を教えて頂けますでしょうか?
<実装内容>
・送信側は御社サンプルをそのまま使用し、Datastore”ESP8266”中のkey”v”に値をpush
(http://blog.mlkcca.com/iot/milkcocoa-arduino/)
・受信側は御社サンプルより必要部分を抜粋し仕様、Datastore”ESP8266”中のkey”v”の値を監視し受け取る
<以下、受信側コード抜粋>
void setup() {
/シリアル・wifi接続は省略(御社サンプルまま)/
Serial.println( milkcocoa.on(MILKCOCOA_DATASTORE, "push", onpush) );
};
void loop() {
milkcocoa.loop();
DataElement elem = DataElement();
elem.setValue("v", 1); //★ここが間違い?
delay(7000);
};
void onpush(DataElement elem) {
Serial.println("onpush");
Serial.println(elem.getInt("v"));
};
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
Milkcocoa開発チームのものです。
ライブラリを使って頂きありがとうございます。
「受信側でkey"v"の値を読み込む際に、elem.getInt("v")がエラー(→obj is NULL)となる。」とのことですが、
状況を正確に把握・再現したいため、大変お手数ですが送信側のコードも拝見してもよろしいでしょうか...?
受け取ったデータでobj is NULL
とエラーが出ているということは、送信側に問題があるかもしれないとちょっと思っています。
投稿2015/11/09 16:17
総合スコア105
0
こちら、JavaScript SDK側に問題がありました。。
修正してアップロードしましたので、動作するかもう一度確認頂けますでしょうか。
Node.jsでお使いになる場合は、v0.2.4にアップデートしてから利用頂ければ幸いです。
ご迷惑をおかけして申し訳ありません。。
投稿2015/11/11 04:15
総合スコア105
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/12 02:20 編集
2015/11/12 02:22
2015/11/12 02:26
0
ご確認ありがとうございます。投稿者です。ご指摘の件、実は途中から送信側をESP8266→自作HTMLに変更しており、先ほどESP8266に戻したところ提示したコードで受信できました。お騒がせしてすみません。。
(keyの設定の問題と決めつけており、送信側も色々試していましたが、最初のESP8266での送信時に何かミスしていたようです…。)
なお、HTMLの方では依然 obj is NULL とエラーが出ているのですが、こちらの確認をお願いできますでしょうか…?以下、送信側のコードです。HTML上スライダに連動してDatastore上にデータをpushする仕様です。下記コードでmilkcocoaのdashboardではデータが反映されています。
※受信側ESP8266は上記投稿のまま
■HTMLファイル
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title> モーター操作デモ</title> <script type='text/javascript' src='slider_mcc.js'></script> <link rel="stylesheet" type="text/css" href="/css/result-light.css"> <style type='text/css'> </style> </head> <body> <script src="https://cdn.mlkcca.com/v2.0.0/milkcocoa.js"></script> <div> <div id="todos"> </div> <div> <input id ="slide_bar" type="range" name="num" min="-80" max="80" step="5" value="0"> <span id="val">0</span> </div> </div> </body> </html>■JSファイル
window.onload=function(){
var new_content = document.getElementById("new_content");
var create_button = document.getElementById("create_btn");
var todos = document.getElementById("todos");
var slide_bar = document.getElementById("slide_bar");
var val = document.getElementById("val");
var milkcocoa = new MilkCocoa('seaighlmu9z.mlkcca.com');
var todoDataStore = milkcocoa.dataStore("esp8266");
slide_bar.addEventListener("change",function(){
val.innerHTML = this.value;
todoDataStore.push({
v : this.value
});
},false);
function render_todo(todo) {
var element = document.createElement('div');
element.textContent = todo.content
todos.appendChild(element);
}
}
投稿2015/11/10 07:26
総合スコア10
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/10 23:55
2015/11/11 01:29
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
関連した質問
ESP8266-ARDUINOでの実装において、受信(.on)のみを行う場合のkey設定方法について
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。