Ардуино мСтСостанция. Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ Π½Π° Arduino своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ: пошаговоС руководство

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ домашнюю ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ Π½Π° Arduino. КакиС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½ΡƒΠΆΠ½Ρ‹ для мСтСостанции. Как Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Arduino для сбора ΠΈ отобраТСния ΠΌΠ΅Ρ‚Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Ρ…. Как ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-интСрфСйс. Как ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ мСтСостанции Π½Π° ΡƒΠ»ΠΈΡ†Π΅.

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСтСостанция Π½Π° Arduino ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½Π° Π½ΡƒΠΆΠ½Π°

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Arduino — это самодСльноС элСктронноС устройство для измСрСния Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, атмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅. Основой мСтСостанции слуТит ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Arduino, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ. Вакая мСтСостанция позволяСт:

  • ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Π΅ условия Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • Π‘ΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ ΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Π΅ Π·Π° Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄
  • ΠŸΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ³ΠΎΠ΄Ρƒ Π½Π° блиТайшСС врСмя
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠΊΡ€ΠΎΠΊΠ»ΠΈΠΌΠ°Ρ‚ Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ
  • Π˜Π·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ элСктроники ΠΈ программирования

Π‘Π±ΠΎΡ€ΠΊΠ° мСтСостанции своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ — ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ для Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Π΅ΠΉ элСктроники ΠΈ программирования. Она Π³ΠΎΡ€Π°Π·Π΄ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π΅Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Π±Ρ‹Ρ‚ΠΎΠ²Ρ‹Ρ… мСтСостанций, ΠΏΡ€ΠΈ этом обходится дСшСвлС.


ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ для сборки мСтСостанции Π½Π° Arduino

Для создания Π±Π°Π·ΠΎΠ²ΠΎΠΉ мСтСостанции Π½Π° Arduino понадобятся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹:

  • ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Arduino (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Arduino Mega)
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности DHT22 ΠΈΠ»ΠΈ DHT11
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ атмосфСрного давлСния BMP180
  • LCD-дисплСй 16×2 ΠΈΠ»ΠΈ 20×4 символов
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ часов Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ DS3231
  • ΠœΠΎΠ΄ΡƒΠ»ΡŒ для хранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD-ΠΊΠ°Ρ€Ρ‚Π΅
  • Wi-Fi ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266 для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ:

  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя
  • АнСмомСтр для измСрСния скорости Π²Π΅Ρ‚Ρ€Π°
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ освСщСнности
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ качСства Π²ΠΎΠ·Π΄ΡƒΡ…Π°

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² зависит ΠΎΡ‚ ΠΆΠ΅Π»Π°Π΅ΠΌΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ мСтСостанции ΠΈ Π±ΡŽΠ΄ΠΆΠ΅Ρ‚Π°. ΠΠ°Ρ‡Π°Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ с Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π°, постСпСнно Ρ€Π°ΡΡˆΠΈΡ€ΡΡ возмоТности устройства.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊ Arduino

Рассмотрим Π±Π°Π·ΠΎΠ²ΡƒΡŽ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ основных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² мСтСостанции ΠΊ Arduino Mega:

  • DHT22: ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΈΠ½ ΠΊ D2, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊ 5V ΠΈ GND
  • BMP180: SDA ΠΊ ΠΏΠΈΠ½Ρƒ 20, SCL ΠΊ ΠΏΠΈΠ½Ρƒ 21, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊ 3.3V ΠΈ GND
  • LCD 16×2: RS ΠΊ 12, E ΠΊ 11, D4-D7 ΠΊ 5-2, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊ 5V ΠΈ GND
  • DS3231: SDA ΠΊ ΠΏΠΈΠ½Ρƒ 20, SCL ΠΊ ΠΏΠΈΠ½Ρƒ 21, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊ 5V ΠΈ GND
  • SD-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ: MOSI ΠΊ 51, MISO ΠΊ 50, SCK ΠΊ 52, CS ΠΊ 53
  • ESP8266: TX ΠΊ 19, RX ΠΊ 18, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΊ 3.3V ΠΈ GND

ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ напряТСниС питания для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ модуля. НСкоторыС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… рСзисторов. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π°Ρ схСма ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ приводится Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΡƒ.


ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Arduino для сбора ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠ΅Ρ‚Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Ρ…

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ этапы программирования Arduino для Ρ€Π°Π±ΠΎΡ‚Ρ‹ мСтСостанции:

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ
  2. Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ setup()
  3. Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π² основном Ρ†ΠΈΠΊΠ»Π΅ loop()
  4. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ
  5. Π’Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° дисплСй
  6. Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD-ΠΊΠ°Ρ€Ρ‚Ρƒ
  7. ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π²Π΅Π±-сСрвСр Ρ‡Π΅Ρ€Π΅Π· Wi-Fi

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° для считывания Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности с DHT22:


#include <DHT.h>

#define DHTPIN 2
#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  if (isnan(h) || isnan(t)) {
    Serial.println("Ошибка чтСния с DHT22!");
    return;
  }
  
  Serial.print("Π’Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°: ");
  Serial.print(t);
  Serial.println(" *C");
  
  delay(2000);
}

ΠŸΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ мСтСостанции Π±ΡƒΠ΄Π΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ слоТнСС ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ со всСми ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ модулями.


Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-интСрфСйса для отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… мСтСостанции

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ мСтСостанции Ρ‡Π΅Ρ€Π΅Π· ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π²Π΅Π±-интСрфСйс. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ шаги:

  1. Настройка Π²Π΅Π±-сСрвСра (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Apache) ΠΈ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (MySQL)
  2. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ скрипта Π½Π° Arduino для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° сСрвСр Ρ‡Π΅Ρ€Π΅Π· Wi-Fi
  3. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сСрвСрного скрипта для ΠΏΡ€ΠΈΠ΅ΠΌΠ° ΠΈ сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π² Π‘Π”
  4. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±-страницы для отобраТСния Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ²
  5. Настройка автоматичСского обновлСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° страницС

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ простого PHP-скрипта для ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Arduino:


<?php
$temperature = $_GET['temp'];
$humidity = $_GET['hum'];
$pressure = $_GET['press'];

$conn = new mysqli("localhost", "username", "password", "weather_db");

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

$sql = "INSERT INTO weather_data (temperature, humidity, pressure) VALUES ($temperature, $humidity, $pressure)";

if ($conn->
query($sql) === TRUE) { echo "Data saved successfully"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close(); ?>

Для Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Chart.js ΠΈΠ»ΠΈ Highcharts.


ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ мСтСостанции Π½Π° ΡƒΠ»ΠΈΡ†Π΅

Для размСщСния мСтСостанции Π½Π° ΡƒΠ»ΠΈΡ†Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π΅ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

  • Π’Ρ‹Π±ΠΎΡ€ Π²Π»Π°Π³ΠΎΠ·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ корпуса с вСнтиляциСй
  • ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠ³ΠΎ питания (аккумулятор + солнСчная панСль)
  • ИспользованиС энСргоэффСктивных ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
  • ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ оптимизация для сниТСния энСргопотрСблСния
  • БСспроводная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… (LoRa, GSM, Ρ€Π°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒ)

Для экономии энСргии ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠ³ΠΎ сна Arduino ΠΌΠ΅ΠΆΠ΄Ρƒ измСрСниями. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


#include <avr/sleep.h>
#include <avr/power.h>

void setup() {
  // Настройка Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²
}

void loop() {
  // Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²
  // ΠžΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…
  
  // ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π² Ρ€Π΅ΠΆΠΈΠΌ сна Π½Π° 10 ΠΌΠΈΠ½ΡƒΡ‚
  for (int i = 0; i < 75; i++) {
    LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF);
  }
}

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ врСмя Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ мСтСостанции.

ΠšΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ точности ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ мСтСостанции

Для получСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΌΠ΅Ρ‚Π΅ΠΎΠ΄Π°Π½Π½Ρ‹Ρ… Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΡƒΡ‡Π΅ΡΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ источники ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚Π΅ΠΉ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:


  • Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ с эталонными ΠΏΡ€ΠΈΠ±ΠΎΡ€Π°ΠΌΠΈ
  • Π£Ρ‡Π΅Ρ‚ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈΠ· Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
  • ΠšΠΎΠΌΠΏΠ΅Π½ΡΠ°Ρ†ΠΈΡ влияния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ измСрСния
  • ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ прямых солнСчных Π»ΡƒΡ‡Π΅ΠΉ, осадков)
  • ΠŸΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠ°Ρ ΠΏΠ΅Ρ€Π΅ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹:


float calibrateTemperature(float rawTemp) {
  // ΠšΠΎΡΡ„Ρ„ΠΈΡ†ΠΈΠ΅Π½Ρ‚Ρ‹ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ
  float offset = -1.2;
  float slope = 1.02;
  
  // ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ
  float calibratedTemp = (rawTemp * slope) + offset;
  
  return calibratedTemp;
}

Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ усрСднСниС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°.


ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Arduino ΠΎΡ‚ А Π΄ΠΎ Π―. Π§Π°ΡΡ‚ΡŒ 1 / Π₯Π°Π±Ρ€

ОглавлСниС:


Β«Π’Π°ΠΊ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ сразу договоримся: Π²Ρ‹ Π½Π΅ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΊΠΈΠ½ΠΎ для Π“ΠΎΠ»Π»ΠΈΠ²ΡƒΠ΄Π°. Π”Π°ΠΆΠ΅ Π² Π‘Ρ‚Ρ€Π°Π½Π΅ чудСс утвСрТдаСтся Π½Π΅ Π±ΠΎΠ»Π΅Π΅ пяти ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ² ΠΎΡ‚ всСх сцСнариСв, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ ΠΈΠ΄Π΅Ρ‚ Π·Π°Ρ‚Π΅ΠΌ Π² производство… Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто всСго этого Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ свой собствСнный Π“ΠΎΠ»Π»ΠΈΠ²ΡƒΠ΄.Β»
Π­Π΄ Π“Π°ΡΠΊΠ΅Π»ΡŒ Β«Π‘Π½ΠΈΠΌΠ°Π΅ΠΌ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠ΅ ΠΊΠΈΠ½ΠΎ, ΠΈΠ»ΠΈ Π“ΠΎΠ»Π»ΠΈΠ²ΡƒΠ΄ Π½Π° Π΄ΠΎΠΌΡƒΒ»


Π§Ρ‚ΠΎ, Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° погодная станция Π½Π° Arduino?! Π”Π°, Π΅Ρ‰Ρ‘ ΠΎΠ΄Π½Π° ΠΈ, Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠ½Π΅ подсказываСт, Π½Π΅ послСдняя Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²Π΅Ρ‰Π΅ΠΉ.

Π’ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ программист обязан Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Β«Hello World!Β», Ρ‚Π°ΠΊ ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π°Ρ€Π΄ΡƒΠΈΠ½Ρ‰ΠΈΠΊ обязан ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π° ΠΏΠ»Π΅Ρ‡Π°ΠΌΠΈ ΠΎΠΏΡ‹Ρ‚ построСния простой ΠΈΠ»ΠΈ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ мСтСостанции.
Π£ΠΆΠ΅ созданных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² мСтСостанций Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ описано Π½Π΅ΠΌΠ°Π»ΠΎΠ΅ количСство, Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ любой ΠΈΠ· Π½ΠΈΡ… для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ. НС ΡΠΊΡ€ΠΎΡŽ, я Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΠΎΠΊΠΎΠ»ΠΎ дСсятка ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Π΅Ρ‰Ρ‘ ΠΊΡƒΡ‡Ρƒ смСТных. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ нСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ я создал всё с нуля, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅ я «стоял Π½Π° ΠΏΠ»Π΅Ρ‡Π°Ρ… Π³ΠΈΠ³Π°Π½Ρ‚ΠΎΠ²Β».

Π‘Ρ€Π°Π·Ρƒ скаТу, Ρ‡Ρ‚ΠΎ Π² ΠΌΠΎΠΈ ΠΏΠ»Π°Π½Ρ‹ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ использованиС сторонних сСрвисов для хранСния ΠΈ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ…. Π₯ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΡ‰ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠ°ΠΊ всё это Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈΠ·Π½ΡƒΡ‚Ρ€ΠΈ ΠΎΡ‚ Π½Π°Ρ‡Π°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π°, ΠΎΡ‚ А Π΄ΠΎ Π―.

Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ быстро ΡΠΊΠ»Π΅ΠΏΠ°Ρ‚ΡŒ Π½Π΅Ρ‡Ρ‚ΠΎ ΠΈΠ· Π½ΠΈΡ‡Π΅Π³ΠΎ, эта сСрия статСй скорСС всСго Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Ρ‘Ρ‚. ΠŸΡ€ΠΎΡ‰Π΅ ΠΏΠΎΠΉΡ‚ΠΈ ΠΈ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ конструктор с инструкциСй ΠΏΠΎ сборкС. ΠŸΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»Π°ΠΌ микроэлСктроники Ρ‚ΡƒΡ‚ совсСм Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅Ρ‡Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ€ΠΆΠ°Ρ‚ΡŒ ΠΈ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ сСбя Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡƒΡ‚ΠΈ.

А Π²ΠΎΡ‚ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, я Π΄ΡƒΠΌΠ°ΡŽ понравится. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» пригодится Π² качСствС ΡƒΡ‡Π΅Π±Π½ΠΎΠ³ΠΎ пособия.

Автор ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Ρ‚ вас ΠΏΠΎ Π·Π°ΠΏΡƒΡ‚Π°Π½Π½Ρ‹ΠΌ Π»Π°Π±ΠΈΡ€ΠΈΠ½Ρ‚Π°ΠΌ соврСмСнных Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° Π²Π΅Ρ‰Π΅ΠΉ. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Π³Π»Π°Π·Π°ΠΌΠΈ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ сам ΠΈΠΌ являСтся.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π΄Π°Π»Π΅ΠΊΠΎΠΌ ΡƒΠΆΠ΅ 2016 Π³ΠΎΠ΄Ρƒ, Π½ΠΎ надСюсь Π΅Ρ‰Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½.


ΠœΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠΌ ΠΈ Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с простыми ΠΈ слоТными Π²Π΅Ρ‰Π°ΠΌΠΈ :


  • Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности Ρ‚ΠΈΠΏΠ° DHT22, DHT11
  • Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ баромСтричСского давлСния Ρ‚ΠΈΠΏΠ° BMP180
  • WiFi ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ESP8266
  • Ρ€Π°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ Ρ‚ΠΈΠΏΠ° nRF24 2,4 Π“Π³Ρ†
  • сСмСйством Arduino Pro Mini, Arduino Mega
  • солнСчной Π±Π°Ρ‚Π°Ρ€Π΅Π΅ΠΉ ΠΈ аккумуляторами
  • языком программирования C/C++
  • языком программирования PHP
  • систСмой управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… MySQL
  • языком программирования Java ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠΌ Android (созданиС прилоТСния для Adnroid для отобраТСния ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° смартфонС).

