ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… DS18B20 ΠΊ Ардуино: схСма ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ°

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ распрСдСлСнной систСмы измСрСния Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ β€” классичСская Π·Π°Π΄Π°Ρ‡Π° для Arduino ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ². ИспользованиС Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… сСнсоров DS18B20 позволяСт ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ мноТСство Ρ‚ΠΎΡ‡Π΅ΠΊ контроля ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ экономит рСсурсы ΠΏΠ»Π°Ρ‚Ρ‹.

Π“Π»Π°Π²Π½ΠΎΠ΅ прСимущСство Π΄Π°Π½Π½ΠΎΠΉ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ кроСтся Π² ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ OneWire, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ всСго ΠΎΠ΄Π½ΠΎΠΉ сигнальной Π»ΠΈΠ½ΠΈΠΈ для ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΌΠΎΠ½Ρ‚Π°ΠΆ ΠΈ сниТаСт количСство ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для создания слоТной систСмы ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… тСрмисторов, Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅. Π’Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ сСнсор ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΠ°Π»ΠΈΠ±Ρ€ΠΎΠ²ΠΊΠ° выполняСтся Π½Π° Π·Π°Π²ΠΎΠ΄Π΅ производитСля.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° OneWire ΠΈ адрСсация

Π’ основС систСмы Π»Π΅ΠΆΠΈΡ‚ шина, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ всС устройства. КаТдоС устройство ΠΈΠΌΠ΅Π΅Ρ‚ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ адрСс, Π·Π°ΡˆΠΈΡ‚Ρ‹ΠΉ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. Π­Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅Π½ Π² сСти.

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

Для ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π»ΠΈΠ½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ рСзистор. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½ΠΎΠΌΠΈΠ½Π°Π» 4.7 кОм, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соСдиняСт линию Π΄Π°Π½Π½Ρ‹Ρ… с ΠΏΠ»ΡŽΡΠΎΠ²Ρ‹ΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ. Π‘Π΅Π· этого элСмСнта связь Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ отсутствуСт.

ВСхничСскиС Π΄Π΅Ρ‚Π°Π»ΠΈ адрСса

АдрСс состоит ΠΈΠ· 8 Π±Π°ΠΉΡ‚. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ β€” ΠΊΠΎΠ΄ сСмСйства (0x10 для DS18x20), ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ 6 Π±Π°ΠΉΡ‚ β€” ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ сСрийный Π½ΠΎΠΌΠ΅Ρ€, послСдний Π±Π°ΠΉΡ‚ β€” ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ сумма CRC.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ стандартным опросом. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ постоянно ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΎΡ‚ кондСнсатора, Π½ΠΎ с ограничСниями ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ прСобразования.

НСобходимыС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ°

Для сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Π°ΠΌ потрСбуСтся ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ оборудования. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΌ элСмСнтом являСтся ΠΏΠ»Π°Ρ‚Π° Arduino (Uno, Nano, Mega) ΠΈ сами Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹Π΅ сСнсоры.

  • πŸ”Œ ΠŸΠ»Π°Ρ‚Π° Arduino Uno ΠΈΠ»ΠΈ Nano (Π»ΡƒΡ‡ΡˆΠ΅ с ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ Ρ‡ΠΈΠΏΠΎΠΌ CH340 ΠΈΠ»ΠΈ ATmega16U2).
  • 🌑️ Π”Π°Ρ‚Ρ‡ΠΈΠΊΠΈ DS18B20 (ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² мСталличСском корпусС для Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ Π²Π»Π°Π³ΠΈ).
  • πŸ“ РСзисторы 4.7 кОм (ΠΎΠ΄ΠΈΠ½ Π½Π° всю ΡˆΠΈΠ½Ρƒ, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ Π½Π° Π΄Π°Ρ‚Ρ‡ΠΈΠΊ для надСТности).
  • πŸ”Œ ΠŸΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΈ макСтная ΠΏΠ»Π°Ρ‚Π° для тСстирования схСмы.

Если Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ Π² агрСссивной срСдС, ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° качСство изоляции ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠ². Длинная шина Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ Π½Π°Π²ΠΎΠ΄ΠΊΠ°ΠΌ, поэтому экранированиС ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ.

πŸ“Š Бколько Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π²Ρ‹ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ?
1-2 ΡˆΡ‚ΡƒΠΊΠΈ
3-5 ΡˆΡ‚ΡƒΠΊ
6-10 ΡˆΡ‚ΡƒΠΊ
Π‘ΠΎΠ»Π΅Π΅ 10 ΡˆΡ‚ΡƒΠΊ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° работоспособности ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСнсора ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠ°ΠΉΠΊΠΎΠΉ β€” ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ этап. Иногда Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Π±Ρ€Π°ΠΊΠΎΠ²Π°Π½Π½Ρ‹Π΅ экзСмпляры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вносят хаос Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ всСй сСти.

Π‘Ρ…Π΅ΠΌΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚Π½ΠΎΠ΅ ΠΈ внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅

