ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Arduino с бСспроводным Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹. BMP085 Barometric Pressure Sensor Module for arduino (ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ)

НСдавно ΠΌΠΎΠΉ ΠΊΠΎΠ»Π»Π΅Π³Π° устраивал Π½Π΅Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Π½Π°ΡƒΡ‡Π½ΡƒΡŽ выставку.
Мой ΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ попросил мСня ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ ΠΏΠΎ элСктроникС студСнтам Π² ΠΊΠΎΠ»Π»Π΅Π΄ΠΆΠ΅. Π£ мСня Π±Ρ‹Π»ΠΎ Π΄Π²Π° дня, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ интСрСсноС ΠΈ достаточно простоС.



Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Π΅ условия здСсь достаточно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Ρ‡ΠΈΠ²Ρ‹, Π° Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π° колСблСтся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 30-40Β°Π‘, я Ρ€Π΅ΡˆΠΈΠ» ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ домашнюю ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ.

Π’ Ρ‡Π΅ΠΌ Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ³ΠΎΠ΄Π½ΠΎΠΉ станции для Π΄ΠΎΠΌΠ°?
ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ Π½Π° Ардуино с дисплССм – устройство, ΡΠΎΠ±ΠΈΡ€Π°ΡŽΡ‰Π΅Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΠΎΠ³ΠΎΠ΄Π΅ ΠΈ условиях ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ мноТСства Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ².

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ:

  • Π²Π΅Ρ‚Ρ€Π°
  • влаТности
  • доТдя
  • Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹
  • давлСния
  • высоты

Моя Ρ†Π΅Π»ΡŒ – ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠ½ΡƒΡŽ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ своими Ρ€ΡƒΠΊΠ°ΠΌΠΈ.

Она Π΄ΠΎΠ»ΠΆΠ½Π° ΡƒΠΌΠ΅Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

  • Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ
  • Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ
  • Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅
  • высоту

Π¨Π°Π³ 1: ΠŸΠΎΠΊΡƒΠΏΠ°Π΅ΠΌ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹







  • DHT22 , Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности.
  • BMP180 , Π΄Π°Ρ‚Ρ‡ΠΈΠΊ давлСния.
  • ΠŸΡ€ΠΈΠΏΠΎΠΉ
  • ΠžΠ΄Π½ΠΎΡ€ΡΠ΄Π½Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ Π½Π° 40 Π²Ρ‹Ρ…ΠΎΠ΄ΠΎΠ²

Из оборудования Π²Π°ΠΌ понадобятся:

  • Паяльник
  • ΠŸΠ»ΠΎΡΠΊΠΎΠ³ΡƒΠ±Ρ†Ρ‹ для носоупоров
  • ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π°

Π¨Π°Π³ 2: Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ влаТности DHT22







Для измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ. ΠŸΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ DHT22, DHT11, SHT1x

Π― объясню, Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π°, ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ я использовал ΠΈΠΌΠ΅Π½Π½ΠΎ DHT22.

Π”Π°Ρ‚Ρ‡ΠΈΠΊ AM2302 ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ сигнал. Π­Ρ‚ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ систСмС ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ сСнсорной Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, поэтому Π΅Π³ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Π΄Π΅ΠΆΠ½Ρ‹. Π•Π³ΠΎ сСнсорный элСмСнт соСдинСн с 8-Π±ΠΈΡ‚Π½Ρ‹ΠΌ ΠΎΠ΄Π½ΠΎΠΊΡ€ΠΈΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ сСнсор этой ΠΌΠΎΠ΄Π΅Π»ΠΈ тСрмокомпСнсированный ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΎΡ‚ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, коэффициСнт ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠΈ находится Π² ΠΎΠ΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ памяти (ОВР-ΠΏΠ°ΠΌΡΡ‚ΡŒ). ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈΠΉ сСнсор Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ коэффициСнт ΠΈΠ· памяти.

МалСнький Ρ€Π°Π·ΠΌΠ΅Ρ€, Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ энСргии, большоС расстояниС ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (100 ΠΌ) ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ AM2302 ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΊΠΎ всСм прилоТСниям, Π° 4 Π²Ρ‹Ρ…ΠΎΠ΄Π° Π² ΠΎΠ΄ΠΈΠ½ ряд Π΄Π΅Π»Π°ΡŽΡ‚ ΠΌΠΎΠ½Ρ‚Π°ΠΆ ΠΎΡ‡Π΅Π½ΡŒ простым.

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы Ρ‚Ρ€Π΅Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ².

DHT11

ΠŸΠ»ΡŽΡΡ‹: Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΉΠΊΠΈ, самый Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ ΠΈΠ· Ρ‚Ρ€Π΅Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ, быстрый ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ сигнал, Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΡΠ²Ρ‹ΡˆΠ΅ 20 ΠΌ, сильная интСрфСрСнция.
ΠœΠΈΠ½ΡƒΡΡ‹: Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°! НСт Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ +/- 2Β°Π‘, ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ уровня ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ влаТности +/- 5%, Π½Π΅Π°Π΄Π΅ΠΊΠ²Π°Ρ‚Π½Ρ‹ΠΉ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСряСмых Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ (0-50Β°Π‘).
ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния: садоводство, сСльскоС хозяйство.

DHT22

ΠŸΠ»ΡŽΡΡ‹: Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΉΠΊΠΈ, нСвысокая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ, сглаТСнныС ΠΊΡ€ΠΈΠ²Ρ‹Π΅, ΠΌΠ°Π»Ρ‹Π΅ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, большой Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ большС 20 ΠΌ, сильная интСрфСрСнция.
ΠœΠΈΠ½ΡƒΡΡ‹: Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠ³Π»Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΡˆΠ΅, ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎΠ΅ отслСТиваниС Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½ΡƒΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.
ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния: ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅ΠΉ срСды.

SHT1x

ΠŸΠ»ΡŽΡΡ‹: Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΏΠ°ΠΉΠΊΠΈ, сглаТСнныС ΠΊΡ€ΠΈΠ²Ρ‹Π΅, ΠΌΠ°Π»Ρ‹Π΅ ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΠΈ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ, быстроС срабатываниС, Π½ΠΈΠ·ΠΊΠΎΠ΅ ΠΏΠΎΡ‚Ρ€Π΅Π±Π»Π΅Π½ΠΈΠ΅ энСргии, автоматичСский Ρ€Π΅ΠΆΠΈΠΌ сна, высокая ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….
ΠœΠΈΠ½ΡƒΡΡ‹: Π΄Π²Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… интСрфСйса, ΠΏΠΎΠ³Ρ€Π΅ΡˆΠ½ΠΎΡΡ‚ΡŒ Π² ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΈ уровня влаТности, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ измСряСмых Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ 0-50Β°Π‘, Π½ΡƒΠΆΠ½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°.
ΠžΠ±Π»Π°ΡΡ‚ΠΈ примСнСния: эксплуатация Π² суровых условиях ΠΈ Π² долгосрочных установках. ВсС Ρ‚Ρ€ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΠ΅.

Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅

  • Vcc – 5Π’ ΠΈΠ»ΠΈ 3,3Π’
  • Gnd – с Gnd
  • Data – Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹Π²ΠΎΠ΄ Arduino

Π¨Π°Π³ 3: Π”Π°Ρ‚Ρ‡ΠΈΠΊ давлСния BMP180



BMP180 – баромСтричСский Π΄Π°Ρ‚Ρ‡ΠΈΠΊ атмосфСрного давлСния с I2C-интСрфСйсом.
БаромСтричСскиС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ атмосфСрного давлСния ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π²ΠΎΠ·Π΄ΡƒΡ…Π°. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Ρ… условий ΠΈ ΠΎΡ‚ высоты Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря.

Π£ модуля BMP180 имСлся 3,3Π’ стабилизатор Π½Π° 662кОм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ я, ΠΏΠΎ собствСнной глупости, случайно Π²Π·ΠΎΡ€Π²Π°Π». ΠŸΡ€ΠΈΡˆΠ»ΠΎΡΡŒ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±Π²ΠΎΠ΄ΠΊΡƒ питания Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊ Ρ‡ΠΈΠΏΡƒ.

Из-Π·Π° отсутствия стабилизатора, я ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ Π² Π²Ρ‹Π±ΠΎΡ€Π΅ источника питания – напряТСниС Π²Ρ‹ΡˆΠ΅ 3,3Π’ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ.
Π£ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π±Ρ‹Ρ‚ΡŒ стабилизатора, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅.

