Загрузка данных датчика DHT11 на ThingSpeak с использованием Arduino MKR1000
Компоненты и материалы
- Датчик температуры и влажности DHT11 (4 вывода) — 1 шт.
- Arduino MKR1000 — 1 шт.
О проекте
Ранее я разрабатывал код для ESP8266 12-E для беспроводной передачи данных с датчика DHT11 на ThingSpeak. Для работы с Arduino MKR1000 потребовались лишь незначительные изменения.
Шаг 1. Подключение
Соедините линию данных DHT с выводом 1 платы MKR1000 (пятый вывод от края на обратной стороне).
Шаг 2. Установка библиотек
Скачайте и установите в Arduino IDE:
Шаг 3. Добавление поддержки плат SAMD
В менеджере плат (Инструменты → Плата → Менеджер плат) найдите «Arduino SAMD Boards (32-bits ARM Cortex M0+)» и установите версию 1.6.3 (версия 1.6.4 может не установить плату MKR1000).
Шаг 4. Настройка ThingSpeak
- Создайте бесплатный аккаунт на ThingSpeak.com.
- Настройте поля для графика (влажность, температура).
- Скопируйте «Write API Key», SSID и пароль Wi-Fi в скетч.
Шаг 5. Загрузка и запуск
Выберите правильный COM-порт для MKR1000, скомпилируйте и загрузите код. В мониторе порта вы увидите сообщения об отправке данных на ThingSpeak.
Код
Скетч объединяет примеры Adafruit DHT, WiFi101 WebClient и шаблон ThingSpeak для Arduino. Полный код доступен на GitHub.
/* Скетч для MKR1000 + DHT11 + ThingSpeak */
#include <SPI.h>
#include <WiFi101.h>
#include <DHT.h>
#define DHTPIN 1
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
String apiKey = "YourApiKeyHere";
char ssid[] = "YourSSIDHERE";
char pass[] = "YourPasswordHere";
int keyIndex = 0;
char server[] = "api.thingspeak.com";
WiFiClient client;
void setup() {
Serial.begin(9600);
while (!Serial);
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 → вывод 1 MKR1000. Питание 5V и GND от MKR1000 к датчику.
Производственный процесс
- PicoCoreMX8MM: Ультракомпактный ARM модуль на базе NXP i.MX 8M Mini
- Kontron представляет COM HPC: новый стандарт высокопроизводительных встроенных вычислений
- Компактный breakout для DHT температуры и влажности на Raspberry Pi — ATtiny85 и DHT22/DHT11
- Создание монитора температуры ThingSpeak с Raspberry Pi и BrickPi
- Создайте свой первый IoT-проект с Raspberry Pi, DHT11 и ThingSpeak
- Arduino MKR1000: полное руководство по распиновке, питанию и старту для IoT
- Parts.Cat.Com: упрощение закупки запчастей, экономия времени и денег
- Shop.Cat.Com: ваш универсальный ресурс для техники, навесного и инструментов
- Оптимизация техники Cat®: полное руководство по My.Cat.com
- Сталь ASTM A551 Class DHT после термической обработки: ключевые свойства и производительность