НСкоторыС Ρ‚Π΅ΠΌΡ‹ ΠΈΠ· пСрСчислСнных ΠΈ яйца Π²Ρ‹Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ Π½Π΅ стоят, Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π³ΠΎΠ΄Π°ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ слоТныС Π²Π΅Ρ‰ΠΈ ΠΌΡ‹ Π·Π°Ρ‚Ρ€ΠΎΠ½Π΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² части, нСпосрСдствСнно ΠΊΠ°ΡΠ°ΡŽΡ‰Π΅ΠΉΡΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ поняли ΠΊΠ°ΠΊ это всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Но Π½Π°Ρ‡Π½Π΅ΠΌ ΠΌΡ‹ с самого Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. А ΠΈΠΌΠ΅Π½Π½ΠΎ с описания ΠΈ проСктирования Π±ΡƒΠ΄ΡƒΡ‰Π΅Π³ΠΎ устройства Β«Π½Π° Π±ΡƒΠΌΠ°Π³Π΅Β», Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΈΡ€ΠΏΠΈΡ‡ΠΈΠΊ Π»Ρ‘Π³ Π½Π° своё мСсто.


Как Π½Π°ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ВикипСдия, ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ β€” это быстрая чСрновая рСализация Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΉ систСмы. ΠšΠΎΡ‚ΠΎΡ€Π°Ρ, Π΄Π°, Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ совсСм нСэффСктивно ΠΈ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ошибками, Π½ΠΎ даст прСдставлСниС ΠΎ Ρ‚ΠΎΠΌ, слСдуСт Π»ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Π΅Π»ΠΊΡƒ Π΄ΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±Ρ€Π°Π·Ρ†Π°. ΠŸΡ€ΠΎΡ†Π΅ΡΡ создания ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ затяТным. Π—Π° этапом прототипирования слСдуСт Π°Π½Π°Π»ΠΈΠ· систСмы ΠΈ Π΅Ρ‘ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠ°.

Но это Π² ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΡΡ‚ΠΈ, Π³Π΄Π΅ Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠΈ заняты ΠΏΠΎΠ»Π½Ρ‹ΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ дСнь.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ, ΠΊΡ‚ΠΎ ΠΊΠ»Π΅ΠΏΠ°Π΅Ρ‚ ΠΏΠΎ Π²Π΅Ρ‡Π΅Ρ€Π°ΠΌ свои ΠΏΠΎΠ΄Π΅Π»ΠΊΠΈ pet-project для Β«internet of thingsΒ», Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡ‚Π΄Π°Π²Π°Ρ‚ΡŒ сСбС ΠΎΡ‚Ρ‡Ρ‘Ρ‚ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ создаёт ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, ΠΏΠΎΠ»ΡƒΡ„Π°Π±Ρ€ΠΈΠΊΠ°Ρ‚. Π”ΠΎ уровня Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ³ΠΎ издСлия Π΅ΠΌΡƒ ΠΎΡ‡Π΅Π½ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ

Π½Π΅ слСдуСт ΠΏΠΎΡ€ΡƒΡ‡Π°Ρ‚ΡŒ нашим Π»ΡŽΠ±ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΊΠ°ΠΌ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ отвСтствСнныС участки ТизнСобСспСчСния ΠΈ Π½Π°Π΄Π΅ΡΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ нас Π½Π΅ ΠΏΠΎΠ΄Π²Π΅Π΄ΡƒΡ‚.

ΠŸΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·Π΄Π΅Π»ΠΈΠ΅ строится Π½Π° ΠΏΡ€ΠΎΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΎΠΉ элСмСнтной Π±Π°Π·Π΅ ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΅Ρ‰Π΅ ΠΌΠ½ΠΎΠ³ΠΎ стадий, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰ΠΈΡ… ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, испытания ΠΈ сопровоТдСниС, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ станСт Ρ…ΠΈΡ‚ΠΎΠΌ ΠΏΡ€ΠΎΠ΄Π°ΠΆ.

Π˜Ρ‚Π°ΠΊ, вмСсто всСй этой тягомотины, ΠΌΡ‹ создадим свою ΡΠΎΠ±ΡΡ‚Π²Π΅Π½Π½ΡƒΡŽ ΠΈΠ³Ρ€ΡƒΡˆΠΊΡƒ, Π½ΠΎ Π½Π΅ ΠΏΡ€ΠΎΡΡ‚ΡƒΡŽ. Π‘ элСмСнтами тСхничСского творчСства, Π·Π°Ρ‡Π°Ρ‚ΠΊΠ°ΠΌΠΈ программирования ΠΈ познания (Π² процСссС создания) ΠΌΠ½ΠΎΠ³ΠΈΡ… Π΄Ρ€ΡƒΠ³ΠΈΡ… смСТных Π²Π΅Ρ‰Π΅ΠΉ.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, элСктронщикам тяТко придСтся Π½Π° этапС программирования, Π° программистам придСтся ΠΏΠΎΠΏΠΎΡ‚Π΅Ρ‚ΡŒ Π½Π°Π΄ схСмотСхникой, Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€ постараСтся ΠΈΠ·Π»ΠΎΠΆΠΈΡ‚ΡŒ всё максимально доступно ΠΈ ясно ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Π±Ρ‹Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.


ΠžΠ±Ρ‹Ρ‡Π½ΠΎ этот этап ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚. РСшая ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ эдакоС прямо сСйчас, Π° ΠΏΠΎΡ‚ΠΎΠΌ Π²Ρ‹ΡΡΠ½ΡΡŽΡ‚ΡΡ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Π΄Π΅Ρ‚Π°Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ставят вСсь ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π² Ρ‚ΡƒΠΏΠΈΠΊ ΠΈΠ»ΠΈ вовсС Π΄Π΅Π»Π°ΡŽΡ‚ Π΅Π³ΠΎ Π½Π΅ΠΏΠΎΠ΄ΡŠΠ΅ΠΌΠ½Ρ‹ΠΌ. ВсС наши Ρ…ΠΎΡ‚Π΅Π»ΠΊΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ, я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ для этого Π³ΡƒΠ³Π» диск, ΠΎΠ½ доступСн с ПК ΠΈ с мобильного устройства.

Π˜Ρ‚Π°ΠΊ, наша мСтСостанция Π΄ΠΎΠ»ΠΆΠ½Π°:


  • ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π° ΡƒΠ»ΠΈΡ†Π΅
  • ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Π΄ΠΎΠΌΠ΅
  • ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ атмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅
  • ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ значСния Π½Π° дисплСС
  • ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° сСрвСр Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π° Π²Π΅Π±-страницС, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² мобильном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ самыС простыС ΠΈ Π΄Π΅ΡˆΠ΅Π²Ρ‹Π΅. НапримСр, забСгая Π½Π°ΠΏΠ΅Ρ€Π΅Π΄ скаТу, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ DHT22 измСряСт достаточно Ρ‚ΠΎΡ‡Π½ΠΎ, Π° Π²ΠΎΡ‚ с Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅Ρ‚ΠΎΡ‡Π΅Π½. Но, ΠΎΠΏΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ, это Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ значСния, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°ΠΌΠΈ β€” ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, ΠΈ разброс Π² 5% влаТности Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎΠ΅ Π² нашСй ΠΆΠΈΠ·Π½ΠΈ Π½Π΅ повлияСт.

АрхитСктура систСмы, Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ систСмы для добавлСния Π½ΠΎΠ²Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй.


Π’ΠΎΡ‚ это ΠΈ Π΅ΡΡ‚ΡŒ самая отвСтствСнная Ρ‡Π°ΡΡ‚ΡŒ, Π° вовсС Π½Π΅ ΠΏΠ°ΠΉΠΊΠ° ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅. ПослС опрСдСлСния Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ систСмС Π½Π°Π΄ΠΎ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‡Π΅Π³ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΎΠΏΠ»ΠΎΡ‰Π΅Π½Ρ‹ Π² Тизнь.

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚-Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ньюанс. Π§Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½ΡƒΠΆΠ½ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΈΡ… возмоТности, Π½ΡƒΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ сами Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, здСсь трСбуСтся Π±Ρ‹Ρ‚ΡŒ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΌ элСктронщиком ΠΈ программистом. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ всСго спСктра Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… устройств?

Π—Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹ΠΉ ΠΊΡ€ΡƒΠ³? Но Π·Π°ΠΌΠΊΠ½ΡƒΡ‚Ρ‹Π΅ ΠΊΡ€ΡƒΠ³ΠΈ для Ρ‚ΠΎΠ³ΠΎ ΠΈ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡ… Ρ€Π°Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒ.

Π’Ρ‹Ρ…ΠΎΠ΄ Π΅ΡΡ‚ΡŒ. МоТно просто Π²Π·ΡΡ‚ΡŒ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‡Π΅ΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π― ΠΆΠ΅ ΠΈΠ·ΡƒΡ‡ΠΈΠ» ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ мСтСостанций ΠΈ надСюсь сдСлал шаг Π²ΠΏΠ΅Ρ€Π΅Π΄.

Π˜Ρ‚Π°ΠΊ. АрхитСктура ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΠΉ станции базируСтся Π½Π° Arduino. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Arduino ΠΈΠΌΠ΅Π΅Ρ‚ нСбольшой ΠΏΠΎΡ€ΠΎΠ³ вхоТдСния ΠΈ я ΡƒΠΆΠ΅ ΠΈΠΌΠ΅Π» с этим Π΄Π΅Π»ΠΎ. Π”Π°Π»ΡŒΡˆΠ΅ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΡƒΠΆΠ΅ ΠΏΡ€ΠΎΡ‰Π΅.

Π‘Ρ€Π°Π·Ρƒ стало ясно, Ρ‡Ρ‚ΠΎ Π² составС мСтСостанции Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ΠΉ, Π·Π°ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΈ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ, основной Π±Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ располоТСн Π²Π½ΡƒΡ‚Ρ€ΠΈ помСщСния. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС, ΠΎΡ‚ этого Β«ΠΏΠ»ΡΡˆΡƒΡ‚Β» Ρ‚Π°ΠΊΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ характСристики ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅.

Π£Π΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ (ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ) Π±ΡƒΠ΄Π΅Ρ‚ Π±Π΅Π· Β«ΠΌΠΎΠ·Π³ΠΎΠ²Β», Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° β€” пСриодичСски ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ измСрСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ домашний Π±Π»ΠΎΠΊ. Π¦Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ всСх Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡ… Π½Π° экранС ΠΈ отправляСт ΠΈΡ… ΠΆΠ΅ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…. Ну, Π° Ρ‚Π°ΠΌ ΡƒΠΆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, ΠΊΠ°ΠΊ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π±Π°Π·Π΅ с Π½ΠΈΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ всё Ρ‡Ρ‚ΠΎ Π·Π°Ρ…ΠΎΡ‡Π΅ΡˆΡŒ, Π΄Π°ΠΆΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ.

Для сношСний с внСшним ΠΌΠΈΡ€ΠΎΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π±Ρ‹Π» ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½ WiFi ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266 практичСски Π±Π΅Π· Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ (ΠΏΡ€ΠΈΠΌ. Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ сСйчас Ρ‚Π°ΠΊΠΈΠ΅ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ появились). К Arduino Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ethernet ΠΏΠ»Π°Ρ‚Ρ‹ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π½ΠΎ совсСм Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊ кабСлю.

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Ρ‹ΠΉ вопрос состоял Π² Ρ‚ΠΎΠΌ, Ρ‡Π΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ связь ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΌ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ (ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ, ΠΏΡ€ΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΡΡ‚ΠΈ систСмы ΠΏΠΎΠΌΠ½ΠΈΠΌ?) ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠΌ. Радиомаячки Π½Π° 433 ΠœΠ³Ρ† ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ Π½Π΅ подходят (ΠΎΠ½ΠΈ Π½Π΅ подходят Π½ΠΈ для Ρ‡Π΅Π³ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅).

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠΏΡΡ‚ΡŒ ESP8266 ?

ΠœΠΈΠ½ΡƒΡΡ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:


  • Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ устойчивый WiFi Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ Π΄ΠΎΠΌΠ°


  • Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ связи Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ большой


  • пострадаСт Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠΏΠ°Π΄Π°Π½ΠΈΠΈ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° ΠΌΡ‹ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ свои ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ


  • большСС энСргопотрСблСниС.


  • Π­Π½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ ESP8266 :


  • ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ 120β€”170 mA


  • ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ 50β€”56 mA


  • Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Deep Sleep 10 Β΅A (мкА)


  • Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии 5 Β΅A (мкА).


Π’ ΠΊΠΎΠ½Ρ†Π΅ ΠΊΠΎΠ½Ρ†ΠΎΠ² для связи ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² с основным домашним Π±Π»ΠΎΠΊΠΎΠΌ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ Ρ‡ΠΈΠΏ nRF24L01+ с 2,4 Π“Π³Ρ† ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊΠΎΠΌ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π»Π°ΠΊΠΎΠ½Π΅, с Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ внСшнСй Π°Π½Ρ‚Π΅Π½Π½ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ± ΡƒΠΆ навСрняка Β«ΠΏΡ€ΠΎΠ±ΠΈΡ‚ΡŒΒ» стСны.

Π­Π½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ nRF24L01+ 2,4 GHz :


  • ΠΏΡ€ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ 11 mA
  • ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π½Π° скорости 2Mbps β€” 13 mA
  • Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ standby-I β€” 26 ΞΌA (мкА)
  • Π² Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌ состоянии 900 nA (нА).

Π§Ρ‚ΠΎ Ρƒ ESP8266, Ρ‡Ρ‚ΠΎ Ρƒ nRF24L01+ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ подходящий: ΠΎΡ‚ -40℃ Π΄ΠΎ +80℃.

ΠšΡƒΠΏΠΈΡ‚ΡŒ nRF24L01+ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° $1, ΠΈΠ»ΠΈ сразу с внСшнСй Π°Π½Ρ‚Π΅Π½Π½ΠΎΠΉ Π·Π° $3. ΠšΡƒΠΏΠΈΡ‚ΡŒ ESP8266-01 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° $4. Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ описаниС Ρ‚ΠΎΠ²Π°Ρ€Π°! Π˜Π½Π°Ρ‡Π΅ ΠΊΡƒΠΏΠΈΡ‚Π΅ ΠΎΠ΄Π½Ρƒ Π°Π½Ρ‚Π΅Π½Π½Ρƒ.

Π―Π΄Ρ€ΠΎ систСмы Π²Ρ‹Ρ€ΠΈΡΠΎΠ²Π°Π»ΠΎΡΡŒ. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ ΠΊ самим Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ.

На ΡƒΠ»ΠΈΡ†Π΅, ΠΊΠ°ΠΊ извСстно, Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡΡ‚ΠΈΠ³Π°Ρ‚ΡŒ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, поэтому Π΄Π°Ρ‚Ρ‡ΠΈΠΊ DHT11 Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, Π° Π²ΠΎΡ‚ DHT22 Π² самый Ρ€Π°Π·.