Π‘Ρ…Π΅ΠΌΠ° соСдинСния Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΈ ΡˆΠΈΠ½Ρ‹ I2C с Arduino (nano ΠΈΠ»ΠΈ uno)

  • SDA β€” A4
  • SCL β€” A5
  • VCC β€” 3.3V
  • GND – GND

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π΄Π°Π²Π»Π΅Π½ΠΈΠΈ, ΠΈ Π΅Π³ΠΎ связи с Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€ΠΎΠΉ ΠΈ высотой.

АтмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² любой Ρ‚ΠΎΡ‡ΠΊΠ΅ нСпостоянно. Π‘Π»ΠΎΠΆΠ½ΠΎΠ΅ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π—Π΅ΠΌΠ»ΠΈ, Π½Π°ΠΊΠ»ΠΎΠ½ΠΎΠΌ Π—Π΅ΠΌΠ½ΠΎΠΉ оси, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ появлСнию мноТСства областСй высокого ΠΈ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ давлСния, Ρ‡Ρ‚ΠΎ, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ смСнС ΠΏΠΎΠ³ΠΎΠ΄Π½Ρ‹Ρ… условий. Наблюдая Π·Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ давлСния, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ краткосрочный ΠΏΡ€ΠΎΠ³Π½ΠΎΠ· ΠΏΠΎΠ³ΠΎΠ΄Ρ‹.

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

АтмосфСрноС Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ измСняСтся с высотой. ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π±Π°Π·ΠΎΠ²ΠΎΠΌ Π»Π°Π³Π΅Ρ€Π΅ Π½Π° ЭвСрСстС (5400 ΠΌ Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря) Π½ΠΈΠΆΠ΅, Ρ‡Π΅ΠΌ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π² Π”Π΅Π»ΠΈ (216 ΠΌ Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря).

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ³ΠΎ давлСния ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ давлСнию, ΠΈΠ»ΠΈ давлСнию Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ моря.

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ высоты

Π‘Ρ€Π΅Π΄Π½Π΅Π΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ моря 1013,25 Π“ΠŸΠ° (ΠΈΠ»ΠΈ ΠΌΠΈΠ»Π»ΠΈΠ±Π°Ρ€). Если ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒΡΡ Π½Π°Π΄ атмосфСрой, это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΡƒΠΏΠ°Π΄Π΅Ρ‚ Π΄ΠΎ нуля. ΠšΡ€ΠΈΠ²Π°Ρ этого падСния Π²ΠΏΠΎΠ»Π½Π΅ понятна, поэтому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сами Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚ΡŒ высоту Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅: alti=44330*

Если Π²Ρ‹ ΠΏΡ€ΠΈΠΌΠΈΡ‚Π΅ Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ моря 1013,25 Π“ΠΏΠ° ΠΊΠ°ΠΊ Ρ€0, Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ уравнСния Π±ΡƒΠ΄Π΅Ρ‚ ваша тСкущая высота Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря.

ΠœΠ΅Ρ€Ρ‹ прСдостороТности

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

Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ нагрСвания. Для измСрСния давлСния Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ показания. ΠŸΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΏΠ°Π΄ΠΎΠ² Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ ΠΈ Π½Π΅ оставляйтС Π΅Π³ΠΎ Π²Π±Π»ΠΈΠ·ΠΈ источников высоких Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€.

Π—Π°Ρ‰ΠΈΡ‚ΠΈΡ‚Π΅ ΠΎΡ‚ Π²Π»Π°Π³ΠΈ. Π”Π°Ρ‚Ρ‡ΠΈΠΊ BMP180 чувствитСлСн ΠΊ ΡƒΡ€ΠΎΠ²Π½ΡŽ влаТности, ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°Π½ΠΈΠ΅ Π²ΠΎΠ΄Ρ‹ Π½Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊ.

НС ослСпитС Π΄Π°Ρ‚Ρ‡ΠΈΠΊ. ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΡΡ‚ΡŒΡŽ стала Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ силикона Π² Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ΅ ΠΊ свСту, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π½Π° Π½Π΅Π³ΠΎ Ρ‡Π΅Ρ€Π΅Π· отвСрстиС Π² ΠΊΡ€Ρ‹ΡˆΠΊΠ΅ Ρ‡ΠΈΠΏΠ°. Для максимально Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΎΡ‚ ΠΎΠΊΡ€ΡƒΠΆΠ°ΡŽΡ‰Π΅Π³ΠΎ свСта.

Π¨Π°Π³ 4: Π‘ΠΎΠ±ΠΈΡ€Π°Π΅ΠΌ ΠΏΡ€ΠΈΠ±ΠΎΡ€







УстанавливаСм однорядныС Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ для Arduino Nano. Π’ΠΎΠΎΠ±Ρ‰Π΅, ΠΌΡ‹ ΠΎΠ±Ρ€Π΅Π·Π°Π»ΠΈ ΠΈΡ… Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π·Π°ΡˆΠΊΡƒΡ€ΠΈΠ»ΠΈ, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ смотрятся, словно Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΈ Π±Ρ‹Π»ΠΈ. ΠŸΠΎΡ‚ΠΎΠΌ ΠΏΡ€ΠΈΠΏΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΈΡ…. ПослС, устанавливаСм однорядныС Ρ€Π°Π·ΡŠΠ΅ΠΌΡ‹ для Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° DHT22.

УстанавливаСм 10кОМ рСзистор ΠΎΡ‚ Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊ Π·Π΅ΠΌΠ»Π΅ (Gnd). ВсС паяСм.
ΠŸΠΎΡ‚ΠΎΠΌ Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ устанавливаСм однорядный Ρ€Π°Π·ΡŠΠ΅ΠΌ для Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° BMP180, ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Π΄Π΅Π»Π°Π΅ΠΌ 3,3Π’. БоСдиняСм всС с шиной I2C.

