Представьте: вы заходите в комнату, и свет включается сам. Или ваш цветок сам отправляет вам сообщение, что ему срочно нужна вода. Или же кофе-машина запускается ровно за минуту до того, как вы проснётесь. Всё это возможно благодаря IoT (Интернету вещей), и, что самое крутое — вы можете создать своё собственное умное устройство буквально за пару часов!
Сегодня мы разберём, как создать простое IoT-устройство с Arduino, которое будет передавать данные в облако и управляться удалённо. Поехали! 🚀
Что мы будем делать?
Мы создадим умный датчик температуры и влажности, который будет измерять параметры воздуха и отправлять данные в облако, где вы сможете видеть их в реальном времени на своём смартфоне или компьютере.
Да, теперь вам не нужно гадать, насколько жарко или влажно в комнате — данные будут перед глазами!
Что нам понадобится?
Железо (Аппаратная часть)
🟢 Arduino Uno — наш мозг, который будет управлять процессом.
🟢 DHT11 (или DHT22) — датчик температуры и влажности. Он покажет нам, насколько в комнате жарко и сухо.
🟢 Wi-Fi модуль ESP8266 — подключит наше устройство к интернету.
🟢 Провода и макетная плата — чтобы всё соединить.
🟢 Компьютер с установленным Arduino IDE — для программирования нашей платы.
Софт (Программная часть)
✅ Arduino IDE — среда, в которой мы будем писать код.
✅ Библиотеки DHT и ESP8266WiFi — для работы с датчиком и Wi-Fi.
✅ Платформа ThingSpeak — чтобы хранить данные в облаке.
Шаг 1: Подключаем датчик к Arduino
DHT11 (или его более точный собрат DHT22) имеет 4 вывода, но нам понадобятся только три:
- VCC (Питание, 5V)
 - GND (Земля)
 - DATA (Сигнал, подключаем к цифровому пину, например, D2)
 
Схема подключения:
javaКопироватьРедактироватьDHT11       →      Arduino  
VCC (5V)    →      5V  
GND         →      GND  
DATA        →      D2  
Шаг 2: Подключаем Wi-Fi модуль ESP8266
Теперь подключим ESP8266, который поможет отправлять данные в интернет.
javaКопироватьРедактироватьESP8266     →      Arduino  
VCC (3.3V)  →      3.3V  
GND         →      GND  
TX          →      RX  
RX          →      TX  
CH_PD       →      3.3V  
⚠️ Важно: ESP8266 работает на 3.3V, не подключайте его к 5V, иначе можете сжечь модуль!
Шаг 3: Программируем Arduino
Теперь настало время магии. Открываем Arduino IDE и пишем код.
Устанавливаем библиотеки
Перед началом установите две библиотеки:
🔹 DHT для работы с датчиком (ищем в Arduino IDE → Sketch → Manage Libraries)
🔹 ESP8266WiFi для подключения к интернету
Заливаем код на плату
cppКопироватьРедактировать#include <ESP8266WiFi.h>   
#include <DHT.h>   
#define DHTPIN 2           // Подключаем датчик к D2
#define DHTTYPE DHT11      // Используем DHT11, если DHT22 - замените здесь  
DHT dht(DHTPIN, DHTTYPE);   
const char* ssid = "YOUR_WIFI_SSID";        // Имя вашей Wi-Fi сети
const char* password = "YOUR_WIFI_PASSWORD"; // Пароль от Wi-Fi
const char* host = "api.thingspeak.com";  
const String apiKey = "YOUR_THINGSPEAK_API_KEY";  
WiFiClient client;   
void setup() {  
  Serial.begin(115200);  
  dht.begin();  
  WiFi.begin(ssid, password);  
  while (WiFi.status() != WL_CONNECTED) {  
    delay(1000);  
    Serial.println("Подключение к Wi-Fi...");  
  }  
  Serial.println("Wi-Fi подключён!");  
}  
void loop() {  
  float h = dht.readHumidity();  
  float t = dht.readTemperature();  
  if (isnan(h) || isnan(t)) {  
    Serial.println("Ошибка чтения с датчика!");  
    return;  
  }  
  Serial.print("Температура: ");  
  Serial.print(t);  
  Serial.print("°C  Влажность: ");  
  Serial.print(h);  
  Serial.println("%");  
  if (client.connect(host, 80)) {  
    String url = "/update?api_key=" + apiKey + "&field1=" + String(t) + "&field2=" + String(h);  
    client.print(String("GET ") + url + " HTTP/1.1\r\n" +  
                 "Host: " + host + "\r\n" +  
                 "Connection: close\r\n\r\n");  
    client.stop();  
  }  
  delay(20000);  // Отправляем данные каждые 20 секунд  
}  
Шаг 4: Смотрим данные в облаке!
Теперь всё готово!
1️⃣ Заходим на сайт ThingSpeak
2️⃣ Создаём новый канал
3️⃣ В разделе API копируем API Key и вставляем его в код
4️⃣ Заливаем код на Arduino
5️⃣ Открываем Serial Monitor, и видим, как температура и влажность отправляются в интернет!
Зайдите в ThingSpeak и посмотрите, как ваша температура и влажность отображаются в режиме реального времени!
Дополнительные улучшения
🔥 Добавить уведомления: Отправлять сообщение на Telegram или Email, если температура слишком высокая.
💡 Добавить дисплей: Выводить данные на OLED-дисплей прямо на устройстве.
📊 Графики: Собирать данные в течение месяца и смотреть тренды.
Заключение
Поздравляю! 🎉 Вы только что создали своё первое IoT-устройство. Теперь ваш датчик умеет собирать данные, отправлять их в облако и показывать их в реальном времени.
Это только начало! Теперь у вас есть инструменты, чтобы создавать умные гаджеты, автоматизировать дом и делать жизнь проще и интереснее. 🚀
И помните: Arduino — это билет в мир технологий, где вы можете создавать что угодно. Главное — не бояться экспериментировать! 😊