macsbug

Just another WordPress.com site

IoT of Adafuruit

with 2 comments

Adafurit の IoT(Internet of Things) を試してみました。          2016.01.10


ESP8266 + BME280(Temperature,Humidity,Pressure Sensor) の値を Adafurit.io へ接続した結果です。
グラフ表示は、Your Feeds の グラフのアイコンを選択します。




方法は、HACKADAY: の 「INTERNET OF THINGS IN FIVE MINUTES」から
Internet of Things in 5 minutes」を参照しました。
ここに、Videoでの紹介とESP8266のスケッチが公開されています。


設定は2つ、「Sing In」の入力と「ADAFRUIT_IO_KEY」の値を入手します。
Adafuruit.io へ接続し右上にある「Sing In」をします。
「EMAIL OR USERNAME」と「PASSWORD」に、メールアドレスとここでのパスワードを入力。
すると、「MY DASHBOARDS」の項目が表示されます。これでほぼ終了です。
「MY DASHBOARDS」を選択するとメインの画面になります。

"

左のメニューにある、「Your Feeds」を選択します。
最初は、NAMEやKEYにwelcome-feed のみが表示されていますが、
ここではすでにESP8266+BME280 での通信の結果が表示されています。
ESP8266でスケッチを書き込み実行すると、NAMEにあるTemperature,Pressure,Humidityが
3分位で自動的に追加される訳です。

「ADAFRUIT_IO_KEY」の値を入手:
左のメニューにある、「Setting」を選択し、「VIEW AIO KEYS」を選択します。
すると、YOUR AIO KEY の画面が開き、40桁のKEYが表示されます。
このKEYをコピーして、スケッチの #define ADAFRUIT_IO_KEY    “??????????” に設定します。



参考:
ライブラリー:“Adafruit_IO_Client.h”
Adafruit:IOT
INTERNET OF THINGS IN FIVE MINUTES
Home Automation in the Cloud with the ESP8266 & Adafruit IO
Adafruit HUZZAH ESP8266 breakout
Adafruit Feather HUZZAH with ESP8266 WiFi
Create an Internet of Things Dashboard with Adafruit IO


感想:
設定は 「Sing In」の入力と「ADAFRUIT_IO_KEY」の入手のみでとても簡単です。
Your Feeds の ID、NAME、KEY は、接続後に自動的に設定されます。これは便利です。
グラフの目盛りは、0からの自動目盛りです。気圧等の大きな値は細部が見れない為に不便です。
KEY欄の文字は、スケッチ中の “Temperature”、”Humidity”、”Pressure” が反映されます。
スケッチのデーター送信部分が1行で済み、これも簡単です。
アップされたデーターを CSV、Excel、JSON、XML で DL できる所は優れていますね。
詳細な使用方法は、まだ未熟です。
グラフ表示に同時に3つとか合成できればいいのですが、詳細は不明です。
スケッチは、シリアルモニタの表示である Serial.print を除くと実に短く関心致します。
Adafuruit の充実さには、いつも感謝の次第です。


ESP8266 のスケッチ:
Internet of Things in 5 minutes」にスケッチが公開されています。Hari Wiguna氏に感謝
内容は、ほぼ同じですが以下に、BME280を使用したスケッチを示します。


スケッチ:BME280 を使用した、温度、湿度、気圧センサー

// 3 minute IoT - Upload to Cloud : Hari Wiguna, 2015
// https://hackaday.io/post/29590
// https://github.com/adafruit/Adafruit_IO_Arduino/blob/master/Adafruit_IO_Client.h
#include <ESP8266WiFi.h>;                         // 
#include "Adafruit_IO_Client.h"                   // 
#include <Wire.h>;                                // 
#include <BME280_MOD_1022.h>;                     // BME280
#define ssid "xxxx"                               // Your ssid
#define pass "xxxx"                               // Your password
#define AIO_KEY "??????????"                      // Adafuruit AIO_KEY
WiFiClient client;                                // Create AIO server
Adafruit_IO_Client aio = Adafruit_IO_Client(client, AIO_KEY);
Adafruit_IO_Feed temp = aio.getFeed("Temperature");
Adafruit_IO_Feed humi = aio.getFeed("Humidity");  //
Adafruit_IO_Feed pres = aio.getFeed("Pressure");  //
long t=0,h=0,p=0;                                 // 

void setup() {                                    // 
  Serial.begin(115200);delay(10);                 // 
  Serial.println();                               // 
  Serial.println(F("3 minute IoT - Upload to Cloud"));
  // BME280 setup --------------------------------//--------------------
  Wire.begin(13,14);                              // I2C SDA,SCL OLED
  BME280.readCompensationParams();                // read NVM parameters
  BME280.writeOversamplingTemperature(os1x);      // 1x over sampling
  BME280.writeOversamplingHumidity(os1x);         // 1x over sampling
  BME280.writeOversamplingPressure(os1x);         // 1x over sampling
  // Connect to WiFi access point ----------------//--------------------
  Serial.print("Connecting to ");                 // 
  Serial.println(ssid);                           // 
  WiFi.begin(ssid, pass);                         // 
  while (WiFi.status() != WL_CONNECTED) {         // 
    delay(500);Serial.print(".");                 // 
  } Serial.println();                             // 
  Serial.println("WiFi connected");               // 
  Serial.println("IP address: ");                 // 
  Serial.println(WiFi.localIP());                 // 
  aio.begin();                                    // Init Adafruit IO client
  Serial.println(F("Ready!"));                    // 
}                                                 // 

void loop() {                                     //
  // BME280 Reading ------------------------------//--------------------
  BME280.writeMode(smForced);  delay(10);         // goes back to sleep
  while (BME280.isMeasuring()){delay(10);}        //
  BME280.readMeasurements();                      // read out the data
  t = BME280.getTemperature();                    // Temperature
  h = BME280.getHumidity();                       // Humidity
  p = BME280.getPressure();                       // Pressure
  // SEND Temperature,Humidity,Pressure ----------//--------------------
  Serial.print(F("Temperature = ")); Serial.println(t,DEC);
  if (!temp.send(t)) Serial.println(F("*** Error writing value to temperatureFeed!"));
  Serial.print(F("Humidity = ")); Serial.println(h,DEC);
  if (!humi.send(h)) Serial.println(F("*** Error writing value to humidityFeed!"));
  Serial.print(F("Pressure = ")); Serial.println(p,DEC);
  if (!pres.send(p)) Serial.println(F("*** Error writing value to pressureFeed!"));
  delay(300000UL);                                // 5 min
}
 


		

Written by macsbug

1月 9, 2016 @ 11:17 pm

カテゴリー: ESP8266

コメント / トラックバック2件

Subscribe to comments with RSS.

  1. あれま、文字化けしちゃいましたね。ごめん。
    いつもすごく役に立つ情報をありがとうございます。
    アダフルトは今オープンベータを展開しているのですね。私も試してみたい。

    infomac

    1月 10, 2016 at 6:45 am

    • 是非試してみてください。アダフルトのページは凄く充実していますし、IOTの進化で楽しさが広がると良いかなと思っています。

      macsbug

      1月 11, 2016 at 2:07 am


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。