Π₯арактСристики DHT22 / AM2302 :


  • ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ 3,3 Π’ Π΄ΠΎ 5 Π’, рСкомСндуСтся 5 Π’
  • ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ 2.5mA максимум, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ измСрСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния влаТности 0-100% с ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ 2-5%
  • Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΡ‚ -40 Π΄ΠΎ +125Β°C с ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ Β±0.5Β°C
  • запрос Π½Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ‡Π°Ρ‰Π΅ 0,5 Π“Ρ† β€” ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π° Π² 2 сСкунды.

Π’Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΌΠ°, я надСюсь, ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, поэтому ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ DHT11, Ρ‚Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρƒ мСня ΡƒΠΆΠ΅ Π±Ρ‹Π».

Π₯арактСристики DHT11:


  • ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΎΡ‚ 3,3 Π’ Π΄ΠΎ 5 Π’
  • ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ 2,5 mA максимум, Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ измСрСния ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
  • Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния влаТности 20-80% с ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ 5%
  • Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΡ‚ 0 Π΄ΠΎ +50Β°C с ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒΡŽ Β±2Β°C
  • запрос Π½Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π½Π΅ Ρ‡Π°Ρ‰Π΅ 1 Π“Ρ† β€” ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Π° Π² сСкунду.

ΠšΡƒΠΏΠΈΡ‚ΡŒ DHT22 ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° $3. DHT11 стоит дСшСвлС β€” $1, Π½ΠΎ ΠΎΠ½ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Ρ‚ΠΎΡ‡Π΅Π½.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ возвращаСмся ΠΎΠΏΡΡ‚ΡŒ ΠΊ Arduino. ΠšΠ°ΠΊΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ?

Π― тСстировал ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части систСмы Π½Π° Arduino UNO. Π’.Π΅. ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π» ΠΊ ΡƒΠ½ΠΎ ESP ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΈΠ·ΡƒΡ‡Π°Π» Π΅Π³ΠΎ, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π», Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π» nRF24 ΠΈ Ρ‚.Π΄. Для Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π·Π°ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π²Ρ‹Π±Ρ€Π°Π» Arduino Pro Mini ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π±Π»ΠΈΠ·ΠΊΡƒΡŽ ΠΊ Uno ΠΈΠ· ΠΌΠΈΠ½ΠΈΠ°Ρ‚ΡŽΡ€Π½Ρ‹Ρ….

По ΡΠ½Π΅Ρ€Π³ΠΎΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΡŽ Arduino Pro Mini Ρ‚Π°ΠΊΠΆΠ΅ выглядит Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ:


  • Π½Π΅Ρ‚ прСобразоватСля USB-TTL, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ сам ΠΏΠΎ сСбС Β«ΠΊΡƒΡˆΠ°Π΅Ρ‚Β» ΠΌΠ½ΠΎΠ³ΠΎ,
  • свСтодиод ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ Ρ‡Π΅Ρ€Π΅Π· 10ΠΊ рСзистор.

Для ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠ³ΠΎ сбСрСТСния энСргии ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ:


  • ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ свСтодиод β€” ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ питания Π½Π° Arduino Pro Mini (я ΠΏΠΎΠΆΠ°Π»Π΅Π», Π½Π΅ стал ΠΏΠΎΡ€Ρ‚ΠΈΡ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ)
  • Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«Π³ΠΎΠ»ΡƒΡŽΒ» сборку Π½Π° микропроцСссорС Atmel ATmega328 (Π½Π΅ использовал)
  • ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Low Power Library ΠΈΠ»ΠΈ JeeLib.

Из Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π²Ρ‹Π±Ρ€Π°Π» Low Power Library, ΠΎΠ½Π° проста ΠΈ содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ.

Для Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ°, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎΡ‡ΠΈΡΠ»Π΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΡŽ, Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΠ»Π°Ρ‚Π° Arduino Mega. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ ΠΎΠ½Π° ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстима с UNO ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ большС памяти. ЗабСгая Π½Π°ΠΏΠ΅Ρ€Π΅Π΄ скаТу, Ρ‡Ρ‚ΠΎ этот Π²Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ оправдался.

ΠšΡƒΠΏΠΈΡ‚ΡŒ Arduino Mega ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° $8.


Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ энСргопотрСблСниС.

Arduino Pro Mini Π±Ρ‹Π²Π°ΡŽΡ‚ Π΄Π²ΡƒΡ… Π²ΠΈΠ΄ΠΎΠ²:


  • Π½Π° напряТСниС питания 5Π’ ΠΈ частоту 16ΠœΠ“Ρ†
  • Π½Π° напряТСниС питания 3,3Π’ ΠΈ частоту 8ΠœΠ“Ρ†.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π΄ΠΈΠΎ-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ nRF24L01+ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ для питания 3,3 Π’, Π° быстродСйствиС здСсь Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ‚ΠΎ ΠΏΠΎΠΊΡƒΠΏΠ°ΠΉΡ‚Π΅ Arduino Pro Mini Π½Π° 8MHz ΠΈ 3,3Π’.

ΠŸΡ€ΠΈ этом Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΏΠΈΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ напряТСния Arduino Pro Mini составляСт:


  • 3,35-12 Π’ для ΠΌΠΎΠ΄Π΅Π»ΠΈ 3,3 Π’
  • 5-12 Π’ для ΠΌΠΎΠ΄Π΅Π»ΠΈ 5 Π’.

Π£ мСня ΡƒΠΆΠ΅ Π±Ρ‹Π»Π° Arduino Pro Mini Π½Π° 5Π’, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ поэтому я Π΅Ρ‘ ΠΈ использовал. ΠšΡƒΠΏΠΈΡ‚ΡŒ Arduino Pro Mini ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Π·Π° $4.

ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ сСти 220 Π’ Ρ‡Π΅Ρ€Π΅Π· нСбольшой Π±Π»ΠΎΠΊ питания, Π΄Π°ΡŽΡ‰ΠΈΠΉ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ 12Π’, 450mA, 5W. Π’ΠΈΠΏΠ° Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π·Π° $5. Π’Π°ΠΌ Π΅Ρ‰Π΅ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ Π½Π° 5Π’.

А Π΅ΠΆΠ΅Π»ΠΈ этого Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΡ‚, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎΠΌΠΎΡ‰Π½Π΅Π΅ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ элСктропитаниС для Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Π½Π΅Ρ‚ особого смысла. А Π²ΠΎΡ‚ для ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ бСспроводного Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° энСргосбСрСТСниС являСтся ваТнСйшСй Ρ‡Π°ΡΡ‚ΡŒΡŽ. Но ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π΅ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Π±Ρ‹ Ρ‚Π΅Ρ€ΡΡ‚ΡŒ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Arduino Pro Mini ΠΈ Ρ€Π°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒ nRF24 Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°ΠΏΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ связки 4-Ρ… Ni-Mh аккумуляторов.

И ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, максимальная Π΅ΠΌΠΊΠΎΡΡ‚ΡŒ соврСмСнного аккумулятора ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 2500β€”2700mAh, всё Ρ‡Ρ‚ΠΎ большС это Π»ΠΈΠ±ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ‚ΠΈΠ½Π³ΠΎΠ²Ρ‹Π΅ ΡƒΠ»ΠΎΠ²ΠΊΠΈ (Ansmann 2850) Π»ΠΈΠ±ΠΎ ΠΎΠ±ΠΌΠ°Π½ (UltraFire 3500).

Li-Ion аккумуляторы я Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ ΠΏΠΎ нСскольким ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:


  • ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅
  • ΠΏΡ€ΠΈ сниТСнии Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Π° Π½ΠΈΠΆΠ΅ 0Β°C происходит сниТСниС мощности Π»ΠΈΡ‚ΠΈΠΉ-ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ аккумулятора Π΄ΠΎ 40-50%
  • Ρ‚Π΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΡˆΡ‘Π²Ρ‹Π΅ производятся Π±Π΅Π· Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΈ нСбСзопасны (ΠΏΡ€ΠΈ ΠšΠ— ΠΈΠ»ΠΈ разрядС ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Ρ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π³ΠΎΡ€Π΅Ρ‚ΡŒ, см. ΠΊΡƒΡ‡Ρƒ Ρ€ΠΎΠ»ΠΈΠΊΠΎΠ² Π½Π° ΡŽΡ‚ΡŽΠ±Π΅)
  • ΡΡ‚Π°Ρ€Π΅ΡŽΡ‚, Π΄Π°ΠΆΠ΅ Ссли Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ это ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎΠ±ΠΎ всСх химичСских элСмСнтах), Ρ‡Π΅Ρ€Π΅Π· 2 Π³ΠΎΠ΄Π° Li-Ion батарСя тСряСт ΠΎΠΊΠΎΠ»ΠΎ 20% ёмкости.

Для ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ качСствСнными Ni-MH AA ΠΈΠ»ΠΈ AAA аккумуляторами. Π’Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ большиС Ρ‚ΠΎΠΊΠΈ. ЕдинствСнный минус Ni-MH аккумуляторов β€” это ΠΈΡ… долгая зарядка.


ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ. Π’ΠΎΡ‚ общая схСма ΠΊΠ°ΠΊ всё Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ слСдуСт.

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Arduino ΠΎΡ‚ А Π΄ΠΎ Π―. Π§Π°ΡΡ‚ΡŒ 3 / Π₯Π°Π±Ρ€

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ.

ОглавлСниС:



НаконСц ΠΌΡ‹ подошли ΠΊ самой Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΠΉ части для любого программиста β€” ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΠΎ-чСловСчСски Ρ‡Ρ‚ΠΎ ΠΎΠ½ Ρ‚Π°ΠΌ наваял.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для сСрвСра составляСт ΠΎΠΊΠΎΠ»ΠΎ 1300 строк, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ отступы, Π½ΠΎ это Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ вас ΠΏΡƒΠ³Π°Ρ‚ΡŒ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст снабТСн ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌΠΈ коммСнтариями, Π² этом ΠΏΠ»Π°Π½Π΅ я Π½Π΅ ΠΎΡˆΠΈΠ±ΡƒΡΡŒ, Ссли скаТу, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΈ исходники описаны Π»ΡƒΡ‡ΡˆΠ΅ Ρ‡Π΅ΠΌ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ смоТСтС Π½Π°ΠΉΡ‚ΠΈ. Π’ коммСнтариях прямо Π² исходном тСкстС Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ всю распиновку для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ссылки Π½Π° внСшнюю Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ. Π‘Π΅ΠΊΡ€Π΅Ρ‚ прост β€” я писал ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ для сСбя постоянно, Β«ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ ΠΏΡŒΠ΅ΡΡ‹Β», поэтому Π½ΠΈΠΊΠ°ΠΊΠΈΡ… трудностСй с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π΅ испытал.

Как я ΡƒΠΆΠ΅ писал Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΈ Π½Π΅ имСя всСх ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΏΠΎΠ΄ Ρ€ΡƒΠΊΠΎΠΉ. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ имСя радиомодуля ΠΈΠ»ΠΈ ESP8266. Π”Π°Ρ‚Ρ‡ΠΈΠΊ баромСтричСского давлСния BMP180 Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π”ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΠΏΠΎΡ‚ΠΎΠΌ. ΠŸΡ€Π°Π²Π΄Π° Π² этом случаС Π²Π°ΠΌ (Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ) придСтся ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² скСтчС Ρ‚Π΅ участки ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° взаимодСйствиС с ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Π½ΠΎ скорСС всСго этого Π½Π΅ потрСбуСтся. Π“Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ…ΠΎΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠΎΠ±Ρ€Π°Π»ΠΎΡΡŒ ΠΈ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΎ, Ρ‚ΠΎΠ³Π΄Π° вСсСлСС ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ сСйчас, Π² Π΄Π°Π½Π½ΠΎΠΌ мСстС повСствования, Ρƒ нас ΠΏΠΎΠΊΠ° Π΅Ρ‰Ρ‘ Π½Π΅ собран Π·Π°ΠΎΠΊΠΎΠ½Π½Ρ‹ΠΉ (внСшний) ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ Π½Π΅Ρ‚ своСго Π²Π΅Π±-сСрвСра с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ Π½Π°ΠΌ ΠΏΠΎΠΊΠ° Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹ (Π½ΠΎ Ссли Π΅ΡΡ‚ΡŒ β€” ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ сразу, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡ‚ΠΎΠΌ Π½Π΅ ΠΊΠΎΠΏΠ°Ρ‚ΡŒΡΡ):


  • Ρ€Π°Π΄ΠΈΠΎΠΌΠΎΠ΄ΡƒΠ»ΡŒ nRF24L01+
  • WiFi ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266.

И всё Ρ‚Π°ΠΊΠΈ я Π½Π°Ρ‡Π½Ρƒ, ΠΏΠΎΠΆΠ°Π»ΡƒΠΉ, с ESP8266, ΠΊΠ°ΠΊ самого ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈ эксплуатации модуля. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° кроСтся Π² Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠΈ исполнСния самих ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ ΠΈΡ… ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΎΠΊ.

Как я ΡƒΠΆΠ΅ писал стандартныС AT-ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ для Π½Π΅Π³ΠΎ ΠΈΠΌΠ΅ΡŽΡ‚ ряд нСдостатков:


  • ΠΎΠ½ΠΈ всё Π΅Ρ‰Ρ‘ сыроваты (ΠΏΠΎ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ Π½Π° 2016)
  • ΠΌΠ½Π΅ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π½Π°ΠΉΡ‚ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Arduino для управлСния ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ESP8266 с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AT ΠΊΠΎΠΌΠ°Π½Π΄, ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Β«ΠΊΠΎΠ»Ρ…ΠΎΠ·ΠΈΡ‚ΡŒΒ» самому.

Код для ESP8266 я Π½Π΅ оформлял Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, Π° просто написал Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, поэтому скСтч Π²Ρ‹ΡˆΠ΅Π» Ρ‚Π°ΠΊΠΈΠΌ Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌ. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠ½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π». Всё ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для ESP с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ AT ΠΊΠΎΠΌΠ°Π½Π΄ сводится Π² ΠΈΡ‚ΠΎΠ³Π΅ ΠΊ парсингу строк ΠΈ настройкС Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для сСрвСра (Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ модуля) server.ino Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ здСсь.

Рядом я ΠΏΠΎΠ»ΠΎΠΆΠΈΠ» ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ для ESP8266 Π² Ρ„Π°ΠΉΠ»Π΅ firmware/AT23-SDK101-nocloud.bin ΠΈ Π² Ρ‚ΠΎΠΌ ΠΆΠ΅ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ находится докумСнтация для Π»ΡŽΠ±ΠΎΠ·Π½Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ…. ΠŸΡ€ΠΎΡˆΠΈΠ² ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΉ скСтч Ρƒ вас Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с WiFi Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π±Ρ‹Π»ΠΎ Π·Π°Π΄ΡƒΠΌΠ°Π½ΠΎ. Π‘ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ AT ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠ°ΠΌΠΈ я Π½Π΅ экспСримСнтировал. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Ρ‚Π°ΠΊΠΈ ΠΎΡ‚Ρ‹ΡΠΊΠ°Ρ‚ΡŒ Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡƒΡŽΒ» Π½Π΅ AT ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡƒΡ‡Π°ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² Π΅Ρ‘ создании, которая ΠΊΠ°ΠΊ нСльзя Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Π½Π°ΡˆΠΈΡ… Ρ†Π΅Π»Π΅ΠΉ (Π²ΠΎΡ‚ ΠΎΠ½Π° esp-link). Однако, ΠΊΠ°ΠΊ это часто случаСтся, всё ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ ΡƒΠΆΠ΅ послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ вСрсии мСтСостанции, поэтому Ρ€Π΅ΡˆΠ΅Π½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ всё Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ.

