工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

必要な部品と用品

DHT11 温湿度センサー(4ピン) ×1
Arduino MKR1000 ×1

プロジェクト概要

以前、ESP8266 12-EでDHT11による環境センサーデータを無線でThingSpeakにアップロードし、グラフ化するコードを開発していました。今回はそれをArduino MKR1000で動作させるために、わずかな修正を加えました。

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

手順1: 配線

DHT11のデータ出力線をMKR1000のPin1(基板裏面の「1」と書かれたピン、端から5番目)に接続します。

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

手順2: ライブラリのインストール

以下のライブラリをダウンロードしてインストールしてください。

手順3: ボードマネージャーでSAMDボードを追加

Arduino IDEの「ツール」→「ボード」→「ボードマネージャー」を開き、「Arduino SAMD Boards (32-bits ARM Cortex M0+)」を検索してバージョン1.6.3をインストールします。バージョン1.6.4ではMKR1000ボードが正しくインストールされない問題がありました。

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

手順4: ThingSpeakアカウントの設定

ThingSpeak.comで無料アカウントを作成し、グラフ化するフィールド(湿度、温度など)を設定します。提供されているスケッチに、ThingSpeakの「Write APIキー」、Wi-FiのSSID、パスワードを貼り付けてください。

手順5: 書き込みと実行

MKR1000に対応したCOMポートを選択し、コンパイルして書き込みます。シリアルモニタにThingSpeakへのデータ送信ログが表示されれば成功です。

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

スケッチ(コード)

MKR1000 → DHT11 → ThingSpeak 無線環境センサーグラフ化

AdafruitのDHTスケッチ、WiFi101 WebClient、ThingSpeak Arduinoテンプレートを組み合わせ、Stephen Borsay氏がMKR1000用に改変したものです。自由にご利用ください。

/* This sketch is a combination of ADAFruits DHT sketch, WiFi101 Webclient and The arduino example from ThingSpeak Modified by Stephen Borsay for the MKR1000, feel free to use */
#include <SPI.h> // シールド不使用のため不要だが互換性のため残す
#include <WiFi101.h>
#include "DHT.h"

#define DHTPIN 1     // 接続ピン(Pin1 = 基板裏面の5番目ピン)
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT21 // DHT 21
//#define DHTTYPE DHT22 // DHT 22

DHT dht(DHTPIN, DHTTYPE);

String apiKey = "YourApiKeyHere";  // ThingSpeakのWrite APIキー
char ssid[] = "YourSSIDHERE";      // Wi-Fi SSID
char pass[] = "YourPasswordHere";  // Wi-Fiパスワード
int keyIndex = 0;                  // WEPの場合のみ必要

char server[] = "api.thingspeak.com";
WiFiClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) { ; } // ネイティブUSBポートの場合のみ必要

  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("WiFi shield not present");
    while (true);
  }

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("Attempting to connect to SSID: ");
    Serial.println(ssid);
    WiFi.begin(ssid, pass);
    delay(10000);
  }
  Serial.println("Connected to wifi");
  printWifiStatus();
}

void loop() {
  delay(2000);

  int h = dht.readHumidity();
  int t = dht.readTemperature();
  int f = dht.readTemperature(true);

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  int hif = dht.computeHeatIndex(f, h);
  int hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t");
  Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C ");
  Serial.print(f); Serial.print(" *F\t");
  Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C ");
  Serial.print(hif); Serial.println(" *F\n");

  Serial.println("\nStarting connection to server...");
  if (client.connect(server, 80)) {
    Serial.println("connected to server");

    String tsData = "field1=" + String(h) + "&field2=" + String(t) + "&field3=" + String(f) + "&field4=" + String(hic) + "&field5=" + String(hif);

    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(tsData.length());
    client.print("\n\n");
    client.print(tsData);
    client.stop();
    delay(1000);
  }
}

void printWifiStatus() {
  Serial.print("SSID: "); Serial.println(WiFi.SSID());
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: "); Serial.println(ip);
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):"); Serial.print(rssi); Serial.println(" dBm");
}

回路図

DHTのデータ線をMKR1000のPin1(端から5番目)に接続。5VとGNDはMKR1000から供給します。

Arduino MKR1000でDHT11センサーデータをThingSpeakにアップロードする方法

製造プロセス

  1. Parts.Cat.Comで部品調達を効率化:時間とコストを大幅削減
  2. Shop.Cat.Com:機器、アタッチメント、ツールのワンストップリソース
  3. Cat®機材を最適化:My.Cat.com完全活用ガイド
  4. Raspberry Pi向けコンパクトDHT温湿度ブレークアウト – ATtiny85 & DHT22/DHT11
  5. Raspberry PiとBrickPiでThingSpeak温度モニターを構築
  6. Raspberry Pi、DHT11、ThingSpeakで作る初めてのIoTプロジェクト
  7. 3Dfilemarket.com創業者Philip Cotton氏インタビュー:英国3Dプリント教育のエキスパート
  8. MKR1000ピン配置完全解説:IoT開発に最適なArduinoボード
  9. PicoCoreMX8MM:NXP i.MX 8M Mini搭載の超コンパクトARMモジュール
  10. Kontron、新しい高性能組み込みコンピューティング標準「COM HPC」を発表
  11. ASTM A551 Class DHT 熱処理鋼 - 主要特性と性能