БущСствуСт Π΄Π²Π° основных способа Π·Π°ΠΏΠΈΡ‚Π°Ρ‚ΡŒ ΡΠ΅Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚Π½ΠΎΠ΅ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° энСргия бСрСтся нСпосрСдствСнно ΠΈΠ· Π»ΠΈΠ½ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Для этого Π²Ρ‹Π²ΠΎΠ΄ GND Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° соСдиняСтся с Π·Π΅ΠΌΠ»Π΅ΠΉ, Π° VDD с Π·Π΅ΠΌΠ»Π΅ΠΉ ΠΆΠ΅ (замыкаСтся), ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π·.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ΅Π½ β€” внСшнСС ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅. Π’ этом случаС всС Π²Ρ‹Π²ΠΎΠ΄Ρ‹ VDD ΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ с 5Π’ (ΠΈΠ»ΠΈ 3.3Π’ для ESP), Π° GND с Π·Π΅ΠΌΠ»Π΅ΠΉ. Π‘ΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ остаСтся ΠΎΠ±Ρ‰ΠΈΠΌ для всСх.

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Π° соотвСтствия Π²Ρ‹Π²ΠΎΠ΄ΠΎΠ² для стандартного ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ с внСшним ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ:

ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ DS18B20 НазначСниС ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Arduino ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅
VDD (1) ΠŸΠΈΡ‚Π°Π½ΠΈΠ΅ 5V ΠžΠ±Ρ‰ΠΈΠΉ для всСх
Data (2) Π”Π°Π½Π½Ρ‹Π΅ D2 (ΠΈΠ»ΠΈ любой Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΎΠΉ) Π§Π΅Ρ€Π΅Π· рСзистор 4.7ΠΊ
GND (3) ЗСмля GND ΠžΠ±Ρ‰ΠΈΠΉ для всСх

ΠŸΡ€ΠΈ ΠΏΠ°Ρ€Π°Π·ΠΈΡ‚Π½ΠΎΠΌ ΠΏΠΈΡ‚Π°Π½ΠΈΠΈ врСмя ΠΎΡ‚ΠΊΠ»ΠΈΠΊΠ° систСмы увСличиваСтся, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΡƒ трСбуСтся врСмя Π½Π° зарядку Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΉ Смкости. Для быстрых ΠΈΠ·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠΉ Π²Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ схСму с внСшним ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ.

Установка Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ поиск адрСсов

Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с DS18B20 Π² срСдС Arduino IDE Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π΄Π²Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ: OneWire ΠΈ DallasTemperature. Они доступны Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌ шагом послС сборки схСмы Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ поиск адрСсов ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… устройств. Π‘Π΅Π· этого Π²Ρ‹ Π½Π΅ смоТСтС ΠΎΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½ΠΎ.

#include <OneWire.h>

#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2

OneWire oneWire(ONE_WIRE_BUS);

DallasTemperature sensors(&oneWire);

void setup {

Serial.begin(9600);

sensors.begin;

Serial.println("Поиск адрСсов...");

Serial.print("НайдСно Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ²:");

Serial.println(sensors.getDeviceCount, DEC);

DeviceAddress addr;

for (int i = 0; i < sensors.getDeviceCount; i++) {

sensors.getAddress(addr, i);

Serial.print("АдрСс #"); Serial.print(i); Serial.print(":");

for (uint8_t j = 0; j < 8; j++) {

if (addr[j] < 16) Serial.print("0");

Serial.print(addr[j], HEX);

}

Serial.println;

}

}

Π—Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹. Они понадобятся для привязки ΠΈΠΌΠ΅Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ физичСским устройствам Π² Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.

β˜‘οΈ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ запуском

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

Если Π² консоли отобраТаСтся мСньшС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ‡Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ физичСски, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹. Часто ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° кроСтся Π² ΠΏΠ»ΠΎΡ…ΠΎΠΌ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Π½ΠΎΠΉ полярности ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· элСмСнтов.

НаписаниС основного ΠΊΠΎΠ΄Π° опроса

ПослС получСния адрСсов ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ написанию основного Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π΄Π΅ΡΡŒ Π²Π°ΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ опрос ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ устройства ΠΏΠΎ Π΅Π³ΠΎ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ID.

ИспользованиС массива адрСсов позволяСт ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π»Π΅Π³ΠΊΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ 10 ΠΈΠ»ΠΈ 20 Ρ‚ΠΎΡ‡Π΅ΠΊ контроля, просто Ρ€Π°ΡΡˆΠΈΡ€ΠΈΠ² массив ΠΈ Ρ†ΠΈΠΊΠ» ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ 5-7 Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Π½Π° Π΄Π»ΠΈΠ½Π½ΠΎΠΌ ΠΊΠ°Π±Π΅Π»Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ ошибки CRC. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚Π΅ сопротивлСниС подтяТки Π΄ΠΎ 2-3 кОм ΠΈΠ»ΠΈ Ρ€Π°Π·Π±Π΅ΠΉΡ‚Π΅ систСму Π½Π° сСгмСнты.

Ѐункция requestTemperatures ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ процСсс измСрСния. ПослС Π΅Ρ‘ Π²Ρ‹Π·ΠΎΠ²Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π°Ρ‚ΡŒ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°ΠΌ врСмя Π½Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ (Π΄ΠΎ 750 мс для максимального Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ).