Π˜Ρ‚Π°ΠΊ, Π² самом Π½Π°Ρ‡Π°Π»Π΅ Π²Π°ΠΌ придётся ΠΏΡ€ΠΎΡˆΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ AT ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ. Π‘Π»ΠΎΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΡƒΡ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅Ρ‚, Π½ΠΎ ΠΈ простого Ρ‚ΠΎΠΆΠ΅. Как это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ описано ΠΌΠ½ΠΎΠ³ΠΎ Π³Π΄Π΅ Π² сСти β€” ESP8266 β€” ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρƒ ΠΌΠΎΠ΅Π³ΠΎ USB-TTL ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Π° Π½Π΅ Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΎ мощности ΠΏΠΎ Ρ‚ΠΎΠΊΡƒ ΠΈ USB ΠΏΠΎΡ€Ρ‚ постоянно отваливался (Π²ΠΎΡ‚ это ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚!), Ρ‚ΠΎ элСктричСски я ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΌΠΎΠ΄ΡƒΠ»ΡŒ для Π΅Π³ΠΎ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ способом Β«Arduino Π² качСствС простого USB-to-Serial TTL ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΎΡ€Π°Β».

Π’Π°ΠΊ ΠΊΠ°ΠΊ я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² Linux, Ρ‚ΠΎ ΠΈ ΠΏΡ€ΠΎΡˆΠΈΠ²Π°Π» с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ esptool.py. Для удобства ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ я Β«Π½Π°ΠΊΠΎΠ»Ρ…ΠΎΠ·ΠΈΠ»Β» Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ»Π°Ρ‚Ρƒ с ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡΠΌΠΈ (здСсь Π½Π΅ описана).

ПослС ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π° 57600 (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ для SoftSerial ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π° Π² 115200 являСтся большой ΠΈ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ) ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ

AT+UART_DEF=57600,8,1,0,0

Π”Π°Π»Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ слСгка ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ стандартныС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Arduino IDE, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ„Π°ΠΉΠ»Π΅ arduino/hardware/arduino/avr/libraries/SoftwareSerial/SoftwareSerial.h ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку Π½Π°

#define _SS_MAX_RX_BUFF 128 // RX buffer size

Π² Ρ„Π°ΠΉΠ»Π΅ arduino/hardware/arduino/avr/cores/arduino/HardwareSerial.h ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ строки Π½Π°

#define SERIAL_TX_BUFFER_SIZE 128
#define SERIAL_RX_BUFFER_SIZE 128

ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅ arduino/hardware/arduino/avr/cores/arduino/USBAPI.h ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ строку Π½Π°

#define SERIAL_BUFFER_SIZE 128

Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Ρ‚.ΠΊ. ΠΏΡ€ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ Arduino SDK эти Ρ„Π°ΠΉΠ»Ρ‹ скорСС всСго Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны ΠΈ придСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ всС исправлСния Π·Π°Π½ΠΎΠ²ΠΎ. По Π½Π°ΡƒΠΊΠ΅ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ изобрСсти свою Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ, которая ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ значСниями (Ссли получится), Π½ΠΎ это Π½Π° Π»ΡŽΠ±ΠΈΡ‚Π΅Π»Ρ.

Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ манипуляции Π·Π°ΠΊΠΎΠ½Ρ‡Π΅Π½Ρ‹.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΠΌ нСпосрСдствСнно ΠΊ ΠΊΠΎΠ΄Ρƒ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° (сСрвСру) server.ino

Π’ ΠΏΠ΅Ρ€Π²Ρ‹Ρ… ΠΆΠ΅ строках Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ настройки доступа ΠΊ вашСй Ρ‚ΠΎΡ‡ΠΊΠ΅ WiFi

const String SSID = "...";
const String PASSWORD = "...";

Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π²Π΅Π± сСрвСром ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ рассмотрим ΠΏΠΎΠ·ΠΆΠ΅.

Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ (Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅) ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Π΅ опрСдСлСния:

//#define DEBUG
//#define DEBUG_RF
//#define DEBUG_ESP
//#define DEBUG_LOG_SD

Если Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎΠΉΠ΄Ρ‘Ρ‚ Π½Π΅ Ρ‚Π°ΠΊ Π²Ρ‹ всСгда ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡ… Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π»ΠΈΡ‚ΡŒ скСтч ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ большС ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² консоли ΠΈΠ»ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΅Ρ‘ Π² Ρ„Π°ΠΉΠ» Π½Π° SD ΠΊΠ°Ρ€Ρ‚Ρƒ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°ΡΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ. НапримСр, Π±Π°Ρ€Π°Ρ…Π»ΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ nRF24L01+? Π’ΠΎΠ³Π΄Π° раскомСнтируСм Ρ‚ΠΎΠ»ΡŒΠΊΠΎ DEBUG_RF, ΠΈ Ρ‚.Π΄.

Π”Π°Π»Π΅Π΅ ΠΈΠ΄ΡƒΡ‚ ΠΎΠ±ΡˆΠΈΡ€Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ с распиновкой, ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΌ описаниСм всСй ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΈ.

Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ Ρ€Π°Π΄ΠΈΠΎΠΊΠ°Π½Π°Π»Π° для nRF24L01+

#define RF_CHANNEL  73

Π”Π°Π»Π΅Π΅ ΠΈΠ΄Ρ‘Ρ‚ void setup(), Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΌ дСлаСтся понятно ΠΈΠ· ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². Ну ΠΈ Π·Π°Ρ‚Π΅ΠΌ void loop(), ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Π±-сСрвСром ΠΏΠΎΠΊΠ° Π½Π΅ рассматриваСм.

ПослС Π·Π°Π»ΠΈΠ²ΠΊΠΈ скСтча, ваш Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΎΠΆΠΈΠ²Ρ‘Ρ‚ ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π²Π°ΠΌ ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚, Π½ΠΎ Π½Π΅ сразу, Π° спустя 10 ΠΌΠΈΠ½ΡƒΡ‚ β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ DELAY_LOCAL_SENSOR. ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ ΠΆΠ΅.
На дисплСС Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒΡΡ: комнатная Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ (Π΄Π°Π½Π½Ρ‹Π΅ поступят ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11) ΠΈ баромСтричСскоС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ (ΠΎΡ‚ BMP180).

Π—Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° дисплСС LCD 16Γ—4 ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

void lcdClearRow(int row)

// ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π½Π° экранС показания ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ…, ΡƒΠ»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²
void lcdPrintOutdoor(int temperature, int humidity, float voltage)

// ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ Π½Π° экранС показания Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΡ…, Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²
void lcdPrintHome(int temperature, int humidity, int pressure)

void lcdPrintInfo(char info[LCD_MAX_COLS])
void lcdPrintStatus()
void lcdPrintLastSensorTime()

Π”ΠΈΠ·Π°ΠΉΠ½ дисплСя LCD1604 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ.

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ (Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ) строкС пСчатаСтся стилизованная ΠΈΠΊΠΎΠ½ΠΊΠ° (ΠΈΠ΄ΡƒΡ‰ΠΈΠΉ Ρ‡Π΅Π»ΠΎΠ²Π΅Ρ‡Π΅ΠΊ) призванная ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ³ΠΎΠ΄Ρƒ Π½Π° ΡƒΠ»ΠΈΡ†Π΅ (Π²Ρ‹ΡˆΠ΅Π» Π½Π° ΡƒΠ»ΠΈΡ†Ρƒ, ΠΈΠ΄Ρ‘Ρ‚ ΠΏΠΎ ΡƒΠ»ΠΈΡ†Π΅). Π˜ΠΊΠΎΠ½ΠΊΡƒ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΡ‹Π²Π°Π» сам, поэтому, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ Π»ΡƒΡ‡ΡˆΠ°Ρ идСя (ΡƒΠΌΠ΅Ρ‰Π°ΡŽΡ‰Π°ΡΡΡ Π² 5Ρ…8 пиксСлов), ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² коммСнтариях (Π² Π²ΠΈΠ΄Π΅ byte-массива). ΠŸΠΎΡƒΠΏΡ€Π°ΠΆΠ½ΡΡ‚ΡŒΡΡ Π² пиксСль-Π°Ρ€Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ здСсь Custom Character Generator for HD44780 LCD Modules. Π’ этой ΠΆΠ΅ строкС пСчатаСтся напряТСниС питания Π·Π°ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ модуля.

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ строкС пСчатаСтся Β«ΠΏΠΎΠ³ΠΎΠ΄Π° Π² Π΄ΠΎΠΌΠ΅Β» ΠΈ атмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅. Иконка Π΄ΠΎΠΌΠ° стандартная, всСм понятная.

Π’ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ строкС lcdPrintLastSensorTime() ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ сколько ΠΏΡ€ΠΎΡˆΠ»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π² сСк) со ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° снятия послСдних ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², соотвСтствСнно ΡƒΠ»ΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΈ, Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, домашнСго. ΠŸΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡΡ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚ΠΎΡ‡Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ мСтСостанция Π½Π΅ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ³ΠΎΠ΄Ρƒ Π·Π° Π²Ρ‡Π΅Ρ€Π°. По сути это отладочная информация ΠΈ Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π² Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΉ вСрсии.

И Π² послСднСй Ρ‡Π΅Ρ‚Π²Ρ‘Ρ€Ρ‚ΠΎΠΉ строкС экрана с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ lcdPrintStatus() пСчатаСтся статусная информация, Π³Π΄Π΅


  • s β€” это Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ давлСния
  • e β€” это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ESP8266
  • i β€” это ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ WiFi
  • w β€” это Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ web сСрвСра
  • l β€” Π»ΠΎΠ³-Ρ„Π°ΠΉΠ» Π½Π° SD ΠΊΠ°Ρ€Ρ‚Π΅

ПослС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих условных Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΡΡ‚ΡŒ Π·Π½Π°ΠΊ «плюс» ΠΈΠ»ΠΈ «минус», Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Π½Π΅Ρ‚ ΠΈΠ»ΠΈ Π΅ΡΡ‚ΡŒ ошибки, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡΡΡŒ ΠΊ вопросу Π²Ρ‹Π±ΠΎΡ€Π° ΠΆΠ΅Π»Π΅Π·Π°, поясню ΠΏΡ€ΠΎ прСимущСства Π²Ρ‹Π±ΠΎΡ€Π° тСкстового LCD1604 дисплСя ΠΏΠ΅Ρ€Π΅Π΄ графичСским. Π”Π΅Π»ΠΎ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ LCD1604 ΠΊΡƒΠΏΠ»Π΅Π½Π½Ρ‹Π΅ Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ΄Π°Π²Ρ†ΠΎΠ² Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ прСдсказуСмыми Π² ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ ΠΈ просты Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π§Π΅Π³ΠΎ нСльзя ΡΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΎ графичСских дисплСях, хотя Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС. Π Π°Π·Π±ΠΎΡ€Ρ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ изобраТСния с расстояния Π² нСсколько ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ Π»ΡƒΡ‡ΡˆΠ΅ Ρƒ тСкстового дисплСя, Ρ‚Π°ΠΊΠΈ Π΄Π°, Π½Π° графичСском дисплСС ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΡˆΡ€ΠΈΡ„Ρ‚ побольшС, Π½ΠΎ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠ½ΠΎΠ³ΠΎ Π»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° Π½Ρ‘ΠΌ ΡƒΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ?

Π”Π°Π»Π΅Π΅. Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π·Π°Π»ΡŒΠ΅Ρ‚Π΅ скСтч ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всС Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Β«ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ½ΡΠΊΡƒΡŽΒ» ΠΏΠ»Π°Ρ‚Ρƒ Arduino Mega ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ источнику питания. Или ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ Π΅ΡΡ‚ΡŒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ ΠΊ USB ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ Π½Π° всю эту красоту Π² ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½ΠΎΠΉ консоли.

Если Ρƒ вас Π½Π΅ всС Π±Π»ΠΎΠΊΠΈ Π² сборС, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄. Π₯отя, ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡŽΡΡŒ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ‚Π°ΠΊ, просто Π±ΡƒΠ΄Π΅Ρ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… Π² консоли. Как это ΠΎΠ±ΠΎΠΉΡ‚ΠΈ?

НапримСр, Π²Ρ‹ Π΅Ρ‰Ρ‘ Π½Π΅ ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Π»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ атмосфСрного давлСния BMP180. Π’ скСтчС server.ino ΠΈΡ‰Π΅ΠΌ строки, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π² нашСм случаС это

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ этот Π±Π»ΠΎΠΊ.

Π”Π°Π»Π΅Π΅ Π² Arduino IDE запускаСм ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ ΠΊΠΎΠ΄Π° (Π½Π΅ ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΡƒ) ΠΈ смотрим Π½Π° ΠΊΠ°ΠΊΠΈΠ΅ строки ругаСтся компилятор. ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ эти строки. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ повторяСм Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΊΠΎΠ΄ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π±Π΅Π· ошибок. Π₯ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ копию скСтча, Ρ‡Ρ‚ΠΎΠ±Ρ‹, ΠΊΠΎΠ³Π΄Π° ΠΈΠ· солнСчного ΠšΠΈΡ‚Π°Ρ ΠΏΡ€ΠΈΠ΅Π΄Π΅Ρ‚ Π½ΡƒΠΆΠ½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ, Π½Π΅ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡ‚ΡŒ всС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ.

Бсылки Π½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π΄Π°Π½Ρ‹ Π² исходном ΠΊΠΎΠ΄Π΅. Если Ρ‚Π°ΠΊΠΎΠΉ ссылки Π½Π΅Ρ‚, Ρ‚ΠΎ использовалась стандартная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Arduino IDE.

