質問編集履歴

1 コードの追加

yukinolinlin

yukinolinlin score 6

2017/03/30 23:38  投稿

データをまとめて送信する方法
Milkcocoaでデータをまとめて送信する方法
###データをまとめてMilkcocoaに送信したいです。
ESP-WROOM-02を搭載したデバイスNefryからMilkcocoaにデータをアップしたいです。
センサのサンプリング周期を10ms程度で使用したいと考えています。
push()関数で一つずつデータをアップしていると、通信が間に合わずデータが欠落してしまいます。
push()で一つずつデータをアップしていると、通信が間に合わずデータが欠落してしまいます。
メモリにデータをためつつ、数秒に1度まとめてデータを送る方法はありませんか。
デバイス側でデータをメモリに蓄積する方法と、  
蓄積したデータをMilkcocoaに送る方法が知りたいです。  
 
なお、うまくいっていないコードは以下の通りです。  
 
```arduino sketch  
#include <Nefry.h>  
#include <Nefry_Milkcocoa.h>  
 
Nefry_Milkcocoa *milkcocoa;  
char *datastore;  
 
int sensorPin = A0; // select the input pin for the potentiometer  
int ledPin = 13; // select the pin for the LED  
int sensorValue = 0; // variable to store the value coming from the sensor  
 
void setup() {  
 milkcocoa->print();//Setup ModuleページにAPPIDの表示をする  
 milkcocoa = Nefry_Milkcocoa::begin();//milkcocoaと接続に必要になる処理をします。  
 datastore = Nefry.getConfStr(3);//Setup Moduleページに入力されたデータストア名を保存します。  
}  
 
void loop() {  
 // 以下をloopの中で必ず実行します  
 Nefry.println( milkcocoa->loop(10000)? "Milkcocoa Connect OK" : "Milkcocoa Connect NG" );  
 
 // データ格納用のオブジェクトです  
 DataElement elem = DataElement();  
 sensorValue = analogRead (sensorPin);  
 
 elem.setValue("volume", sensorValue);  
 
 // データストア名を指定して、データをpushもしくはsendします  
 milkcocoa->push(datastore, &elem);  
 Nefry.ndelay(50);  
}  
```  
 
よろしくお願いします。
  • Milkcocoa

    114 questions

    Milkcocoaとは、バックエンド機能を提供するBaaSサービスの一つです。サーバを準備することなく、フロントエンドのコーディングだけでデータの保存・更新・取得、またPub/Sub通信行うことが可能です。

  • Nefry

    6 questions

    Nefryは、インターネットサービスとハードウェアを接続できる小型のモジュール。Wi-Fi環境があれば、Milkcocoa、myThings、IFTTTといったサービスに容易に接続することが可能です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る