void loop {

sensors.requestTemperatures;

delay(750); // Π–Π΄Π΅ΠΌ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΠΈ

float temp1 = sensors.getTempCByIndex(0);

float temp2 = sensors.getTempCByIndex(1);

Serial.print("T1:"); Serial.print(temp1);

Serial.print(" | T2:"); Serial.println(temp2);

}

Для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ точности ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ€Π΅Π΄Π½ΡΡ‚ΡŒ показания, дСлая нСсколько Π·Π°ΠΌΠ΅Ρ€ΠΎΠ² подряд. Π­Ρ‚ΠΎ особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² условиях ΡΠΈΠ»ΡŒΠ½Ρ‹Ρ… элСктромагнитных ΠΏΠΎΠΌΠ΅Ρ….

Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ

Бамая распространСнная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° β€” ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ значСния -196.00 ΠΈΠ»ΠΈ 85.00. ΠŸΠ΅Ρ€Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ связи, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΅Ρ‰Π΅ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ ΠΈΠ»ΠΈ Π΄Π°Ρ‚Ρ‡ΠΈΠΊ Π½Π΅ прогрСлся.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OneWire. НСкоторыС вСрсии ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ²Π°Ρ‚ΡŒ с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌΠΈ с прСрываниями Ρ‚Π°ΠΉΠΌΠ΅Ρ€ΠΎΠ².

  • πŸ” ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΠΎΠ΄Ρ‚ΡΠ³ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ рСзистора (Π±Π΅Π· Π½Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°).
  • πŸ” Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ зСмля (GND) общая для всСх ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² систСмы.
  • πŸ” ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΡˆΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ.

Если Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ"ΠΏΡ€ΠΎΠΏΠ°Π΄Π°ΡŽΡ‚" ΠΈΠ· сСти послС Π½Π°Π³Ρ€Π΅Π²Π°, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΈΠ»ΠΈ Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΠ°ΠΉΠΊΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΎΠ².

ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π°

Для ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… систСм ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° Π²Π°ΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ энСргопотрСблСниС. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Ардуино Π² спящий Ρ€Π΅ΠΆΠΈΠΌ ΠΌΠ΅ΠΆΠ΄Ρƒ Π·Π°ΠΌΠ΅Ρ€Π°ΠΌΠΈ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΎΠ΄Π»ΠΈΡ‚ Тизнь Π±Π°Ρ‚Π°Ρ€Π΅Π΅.

МоТно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° SD-ΠΊΠ°Ρ€Ρ‚Ρƒ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Ρƒ Ρ‚Π΅Π»Π΅ΠΌΠ΅Ρ‚Ρ€ΠΈΠΈ ΠΏΠΎ Wi-Fi/Bluetooth. ΠŸΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» OneWire Π½Π΅ ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ использованию Π΄Ρ€ΡƒΠ³ΠΈΡ… интСрфСйсов связи.

Π Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ DS18B20 Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² 12-Π±ΠΈΡ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ 0.0625Β°C). Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π΄ΠΎ 9 Π±ΠΈΡ‚ ускорит опрос Π² 8 Ρ€Π°Π·, Ρ‡Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½ΠΎ для быстрых систСм.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€ΠΎ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡŽ выбросов Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅. Π Π΅Π·ΠΊΠΈΠ΅ скачки Ρ‚Π΅ΠΌΠΏΠ΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹ физичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹, ΠΈ Ρ‚Π°ΠΊΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ стоит ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли Arduino Π½Π΅ Π²ΠΈΠ΄ΠΈΡ‚ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°?

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ схСму ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ: скорСС всСго, отсутствуСт рСзистор 4.7 кОм ΠΌΠ΅ΠΆΠ΄Ρƒ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΌ ΠΈ ΠΏΠΈΡ‚Π°Π½ΠΈΠ΅ΠΌ, Π»ΠΈΠ±ΠΎ ΠΏΠ΅Ρ€Π΅ΠΏΡƒΡ‚Π°Π½Ρ‹ ΠΊΠΎΠ½Ρ‚Π°ΠΊΡ‚Ρ‹ VDD ΠΈ GND. Π’Π°ΠΊΠΆΠ΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΏΠ»Π°Ρ‚Π° Π² мСню IDE.

МоТно Π»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ DS18B20 ΠΊ 3.3 Π²ΠΎΠ»ΡŒΡ‚Π°ΠΌ?

Π”Π°, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ соврСмСнных вСрсий Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ 3.0-5.5Π’. Однако ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ трСбованиям ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π°. Для ESP32/ESP8266 это ΡˆΡ‚Π°Ρ‚Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ.

Какова максимальная Π΄Π»ΠΈΠ½Π° кабСля для ΡˆΠΈΠ½Ρ‹?

ВСорСтичСски Π΄ΠΎ 100 ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΡ€ΠΈ ΠΈΠ΄Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… условиях. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅, Π±Π΅Π· усилитСлСй ΠΈ экранирования, ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° гарантируСтся Π½Π° дистанции Π΄ΠΎ 20-30 ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².