На всякий случай всС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ (ΠΊΡ€ΠΎΠΌΠ΅ стандартных), которыя я использовал сохранСны Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ libraries. Π‘Ρ‚Ρ€ΠΎΠ³ΠΎ говоря, это Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ свСТиС вСрсии Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈΠ· ΠΈΡ… ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅Π² (с исправлСнными ошибками, Π½ΠΎΠ²Ρ‹ΠΌΠΈ возмоТностями), Π½ΠΎ Π½Π° Ρ‚ΠΎΡ‚ случай Ссли ΠΈΡ… Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ, Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΈ ΡƒΠΆΠ΅ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹, Π»ΠΈΠ±ΠΎ старыС вСрсии Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для этого случая я сохранил всС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π”Π°Π»Π΅Π΅ слСдуСт сборка Π·Π°ΠΎΠΊΠΎΠ½Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°, поэтому эта Ρ‡Π°ΡΡ‚ΡŒ Π²Ρ‹ΡˆΠ»Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ.

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ для записи Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, атмосфСрного давлСния ΠΈ влаТности [АмпСрка / Π’ΠΈΠΊΠΈ]
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ IΒ²C
#include <Wire.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
#include <TroykaMeteoSensor.h>
// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
#include <QuadDisplay2.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с модулями IMU
#include <TroykaIMU.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ 1-Wire
#include <OneWire.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ DS18B20
#include <DallasTemperature.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SPI
#include <SPI.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SD-ΠΊΠ°Ρ€Ρ‚Π°ΠΌΠΈ
#include <SD.h>
Β 
// ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΈΠ½ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20
#define ONE_WIRE_BUS 5
// Π΄Π°Ρ‘ΠΌ Ρ€Π°Π·ΡƒΠΌΠ½ΠΎΠ΅ имя для CS ΠΏΠΈΠ½Π° microSD-ΠΊΠ°Ρ€Ρ‚Ρ‹
#define SD_CS_PIN  8
Β 
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
TroykaMeteoSensor meteoSensor;
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса QuadDisplay, ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π° CS, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с SPI
QuadDisplay qd(10, true);
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
Barometer barometer;
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ OneWire
OneWire oneWire(ONE_WIRE_BUS);
// создадим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ DallasTemperature
DallasTemperature sensor(&oneWire);
Β 
// пСрСчисляСм ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° дисплСй
enum {
  SAVE_SD,    // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая записываСт Π½Π° SD Π΄Π°Π½Π½Ρ‹Π΅
  IN,         // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "In"
  TEMP_IN,    // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ с мСтСосСнсора
  CEL,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй символ Β°C
  HUM_IN,     // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ с мСтСосСнсора
  PPM,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй символ %
  BAR_IN,     // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ с Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ€Ρ‚ΡƒΡ‚Π½ΠΎΠ³ΠΎ столба
  MER,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "Hg"
  EMPTY,      // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ дисплСй
  OUT,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "Out"
  TEMP_OUT    // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20
};
// создаСм массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
int chain[] = {
  IN,
  TEMP_IN,
  CEL,
  HUM_IN,
  PPM,
  BAR_IN,
  MER,
  EMPTY,
  OUT,
  TEMP_OUT,
  CEL,
  EMPTY,
  SAVE_SD
};
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса long для хранСния счСтчика
unsigned long respite_Time = 0;
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° экранС
int slowdown_qd = 1000;
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для хранСния Π½ΠΎΠΌΠ΅Ρ€Π° выполняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
int number_qd = 0;
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для записи Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD строкой
String  dataString = "";
Β 
void setup() {
  // инициализация дисплСя
  qd.begin();
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ мСтСосСнсора
  meteoSensor.begin();
  // инициализация Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π°
  barometer.begin();
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ DS18B20
  sensor.begin();
  // устанавливаСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ 9 Π΄ΠΎ 12 Π±ΠΈΡ‚
  sensor.setResolution(12);
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ ΠΊΠ°Ρ€Ρ‚Ρƒ памяти
  SD.begin(SD_CS_PIN);
  // собираСм Π²Π΅Ρ€Ρ…Π½ΡŽΡŽ строчку с Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…
  dataString = "TEMP_IN (ΒΊC)\tHUM_IN (%)\tBAR_IN (mmHg)\tTEMP_OUT (ΒΊC)";
  // Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD
  saveSD(dataString);
}
Β 
void loop() {
  // запускаСм бСсконСчный счСтчик. Π•Π³ΠΎ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ Ρ€Π°Π²Π½Ρ‹ΠΌ slowdown_qd
  if (millis() - respite_Time > slowdown_qd) {
    // запускаСм процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ согласно ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² chain
    switch (chain[number_qd]) {
      case IN:
        qd.displayDigits(QD_I, QD_n, QD_NONE, QD_NONE);
        break;
      case TEMP_IN:
        showData(meteoSensor.getTemperatureC());
        break;
      case CEL:
        qd.displayDigits(QD_NONE, QD_NONE, QD_DEGREE, QD_C);
        break;
      case HUM_IN:
        showData(meteoSensor.getHumidity());
        break;
      case PPM:
        qd.displayDigits(QD_NONE, QD_NONE, QD_DEGREE, QD_UNDER_DEGREE);
        break;
      case BAR_IN:
        qd.displayInt(barometer.readPressureMillimetersHg());
        break;
      case MER:
        qd.displayDigits(QD_NONE, QD_NONE, QD_H, QD_9);
        break;
      case EMPTY:
        qd.displayClear();
        break;
      case OUT:
        qd.displayDigits(QD_O, QD_u, QD_t, QD_NONE);
        break;
      case TEMP_OUT:
        // пСрСмСнная для хранСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
        float temperature;
        // отправляСм запрос Π½Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
        sensor.requestTemperatures();
        // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20 Π½Π° экран
        qd.displayFloat(sensor.getTempCByIndex(0), 1);
        break;
      case SAVE_SD:
        // собираСм Π² строку сначала Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° с мСтСосСнсора
        dataString = String(meteoSensor.getTemperatureC()) + "\t";
        // ΠΏΠΎΡ‚ΠΎΠΌ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ
        dataString += String(meteoSensor.getHumidity()) + "\t";
        // Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅
        dataString += String(barometer.readPressureMillimetersHg()) + "\t";
        // ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20
        dataString += String(sensor.getTempCByIndex(0)) + "\t";
        // Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD
        saveSD(dataString);
        break;
    }
    number_qd++;
    // провСряСм Π½Π΅ прСвысил Π»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
    if (number_qd > sizeof(chain) / sizeof(int) - 1)
      number_qd = 0;
    respite_Time = millis();
  }
}
Β 
// функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности
void showData(float data) {
  // считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°
  int stateSensor = meteoSensor.read();
  switch (stateSensor) {
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ показания Π½Π° дисплСй
    case SHT_OK:
      qd.displayFloat(data, 1);
      break;
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "Errd", Ссли ошибка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сСнсор Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½
    case SHT_ERROR_DATA:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_d);
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "ErrC", Ссли ошибка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы
    case SHT_ERROR_CHECKSUM:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_C);
      break;
  }
}
Β 
// функция сохранСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΊΠ°Ρ€Ρ‚Ρƒ памяти
void saveSD(String data) {
  // создаСм Ρ„Π°ΠΉΠ» для записи Π΄Π°Π½Π½Ρ‹Ρ…
  File dataFile = SD.open("datalog.txt", FILE_WRITE);
  // Ссли Ρ„Π°ΠΉΠ» сущСствуСт ΠΈ открылся
  if (dataFile) {
    // сохраняСм Π΄Π°Π½Π½Ρ‹Π΅
    dataFile.println(data);
    // Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ Ρ„Π°ΠΉΠ»
    dataFile.close();
  } else {
    // Ссли Ρ„Π°ΠΉΠ» Π½Π΅ доступСн Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π½Π° дисплСй
    qd.displayDigits(QD_E, QD_r, QD_r, QD_S);
  }
}

ЭкспСримСнт 16. ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ [АмпСрка / Π’ΠΈΠΊΠΈ]

Бписок Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ для экспСримСнта

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма

Π‘Ρ…Π΅ΠΌΠ° Π½Π° ΠΌΠ°ΠΊΠ΅Ρ‚ΠΊΠ΅

Π‘ΠΊΠ΅Ρ‚Ρ‡

p160_meteostation.ino
#include <math.h>
int minute = 1;
Β 
// ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° тСрмистора (ΠΈΠ· datasheet):
#define TERMIST_B 4300 
Β 
#define VIN 5.0
Β 
void setup()
{
  // ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· USB, Π°
  // Ρ‚ΠΎΡ‡Π½Π΅Π΅ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ (Π°Π½Π³Π». serial) ΠΏΠΎΡ€Ρ‚.
  // Для этого Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ (Π°Π½Π³Π». begin) ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ, ΡƒΠΊΠ°Π·Π°Π²
  // ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ. 9600 Π±ΠΈΡ‚ Π² сСкунду β€” традиционная ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ.
  // Ѐункция Β«beginΒ» Π½Π΅ являСтся глобальной, ΠΎΠ½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚
  // ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Β«SerialΒ». ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ β€” это Β«ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅Β»
  // ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Π»Π°Π΄Π°ΡŽΡ‚ собствСнными функциями,
  // ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ€Π΅Π· символ Ρ‚ΠΎΡ‡ΠΊΠΈ.
  Serial.begin(9600);
  // ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ нашСй Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² тСкстовом Π²ΠΈΠ΄Π΅, ΠΈΠ½Π°Ρ‡Π΅
  // говоря ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ строку (Π°Π½Π³Π». print line). Π‘ΠΈΠΌΠ²ΠΎΠ»Ρ‹ Β«\tΒ» β€”
  // это ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая замСняСтся Π½Π°
  // Π·Π½Π°ΠΊ табуляции (Π°Π½Π³Π». tab): 8-ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π»
  Serial.println("Minute\tTemperature");
}
Β 
void loop()
{
  // вычисляСм Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² Β°Π‘ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ магичСской Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹.
  // Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΏΡ€ΠΈ этом Π½Π΅ Ρ†Π΅Π»Ρ‹Π΅ числа, Π° вСщСствСнныС. Π˜Ρ… Π΅Ρ‰Ρ‘
  // Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ числами с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ (Π°Π½Π³Π». float) Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Π’
  // выраТСниях с вСщСствСнными числами ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ явно
  // ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄Ρ€ΠΎΠ±Π½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ Ρƒ всСх констант. Π˜Π½Π°Ρ‡Π΅ дробная
  // Ρ‡Π°ΡΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚Π±Ρ€ΠΎΡˆΠ΅Π½Π°
Β 
   float voltage = analogRead(A0) * VIN / 1024.0;
   float r1 = voltage / (VIN - voltage);
Β 
Β 
   float temperature = 1./( 1./(TERMIST_B)*log(r1)+1./(25. + 273.) ) - 273;
  // ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΌΠΈΠ½ΡƒΡ‚Ρƒ ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ, раздСляя ΠΈΡ… Ρ‚Π°Π±ΠΎΠΌ.
  // println ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΡ‚ курсор Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку, Π° print β€” Π½Π΅Ρ‚
  Serial.print(minute);
  Serial.print("\t");
  Serial.println(temperature);
Β 
  delay(60000); // засыпаСм Π½Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ
  ++minute;     // ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ Π½Π° 1
Β 
  // ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ Serial Monitor Π² срСдС Arduino, ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π½Π°
  // сутки, скопируйтС Π΄Π°Π½Π½Ρ‹Π΅ Π² Excel, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ
}

ПояснСния ΠΊ ΠΊΠΎΠ΄Ρƒ

  • ΠžΡ‡Π΅Π½ΡŒ часто Π±Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, с ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ. Π’ частности, для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ устройства: ΠΌΠΎΠΆΠ½ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ значСния ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

  • Π’ Π΄Π°Π½Π½ΠΎΠΌ экспСримСнтС ΠΌΡ‹ знакомимся со стандартным ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Serial, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ (UART) Arduino, ΠΈ Π΅Π³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ (функциями, созданными для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ) begin(), print() ΠΈ println(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ послС Ρ‚ΠΎΡ‡ΠΊΠΈ, ΠΈΠ΄ΡƒΡ‰Π΅ΠΉ Π·Π° ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°:

    • Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ‡Π°Ρ‚ΡŒ соСдинСниС, поэтому Serial.begin(baudrate) вызываСтся Π² setup()

    • Serial.print(data) отправляСт содСрТимоС data. Если ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ тСкст, ΠΌΠΎΠΆΠ½ΠΎ просто Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ°Ρ€Ρƒ Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ: "". ΠšΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π°, скорСС всСго, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

    • Serial.println(data) Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ добавляСт Π² ΠΊΠΎΠ½Ρ†Π΅ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡ‹ΠΉ символ Π½ΠΎΠ²ΠΎΠΉ строки.

  • Π’ print() ΠΈ println() ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€: Π²Ρ‹Π±ΠΎΡ€ систСмы счислСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ число (это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ DEC, BIN, HEX, OCT для дСсятичной, Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ, ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ ΠΈ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠΉ систСм счислСния соотвСтствСнно) ΠΈΠ»ΠΈ количСство Π·Π½Π°ΠΊΠΎΠ² послС запятой для Π΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… чисСл.

НапримСр,

Serial.println(18,BIN);
Serial.print(3.14159,3);

Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΏΠΎΡ€Ρ‚Π° даст Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

10010
3.142
  • ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π°, входящий Π² Arduino IDE, открываСтся Ρ‡Π΅Ρ€Π΅Π· мСню БСрвис ΠΈΠ»ΠΈ сочСтаниСм клавиш Ctrl+Shift+M. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΈ Π² скСтчС Π±Ρ‹Π»Π° ΡƒΠΊΠ°Π·Π°Π½Π° одинаковая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, baudrate. Бкорости 9600 Π±ΠΈΡ‚ Π² сСкунду ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ достаточно. Π”Ρ€ΡƒΠ³ΠΈΠ΅ стандартныС значСния ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰Π΅ΠΌ мСню справа Π²Π½ΠΈΠ·Ρƒ ΠΎΠΊΠ½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π°.

  • Π’Π°ΠΌ Π½Π΅ удастся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Π΅ ΠΏΠΎΡ€Ρ‚Ρ‹ 0 ΠΈ 1 ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΏΠΎ Π½ΠΈΠΌ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°ΠΊ ΠΈ Ρ‡Π΅Ρ€Π΅Π· USB-ΠΏΠΎΡ€Ρ‚ ΠΏΠ»Π°Ρ‚Ρ‹.

  • ΠŸΡ€ΠΈ запускС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΏΠΎΡ€Ρ‚Π° скСтч Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ пСрСзагруТаСтся ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π½Π°Ρ‡Π°Π»Π°. Π­Ρ‚ΠΎ ΡƒΠ΄ΠΎΠ±Π½ΠΎ, Ссли Π²Π°ΠΌ нСльзя ΡƒΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ сразу ΠΆΠ΅. Но Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ситуациях это ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ΅ΡˆΠ°Ρ‚ΡŒ, ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎΠ± этом нюансС!

  • Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, Π½Π΅ Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ delay() хотя Π±Ρ‹ Π½Π° 100 миллисСкунд, ΠΈΠ½Π°Ρ‡Π΅ Π±Π΅Π³ΡƒΡ‰ΠΈΠ΅ числа Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ Π±Π΅Π· Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ, Π° Π·Π°Ρ‚Π΅ΠΌ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² стороннСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

  • ΠŸΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ \t выводится ΠΊΠ°ΠΊ символ табуляции (8 ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ). Π’Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ \n для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слСш, Π΅Π³ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΡ€Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅: \\.

Вопросы для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ сСбя

  1. КакиС дСйствия Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с Arduino?

  2. О ΠΊΠ°ΠΊΠΈΡ… ограничСниях Π½Π΅ слСдуСт Π·Π°Π±Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ?

  3. Как ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ошибки Π² ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащих ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΉ слэш (\)?

Задания для ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

  1. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, «Meteostation»).

  2. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ столбСц, содСрТащий количСство сСкунд, ΠΏΡ€ΠΎΡˆΠ΅Π΄ΡˆΠΈΡ… с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° запуска ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. МоТно ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….