Π’ послСднюю ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ LCD-дисплСй, Π½Π° Ρ‚Ρƒ ΠΆΠ΅ I2C ΡˆΠΈΠ½Ρƒ, Ρ‡Ρ‚ΠΎ ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ BMP180.
(Π² Ρ‡Π΅Ρ‚Π²Π΅Ρ€Ρ‚Ρ‹ΠΉ Ρ€Π°Π·ΡŠΠ΅ΠΌ я ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ RTC-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (часы Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ±ΠΎΡ€ Π΅Ρ‰Π΅ ΠΈ врСмя ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π»).

Π¨Π°Π³ 5: ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅




Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π½Π° Arduino, ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΏΠΎ ссылкС

#include
#include #include #include "DHT.h" #include

SFE_BMP180 pressure;

#define ALTITUDE 20.56 #define I2C_ADDR 0x27 // <<- Add your address here. #define Rs_pin 0 #define Rw_pin 1 #define En_pin 2 #define BACKLIGHT_PIN 3 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7

#define DHTPIN 2 // what digital pin we"re connected to

// Uncomment whatever type you"re using! //#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 DHT dht(DHTPIN, DHTTYPE); LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin); float t1,t2;

void setup() { Serial.begin(9600); lcd.begin (16,2); // <<-- our LCD is a 20x4, change for your LCD if needed // LCD Backlight ON lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.home (); // go home on LCD lcd.print("Weather Station"); delay(5000); dht.begin(); pressure.begin(); } void loop() { char status; double T,P,p0,a; status = pressure.startTemperature(); if (status != 0) { delay(status);

status = pressure.getTemperature(T); if (status != 0) { Serial.print("1"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Baro Temperature: "); lcd.setCursor(0,1); lcd.print(T,2); lcd.print(" deg C "); t1=T; delay(3000);

status = pressure.startPressure(3); if (status != 0) { // Wait for the measurement to complete: delay(status);

status = pressure.getPressure(P,T); if (status != 0) {lcd.clear(); lcd.setCursor(0,0); lcd.print("abslt pressure: "); lcd.setCursor(0,1); lcd.print(P,2); lcd.print(" mb "); delay(3000);

p0 = pressure.sealevel(P,ALTITUDE); // we"re at 1655 meters (Boulder, CO)

a = pressure.altitude(P,p0); lcd.clear(); lcd.setCursor(0,0); lcd.print("Altitude: "); lcd.setCursor(0,1); lcd.print(a,0); lcd.print(" meters"); delay(3000); } } } } float h = dht.readHumidity(); // Read temperature as Celsius (the default) float t = dht.readTemperature(); t2=t; lcd.clear(); lcd.setCursor (0,0); // go to start of 2nd line lcd.print("Humidity: "); lcd.setCursor(0,1);lcd.print(h); lcd.print(" %"); delay(3000); lcd.clear(); lcd.setCursor (0,0); // go to start of 2nd line lcd.print("DHT Tempurature: "); lcd.setCursor(0,1); lcd.print(t); lcd.print(" deg C "); delay(3000); lcd.clear(); lcd.setCursor (0,0); // go to start of 2nd line lcd.print("Mean Tempurature: "); lcd.setCursor(0,1); lcd.print((t1+t2)/2); lcd.print(" deg C "); delay(3000); }

Π― использовал Π²Π΅Ρ€ΡΠΈΡŽ Arduino 1.6.5, ΠΊΠΎΠ΄ Ρ‚ΠΎΡ‡Π½ΠΎ ΠΊ Π½Π΅ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΊ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ·Π΄Π½ΠΈΠΌ Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ. Если ΠΊΠΎΠ΄ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²Π΅Ρ€ΡΠΈΡŽ 1.6.5 ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²ΡƒΡŽ.

Как Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… людСй, занятиС собствСнными ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΎΡ‚Π½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнно ΠΎΡΡ‚Π°Π²ΡˆΠ΅Π΅ΡΡ свободноС врСмя. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ Π½Π΅ Ρ‚Π²ΠΎΡ€ΠΈΠ» ΠΈ Β«Ρ‡Π΅ΡΠ°Π»ΠΈΡΡŒ Ρ€ΡƒΠΊΠΈΒ» Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Данная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ появилась ΠΊΠ°ΠΊ Π½ΠΈ странно Π² унивСрситСтС. Π—Π° ΠΎΠΊΠ½ΠΎΠΌ ΡΠ΅Π½Ρ‚ΡΠ±Ρ€ΡŒ, 4 курс ΠΈ Π½Π°Π΄Π²ΠΈΠ³Π°ΡŽΡ‰ΠΈΠΉΡΡ курсовой ΠΏΠΎ схСмотСхникС. Нам сказали, Ρ‡Ρ‚ΠΎ курсовыС ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² Π΄Π²ΡƒΡ… вариациях: Π±ΡƒΠΌΠ°ΠΆΠ½ΠΎΠΌ ΠΈ Β«ΠΆΠ΅Π»Π΅Π·Π΅Β».

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

Π’ΠΎΡ‚ Ρ‚Π°ΠΊ Π±Ρ‹Π»Π° Π²Ρ‹Π±Ρ€Π°Π½Π° Ρ‚Π΅ΠΌΠ° для курсового ΠΈ со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²Ρ€ΠΎΠ΄Π΅ ΠΊΠ°ΠΊ Π½Π΅ Π½Π°ΠΌΠ΅Ρ‡Π°Π»ΠΎΡΡŒ.

Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€ΠΎΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ я ΠΏΠΎΠ½ΠΈΠΌΠ°Π», Ρ‡Ρ‚ΠΎ ΠΌΠ½Π΅ Π²ΠΏΠΎΠ»Π½Π΅ достаточно Π±ΡƒΠ΄Π΅Ρ‚ Nano ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ Pro Mini, Π½ΠΎ всё-Ρ‚Π°ΠΊΠΈ Π²Ρ‹Π±Ρ€Π°Π» Arduino Uno Π² Π½Π°Π΄Π΅ΠΆΠ΄Π΅, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Arduino ΠΌΠ½Π΅ понравится ΠΈ Π² дальнСйшСм Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽ Π΅Ρ‰Ρ‘ ΠΊΠ°ΠΊΠΈΠ΅-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹. Паяльник Π΄ΠΎ этого Π² Ρ€ΡƒΠΊΠ°Ρ… Π½ΠΈ Ρ€Π°Π·Ρƒ Π½Π΅ Π΄Π΅Ρ€ΠΆΠ°Π», поэтому для Π±ΠΎΠ»Π΅Π΅ Π»Π΅Π³ΠΊΠΎΠΉ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ€Π΅ΡˆΠΈΠ» Ρ‚Π°ΠΊΠΆΠ΅ приобрСсти Sensor Shield v4.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

ΠŸΠ»Π°Ρ‚Π° способствуСт быстрому ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ, сСрво ΠΌΠΎΡ‚ΠΎΡ€ΠΎΠ², интСрфСйсов Serial ΠΈ I2C, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ всС ΠΏΠΎΡ€Ρ‚Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Ρ„ΠΎΡ€ΠΌΡ„Π°ΠΊΡ‚ΠΎΡ€Π° Duemilanova/Uno(Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΈ Π² ΡΠ΅Ρ€ΠΈΡŽ ΠΌΠ΅Π³Π°, Π½ΠΎ с ограничСниями ΠΈ Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ послСдствиями). ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡˆΠΈΠ»Π΄Ρ‹ ΠΏΠΎΠ²Π΅Ρ€Ρ… сСбя.


Π’ качСствС источников для мСтСорологичСских Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ‹Π±Ρ€Π°Π» ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ:


Π‘ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ опрСдСлился. Но Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ‚ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². РСшил Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° дисплСй. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ…ΠΎΡ‚Π΅Π»ΠΎΡΡŒ Ρ†Π²Π΅Ρ‚Π½ΡƒΡŽ, поэтому ΠΌΠΎΠ½ΠΎΡ…Ρ€ΠΎΠΌΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ отбросил сразу. ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΌΠΈΠ½ΡƒΡ‚ поиска Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ TFT дисплСй ST7735 Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 1,8 дюймов.

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ дисплСй ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ 4-ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΎΠΉ SPI ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ΄ для связи ΠΈ ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный пиксСлС-адрСсуСмый Π±ΡƒΡ„Π΅Ρ€ ΠΊΠ°Π΄Ρ€Π°, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ с Π»ΡŽΠ±Ρ‹ΠΌΠΈ Π²ΠΈΠ΄Π°ΠΌΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². 1.8-Π΄ΡŽΠΉΠΌΠΎΠ²Ρ‹ΠΉ дисплСй ΠΈΠΌΠ΅Π΅Ρ‚ 128x160 Ρ†Π²Π΅Ρ‚Π½Ρ‹Ρ… пиксСля. Π’Π°ΠΊΠΆΠ΅ имССтся слот для ΠΊΠ°Ρ€Ρ‚Ρ‹ памяти microSD, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π»Π΅Π³ΠΊΠΎ Π·Π°Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π²Π΅Ρ‚Π½Ρ‹Π΅ растровыС изобраТСния ΠΈΠ· FAT16 / FAT32 Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы microSD ΠΊΠ°Ρ€Ρ‚Ρ‹.

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

  • Π”ΠΈΠ°Π³ΠΎΠ½Π°Π»ΡŒ дисплСя - 1.8 дюймов, Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ 128x160 пиксСлСй, 18-Π±ΠΈΡ‚Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ (262 144 Ρ†Π²Π΅Ρ‚Π°)
  • ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ со встроСнной пиксСльной адрСсациСй Π±ΡƒΡ„Π΅Ρ€Π° видСопамяти
  • ВстроСнный слот для microSD - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π±ΠΎΠ»Π΅Π΅ 2 Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… Π»ΠΈΠ½ΠΈΠΉ
  • БовмСстим с 3.3 ΠΈ 5V
  • Π“Π°Π±Π°Ρ€ΠΈΡ‚Ρ‹: 34 ΠΌΠΌ Ρ… 56 ΠΌΠΌ Ρ… 6,5 ΠΌ


ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Arduino

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈΡΡŒ с ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ для мСтСостанции, Π½Π°Ρ‡Π½Ρ‘ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Для ΠΏΡ€ΠΎΡˆΠΈΠ²ΠΊΠΈ Arduino использовалась срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Arduino IDE. Π’Π°ΠΊΠΆΠ΅ использовал Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΎΡ‚ Adafruit.

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ скСтчу, рассмотрим Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»:

  • Показания ΡΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ с Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10 сСкунд ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π° экранС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹ ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ с ΠΏΡ€ΠΎΡˆΠ»Ρ‹ΠΌ ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ΠΌ
  • Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎ COM ΠΏΠΎΡ€Ρ‚Ρƒ

Π‘ΠΊΠ΅Ρ‚Ρ‡

#include // library for communication with I2C devices #include // Core library for all sensors #include // library for BMP180 #include // Core graphics library #include // Hardware-specific library #include // library for communication with SPI devices #include "dht.h" // library for DHT #define DHT22_PIN 2 // connect data pin of DHT22 to 2 digital pin #define TFT_CS 10 // connect CS pin of TFT to 10 digital pin #define TFT_RST 9 // connect RST pin of TFT to 9 digital pin // you can also connect this to the Arduino reset // in which case, set this #define pin to 0! #define TFT_DC 8 // connect DC pin of TFT to 8 digital pin Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST); //initialize TFT #define TFT_SCLK 13 // connect SCLK pin of TFT to 13 digital pin #define TFT_MOSI 11 // connect MOSI pin of TFT to 11 digital pin dht DHT; Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085); //initialize BMP180 int bmpFlag = 0; struct { uint32_t total; uint32_t ok; uint32_t crc_error; uint32_t time_out; uint32_t connect; uint32_t ack_l; uint32_t ack_h; uint32_t unknown; } stat = { 0,0,0,0,0,0,0,0}; // struct for dht status void setup(void) { Serial.begin(9600); Serial.println("Meteo Test"); Serial.println(""); if(!bmp.begin()) // check connection for BMP180 { Serial.print("Ooops, no BMP180 detected ... Check your wiring or I2C ADDR!"); bmpFlag = 1; } tft.initR(INITR_BLACKTAB); // Initialize TFT and fill with black color tft.fillScreen(ST7735_BLACK); tft.setRotation(tft.getRotation() + 1); tft.setTextSize(1.5); delay(500); // delay in order to ensure that TFT was initialized } // last measured data float oldTemperature = 0, oldAltitude = 0, oldPressure = 0, oldDHTHumidity = 0, oldDHTTemperature; bool wasUpdate = false; void loop(void) { if(Serial.available() > 0) // we have data is Serial port { Serial.read(); // read byte from serial port and send last measured data printValue("Pressure", oldPressure, " hPa", false); printValue("Temperature", oldTemperature, " C", false); printValue("Altitude", oldAltitude, " m", false); printValue("Humidity", oldDHTHumidity, "%", false); printValue("DHT_temperature", oldDHTTemperature, " C", false); Serial.println("END_TRANSMISSION"); } sensors_event_t event; float temperature, altitude; if(bmpFlag == 0){ bmp.getEvent(&event); // get data from BMP180 if (event.pressure) { bmp.getTemperature(&temperature); float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA; altitude = bmp.pressureToAltitude(seaLevelPressure, event.pressure, temperature); } else { Serial.println("Sensor error"); } } uint32_t start = micros(); int chk = DHT.read22(DHT22_PIN);// get data from DHT22 uint32_t stop = micros(); stat.total++; switch (chk) // check status of DHT22 { case DHTLIB_OK: stat.ok++; break; case DHTLIB_ERROR_CHECKSUM: stat.crc_error++; Serial.print("Checksum error,\t"); break; case DHTLIB_ERROR_TIMEOUT: stat.time_out++; Serial.print("Time out error,\t"); break; case DHTLIB_ERROR_CONNECT: stat.connect++; Serial.print("Connect error,\t"); break; case DHTLIB_ERROR_ACK_L: stat.ack_l++; Serial.print("Ack Low error,\t"); break; case DHTLIB_ERROR_ACK_H: stat.ack_h++; Serial.print("Ack High error,\t"); break; default: stat.unknown++; Serial.print("Unknown error,\t"); break; } if(bmpFlag != 0 || !event.pressure) // update data { tft.fillRect(0, 30, 160, 6, ST7735_BLACK); tft.setCursor(0, 30); tft.setTextColor(ST7735_RED); printValue("ERROR BMP INITIALIZATION", 0, "", true); } else { if(event.pressure != oldPressure) { tft.fillRect(0, 30, 160, 7, ST7735_BLACK); tft.setCursor(0, 30); tft.setTextColor(ST7735_RED); printValue("Pressure", event.pressure, " hPa", true); oldPressure = event.pressure; wasUpdate = true; } if(temperature != oldTemperature) { tft.fillRect(0, 38, 160, 7, ST7735_BLACK); tft.setCursor(0, 38); tft.setTextColor(ST7735_WHITE); printValue("Temperature", temperature, " C", true); oldTemperature = temperature; wasUpdate = true; } if(altitude != oldAltitude) { tft.fillRect(0, 46, 160, 7, ST7735_BLACK); tft.setCursor(0, 46); tft.setTextColor(ST7735_BLUE); printValue("Altitude", altitude, " m", true); oldAltitude = altitude; wasUpdate = true; } } if(DHT.humidity != oldDHTHumidity) { tft.fillRect(0, 54, 160, 7, ST7735_BLACK); tft.setCursor(0, 54); tft.setTextColor(ST7735_GREEN); printValue("Humidity", DHT.humidity, "%", true); oldDHTHumidity = DHT.humidity; wasUpdate = true; } if(DHT.temperature != oldDHTTemperature) { tft.fillRect(0, 80, 160, 7, ST7735_BLACK); tft.setCursor(0, 80); tft.setTextColor(ST7735_YELLOW); printValue("DHT_temperature", DHT.temperature, " C", true); oldDHTTemperature = DHT.temperature; wasUpdate = true; } if(wasUpdate) { Serial.println("END_TRANSMISSION"); } wasUpdate = false; delay(10000); } void printValue(char* title, double value, char* measure, bool tftPrint) { if(tftPrint) // print data to TFT { tft.print(title); tft.print(": "); tft.print(value); tft.println(measure); } Serial.print(title); // send data to Serial port Serial.print(": "); Serial.print(value); Serial.println(measure); }

Π‘Π°ΠΌΠΎΠ΅ врСмя ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ корпус

Π“Π»Π°Π²Π½Ρ‹ΠΌ условиСм курсового Π±Ρ‹Π»ΠΎ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ Π² ΠΏΡ€Π΅Π·Π΅Π½Ρ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΠΌ Π²ΠΈΠ΄Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΊΡƒΠΏΠΈΡ‚ΡŒ корпус ΠΈ, Π²ΠΎΠΎΡ€ΡƒΠΆΠΈΠ²ΡˆΠΈΡΡŒ напильником, Π»ΡŽΠ±Ρ‹ΠΌ способом Π·Π°ΡΡƒΠ½ΡƒΡ‚ΡŒ ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ Π² корпус.

Π’ мСстном ΠΌΠ°Π³Π°Π·ΠΈΠ½Π΅ радиоэлСктроники Π±Ρ‹Π» ΠΏΡ€ΠΈΠΎΠ±Ρ€Π΅Ρ‚Ρ‘Π½ корпус.

ΠšΠΎΡ€ΠΏΡƒΡ

(На Ρ„ΠΎΡ‚ΠΎ корпус Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π½Π΅ Ρ‚Π°ΠΊΠΎΠΉ. Π£ мСня ΠΊΡ€Ρ‹ΡˆΠΊΠ° прозрачная)



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

ΠšΠΎΡ€ΠΏΡƒΡ с отвСрстиями для Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΈ питания



Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠΏΠ°ΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠΆΠΊΠΈ ΠΊ 2 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ ΠΈ Ρƒ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ… я спалил Π΄ΠΎΡ€ΠΎΠΆΠΊΡƒ, Ρ‚ΠΎ Ρ€Π΅ΡˆΠΈΠ» Π½Π΅ ΠΈΡΠΏΡ‹Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΡΡƒΠ΄ΡŒΠ±Ρƒ ΠΈ Π½Π΅ ΠΏΡ€ΠΈΠΏΠ°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΊ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ (ΠΏΠΎΡ‚Ρ€Π΅Π½ΠΈΡ€ΡƒΡŽΡΡŒ Π½Π° Ρ‡Ρ‘ΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΌ), Π° для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ соСдинСниС Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅-ΠΌΠ΅Π½Π΅Π΅ Π½Π°Π΄Ρ‘ΠΆΠ½Ρ‹ΠΌ, Ρ€Π΅ΡˆΠΈΠ» ΠΏΠ΅Ρ€Π΅ΠΌΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»Π΅Π½Ρ‚ΠΎΠΉ.

БистСма ΠΏΠ΅Ρ€Π΅Π΄ "Π·Π°ΠΏΠΈΡ…ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ" Π² корпус



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

Π§ΡƒΠ΄ΠΎ-юда Ρ€Ρ‹Π±Π°-ΠΊΠΈΡ‚



ΠŸΡ€ΠΈΠΊΡ€ΡƒΡ‡ΠΈΠ²Π°Π΅ΠΌ ΠΊΡ€Ρ‹ΡˆΠΊΡƒ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ ΠΆΠ΄Ρ‘ΠΌ.

ЗакончСнная мСтСостанция Π² корпусС



ПослС Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Π½Π° экран, выявляСм Π½Π΅ΠΏΡ€ΠΈΡΡ‚Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ измСрСния влаТности: DHT22 усСрдно Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Ρ†ΠΈΡ„Ρ€Ρƒ 99,90% (ΠΊΡ€Π°ΠΉΠ½Π΅ Ρ€Π΅Π΄ΠΊΠΎ Π±Ρ‹Π²Π°Π΅Ρ‚ 1,00%). НачинаСм Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ Π² Ρ‡Ρ‘ΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. ΠŸΠ΅Ρ€Π²ΠΎΠ΅, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅ΠΌ - смотрим Π²Ρ‹Π²ΠΎΠ΄ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² COM ΠΏΠΎΡ€Ρ‚. Π’Ρ€ΠΎΠ΄Π΅ всё Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ. ПослС Π½Π΅ΠΊΡΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ΅Ρ€Π΅Π·Π°Π»ΠΈΠ²ΠΎΠΊ, Ρ€Π°Π·Π±ΠΎΡ€ΠΎΠΊ ΠΈ сборок корпуса Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΡ‹ΡΠ»ΡŒ ΠΏΠΎΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π²Π΅Ρ‚ Π² Π³ΡƒΠ³Π»Π΅. Как ΠΈ оТидалось русский Π³ΡƒΠ³Π» Π½ΠΈΡ‡Π΅Π³ΠΎ дСльного Π½Π΅ сказал. ОкСй. НачинаСм ΠΈΡΠΊΠ°Ρ‚ΡŒ Π½Π° английском ΠΈ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· Ρ„ΠΎΡ€ΡƒΠΌΠΎΠ² натыкаСмся Π½Π° рСбят с ΠΏΠΎΡ…ΠΎΠΆΠ΅ΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ страницы обсуТдСния Π½ΠΈΡ‡Π΅Π³ΠΎ дСльного Π½Π΅ Π΄Π°ΡŽΡ‚, Π° Π½Π° пятой страницС Π½Π°Ρ…ΠΎΠ΄ΠΈΠΌ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° наш вопрос:
Humidity sensors can easily be affected by the wrong gasses or very long exposure to high humidity IIRC. In the datasheet there is a procedure how to Β«resetΒ» the sensor, you could give it a try.

ΠžΡΡ‚Π°Π²Π°Π»ΡΡ вопрос Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° ΠΈ ΠΊΠ°ΠΊ я успСл Π½Π°Π²Ρ€Π΅Π΄ΠΈΡ‚ΡŒ DHT22. Но ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΠ»ΠΎ врСмя ΡΠ΄Π°Π²Π°Ρ‚ΡŒ курсовой ΠΈ поэтому я оставил Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π½Π° ΠΏΠΎΡ‚ΠΎΠΌ.

ПослСсловиС

ΠšΡƒΡ€ΡΠΎΠ²ΠΎΠΉ Π±Ρ‹Π» сдан. ΠœΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡ ΠΎΡ‚Π»ΠΎΠΆΠ΅Π½Π° Π½Π° Π½Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ врСмя Π΄ΠΎ закрытия всСх хвостов Π² унивСрситСтС. Однако, ΠΊ мСтСостанции ΠΏΡ€ΠΈΡˆΠ»ΠΎΡΡŒ вСрнутся Ρ€Π°Π½ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ я Π΄ΡƒΠΌΠ°Π». Π’Π°ΠΊ слоТилось, Ρ‡Ρ‚ΠΎ Π² сСрСдинС ноября я помСнял Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ мСсто ΠΈ Π² Π½ΠΎΠ²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ я познакомился с людьми, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚ΡΡ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ Arduino ΠΈ ΠΈΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΌΠΎΠΉ интСрСс ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Π½Π΅ успСв ΠΎΡΡ‚Ρ‹Ρ‚ΡŒ, разгорСлся снова. Π― достал свою ΠΌΠ΅Ρ‚Π΅ΠΎΡΡ‚Π°Π½Ρ†ΠΈΡŽ, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΈ вспомнил, Ρ‡Ρ‚ΠΎ я Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π» ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… с Arduino ΠΏΠΎ COM ΠΏΠΎΡ€Ρ‚Ρƒ. И Ρ‚ΡƒΡ‚ ΠΌΠ½Π΅ ΠΏΡ€ΠΈΡˆΠ»Π° Π² Π³ΠΎΠ»ΠΎΠ²Ρƒ идСя, Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰ΡƒΡŽ Π΄Π°Π½Π½Ρ‹Π΅ Ρ‡Π΅Ρ€Π΅Π· COM ΠΏΠΎΡ€Ρ‚ ΠΎΡ‚ Arduino ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³
  • Π—Π° основу взят ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ мСтСостанции ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ Π’. ΠŸΠ΅Ρ‚ΠΈΠ½Π° "ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с использованиСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Arduino" 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ (ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ 5 прилоТСния 2) . Использовалась срСда Arduino IDE 1.8.5 Π² Windows 10.
    ΠŸΡ€ΠΈ запускС скСтча Π²Ρ‹Π΄Π°Π²Π°Π»Π°ΡΡŒ ошибка

    Π’ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ для Arduino, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ названия, Π½ΠΎ Ρ€Π°Π·Π½ΠΎΠ΅ содСрТимоС. Π‘ΠΊΠ΅Ρ‚Ρ‡ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ "Π½Π΅ Ρ‚Ρƒ" Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. Π’ΠΈΠ΄ΠΈΠΌΠΎ, ΠΌΠ½Π΅ попались Π½Π΅ Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π΄Π°Ρ‚Ρ‡ΠΈΠΊ BMP180 для измСрСния атмосфСрного давлСния ΠΈ ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π» скСтч.

    Π‘Ρ…Π΅ΠΌΠ° соСдинСний

    Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ адрСсов

    Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊ Arduino Π΄Π°Ρ‚Ρ‡ΠΈΠΊ BMP180 ΠΈ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ LCD1602. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ скСтч I2C scanner ΠΈ запуститС Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ адрСса устройств Π½Π° шинС I2C.

    ΠšΠ°ΠΆΠ΄Ρ‹Π΅ 5 сСкунд ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° сканируСт устройства ΠΈ Π²Ρ‹Π΄Π°Π΅Ρ‚ адрСса Π½Π° COM ΠΏΠΎΡ€Ρ‚. Π£ мСня Π½Π°ΠΉΠ΄Π΅Π½Ρ‹ Π΄Π²Π° устройства с адрСсами 0x3F ΠΈ 0x77. BMP180 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠΌΠ΅Π΅Ρ‚ адрСс 0x77, Π·Π½Π°Ρ‡ΠΈΡ‚ LCD ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΈΠΌΠ΅Π΅Ρ‚ адрСс 0x3F.
    Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… схСмах ΠΊΠ½ΠΈΠ³ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Ρ‹ мСстами ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сигналов SDA ΠΈ SCL ΠΊ ΠΏΠ»Π°Ρ‚Π΅ Arduino. Π”ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ: SDA β€” ΠΊ A4, SCL β€” ΠΊ A5. Если Ρƒ модуля BMP180 ΠΏΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ², Ρ‚ΠΎ Π½Π° Π²Ρ‹Π²ΠΎΠ΄ VIN подаСтся +5 Π’ΠΎΠ»ΡŒΡ‚ .

    ΠœΠΎΠ½Ρ‚Π°ΠΆΠ½Π°Ρ схСма

    Π’Π΅ΠΏΠ΅Ρ€ΡŒ собСритС схСму ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ. Π― использовал RGB свСтодиод с ΠΎΠ±Ρ‰ΠΈΠΌ ΠΊΠ°Ρ‚ΠΎΠ΄ΠΎΠΌ, смонтированный Π½Π° ΠΏΠ»Π°Ρ‚Π΅ вмСстС с рСзисторами 150 Ом. ΠžΠ±Ρ‰ΠΈΠΉ ΠΊΠ°Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρƒ GND, ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ Π²Ρ‹Π²ΠΎΠ΄Ρ‹ β€” ΠΏΠΎ схСмС. Π’Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния Π² скСтч Π½Π΅ трСбуСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΡ€ΠΊΠΎΡΡ‚ΡŒ свСтодиодов мСняСтся ΠΏΠΎ цикличСскому Π·Π°ΠΊΠΎΠ½Ρƒ.
    На схСмС ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ RGB свСтодиода с ΠΎΠ±Ρ‰ΠΈΠΌ Π°Π½ΠΎΠ΄ΠΎΠΌ, ΠΊΠ°ΠΊ Π² ΠΊΠ½ΠΈΠ³Π΅ .
    Если Π½Π° экранС LCD1602 Π½Π΅ Π²ΠΈΠ΄Π½ΠΎ символов, Ρ‚ΠΎ ΠΏΠΎΠΊΡ€ΡƒΡ‚ΠΈΡ‚Π΅ рСгулятор яркости. ΠŸΠΎΠ΄ΡΠ²Π΅Ρ‚ΠΊΠ° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π° потрСбляСт довольно большой Ρ‚ΠΎΠΊ, поэтому ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π»ΠΎΠΊ питания Π½Π° Ρ‚ΠΎΠΊ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 2 А. Π― использовал USB Ρ…Π°Π± с внСшним Π±Π»ΠΎΠΊΠΎΠΌ питания Π½Π° 2 А.
    Π’ схСмС использовал пьСзозвонок Π—ΠŸ-22. РСзистор, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΊ Π·Π²ΠΎΠ½ΠΊΡƒ, Π½Π° 100 Ом . Частоту Π·Π²ΡƒΠΊΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’Ρ‹Π±Ρ€Π°Π» частоту 1000 Π“Ρ†. Если Π²Π°ΠΌ попался Π·ΡƒΠΌΠΌΠ΅Ρ€ с фиксированной частотой Π·Π²ΡƒΠΊΠ°, Ρ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ просто ΠΏΠΎΠ΄Π°Ρ‡Π΅ΠΉ ΠΈ снятиСм напряТСния, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ свСтодиод. ΠŸΡ€ΠΈ запускС скСтча подаСтся ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ Π·Π²ΡƒΠΊΠΎΠ²ΠΎΠΉ сигнал. МоТно Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΏΠΎΠ΄Π°Ρ‡Ρƒ сигналов Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, раскоммСнтировав строку //bzz(100); Π² скСтчС.
    Π’ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ использовал Π΄Π°Ρ‚Ρ‡ΠΈΠΊ DHT11 Π² Π²ΠΈΠ΄Π΅ модуля с ΡƒΠΆΠ΅ смонтированным рСзистором 4.7 кОм. Π‘ΠΎΠΏΡ€ΠΎΡ‚ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ 4.7 Π΄ΠΎ 10 кОм.
    ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ Vcc модуля часов DS1302 ΠΊ шинС +5 Π’ΠΎΠ»ΡŒΡ‚. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ разряд Π±Π°Ρ‚Π°Ρ€Π΅ΠΈ, ΠΏΠΎ сути ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡΡ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ Arduino.

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° (скСтч)

    Для обслуТивания BMP180 использована Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° bmp085. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ давлСния зависит ΠΎΡ‚ высоты мСстности. Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ значСния атмосфСрного давлСния Π½Π°Π΄ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π°Ρ‚ΡŒ высоту. Для этого ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ строку dps.init(MODE_STANDARD, 10000, true); Π£ мСня высота Ρ€Π°Π²Π½Π° 100 ΠΌ (10000 см). Π€Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ расчСта давлСния взят ΠΈΠ· ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° BMP085_test2.ino Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ bmp085.

    Π‘ΠΊΠ΅Ρ‚Ρ‡ meteo_P

    #include
    #include
    #include
    #include "DHT.h"
    #include
    BMP085 dps = BMP085();
    long Pressure = 0, Altitude = 0;
    unsigned long time1 = 0;

    #define DHTPIN 10
    #define DHTTYPE 11 // 11 - DHT11, 22 - DHT22
    DHT dht(DHTPIN, DHTTYPE);

    int kCePin = 4; // RST DS1302
    int kIoPin = 3; // Data DS1302
    int kSclkPin = 2; // CLK DS1302
    DS1302 rtc(kCePin, kIoPin, kSclkPin);

    int REDpin = 9;
    int GREENpin = 6;
    int BLUEpin = 11;

    LiquidCrystal_I2C lcd(0x3f, 16, 2); // ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ свой адрСс 0x20...0xff address
    unsigned long memTime;
    int bzzPin = 8;

    void HumTempRead() {
    float hum = dht.readHumidity();
    float temp = dht.readTemperature();
    if (isnan(hum) || isnan(temp)) {
    Serial.println("Failed to read from DHT sensor!");
    lcd.setCursor(0, 1);
    lcd.print("H=--% T=---");
    lcd.setCursor(11, 1);
    lcd.print((char)223);
    lcd.setCursor(12, 1);
    lcd.print("C ");
    } else {
    lcd.setCursor(0, 1);
    lcd.print("H=");
    lcd.setCursor(2, 1);
    lcd.print(hum);
    lcd.setCursor(4, 1);
    lcd.print("% T=+");
    lcd.setCursor(9, 1);
    lcd.print(temp);
    lcd.setCursor(11, 1);
    lcd.print((char)223);
    lcd.setCursor(12, 1);
    lcd.print("C ") ;
    }
    }

    void setup_bzz() {
    pinMode (bzzPin, OUTPUT);
    }

    void bzz(int _bzzTime) {
    tone(bzzPin, 1000 , _bzzTime); // частота 1000 Π“Ρ†
    }

    void setup() {
    Serial.begin(9600);
    Wire.begin();
    delay(1000);

    dps.init(MODE_STANDARD, 10000, true); // 100 meters (высоту Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря Π² cΠΌ)

    dht.begin();
    setup_bzz();
    bzz(100);

    Lcd.init();
    lcd.backlight();
    lcd.home();
    // lcd.setCursor(0, 0);

    rtc.halt(false);
    rtc.writeProtect(false);

    //rtc.setDOW(FRIDAY); // Set Day-of-Week to FRIDAY установитС дСнь Π½Π΅Π΄Π΅Π»ΠΈ
    //rtc.setTime(4, 58, 0); // Set the time to 12:00:00 (24hr format) установитС врСмя
    //rtc.setDate(6, 8, 2010); // Set the date to August 6th, 2010 установитС Π΄Π°Ρ‚Ρƒ (число, мСсяц, Π³ΠΎΠ΄)
    }

    lcd.setCursor(8, 0);
    lcd.print(rtc.getTimeStr());

    if ((millis() - memTime > 2000) or (millis() < memTime)) { // DHT11/22 1 time each 2 seconds
    HumTempRead();
    memTime = millis ();
    }
    delay(100);

    if (((millis() - time1) / 1000.0) >= 1.0) {
    dps.calcTrueTemperature();
    time1 = millis();
    }
    dps.getPressure(&Pressure);
    Serial.print(" Pressure(Pa):");
    Serial.println(Pressure);

    long p2;
    int pi;
    p2 = (Pressure / 133.3224); // Па Π² ΠΌΠΌ Ρ€Ρ‚.ст.
    pi = trunc(p2); // отбрасываниС Π΄Ρ€ΠΎΠ±Π½ΠΎΠΉ части числа

    lcd.setCursor(0, 0);
    lcd.print("P=");
    lcd.setCursor(2, 0);
    lcd.print(pi); // Π²Ρ‹Π²ΠΎΠ΄ Π°Ρ‚ΠΌ. Π΄Π°Π²Π». Π½Π° LCD
    lcd.setCursor(5, 0);
    lcd.print("mm");
    // delay(3000);
    //bzz(100); // раскоммСнтируйтС, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ сигналы
    {
    for (int value = 0 ; value <= 255; value += 1) {
    analogWrite(REDpin, value);
    analogWrite(GREENpin, 255 - value);
    analogWrite(BLUEpin, 255);
    delay(5);
    }

    for (int value = 0; value <= 255; value += 1) {
    analogWrite(REDpin, 255);
    analogWrite(GREENpin, value);
    analogWrite(BLUEpin, 255 - value);
    delay(5);
    }

    for (int value = 0; value <= 255; value += 1) {
    analogWrite(REDpin, 255 - value);
    analogWrite(GREENpin, 255);
    analogWrite(BLUEpin, value);
    delay(5);
    }
    }
    }

    Π’ ΠšΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ² Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΠ°Ρ‡Π°Ρ‚ΡŒ скСтч ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ использовались Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅.

    Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² срСду Arduino IDE Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ LiquidCrystal_I2C.zip, bmp085.zip, DS1302.zip ΠΈ DHT.zip ΠΈΠ· скачанного Π°Ρ€Ρ…ΠΈΠ²Π°. Π’ мСню ΠΏΡ€ΠΎΠΉΠ΄ΠΈΡ‚Π΅ Π‘ΠΊΠ΅Ρ‚Ρ‡ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ.ZIP Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ... ΠΈ Π² ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ zip-Π°Ρ€Ρ…ΠΈΠ² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.
    Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скСтч meteo_P. Π—Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² скСтчС адрСс LCD1602 Π½Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈ сканировании ΡˆΠΈΠ½Ρ‹ I2C. Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ запуститС скСтч.
    Если скСтч Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», Ρ‚ΠΎ ΠΎΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΠΎΡ€Ρ‚Π° ΠΈ просмотритС Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ сообщСния. ΠŸΠΎΠ΄Π±Π΅Ρ€ΠΈΡ‚Π΅ высоту Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ dps.init(MODE_STANDARD, 10000 , true); , Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ значСния давлСния.
    НастройтС часы. РаскоммСнтируйтС строку //rtc.setTime(4, 58, 0); ΠΈ Π² скобках ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ врСмя (час, ΠΌΠΈΠ½ΡƒΡ‚Ρ‹ ΠΈ сСкунды Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ) ΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ скСтч Π² ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ врСмя установится, снова Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ эту строку ΠΈ ΠΎΠΏΡΡ‚ΡŒ пСрСзапуститС скСтч.
    Если вас Ρ€Π°Π·Π΄Ρ€Π°ΠΆΠ°Π΅Ρ‚ ΠΈΠ»Π»ΡŽΠΌΠΈΠ½Π°Ρ†ΠΈΡ Π½ΠΎΡ‡Π½ΠΈΠΊΠ°, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΅Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ² Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ Π² Ρ†ΠΈΠΊΠ»Π°Ρ… for Π² ΠΊΠΎΠ½Ρ†Π΅ скСтча. ΠŸΡ€ΠΈ delay(2); Ρ†ΠΈΠΊΠ» длится 2-3 сСкунды, ΠΏΡ€ΠΈ delay(5); β€” ΠΎΡ‚ 4 Π΄ΠΎ 5 сСкунд, ΠΏΡ€ΠΈ delay(30); β€” Π΄ΠΎ 15-16 сСкунд. Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π»ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ информация Π½Π° ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π΅.
    ΠŸΡ€ΠΈ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎΠΌ использовании мСтСостанции, Ρ‚.Π΅. Π±Π΅Π· ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ USB ΠΏΠΎΡ€Ρ‚Ρƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°, Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π² скСтчС строки со словами Serial ..., Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π² ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ COM ΠΏΠΎΡ€Ρ‚Π°.

    PS. Π’ скСтчС ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… ΠΊ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ DHT ΡƒΠΊΠ°Π·Π°Π½Π° строка опрСдСлСния #define DHTTYPE DHT 11 . Π‘ΠΊΠ΅Ρ‚Ρ‡ запускаСтся, Π½ΠΎ Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· нСсколько часов. Часы ΠΎΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ, индикация Π½Π΅ мСняСтся. Π’ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅ ΠΏΠΎΡ€Ρ‚Π° появляСтся нСвнятноС сообщСниС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ присутствуСт ссылка Π½Π° dht.
    Π’ этой строкС ΡƒΠ±Ρ€Π°Π» Π±ΡƒΠΊΠ²Ρ‹ DHT, Ρ‚.Π΅. сдСлал #define DHTTYPE 11 . ПослС этого скСтч стал Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎ.

    Π‘Ρ‚Π°Ρ‚ΡŒΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π° 25.06.2018 Π³.

    Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Π½Ρ‹Π΅ рСсурсы
    1. ΠŸΠ΅Ρ‚ΠΈΠ½ Π’.А. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ с использованиСм ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Arduino (Π­Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½ΠΈΠΊΠ°) 2-Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅, Π‘ΠΏΠ±. Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2015 464 с.
    2. ΠŸΠ΅Ρ‚ΠΈΠ½ Π’. А., Биняковский А. А. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ энциклопСдия Arduino. - М., Π”ΠœΠš ΠŸΡ€Π΅ΡΡ, 2017. - 152 с.
    3. http://arduinolearning.com/code/i2c-scanner.php
    4. http://arduino.ru/forum/programmirovanie/ds1302lcd1602
    5. http://Ρ€ΠΎΠ±ΠΎΡ‚Π΅Ρ…Π½ΠΈΠΊΠ°18.Ρ€Ρ„/ΠΊΠ°ΠΊ-ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ-lcd-1602-ΠΊ-arduino-ΠΏΠΎ-i2c/
    6. ΠΏΡ€ΠΈΠΌΠ΅Ρ€ BMP085_test2.ino ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ bmp085.zip
    7. http://proginfo.ru/round/
    8. http://homes-smart.ru/index.php?id=14&Itemid=149&option=com_content&view=article
    9. http://iarduino.ru/lib/datasheet%20bmp180.pdf
    10. http://it-donnet.ru/hd44780_dht11_arduino/

    Как-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³ΡƒΠ»ΠΈΠ²Π°ΡΡΡŒ ΠΏΠΎ Π³ΠΎΡ€ΠΎΠ΄Ρƒ ΡƒΠ²ΠΈΠ΄Π΅Π» Π½ΠΎΠ²Ρ‹ΠΉ ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠΈΠΉΡΡ ΠΌΠ°Π³Π°Π·ΠΈΠ½ радиоэлСктроники. Зайдя Π² Π½Π΅Π³ΠΎ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» большоС количСство шилдов для Ардуины Ρ‚.ΠΊ. Ρƒ мСня Π΄ΠΎΠΌΠ° Π±Ρ‹Π»Π° Arduino Uno ΠΈ Arduino Nano сразу ΠΏΡ€ΠΈΡˆΠ»Π° ΠΌΡ‹ΡΠ»ΡŒ ΠΏΠΎΠΈΠ³Ρ€Π°Ρ‚ΡŒΡΡ с ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ сигнала Π½Π° расстоянии. РСшил ΠΊΡƒΠΏΠΈΡ‚ΡŒ самый Π΄Π΅ΡˆΠ΅Π²Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ Π½Π° 433 ΠœΠ“Ρ†:

    ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ сигнала.


    ΠŸΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ сигнала.

    Записав ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ скСтч ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΏΡ€ΠΈΠΌΠ΅Ρ€ взят ΠΎΡ‚ сюда), Π²Ρ‹ΡΡΠ½ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠ΅ устройства ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΏΠΎΠ»Π½Π΅ ΠΏΠΎΠ΄ΠΎΠΉΡ‚ΠΈ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΡ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π°, Π²Π»Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ.

    ΠŸΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ характСристики:
    1. МодСль: MX -FS - 03V
    2. Радиус дСйствия (зависит ΠΎΡ‚ наличия ΠΏΡ€Π΅Π³Ρ€Π°ΠΆΠ΄Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚ΠΎΠ²): 20-200 ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²
    3. Π Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС: 3.5 -12Π’
    4. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ модуля: 19 * 19 ΠΌΠΌ
    5. ΠœΠΎΠ΄ΡƒΠ»ΡΡ†ΠΈΡ сигнала: AM
    6. ΠœΠΎΡ‰Π½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°: 10 ΠΌΠ’Ρ‚
    7. Частота: 433 ΠœΠ“Ρ†
    8. НСобходимая Π΄Π»ΠΈΠ½Π° внСшнСй Π°Π½Ρ‚Π΅Π½Π½Ρ‹: 25см
    9. ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (всСго Ρ‚Ρ€ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄Π°): DATA ; VCC ; зСмля.

    Π₯арактСристики ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠ³ΠΎ модуля:
    1. Π Π°Π±ΠΎΡ‡Π΅Π΅ напряТСниС: DC 5Π’
    2. Π’ΠΎΠΊ: 4ΠΌA
    3. Рабочая частота: 433,92 ΠœΠ“Ρ†
    4. Π§ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ: - 105Π΄Π‘
    5. Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ модуля: 30 * 14 * 7 ΠΌΠΌ
    6. НСбходима внСшняя Π°Π½Ρ‚Π΅Π½Π½Π°: 32 см.

    Π’ просторах ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π° сказано, Ρ‡Ρ‚ΠΎ Π΄Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° 2Кб/сСк ΠΌΠΎΠΆΠ΅Ρ‚ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π΄ΠΎ 150ΠΌ. Π‘Π°ΠΌ Π½Π΅ провСрял, Π½ΠΎ Π² Π΄Π²ΡƒΡ…ΠΊΠΎΠΌΠ½Π°Ρ‚Π½ΠΎΠΉ ΠΊΠ²Π°Ρ€Ρ‚ΠΈΡ€Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π²Π΅Π·Π΄Π΅.

    Аппаратная Ρ‡Π°ΡΡ‚ΡŒ домашнСй мСтСостанции

    ПослС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… экспСримСнтов Ρ€Π΅ΡˆΠΈΠ» ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ Arduino Nano Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹, влаТности ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ.


    Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ DS18D20 ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

    1) GND ΠΊ минусу ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°.
    2) DQ Ρ‡Π΅Ρ€Π΅Π· ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор ΠΊ Π·Π΅ΠΌΠ»Π΅ ΠΈ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ D2 Ардуины
    3) Vdd ΠΊ +5Π’.

    ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° MX -FS - 03V питаСтся ΠΎΡ‚ 5 Π’ΠΎΠ»ΡŒΡ‚, Π²Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ… (ADATA) ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ D13.

    К Ардуино Π£Π½ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΠ» LCD дисплСй ΠΈ Π±Π°Ρ€ΠΎΠΌΠ΅Ρ‚Ρ€ BMP085.


    Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π°Ρ€Π΄ΡƒΠΈΠ½ΠΎ ΡƒΠ½ΠΎ

    ΠŸΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ сигнала ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ D10.

    ΠœΠΎΠ΄ΡƒΠ»ΡŒ BMP085 - Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ атмосфСрного давлСния. Π”Π°Ρ‚Ρ‡ΠΈΠΊ позволяСт ΠΈΠ·ΠΌΠ΅Ρ€ΡΡ‚ΡŒ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ,Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ высоту Π½Π°Π΄ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ моря. Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: I2C. НапряТСниС питания Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° 1.8-3.6 Π’

    ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΊ Arduino Ρ‚Π°ΠΊΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ I2C устройства:

    • VCC - VCC (3,3 Π’);
    • GND - GND;
    • SCL - ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ 5;
    • SDA - ΠΊ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌΡƒ Π²Ρ‹Π²ΠΎΠ΄Ρƒ 4.
    • ΠžΡ‡Π΅Π½ΡŒ низкая ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ
    • ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈ I/O 3-5 Π’
    • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ влаТности 20-80% с 5% Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ
    • ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ 0-50 Π³Ρ€Π°Π΄. с 2% Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ
    • Частота опроса Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 1 Π“Ρ† (Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π·Π° Π² 1 сСк.)
    • Π Π°Π·ΠΌΠ΅Ρ€Ρ‹ 15.5ΠΌΠΌ x 12ΠΌΠΌ x 5.5ΠΌΠΌ
    • 4 Π²Ρ‹Π²ΠΎΠ΄Π° с расстояниСм ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΎΠΆΠΊΠ°ΠΌΠΈ 0.1"

    DHT ΠΈΠΌΠ΅Π΅Ρ‚ 4 Π²Ρ‹Π²ΠΎΠ΄Π°:

    1. Vcc (3-5V ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅)
    2. Data out - Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…
    3. НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ
    4. ΠžΠ±Ρ‰ΠΈΠΉ

    ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΊ D8 Ардуины.

    ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ домашнСй мСтСостанции

    ΠŸΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ измСряСт ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Ρ€Π°Π· Π² 10 ΠΌΠΈΠ½ΡƒΡ‚.

    НиТС ΠΏΡ€ΠΈΠ²ΠΎΠΆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ:

    /* ВСрсия скСтча 1.0 ΠžΡ‚ΡΡ‹Π»Π°Π΅ΠΌ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 10ΠΌΠΈΠ½. */ #include #include #include #define ONE_WIRE_BUS 2 //Пин ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° Даллас OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(&oneWire); DeviceAddress insideThermometer; void setup(void) { //Serial.begin(9600); vw_set_ptt_inverted(true); // НСобходимо для DR3100 vw_setup(2000); // УстанавливаСм ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ (Π±ΠΈΡ‚/с) sensors.begin(); if (!sensors.getAddress(insideThermometer, 0)); printAddress(insideThermometer); sensors.setResolution(insideThermometer, 9); } void printTemperature(DeviceAddress deviceAddress) { float tempC = sensors.getTempC(deviceAddress); //Serial.print("Temp C: "); //Serial.println(tempC); //Π€ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… для для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ int number = tempC; char symbol = "c"; //Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹ΠΉ символ опрСдСлСния Ρ‡Ρ‚ΠΎ это Π΄Π°Ρ‚Ρ‡ΠΈΠΊ String strMsg = "z "; strMsg += symbol; strMsg += " "; strMsg += number; strMsg += " "; char msg; strMsg.toCharArray(msg, 255); vw_send((uint8_t *)msg, strlen(msg)); vw_wait_tx(); // Π–Π΄Π΅ΠΌ ΠΏΠΎΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΊΠΎΠ½Ρ‡Π΅Π½Π° delay(200); } void loop(void) { for (int j=0; j <= 6; j++) { sensors.requestTemperatures(); printTemperature(insideThermometer); delay(600000); } } //ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ адрСса void printAddress(DeviceAddress deviceAddress) { for (uint8_t i = 0; i < 8; i++) { if (deviceAddress[i] < 16); //Serial.print("0"); //Serial.print(deviceAddress[i], HEX); } }

    ΠŸΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠ΅ устройство ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅, измСряСт Π΄Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΈ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρƒ Π² ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ Π½Π° дисплСй.

    #include #include LiquidCrystal lcd(12, 10, 5, 4, 3, 2); #include dht11 sensor; #define DHT11PIN 8 #include #include BMP085 dps = BMP085(); long Temperature = 0, Pressure = 0, Altitude = 0; void setup() { Serial.begin(9600); vw_set_ptt_inverted(true); // НСобходимо для DR3100 vw_setup(2000); // Π—Π°Π΄Π°Π΅ΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ΅ΠΌΠ° vw_rx_start(); // НачинаСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ эфира lcd.begin(16, 2); Wire.begin(); delay(1000); dps.init(); //lcd.setCursor(14,0); //lcd.write(byte(0)); //lcd.home(); } void loop() { uint8_t buf; // Π‘ΡƒΡ„Π΅Ρ€ для сообщСния uint8_t buflen = VW_MAX_MESSAGE_LEN; // Π”Π»ΠΈΠ½Π° Π±ΡƒΡ„Π΅Ρ€Π° if (vw_get_message(buf, &buflen)) // Если принято сообщСниС { // НачинаСм Ρ€Π°Π·Π±ΠΎΡ€ int i; // Если сообщСниС адрСсовано Π½Π΅ Π½Π°ΠΌ, Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ if (buf != "z") { return; } char command = buf; // Команда находится Π½Π° индСксС 2 // Числовой ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ начинаСтся с индСкса 4 i = 4; int number = 0; // ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° ΠΈΠ΄Π΅Ρ‚ посимвольно, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π±ΠΎΡ€ символов Π² число while (buf[i] != " ") { number *= 10; number += buf[i] - "0"; i++; } dps.getPressure(&Pressure); dps.getAltitude(&Altitude); dps.getTemperature(&Temperature); //Serial.print(command); Serial.print(" "); Serial.println(number); lcd.print("T="); lcd.setCursor(2,0); lcd.print(number); lcd.setCursor(5,0); lcd.print("P="); lcd.print(Pressure/133.3); lcd.print("mmH"); lcd.setCursor(0,1); lcd.print("T="); lcd.print(Temperature*0.1); lcd.print(" H="); lcd.print(sensor.humidity); lcd.home(); //delay(2000); int chk = sensor.read(DHT11PIN); switch (chk) { case DHTLIB_OK: //Serial.println("OK"); break; case DHTLIB_ERROR_CHECKSUM: //Serial.println("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: //Serial.println("Time out error"); break; default: //Serial.println("Unknown error"); break; } } }

    P.S. Π’ дальнСйшСм ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅:
    - Π΄Π°Ρ‚Ρ‡ΠΈΠΊ влаТности ΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΡƒ, ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…
    - Π΄Π°Ρ‚Ρ‡ΠΈΠΊ измСрСния скорости ΠΈ направлСния Π²Π΅Ρ‚Ρ€Π°.
    - Π² ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΎΠ΅ устройство Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ дисплСй.
    - ΠΏΡ€ΠΈΠ΅ΠΌΠ½ΠΈΠΊ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊ пСрСвСсти Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€.

    НиТС ΠΏΡ€ΠΈΠ»Π°Π³Π°ΡŽ Ρ„ΠΎΡ‚ΠΎ Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ:

    Бписок радиоэлСмСнтов

    ΠžΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π’ΠΈΠΏ Номинал ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Магазин Мой Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    ΠŸΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‰Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ.
    ΠŸΠ»Π°Ρ‚Π° Arduino

    Arduino Nano 3.0

    1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    Π”Π°Ρ‚Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

    DS18B20

    1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    РСзистор

    220 Ом

    1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    ΠœΠΎΠ΄ΡƒΠ»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° MX-FS-03V (433 ΠœΠ“Ρ†) 1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    РадиоприСмная Ρ‡Π°ΡΡ‚ΡŒ.
    ΠŸΠ»Π°Ρ‚Π° Arduino

    Arduino Uno

    1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    ΠŸΠΎΠ΄ΡΡ‚Ρ€ΠΎΠ΅Ρ‡Π½Ρ‹ΠΉ рСзистор 1 Π’ Π±Π»ΠΎΠΊΠ½ΠΎΡ‚
    РСзистор

    Π― тСстировал ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ части систСмы Π½Π° 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 аккумуляторов - это ΠΈΡ… долгая зарядка.

    ΠžΠ±Ρ‰Π°Ρ схСма мСтСостанции

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



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

    Π’Π΅Π³ΠΈ: Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