← ΠšΠΎΠΌΠ½Π°Ρ‚Π½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ | ОглавлСниС | ΠŸΠ°Π½Ρ‚ΠΎΠ³Ρ€Π°Ρ„ β†’

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ с дисплССм [АмпСрка / Π’ΠΈΠΊΠΈ]

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° Arduino Uno ΠΈ Slot Shield

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π²ΠΎΠ·Π΄ΡƒΡ…Π° ΠΈ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π½Π° экран. Π‘Π°ΠΌΡ‹ΠΉ простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ чСтырёхразрядный ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Quad Display.

Π£ΠΏΡ€Π°Π²Π»ΡΡŽΡ‰Π°Ρ ΠΏΠ»Π°Ρ‚Π° Π² мСтСостанции это ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½Π°Ρ Arduino Uno. Π—Π° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ мСтСосСнсор.

Π§Ρ‚ΠΎ потрСбуСтся

ВидСоинструкция

Как ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ

Π‘ΠΊΠ΅Ρ‚Ρ‡

ΠŸΡ€ΠΎΡˆΠ΅ΠΉΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ скСтчСм Ρ‡Π΅Ρ€Π΅Π· Arduino IDE.

weather-station-display.ino
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ IΒ²C
#include <Wire.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
#include <TroykaMeteoSensor.h>
// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
#include <QuadDisplay2.h>
Β 
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
TroykaMeteoSensor meteoSensor;
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса QuadDisplay ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π° CS
QuadDisplay qd(10);
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса long для хранСния счСтчиков
unsigned long respite_Time = 0;
unsigned long respite_Meteo = 0;
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° экранС
int slowdown_qd = 1000;
Β 
void setup() {
  // инициализация дисплСя
  qd.begin();
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ мСтСосСнсор
  meteoSensor.begin();
}
Β 
void loop() {
  // запускаСм бСсконСчный счСтчик. Π•Π³ΠΎ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 1000 миллисСкунд
  if (millis() - respite_Time > slowdown_qd) {
    // запускаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ
    if (millis() - respite_Meteo < 2 * slowdown_qd) {
      showTemperatureC();
    }
    else if (millis() - respite_Meteo < 3 * slowdown_qd ) {
      showHumidity();
    }
    // гасим экран ΠΈ обнуляСм Ρ†ΠΈΠΊΠ»
    else if (millis() - respite_Meteo < 4 * slowdown_qd ) {
      qd.displayDigits(QD_NONE, QD_NONE, QD_NONE, QD_NONE);
      respite_Meteo = millis();
    }
    respite_Time = millis();
  }
}
Β 
// функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
void showTemperatureC() {
  // считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°
  int stateSensor = meteoSensor.read();
  // провСряСм состояниС Π΄Π°Π½Π½Ρ‹Ρ…
  switch (stateSensor) {
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ показания Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π½Π° дисплСй
    case SHT_OK:
      qd.displayTemperatureC(meteoSensor.getTemperatureC());
      break;
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "Errd", Ссли ошибка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сСнсор Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½
    case SHT_ERROR_DATA:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_d);
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "ErrC", Ссли ошибка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы
    case SHT_ERROR_CHECKSUM:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_C);
      break;
  }
}
Β 
// функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° влаТности
void showHumidity() {
  // считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°
  int stateSensor = meteoSensor.read();
  // провСряСм состояниС Π΄Π°Π½Π½Ρ‹Ρ…
  switch (stateSensor) {
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ показания влаТности Π½Π° дисплСй
    case SHT_OK:
      qd.displayHumidity(meteoSensor.getHumidity());
      break;
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "Errd", Ссли ошибка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сСнсор Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½
    case SHT_ERROR_DATA:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_d);
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "ErrC", Ссли ошибка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы
    case SHT_ERROR_CHECKSUM:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_C);
      break;
  }
}

Π“Π΄Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ?

Π£ ΠΌΠΎΠ΅Π³ΠΎ модуля QuadDisplay всСго Ρ‚Ρ€ΠΈ Π½ΠΎΠ³ΠΈ ΠΈ располоТСны ΠΎΠ½ΠΈ слСва. МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅?

Π£ вас прСдыдущая вСрсия модуля. Она снята с производства ΠΏΠ°Ρ€Ρƒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. Π‘ этим скСтчСм, Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ ΠΈ схСмой сборки ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚.

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ

Благодаря соврСмСнным устройствам для измСрСния ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Ρ… условий Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ всСгда ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π² курсС ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΎΠ² Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈΠ»ΠΈ врСмя. Но Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ситуациях Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды здСсь ΠΈ сСйчас.

Если Π΄Π΅ΡΡΡ‚ΡŒ – Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ Ρ‚Π°ΠΊΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ выполняли Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ Π°Π½Π΅ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Ρ‹, сСгодня Π·Π°ΠΌΠ΅Ρ€ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ элСктронного устройства. ΠšΠΎΡ‚ΠΎΡ€ΠΎΠ΅ запросто ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒΡΡ Π² ΠΊΠ°Ρ€ΠΌΠ°Π½Π΅ ΠΈΠ»ΠΈ Π² Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ сумкС, благодаря Ρ‡Π΅ΠΌΡƒ Π²Ρ‹ смоТСтС Π²Π·ΡΡ‚ΡŒ Π΅Π³ΠΎ с собой ΠΊΡƒΠ΄Π° ΡƒΠ³ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² ΠΏΠΎΠ΄Π²Π°Π»Π΅, Ρ‚Π΅ΠΏΠ»ΠΈΡ†Π΅, собствСнной мастСрской, ΡΡƒΡˆΠΈΠ»ΠΊΠ΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… помСщСниях, Π³Π΄Π΅ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности.

Π§Ρ‚ΠΎ потрСбуСтся для изготовлСния ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ мСтСостанции?

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды достаточно часто ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ Π² повсСднСвной ΠΆΠΈΠ·Π½ΠΈ. Π’Ρ‹ ΠΌΠΎΠ³Π»ΠΈ ΠΈ Ρ€Π°Π½ΡŒΡˆΠ΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… Π² конструкции Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»Π΅ΠΉ, самолСтов, Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π°Ρ… ΠΈ Ρ‚.Π΄. Π˜Ρ… Π΄Π°ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ приобрСсти ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΈΠ±ΠΎΡ€ Π² ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅, Π½ΠΎ ΠΊΡƒΠ΄Π° интСрСснСй ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΡƒΡŽ домашнюю ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

Для этого Π²Π°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΊΠΎΠΉ Π½Π°Π±ΠΎΡ€ элСмСнтов:

  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности DHT11 – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ основноС приспособлСниС для рСгистрации ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды;
  • ΠŸΠ»Π°Ρ‚Π° Arduino UNO – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌΡ‹Ρ… с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈΡ… Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ дисплСй;
  • Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Ρ‹ΠΉ дисплСй – устройство для отобраТСния измСряСмых Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° ΠΈΡ… Π² ΠΏΠΎΠ½ΡΡ‚Π½ΡƒΡŽ для ΠΎΠ±Ρ‹Π²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΡƒ;
  • ΠœΠ°ΠΊΠ΅Ρ‚Π½Π°Ρ ΠΏΠ»Π°Ρ‚Π° – ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для фиксации всСх элСмСнтов ΠΈ размСщСния Π½Π° ТСстком основании, ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ элСктричСскоС соСдинСниС всСх Π΄Π΅Ρ‚Π°Π»Π΅ΠΉ;
  • Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° со ΡˆΡ‚Π΅ΠΊΠ΅Ρ€ΠΎΠΌ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ ΠΏΠ°ΠΉΠΊΡƒ.

Π’ Π΄Π°Π½Π½ΠΎΠΉ ситуации Π²Ρ‹Π±Ρ€Π°Π½ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ DHT11, ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ популярных срСдств фиксации Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности, ΠΏΠΎΠΌΠΈΠΌΠΎ этого ΠΎΠ½ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для всСвозмоТных Π΄ΠΎΠΌΠ°ΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². Π’ Π΅Π³ΠΎ состав Π²Ρ…ΠΎΠ΄ΠΈΡ‚ рСзистивный элСмСнт, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈ тСрмистор, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ. Для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈ прСобразования сигнала ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€, Π² этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Β  ΠΌΡ‹ установим Arduino, хотя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

Π₯арактСристики Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11

ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11Рис. 1: ΠΎΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π±Ρ€Π°Π½ ΠΊΠ°ΠΊ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ доступный ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ Π² ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ. Помимо этого ΠΎΠ½ характСризуСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

  • НапряТСниС питания ΠΎΡ‚ 3 Π΄ΠΎ 5 Π’;
  • ΠŸΠΎΡ‚Ρ€Π΅Π±Π»ΡΠ΅Ρ‚ ΠΎΡ‚ источника питания Ρ‚ΠΎΠΊ Π² 2,5 мА;
  • БпособСн ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ пространства Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 20 Π΄ΠΎ 80%;
  • Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ колСбания измСряСт Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΎΡ‚ 0 Π΄ΠΎ 50Β°Π‘;
  • ΠŸΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ влаТности составляСт 5%, Π° ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… 2%;
  • Частота ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ составляСт ΠΎΠ΄Π½ΠΎ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Π² сСкунду;
  • Π“Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΡΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ 12Γ—15,5*5,5 ΠΌΠΌ.

Π”Π°Ρ‚Ρ‡ΠΈΠΊ DHT11 ΠΈΠΌΠ΅Π΅Ρ‚ пластиковый корпус ΠΈ оснащаСтся Ρ‡Π΅Ρ‚Ρ‹Ρ€ΡŒΠΌΡ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π°ΠΌΠΈ, Ρ‚Π°ΠΊΠΎΠ΅ количСство Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² обСспСчиваСт удобство подсоСдинСния ΠΊ устройствам ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ самодСльной мСтСостанции всС Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ, ΠΈΠ· Π½ΠΈΡ… Π²Π°ΠΌ понадобится Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Ρ€ΠΈ VCC, GND, DATA. Π—Π°ΠΏΠΈΡ‚Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΡ‚ любого источника с ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ напряТСния Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΎΡ‚ 3 Π΄ΠΎ 5 Π’.

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… схСмах ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ рСзистора Π½Π° 5 – 10 кОм ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½ΠΎΠΉ ситуации этого Π΄Π΅Π»Π°Ρ‚ΡŒ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ рСзистор ΡƒΠΆΠ΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² состав ΠΏΠ»Π°Ρ‚Ρ‹.

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11Рис. 2: ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11

Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΊΠ°ΠΊ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Ρ‚Π°ΠΊ ΠΈ ΡƒΠΆΠ΅ собранныС Π² Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. ПослСдниС Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅, поэтому ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ…. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ внСшний Π²ΠΈΠ΄ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ отличаСтся, ΠΈΡ… ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π΅Π½, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ лишь ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° располоТСниС Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ² с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°.

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ Arduino

ΠžΡ‚ ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства ΠΊ Arduino поступаСт Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сигнал, ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ сразу ΠΎΠ±Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ).

ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΊ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Ρƒ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ:

  • ΠžΡ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Arduino ΠΊ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΡƒ поступаСт запрос ΠΏΡƒΡ‚Π΅ΠΌ смСны сигнала с 0 Π½Π° 1;
  • ΠŸΠΎΠ»ΡƒΡ‡ΠΈΠ² запрос, DHT11 Π²Ρ‹Π΄Π°Π΅Ρ‚ Arduino ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ посрСдством измСнСния Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ;
  • ΠŸΡ€ΠΈ согласовании запроса ΠΈ ΠΎΡ‚Π²Π΅Ρ‚Π° ΠΎΡ‚ DHT11 Π½Π° Arduino поступаСт ΠΎΡ‚Ρ‡Π΅Ρ‚ Π² Ρ€Π°Π·ΠΌΠ΅Ρ€Π΅ 5 Π±Π°ΠΉΡ‚ ΠΎ состоянии Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности.

Π’ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΠΎΠΌ ΠΎΡ‚Ρ‡Π΅Ρ‚Π΅ ΠΈΠ· 5 Π±Π°ΠΉΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π° содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π²Ρ‚ΠΎΡ€Ρ‹Π΅ Π΄Π²Π° ΠΎ влаТности, Π° пятый прСдставляСт собой ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΡƒΡŽ сумму уровня Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности Π²ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ошибки ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚ DHT11 ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности, для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π΅Π³ΠΎ взаимодСйствия с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ Π±Ρ‹Π»ΠΈ внСсСны измСнСния Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ. Для этого Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° Arduino ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Arduino

НиТС прСдставлСна ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма самодСльной мСтСостанции Π½Π° основС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11 ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Arduino.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма мСтСостанции Π½Π° АрдуиноРисунок 3: ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма мСтСостанции Π½Π° Ардуино

Π’Ρ‹ΡˆΠ΅ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ схСма мСтСостанции, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΈ влаТности. Но с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ DHT11 Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ†Π΅Π»ΠΎΠ΅ число, Π° Π΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ обнуляСтся. Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, дСсятичныС Π΄Π°Π½Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности для Π½Π΅Π³ΠΎ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ ΠΈΠ·-Π·Π° Π½ΠΈΠ·ΠΊΠΎΠΉ точности ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ. Но, Ссли Π² вашСй ситуации Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‡Π½ΡƒΡŽ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ количСством Π·Π½Π°ΠΊΠΎΠ² послС запятой, Π΄Π°Ρ‚Ρ‡ΠΈΠΊ DHT11 придСтся Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΉ DHT22.

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ прСдлоТСнная Π²Ρ‹ΡˆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΡƒΠΆΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ получСния значСния с Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ссли возмоТности вашСго ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Ρ‹ ΠΈΠ»ΠΈ Π²Ρ‹ Π½Π΅ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°Π³Ρ€ΠΎΠΌΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ лишними нулями послС запятой ΠΏΡ€ΠΈ использовании Β Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT11, Π²Π°ΠΌ придСтся Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΠ² Π΅Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ – dtostrf.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ индСкс Ρ‚Π΅ΠΏΠ»Π°?

Как Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, ΠΏΠΎΠ³ΠΎΠ΄Π° Π½Π° ΡƒΠ»ΠΈΡ†Π΅ Π² Ρ€Π°Π·Π½Ρ‹Π΅Β  Π΄Π½ΠΈ ощущаСтся ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΎΡ‰ΡƒΡ‰Π°Ρ‚ΡŒΡΡ ΠΎΠ΄Π½Π° ΠΈ Ρ‚Π° ΠΆΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Π°Ρ‡Π΅. Π­Ρ‚ΠΎ обусловлСно Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ влияниСм влаТности Π½Π° ваш ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌ.

Π’Π°ΠΊ, ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ Π²ΠΎΠ·Π΄ΡƒΡ…Π° Π² Π»Π΅Ρ‚Π½ΠΈΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΡƒ трСбуСтся Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΡƒΠ΄Π° большС Π²Π»Π°Π³ΠΈ для компСнсации ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Π²Π° ΠΎΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды. ΠŸΡ€ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²Π»Π°Π³ΠΈ ΠΈΠ· ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌΠ° (ΠΏΠΎΡ‚ΠΎΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΈ) Ρ‚Π΅Π»ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΎΡ‚Π΄Π°Π΅Ρ‚ Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΡƒΡŽ ΡΠ½Π΅Ρ€Π³ΠΈΡŽ ΠΌΠΎΠ»Π΅ΠΊΡƒΠ»Π°ΠΌ Тидкости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠ°Ρ€ΡΡŽΡ‚ΡΡ, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ облСгчая процСсс охлаТдСния. Но, ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Π² ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСдС большого ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚Π½ΠΎΠ³ΠΎ содСрТания Π²Π»Π°Π³ΠΈ, Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠ»Π΅ΠΊΡƒΠ» ΠΏΠΎΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½Π΅Π½ΠΎ, ΠΈΠ·-Π·Π° Ρ‡Π΅Π³ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΌ Π½Π΅ смоТСт Ρ‚Π°ΠΊ просто ΠΎΡ…Π»Π°Π΄ΠΈΡ‚ΡŒΡΡ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Π΄Π΅Ρ‚Π΅ΠΉ ΠΈ людСй ΠΏΡ€Π΅ΠΊΠ»ΠΎΠ½Π½ΠΎΠ³ΠΎ возраста. Π˜Ρ… ΡΠΎΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅, Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ домашнСй мСтСостанции, отобраТаСтся Ρ‚Π΅ΠΏΠ»ΠΎΠ²Ρ‹ΠΌ индСксом, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассчитываСтся Π½Π° основании Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности. Π£Π³Ρ€ΠΎΠ·Π° получСния Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΡƒΠ΄Π°Ρ€Π° ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Π²Π° особСнно остро Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ достиТСнии ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΠΎΠ³ΠΎ индСкса Π² 91 Β°F (32 Β°C) ΠΈ Π²Ρ‹ΡˆΠ΅. Благодаря ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡƒ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρƒ домашнСй мСтСостанции Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΈ Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΠΎΠΉ индСкс, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΠΎΠ±Π΅Π·ΠΎΠΏΠ°ΡΠΈΡ‚ΡŒ сСбя ΠΈ Π±Π»ΠΈΠ·ΠΊΠΈΡ… ΠΎΡ‚ случайного ΠΏΠ΅Ρ€Π΅Π³Ρ€Π΅Π²Π°.

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ схСмС домашнСй мСтСостанции Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • HiX (heat index) – Ρ‚Π΅ΠΏΠ»ΠΎΠ²ΠΎΠΉ индСкс;
  • T – Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды;
  • H – ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ влаТности.

Рисунок 4: ΠΏΡ€ΠΈΠΌΠ΅Ρ€ отобраТСния Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ c двумя Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π³ΠΈΠ³Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ΠΈ Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ [АмпСрка / Π’ΠΈΠΊΠΈ]
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ IΒ²C
#include <Wire.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
#include <TroykaMeteoSensor.h>
// ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с дисплССм
#include <QuadDisplay2.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с модулями IMU
#include <TroykaIMU.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ 1-Wire
#include <OneWire.h>
// Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ DS18B20
#include <DallasTemperature.h>
Β 
// ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΈΠ½ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20
#define ONE_WIRE_BUS 5
Β 
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с мСтСосСнсором
TroykaMeteoSensor meteoSensor;
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса QuadDisplay ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘ΠΌ Π½ΠΎΠΌΠ΅Ρ€ ΠΏΠΈΠ½Π° CS
QuadDisplay qd(10);
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ
Barometer barometer;
// создаём ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ OneWire
OneWire oneWire(ONE_WIRE_BUS);
// создадим ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ DallasTemperature
DallasTemperature sensor(&oneWire);
Β 
// пСрСчисляСм ΠΈΠΌΠ΅Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° дисплСй
enum {
  IN,         // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "In"
  TEMP_IN,    // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ с мСтСосСнсора
  CEL,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй символ Β°C
  HUM_IN,     // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ с мСтСосСнсора
  PPM,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй символ %
  BAR_IN,     // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ с Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π° Π² ΠΌΠΈΠ»Π»ΠΈΠΌΠ΅Ρ‚Ρ€Π°Ρ… Ρ€Ρ‚ΡƒΡ‚Π½ΠΎΠ³ΠΎ столба
  MER,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "Hg"
  EMPTY,      // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая ΠΎΡ‡ΠΈΡ‰Π°Π΅Ρ‚ дисплСй
  OUT,        // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй надпись "Out"
  TEMP_OUT    // имя для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π½Π° дисплСй Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20
};
// создаСм массив, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
int chain[] = {
  IN,
  TEMP_IN,
  CEL,
  HUM_IN,
  PPM,
  BAR_IN,
  MER,
  EMPTY,
  OUT,
  TEMP_OUT,
  CEL,
  EMPTY
};
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ класса long для хранСния счСтчика
unsigned long respite_Time = 0;
Β 
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΠΊΠ°Π·Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π½Π° экранС
int slowdown_qd = 1000;
// создаСм ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ для хранСния Π½ΠΎΠΌΠ΅Ρ€Π° выполняСмой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ
int number_qd = 0;
Β 
void setup() {
  // инициализация дисплСя
  qd.begin();
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ мСтСосСнсора
  meteoSensor.begin();
  // инициализация Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€Π°
  barometer.begin();
  // ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ DS18B20
  sensor.begin();
  // устанавливаСм Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ 9 Π΄ΠΎ 12 Π±ΠΈΡ‚
  sensor.setResolution(12);
}
Β 
void loop() {
  // запускаСм бСсконСчный счСтчик. Π•Π³ΠΎ содСрТимоС Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΎΠΌ Ρ€Π°Π²Π½Ρ‹ΠΌ slowdown_qd
  if (millis() - respite_Time > slowdown_qd) {
    // запускаСм процСсс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ согласно ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π² chain
switch (chain[number_qd]) {
      case IN:
        qd.displayDigits(QD_I, QD_n, QD_NONE, QD_NONE);
        break;
      case TEMP_IN:
        showData(meteoSensor.getTemperatureC());
        break;
      case CEL:
        qd.displayDigits(QD_NONE, QD_NONE, QD_DEGREE, QD_C);
        break;
      case HUM_IN:
        showData(meteoSensor.getHumidity());
        break;
      case PPM:
        qd.displayDigits(QD_NONE, QD_NONE, QD_DEGREE, QD_UNDER_DEGREE);
        break;
      case BAR_IN:
        qd.displayInt(barometer.readPressureMillimetersHg());
        break;
      case MER:
        qd.displayDigits(QD_NONE, QD_NONE, QD_H, QD_9);
        break;
      case EMPTY:
        qd.displayClear();
        break;
      case OUT:
        qd.displayDigits(QD_O, QD_u, QD_t, QD_NONE);
        break;
      case TEMP_OUT:
        // пСрСмСнная для хранСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
        float temperature;
        // отправляСм запрос Π½Π° ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
        sensor.requestTemperatures();
        // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DS18B20 Π½Π° экран
        qd.displayFloat(sensor.getTempCByIndex(0), 1);
        break;
Β 
    }
    number_qd++;
    // провСряСм Π½Π΅ прСвысил Π»ΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ количСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ
    if (number_qd > sizeof(chain) / sizeof(int) - 1)
      number_qd = 0;
    respite_Time = millis();
  }
}
Β 
Β 
// функция Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности
void showData(float data) {
  // считываСм Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°
  int stateSensor = meteoSensor.read();
  switch (stateSensor) {
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ показания Π½Π° дисплСй
    case SHT_OK:
      qd.displayFloat(data, 1);
      break;
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "Errd", Ссли ошибка Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ сСнсор Π½Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½
    case SHT_ERROR_DATA:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_d);
    // Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС "ErrC", Ссли ошибка ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½ΠΎΠΉ суммы
    case SHT_ERROR_CHECKSUM:
      qd.displayDigits(QD_E, QD_r, QD_r, QD_C);
      break;
  }
}
ΠŸΡ€ΠΎΠ΅ΠΊΡ‚

Arduino Weather Station — ΠžΠ±Π·ΠΎΡ€

ΠžΠ±Π·ΠΎΡ€

Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΡ‹ собираСм ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ ​​с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° являСтся ΠŸΠ»Π°Ρ‚Π° Arduino (Freetronics EtherTen) со встроСнным Ethernet. Π­Ρ‚ΠΎ обСспСчит связь с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ вмСстС с источником питания POE (ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Ρ‡Π΅Ρ€Π΅Π· Ethernet).

Работая Π½Π°Π΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠΌ, ΠΌΡ‹ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠΌ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ.Π’ этом процСссС ΠΌΡ‹ создаСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ эскиз, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ.

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ соСдинСниС WiFi для обСспСчСния ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ власти источник, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ солнСчная батарСя ΠΈ аккумулятор. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ WIFI Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½Π΅ΠΌ этапС.

По Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±ΡƒΠ΄ΡƒΡ‚ доступны ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅:

  • Π’Π½Π΅ΡˆΠ½ΡΡ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° (DS18B20)
  • ВнутрСнняя Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° (BME280)
  • Π’Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ (BME280)
  • БаромСтричСскоС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ (BME280)
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя (Hydreon RG-ll)
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π’Π΅Ρ‚Ρ€Π° (АнСмомСтр Дэвиса)
  • НаправлСниС Π’Π΅Ρ‚Ρ€Π° (АнСмомСтр Дэвиса)

Для ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π² процСссС тСстирования Π±Ρ‹Π»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π΄Π²Π° свСтодиода.Один ΠΈΠ· Π½ΠΈΡ… — ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° Π±Π»ΠΎΠΊ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° подаСтся ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π²Ρ…ΠΎΠ΄Ρƒ 12Π’ Ρ‡Π΅Ρ€Π΅Π· рСзистор. Π”Ρ€ΡƒΠ³ΠΎΠΉ свСтодиод ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π° ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹ΠΉ сСрвСр.

ΠŸΠ»Π°Ρ‚Π° Arduino ΠΈ BME280 Π±ΡƒΠ΄ΡƒΡ‚ установлСны Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°, ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ· 100-ΠΌΠΌ ΠŸΠ’Π₯ Ρ‚Ρ€ΡƒΠ±Ρ‹. На самом Π΄Π΅Π»Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΈ Π²Π΅Ρ‚Ρ€ΠΎΠ²ΠΎΠ΅ стСкло Π±Ρ‹Π»ΠΎ ΠΈΠ·Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… сантСхничСских ΠΈ садовых ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΊΡƒΠΏΠΈΡ‚ΡŒ Π² мСстном ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ Π±Ρ‹Ρ‚ΠΎΠ²ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΈΠΊΠΈ.Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ ΠΊΠ°ΠΊ остатки со ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΎΠΊ.

ΠŸΡ€ΡΠΌΡ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с мСтСостанции Ардуино

НаТмитС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ прямыС Π΄Π°Π½Π½Ρ‹Π΅ с тСстовой мСтСостанции. Бтанция располоТСна Π² ΠŸΠ΅Ρ€Ρ‚Π΅, Западная Австралия


Π”ΠΈΠ·Π°ΠΉΠ½

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π·Π±ΠΈΡ‚ Π½Π° мноТСство частСй.ΠœΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΊ Ардуино. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ Π½Π°ΠΌΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС основано Π½Π° руководствах ΠΏΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для этого Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°. ΠžΠ΄Π½Π°ΠΆΠ΄Ρ‹ всС Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ обСспСчСниС ΠΏΠΎΠΊΡ€Ρ‹Ρ‚Ρ‹ Ρƒ нас Π΅ΡΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» ΠΏΠΎ установкС Arduino ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 1. ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ питаСтся ΠΎΡ‚ постоянного Ρ‚ΠΎΠΊΠ° 12 Π’. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ подаСтся Π² ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΆΠ°ΡŽΡ‰ΠΈΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ постоянного Ρ‚ΠΎΠΊΠ°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Ρ…ΠΎΠ΄ 12 Π’ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ 9 Π’.9V Π·Π°Ρ‚Π΅ΠΌ подаСтся Π² Доска Arduino.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 2. Для DS18B20 трСбуСтся ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор 4k7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ здСсь Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 3: Hydreon RG-11 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 12 Π’, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΡ‹ Π±Π΅Ρ€Π΅ΠΌ ΠΎΡ‚ 12 Π’ постоянного Ρ‚ΠΎΠΊΠ°. Π­Ρ‚ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 2 рСзистора.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ 4: АнСмомСтр Дэвиса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΠ½ΡƒΡŽ Ρ†Π²Π΅Ρ‚ΠΎΠ²ΡƒΡŽ схСму ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠΈ. Π‘Ρ‹Ρ‚ΡŒ остороТСн. ΠŸΠΎΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ здСсь Ρ†Π²Π΅Ρ‚Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ поставляСмому кабСлю с Π°Π½Π΅ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ.АнСмомСтр Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ рСзистор 4ΠΊ7, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ здСсь Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π½.

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹Π΅ для этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, основаны Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ интСрфСйса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, ΠΈ доступных Π²Ρ…ΠΎΠ΄Π°Ρ… Π½Π° Arduino. Π•ΡΡ‚ΡŒ смСсь Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π²Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π°. Π£ нас Ρ‚Π°ΠΊΠΆΠ΅ Π΅ΡΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ интСрфСйса I2C. Π’Ρ…ΠΎΠ΄Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅:

  • Π’Π½Π΅ΡˆΠ½ΡΡ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° (DS18B20) — (D9) Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ…ΠΎΠ΄ 9 (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» связи Далласа)
  • Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, баромСтричСскоС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ (BME280) — (A4 ΠΈ A5) Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ I2C с использованиСм A4 ΠΈ A5
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя (Hydreon RG-ll) — (D3) Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ…ΠΎΠ΄ 3 — ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
  • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Π΅Ρ‚Ρ€Π° (Π°Π½Π΅ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ Дэвиса) (D2) Π¦ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π²Ρ…ΠΎΠ΄ 2 — ΠŸΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ
  • НаправлСниС Π’Π΅Ρ‚Ρ€Π° (АнСмомСтр Дэвиса) (A3) Аналоговый Π²Ρ…ΠΎΠ΄

ВрСбуСтся ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ приобрСсти Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… поставщиков.ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ для этой мСтСостанции выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

  • Freetronics EtherTen Board
  • Freetronics Shield
  • Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° (DS18B20) — Adafruit Π’ΠΎΠ΄ΠΎΠ½Π΅ΠΏΡ€ΠΎΠ½ΠΈΡ†Π°Π΅ΠΌΡ‹ΠΉ DS18B20 PN:
  • Π’Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ, атмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ (BME280) — Adafruit BME280 PN:
  • Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя (Hydreon RG-ll)
  • Π’Π΅Ρ‚Ρ€ΠΎΠ²ΠΎΠΉ АнСмомСтр (Дэвис)

Terminal Shield

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ ​​моТно ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±Π΅Π· Π½Π΅Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅.Π­ΠΊΡ€Π°Π½ ΠΊΠ»Π΅ΠΌΠΌ обСспСчиваСт Π²ΠΈΠ½Ρ‚ΠΎΠ²Ρ‹Π΅ ΠΊΠ»Π΅ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠŸΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΊ Arduino. БущСствуСт мноТСство Ρ‚ΠΈΠΏΠΎΠ² Π·Π°Ρ‰ΠΈΡ‚Π½Ρ‹Ρ… экранов ΠΎΡ‚ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… поставщиков. Π—Π΄Π΅ΡΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π’Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚ Freetronics.

Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ вставлСны ΠΈ ΠΏΡ€ΠΈΠ²ΠΈΠ½Ρ‡Π΅Π½Ρ‹ ΠΊ ΠΊΠ»Π΅ΠΌΠΌΠ΅. ΠœΡ‹ использовали Π½Π°ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΈΠΊΠΈ ΠΈ ΠΎΠ±ΠΆΠΈΠΌΠ°Π»ΠΈ ΠΈΡ… ΠΏΠΎ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°ΠΌ. Π­Ρ‚ΠΎ позволяСт Π½Π°Π΄Π΅ΠΆΠ½Ρ‹ΠΉ Π²ΠΈΠ½Ρ‚ Π² соСдинСнии.Они Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π·Π°Ρ‰ΠΈΡ‚Ρƒ многоТильного ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°.

Π‘Π»ΠΎΠΊ питания

Для питания Arduino ΠΈ ряда Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ 12 Π’ постоянного Ρ‚ΠΎΠΊΠ°. Hydreon RG-11 Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ 12 Π’, ΠΎΠ΄Π½Π°ΠΊΠΎ всС ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 5 Π’. ΠΊ ΠŸΠΎΠ΄Π°ΠΉΡ‚Π΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΌΡ‹ собираСмся ввСсти 12 Π’ Ρ‡Π΅Ρ€Π΅Π· кабСль Ethernet. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Arduino Ethernet Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° 10 ΠœΠ‘ / с Π½Π°ΠΌ трСбуСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 ΠΏΠ°Ρ€Ρ‹ ΠΈΠ· 4 ΠΏΠ°Ρ€ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ² Π² ΠΊΠ°Π±Π΅Π»Π΅ Ethernet.Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ это позволяСт Π½Π°ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ. Π‘Π΅ΠΆΠ°Ρ‚ΡŒ Для питания Ρ‡Π΅Ρ€Π΅Π· этот кабСль ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 ΠΏΠ°Ρ€Ρƒ. Для получСния Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ запускС питания Ρ‡Π΅Ρ€Π΅Π· Ethernet ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ руководством.

ΠœΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠΈΡ‚Π°Ρ‚ΡŒ ΠΏΠ»Π°Ρ‚Ρƒ Arduino, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ 12 Π’ постоянного Ρ‚ΠΎΠΊΠ°, Π½ΠΎ это ставит рСгулятор напряТСния Π½Π° максимальноС Π²Ρ…ΠΎΠ΄Π½ΠΎΠ΅ напряТСниС. Он Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ 12Π’ Π² 5Π’. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ падСния напряТСния прСобразуСтся Π² Ρ‚Π΅ΠΏΠ»ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ рСгулятор довольно горячим.Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого, ΠΌΡ‹ использовали ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ напряТСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ 12 Π’ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Π΅Π³ΠΎ ΠΏΡ€ΠΈ 9 Π’. Π­Ρ‚ΠΎ настраиваСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ синСго Ρ‚Ρ€ΠΈΠΏΠΎΡ‚Π° Π½Π° ΠΏΠ»Π°Ρ‚Π΅. (Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π΅ Π² ΠΌΠ°ΡΡˆΡ‚Π°Π±Π΅)

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ шаг

Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΉ части этого ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΌΡ‹ собираСмся ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ DS18B20 ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ эскиз мСтСостанции Arduino с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄ для этого Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°.

,
basvdijk / arduino-weather: мСтСостанция с использованиСм Arduino ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ GitHub? ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ β†’
    • ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠ΄Π°
    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ
    • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ
    • ДСйствия
    • ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹
    • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
    • Π₯остинг
    • ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ
    • ΠžΡ‚Π·Ρ‹Π²Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² β†’
    • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ β†’
  • ΠΊΠΎΠΌΠ°Π½Π΄Π°
  • прСдприятиС
  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ исслСдования
    • Π˜ΡΡΠ»Π΅Π΄ΡƒΠΉΡ‚Π΅ GitHub β†’
    ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ внСсти свой Π²ΠΊΠ»Π°Π΄
    • Π’Π΅ΠΌΡ‹
    • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ
    • Π’Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ
    • Learning Lab
    • Руководства с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
    ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ
    • Бобытия
    • ΠžΠ±Ρ‰Π΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΡƒΠΌ
.
mspalex / iot-arduino-weather-station: Π²Π΅Π±-ΠΊΠ»ΠΈΠ΅Π½Ρ‚ Arduino Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² (Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠΈ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ) ΠΈ отправляСт ΠΈΡ… Π² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ PHP для хранСния ΠΈ отобраТСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΡŽ Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ
  • ΠŸΠΎΡ‡Π΅ΠΌΡƒ GitHub? ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ β†’
    • ΠžΠ±Π·ΠΎΡ€ ΠΊΠΎΠ΄Π°
    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ
    • Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ
    • ДСйствия
    • ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹
    • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ
    • Π₯остинг
    • ΠœΠΎΠ±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ
    • ΠžΡ‚Π·Ρ‹Π²Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² β†’
    • Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ β†’
  • ΠΊΠΎΠΌΠ°Π½Π΄Π°
  • прСдприятиС
  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ исслСдования
    • Π˜ΡΡΠ»Π΅Π΄ΡƒΠΉΡ‚Π΅ GitHub β†’
    ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ ΠΈ внСсти свой Π²ΠΊΠ»Π°Π΄
    • Π’Π΅ΠΌΡ‹
    • ΠšΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ
    • Π’Π΅Π½Π΄Π΅Π½Ρ†ΠΈΠΈ
    • Learning Lab
    • Руководства с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ
    ΠžΠ±Ρ‰Π°ΠΉΡ‚Π΅ΡΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ
.ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ

ESP8266 с использованиСм Arduino IDE

БСгодня ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠ»Π°ΡΡΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ESP8266 (NodeMCU) ΠΈ DHT11, Π΄Π°Ρ‚Ρ‡ΠΈΠΊ доТдя. Π’ этом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π΅ΠΌ, ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ ​​DIY, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ESP8266 ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ. БущСствуСт Π΄Π²Π° Ρ‚ΠΈΠΏΠ° мСтСостанций, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ собствСнныС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Ρ‚ΠΈΠΏ мСтСостанции, Π³Π΄Π΅ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ с сСрвСров мСтСостанции. Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ рассмотрим ΠΎΠ±Π° Ρ‚ΠΈΠΏΠ° мСтСостанций.

NodeMCU Weather Station

НСобходимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹

  1. ESP8266 (NodeMCU)
  2. DHT11
  3. Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°
  4. 0,96 β€³ OLED-дисплСй (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для мСтСостанции Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°)

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ мСтСостанция?

ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ — это устройство, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ собираСт Π΄Π°Π½Π½Ρ‹Π΅, связанныС с ΠΏΠΎΠ³ΠΎΠ΄ΠΎΠΉ ΠΈ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСдой, с использованиСм мноТСства Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΠΈ Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ мСтСостанциями, ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ мСтСостанциями, ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ мСтСостанциями, домашнСй мСтСостанциСй, синоптиком ΠΈ синоптиками.

NodeMCU Weather Station

Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ

мСтСостанций ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² сСбя Ρ‚Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ (LM35 ΠΈΠ»ΠΈ DHT11) для измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ (BMP180) для измСрСния давлСния Π² атмосфСрС, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ для измСрСния доТдя, Π²Π΅Ρ‚Ρ€Π°, влаТности ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΠΈ Π²Π°Ρ€ΡŒΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΎΡ‚ простых Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ Π΄ΠΎ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ. НСкоторыС Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ ΠΊ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈΠ»ΠΈ Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Ρƒ, поэтому собранныС Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния мСтСостанции.

Π’ΠΈΠΏΡ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… для мСтСостанции

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ список ΠΈΠ·ΠΌΠ΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… устройств, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π½Π° мСтСостанциях:

Π’Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ (LM35) — Π’Π΅Ρ€ΠΌΠΎΠΌΠ΅Ρ‚Ρ€ измСряСт Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ.Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ, Ρ‚Π°ΠΊ ΠΈ Π½Π° ΡƒΠ»ΠΈΡ†Π΅, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ максимумы ΠΈ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡ‹, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ стрСлки Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ², ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΏΠΎΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ краткосрочныС Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° для LM35, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ESP8266

Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ NodeMCU Weather Station LM35

Π“ΠΈΠ³Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ (DHT11) — Π“ΠΈΠ³Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ измСряСт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ. ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ — это количСство ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ водяного ΠΏΠ°Ρ€Π° (Π²ΠΎΠ΄Π° Π² Π³Π°Π·ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅) Π² Π²ΠΎΠ·Π΄ΡƒΡ…Π΅. Π’Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ влияСт Π½Π° Ρ„Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды ΠΈ расчСты, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ осадки, Ρ‚ΡƒΠΌΠ°Π½, Ρ‚ΠΎΡ‡ΠΊΠ° росы ΠΈ индСкс Ρ‚Π΅ΠΏΠ»Π°.ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰Π΅ΠΉ влаТности Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для вашСго Π·Π΄ΠΎΡ€ΠΎΠ²ΡŒΡ ΠΈ Π΄ΠΎΠΌΠ°.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ESP8266 Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· DHT-11

DHT11 Pinout for ESP8266

Π‘Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ (BMP180) — Π‘Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ измСряСт атмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅. Π‘Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π² ΠΏΡ€ΠΎΠ³Π½ΠΎΠ·ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ прСдстоящСй ΠΏΠΎΠ³ΠΎΠ΄Ρ‹ Π½Π° основС ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ измСряСт Π² атмосфСрном Π΄Π°Π²Π»Π΅Π½ΠΈΠΈ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ ΠΈΠ»ΠΈ стрСлку Ρ‚Ρ€Π΅Π½Π΄Π° давлСния, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ измСнСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ давлСния. ESP8266 DHT11 ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ здСсь.

Π”Π°Ρ‚Ρ‡ΠΈΠΊ атмосфСрного давлСния / Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ / высоты BMP180 Barometric Pressure/Temperature/Altitude Sensor BMP180

АнСмомСтр — АнСмомСтр измСряСт, насколько быстро Π΄ΡƒΠ΅Ρ‚ Π²Π΅Ρ‚Π΅Ρ€ ΠΈΠ»ΠΈ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Π΅Ρ‚Ρ€Π°. ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΠΈ ESP8266 ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Π²Π΅Ρ‚Ρ€Π° Π² милях Π² час, KPH ΠΈΠ»ΠΈ ΡƒΠ·Π»Π°Ρ… ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ значСния Ρ‚ΠΎΠΊΠ°, ΠΏΠΈΠΊΠΎΠ²ΠΎΠΉ ΠΈ срСднСй скорости Π²Π΅Ρ‚Ρ€Π°.

NodeMCU Anemometer Wind Speed Sensor АнСмомСтр Π”Π°Ρ‚Ρ‡ΠΈΠΊ скорости Π²Π΅Ρ‚Ρ€Π°

Π€Π»ΡŽΠ³Π΅Ρ€ — Π€Π»ΡŽΠ³Π΅Ρ€ ΠΈΠ»ΠΈ Ρ„Π»ΡŽΠ³Π΅Ρ€ — это инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π²Π΅Ρ‚Ρ€Π°. Для отобраТСния направлСния Π²Π΅Ρ‚Ρ€Π° Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ энкодСр ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΌΠ°Π³Π½ΠΈΡ‚Π½ΠΎΠ³ΠΎ компаса с ESP8266.

Wind Vane Arduino Wind Vane

Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя — Π”Π°Ρ‚Ρ‡ΠΈΠΊ доТдя измСряСт количСство осадков ΠΈΠ»ΠΈ ΠΆΠΈΠ΄ΠΊΠΈΡ… осадков. Π­Ρ‚Π° мСтСостанция Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ оповСщСния ΠΎ Π΄ΠΎΠΆΠ΄Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΡ‚ΡŒ вас ΠΎ Π½Π°Ρ‡Π°Π»Π΅ доТдя ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ вас ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… наводнСниях.

Rain Sensor Module ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° доТдя

ESP8266 ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Π±Π°Π·Π΅

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΉ части ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ DHT-11 ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ доТдя. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, эти Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ (Π²Π΅Π±-Π±Ρ€Π°ΡƒΠ·Π΅Ρ€). Π’ этом ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ Π²Π΅Π±-сСрвСр Π½Π° ESP8266. Если Π²Ρ‹ ΠΈΡ‰Π΅Ρ‚Π΅ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡƒΡŽ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΡƒΡŽ BMP180, DHT11 ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ доТдя, Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ здСсь.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Π°Ρ схСма

мСтСостанции

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ доТдя ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ A0 NodeMCU Ρ‡Π΅Ρ€Π΅Π· Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ напряТСния, ESP8266 ΠΈΠΌΠ΅Π΅Ρ‚ Π²Ρ…ΠΎΠ΄ 1 Π’ Π½Π° АЦП. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ DHT11 ΠΊ D5 NodeMCU.

ESP8266 Weather Station Circuit Diagram

Код

NodeMCU для мСтСостанции

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° дСлится Π½Π° Π΄Π²Π΅ части. ΠŸΠ΅Ρ€Π²Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ содСрТит Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, связанныС с WiFi ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм ESP8266, Ρ‚. Π΅. наш Ρ„Π°ΠΉΠ» main.ino . Вторая Ρ‡Π°ΡΡ‚ΡŒ — HTML ΠΈ графичСский интСрфСйс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. это Ρ„Π°ΠΉΠ» index.h .

ΠΏΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ESP.ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ ваш SSID ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ Π² ΠΊΠΎΠ΄Π΅.

main.ino

,

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *