DS18B20 (DS18S20) – подключение к Arduino
#include <OneWire.h>
// OneWire DS18S20, DS18B20, DS1822 Temperature Example
//
// http://www.pjrc.com/teensy/td_libs_OneWire.html
//
// The DallasTemperature library can do all this work for you!
// http://milesburton.com/Dallas_Temperature_Control_Library
OneWire ds(10); // on pin 10 (a 4.7K resistor is necessary)
void setup(void) {
Serial.begin(9600);
}
void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
if ( !ds.search(addr)) {
Serial.println(“No more addresses.”);
Serial.println();
ds.reset_search();
delay(250);
return;
}
Serial.print(“ROM =”);
for( i = 0; i < 8; i++) {
Serial.write(‘ ‘);
Serial.print(addr[i], HEX);
}
if (OneWire::crc8(addr, 7) != addr[7]) {
Serial.println(“CRC is not valid!”);
return;
}
Serial.println();
// the first ROM byte indicates which chip
switch (addr[0]) {
case 0x10:
Serial.println(” Chip = DS18S20″); // or old DS1820
type_s = 1;
break;
case 0x28:
Serial.println(” Chip = DS18B20″);
type_s = 0;
break;
case 0x22:
Serial.println(” Chip = DS1822″);
type_s = 0;
break;
default:
Serial.println(“Device is not a DS18x20 family device.”);
return;
}
ds.reset();
ds.select(addr);
ds.write(0x44, 1); // start conversion, with parasite power on at the end
delay(1000); // maybe 750ms is enough, maybe not
// we might do a ds.depower() here, but the reset will take care of it.
present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
Serial.print(” Data = “);
Serial.print(present, HEX);
Serial.print(” “);
for ( i = 0; i < 9; i++) { // we need 9 bytes
data[i] = ds.read();
Serial.print(data[i], HEX);
Serial.print(” “);
}
Serial.print(” CRC=”);
Serial.print(OneWire::crc8(data, 8), HEX);
Serial.println();
// Convert the data to actual temperature
// because the result is a 16 bit signed integer, it should
// be stored to an “int16_t” type, which is always 16 bits
// even when compiled on a 32 bit processor.
int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
// “count remain” gives full 12 bit resolution
raw = (raw & 0xFFF0) + 12 – data[6];
}
} else {
byte cfg = (data[4] & 0x60);
// at lower res, the low bits are undefined, so let’s zero them
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
//// default is 12 bit resolution, 750 ms conversion time
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(” Temperature = “);
Serial.print(celsius);
Serial.print(” Celsius, “);
Serial.print(fahrenheit);
Serial.println(” Fahrenheit”);
}
Аналоговый датчик температуры TMP36, Подключение к Arduino
Датчик температуры на выходе которого формируется напряжение пропорционально температуре по шкале Цельсия. Датчик функционально схож с LM35 но не является его полным аналогом.
Характеристики датчика:
- Диапазон температур: −40°C — +125°C
- Точность температуры: типичная, в диапазоне -40°C … +125°C, ±2°C , при температуре 25°C: ±1°C.
- Линейность: ±0.5°C.
- Разрешение: 10.0 mV/°C
- Напряжение на выходе при 25°C: 750мВ.
- Напряжение питания: 2,7В — 5,5В.
Купить:
на Али: тут.
Особенности работы с датчиком:
Как и у похожего аналогового датчика LM35, на выходе формируется напряжение пропорционально температуре по шкале Цельсия, величина напряжения также 10.0 mV на 1°C, но в отличии от LM35, где отсчет начинается от 0°C и при 25°C датчик формирует напряжение 250mV,
TMP36 лишен основного недостатка LM35 при совместном использовании с Arduino, невозможность измерения отрицательных температур, но недостатки все таки пристукивают. При использовании встроенного в микроконтроллер источника опорного напряжения 1,1 вольт, максимальная температура датчика ограниченна 60°C но это всё еще пригодно для домашних или уличных термометров.
Крайне не рекомендуется использовать в качестве опорного напряжения для АЦП, напряжение питания или напряжение от встроенного стабилизатора на 3,3 вольта, подключенное на вход AREF, стабильность тех напряжений крайне низкая, что будет негативно сказываться на точности показаний датчика. Правильным решением будет использование встроенного источника опорного, а если верхняя граница в 60°C не достаточна, либо внешний источник опорного, например MAX6125, либо использовать другой, более подходящий, датчик температуры.
Схема подключения датчика:
Аналогична LM35.
Софт:
Датчик не требует сторонних библиотек, код с использованием встроенного источника опорного ниже. Код актуален для плат на контроллере ATmega328.
/// истоки тут https://learn.adafruit.com/tmp36-temperature-sensor/using-a-temp-sensor #define sensorPin A0 // вход датчика void setup() { Serial.begin(9600); // включаем встроенный источник опорного 1,1 вольт analogReference(INTERNAL); } void loop() { //забераем данные с аналогового входа int reading = analogRead(sensorPin); // конвертируем в вольты с учетом встроенного источника опорного float voltage = (reading * 1.1) / 1024.0; // переводим в градусы float temperatureC = (voltage - 0.5) * 100 ; // отправляем в монитор портаSerial.print(voltage); Serial.println(" volts"); Serial.print(temperatureC); Serial.println(" degrees C"); delay(1000); //ждем секунду }
код из видео с двумя датчиками.
float tempC; int reading; void setup() { analogReference(INTERNAL); // включаем внутрений источник опорного 1,1 вольт Serial.begin(9600); } void loop() { // получаем значение с аналогового входа A0 int reading = analogRead(A0); float voltage = (reading * 1.1) / 1024.0; float temperatureC = (voltage - 0.5) * 100 ; tempC = analogRead(A1) / 9.31; // переводим в цельсии Serial.print(" LM35: "); Serial.print(tempC); // отправляем в монитор порта Serial.print(" TMP36: "); Serial.println(temperatureC); delay(1000); // ждем секунду }
Видео:
Как подключить несколько > 10 беспроводных датчиков к Arduino
Я работаю над небольшим учебным проектом с arduino, в котором есть несколько датчиков, таких как двигатели, 7-сегментный дисплей, датчик температуры, ЖК-дисплей, кнопка и т. д., И все они должны говорить один IPhone или Ipad.
Моя первая мысль-купить несколько flora arduino, имеющих каждый датчик. Затем каждый независимый блок может подключаться через bluetooth. Но я не уверен, что это хорошая идея или нет. Как они все будут подключаться к одному устройству?
Идея подобна 10 arduino устройствам, посылающим и принимающим сигнал от одного iphone или Ipad.
ipad arduino bluetooth-lowenergy iotПоделиться Источник Rahul 07 августа 2017 в 13:15
1 ответ
- Не могу подключить HM-10 bluetooth к Arduino Uno
Я перепробовал все, правда, все. Модуль HM-10 (bluetooth) имеет свой светодиод и мигает, чем если вы подключитесь к нему из своего приложения, светодиод перестанет мигать, и вы получите UUID на iDevice. Проблема начинается, когда вы пытаетесь запрограммировать модуль с его UART и отправить AT ,…
- как подключить ledstrip к arduino
На Adafruit был пример о том, как подключить светодиодную ленту к arduino, но он сказал: Для более длинных полос, требующих более 1A, проводите питание непосредственно к полосе, а затем запускайте провода питания и заземления обратно к Arduino. Я не совсем понял его, поэтому сделал набросок на…
1
Как сказали пятачок и TomServo, двигатели, 7-сегментный дисплей, датчик температуры, жидкокристаллический дисплей, кнопка-это не датчики, которые можно рассматривать как периферийные устройства!
Теперь, несмотря на то, что это обширная тема, и вам потребуется много работы, чтобы выполнить это, это не трудно, если у вас есть встроенный опыт программирования c или C.
Вы должны изучить, как работают микроконтроллеры и как начать их программировать arduino сайт должен быть хорошей отправной точкой! https://www. arduino.cc/ванной/руководство/HomePage https://www.quora.com/Which-are-the-Best-books-on-learning-to-program-microcontroller
Теперь, когда вы настроили свою среду и запрограммировали простую программу, такую как переключение a LED, вы должны начать смотреть на коммуникационные протоколы,
Устройства/периферийные устройства взаимодействуют с master/Host microcontroller(Arduino) через набор протоколов, таких как SPI,UART, I2C и т. д. вам нужно будет решить, что ICs, например HDSP-5503-это семисегментный дисплей, который вы можете найти по адресу http://www.mouser.com/ProductDetail/ Broadcom-Avago/HDSP-5503/?qs=sGAEpiMZZMsx4%2fFVpd5sGZOLZP3%252bEaxq
Вы не можете просто купить arduino с тонной датчиков и подключить его к iPhone, iPhone потребует вашего пользовательского приложения для поддержки вашей платы проверьте этого парня! https://itunes.apple.com/us/app/hm10-bluetooth-serial-lite/id1030454675?mt=8
надеюсь, это поможет удаче!
Поделиться nikhil patil 07 августа 2017 в 21:03
Похожие вопросы:
Как подключить телефонное устройство Windows к устройству Arduino? Я хочу фиксировать расстояния от датчиков, используя телефонное устройство Arduino и Windows . Как я могу это сделать?
Как подключить OV7670 к Arduino Leonardo?
Я новичок в домене Arduino. У меня есть Arduino Leonardo и камера OV7670 ( http:/ / www.dx.com/p / ov7670-300kp-vga-camera-module-for-arduino-147742#. U17QZPl_tBl ). Что мне нужно, чтобы подключить…
Подключение нескольких устройств BLE для Arduino
Мне нужно подключить несколько устройств Bluetooth 4.0 к arduino. Существует модуль master, который является arduino + WiFi + HM-10 BLE модуль. Затем идут модули slave, которые изготавливаются с…
Не могу подключить HM-10 bluetooth к Arduino Uno
Я перепробовал все, правда, все. Модуль HM-10 (bluetooth) имеет свой светодиод и мигает, чем если вы подключитесь к нему из своего приложения, светодиод перестанет мигать, и вы получите UUID на…
как подключить ledstrip к arduino
На Adafruit был пример о том, как подключить светодиодную ленту к arduino, но он сказал: Для более длинных полос, требующих более 1A, проводите питание непосредственно к полосе, а затем запускайте…
Можно ли подключить несколько телефонов к одному и тому же Arduino через Bluetooth с помощью MIT App Inventor?
В настоящее время я работаю над проектом в MIT App Inventor, где я подключаю устройство Android к устройству Arduino через Bluetooth. Можно ли подключить несколько телефонов Android к этому Arduino,…
Как я могу проверить значения датчиков с помощью Arduino через веб-страницу?
Я ищу способ проверить значения датчиков (например, датчик температуры) с помощью Arduino через веб-страницу. Проверка значений датчиков на веб-странице более удобна, особенно когда пользователь…
Как подключить / подключить несколько датчиков к Arduino
Я хотел бы подключить два датчика к Arduino Mega, но я не знаю, как соединить контакты. Мои два датчика имеют 0-5V сигнала, каждый с положительным и отрицательным кабелем. Должен ли я подключить…
Подключение нескольких датчиков IMU к arduino DUE
Мне нужно подключить 5 IMU 9250 к Arduino Due. Я использовал библиотеку на этой веб-странице, и она хорошо работает только для одного датчика. https://www.switch-science.com/catalog/2845 / Мне нужно…
Как подключить несколько термопар через усилитель IC, мультиплексор к Arduino?
Мое приложение должно измерять температуру с 30 датчиков, а затем считывать данные с помощью Arduino. Даже если я использую Arduino UNO или Arduino Mega, рабочее напряжение составляет 5V(UNO),…
Цифровой датчик температуры Arduino
Описание
Цифровой датчик температуры (рисунок 1), входящий в состав ARDUINO SENSOR KIT, предназначен для контроля температуры воздуха в помещении.
Рисунок 1 – Цифровой датчик температуры Arduino.
Терморезистор является воспринимающим элементом датчика. Он соединен со входом микросхемы компаратора. С помощью подстроечного резистора выполняется настройка порога срабатывания компаратора (устанавливается температурный порог). При превышении температурой установленного порога на выходе D0 будет высокий уровень напряжения. Если температура мала, то на выходе D0 низкий уровень. Данный датчик может отправлять как цифровой, так и аналоговый сигнал. Технические характеристики цифрового датчика температуры представлены в таблице.
Таблица – Технические характеристики цифрового датчика температуры Arduino.
Параметр | Значение |
---|---|
Номинальное рабочее напряжение | 5 В |
Точность | ± 0.5 °C |
Рабочая температура | от 0 °C до 70 °C |
Габаритные размеры | 43 мм x 16 мм x 15 мм |
Подключение модуля пассивного зуммера
Распиновка цифрового датчика температуры представлена на рисунке 2.
Рисунок 2 – Распиновка цифрового датчика температуры Arduino.
Для его подключения потребуются:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- провода типа «папа-мама»;
- цифровой датчик температуры;
- USB кабель для подключения платы Arduino к персональному компьютеру с установленной средой Arduino IDE.
Схема подключения цифрового датчика температуры к плате Arduino представлена на рисунке 3.
Рисунок 3 – Подключение цифрового датчика температуры к Arduino UNO.
Схемы подключения цифрового датчика температуры к микроконтроллерам Arduino Uno, Arduino Nano или Arduino Mega принципиально ничем не отличаются.
Подключается цифровой датчик температуры к Arduino Uno следующим образом:
- GND – GND;
- VCC – 5V;
- AO, аналоговый выход – к пину A0;
- DO, цифровой выход – к пину 10.
Как правило к плате Arduino подключается один из выходов AO или DO.
После сборки электрической схемы, необходимо загрузить управляющую программу (скетч) в микроконтроллер. Затем можно открыть монитор порта и понаблюдать за получаемыми датчиком значениями.
Применение
Датчик применяется для контроля температуры воздуха в помещении. Используется в следующих случаях: регулятор температуры, автоматика систем отопления, автоматизация систем вентиляции. Благодаря выходу, на котором формируется сигнал с уровнем логической единицы или нуля в зависимости от того превышено установленное значение температуры или нет, цифровой датчик температуры удобно использовать в схемах на дискретных элементах без использования микроконтроллера.
Цифровые датчики температуры | 2 Схемы
Для измерения температуры различных сред — воздуха, жидкостей, твёрдых веществ, современная электроника использует специальные цифровые датчики, представляющие из себя готовые модули, подключаемые не только к Arduino, но и любой аналогичной микроконтроллерной платформе. Про их ассортимент на известных китайских (и не только) площадках, а также возможности каждого из модулей, мы сейчас и узнаем.
Датчик температуры KY-001 с интерфейсом 1-Wire
Этот датчик служит для точного измерения температуры. Связь с датчиком осуществляется по интерфейсу 1-Wire [1-2], что позволяет подключить к плате Arduino несколько подобных устройств, используя один вывод микроконтроллера [3-4]. Основой модуля является микросхема ds18b20 [5].
Размер модуля 24 х 15 х 10 мм, масса 1,3 г. Для подключения служит трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.
На плате имеется красный светодиод, который загорается, когда совершается обмен информации.
Потребляемый ток 0,6 мА при обмене информации и 20 мкА в ждущем режиме.
Подключение данного типа датчиков к Arduino хорошо описано во многих источниках [6-8]. В данном случае снова проявляются основные достоинства Arduino – универсальность и наличие огромного количества справочной информации. Для работы с датчиком потребуется библиотека OneWire Library [9]. Загрузив программу из [8] (в первом варианте программы есть ошибка – в заголовке кода нет подключения библиотеки #include <OneWire.h>) можно наблюдать в мониторе последовательного порта следующую информацию.
Так же автор тестировал код из [7], тут все заработало сразу, в мониторе последовательного порта можно прочитать информацию о типе подключенного датчика и собственно данные о температуре.
В целом очень полезный датчик, дающий возможность познакомиться на практике с интерфейсом 1-Wire. Корректные данные о температуре датчик выдает сразу, пользователю не нужно производить калибровку.
Модуль датчика температуры KY-013
Модуль представляет собой делитель напряжения, в одно из плеч которого включен терморезистор. Сопротивление датчика меняется при изменении температуры, второе плечо делителя образует резистор сопротивлением 10 кОм [10]. Подключение датчика аналогично фоторезистору [11].
Размер модуля 30 х 15 мм, масса 1 г. Для подключения служит трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.
При изменении температуры происходит изменение сопротивления терморезистора, что приводит к изменению уровня напряжения на сигнальном выводе модуля. Если загрузить в Arduino программу AnalogInput2, то в мониторе последовательного порта среды разработки Arduino IDE можно наблюдать, как меняются показания, снимаемые с аналогового входа платы Arduino. На иллюстрации изменение показаний обусловлено нагревом терморезистора подушечками пальцев.
В общем, это один из простейших аналоговых датчиков, наряду с фоторезистором и потенциометром это датчик с которого обычно начинается изучение работы со встроенным АЦП.
Модуль датчика влажности и температуры KY-015 [12-13]
Модуль позволяет измерять температуру и влажность, передача информации осуществляется по интерфейсу 1-Wire [1-2].
Размер модуля 27 х 15 х 8 мм, масса 2,2 г. Для подключения служит стандартный трехконтактный разъем. Центральный контакт – питание +5В, контакт «-» — общий, контакт «S» — информационный.
В ждущем режиме модуль потребляет около 60 мкА, и до 3 мА при обмене данными.
Для работы датчику необходима специальная библиотека [14], для проверки работоспособности датчика был использован код, взятый из следующего источника [15]. После загрузки можно наблюдать в мониторе последовательного порта данные о температуре и влажности. Изменения показаний датчика обусловлены тем, что автор поднес его ко рту.
Следует иметь в виду, что показания датчика влажности при быстром понижении влажности становятся корректными с задержкой, достигающей 2 мин. В целом этот модуль так и просится в состав простой метеостанции или системы умного дома.
Модуль датчика температуры KY-028 [16-17]
Этот датчик предназначен для грубого измерения температуры и обнаружения превышения заданного температурного порога.
Датчик имеет габариты 45 х 15 х 13 мм, массу 2,7 г, в печатной плате модуля предусмотрено крепежное отверстие диаметром 3 мм. Чувствительным элементом датчика является терморезистор. Индикация питания осуществляется светодиодом L1.
При срабатывании датчика загорается светодиод L2.
На плате датчика расположено четыре контакта. «A0» — аналоговый выход, выходное напряжение на котором меняется при изменении сопротивления терморезистора. Если в память Arduino UNO загрузить программу AnalogInput2, то можно наблюдать следующее изменение показаний датчика при его прижатии к коже человека.
Выводы питания «G» — общий провод, «+»– питание +5В. На цифровом входе «D0» присутствует низкий логический уровень, если температура не превышает заданного порога, при срабатывании датчика низкий уровень меняется на высокий. Регулировать положение порога срабатывания датчика можно подстроечным резистором. В дежурном режиме датчик потребляет около 4 мА, при срабатывании ток возрастает до 6 мА
Модуль можно легко настроить на срабатывание от тепла тела (используется программа LED_with_button).
В целом данная часть набора оставляет весьма приятное впечатление. Во всяком случае, ни один из датчиков температуры не является просто радиоэлементом без какой-либо обвязки, непонятно зачем приделанным к плате.
Литература
1) http://cxem.net/comp/comp53.php
2) http://cxem.net/comp/comp54.php
3) http://arduino-kit.ru/catalog/id/modul-datchika-temperaturyi-ds18b20
4) http://www.zi-zi.ru/module/module-ky001
5) http://cxem.net/ckfinder/userfiles/comments/43118_ds18b20-rus.pdf
6) http://mypractic.ru/urok-26-podklyuchenie-termodatchikov-ds18b20-k-arduino-biblioteka-onewire-tochnyj-arduino-termometr-registrator.html
7) http://arduino-diy.com/arduino-tsifrovoy-datchik-temperatury-DS18B20
8) http://it-chainik.ru/podklyuchenie-datchika-temperatury-ds18b20-k-arduino/
9) https://www.pjrc.com/teensy/td_libs_OneWire.html
10) http://www.zi-zi.ru/module/module-ky013
11) http://robocraft.ru/blog/arduino/68.html
12) http://arduino-kit.ru/catalog/id/modul-datchika-vlajnosti-i-temperaturyi
13) http://www.zi-zi.ru/module/module-ky015
14) https://drive.google.com/file/d/0B-DqglGyhA7eVlAyYkhUaXYwWGc/view
15) http://роботехника18. рф/датчик-температуры-и-влажности/
16) http://arduino-kit.ru/catalog/id/modul-datchika-temperaturyi_
17) http://www.zi-zi.ru/module/modul-ky-028
Все файлы (прошивки и документация) в едином архиве. Материал подготовил специально для сайта 2 Схемы — Denev.
Мониторинг температуры через интернет. Урок 1.
В первом вводном уроке мы наметили общую структуру будущей системы мониторинга температуры. Настало время разобраться в этом подробнее. В этом уроке мы еще раз вспомним, что представляет из себя технология передачи данных и подробно рассмотрим, как устроено передающее устройство.
Как работает система мониторинга температуры?Технология передачи данных выглядит следующим образом:
Рис. 1. Технология передачи данных
Передающее устройство имеет датчик, с помощью которого производятся замеры текущей температуры, и реле, которое может управлять внешней нагрузкой.
Измеренные значения температуры передаются устройством на сервер, где сохраняется в базу данных (БД). В ответ сервер присылает устройству команду для управления реле, которая так же хранится в его БД.
Пользователь, подключаясь к серверу через браузер, получает от него текущее значение температуры, а нажимая на кнопку включения/ выключения реле с помощью web-интерфейса, он отсылает соответствующую команду управления реле на сервер.
Таким образом, сервер является своеобразной прослойкой между пользователем и устройством для сохранения данных о команде реле и температуре, а также для предоставления пользователю визуального интерфейса.
Что представляет собой передающее устройство?Посмотрим на структурно-функциональную схему устройства:
Рис. 2. Структурно-функциональная схема передающего устройства
Контроллер – это «мозговой центр» системы. Он управляет процессом обмена данными с датчиком температуры, работой модема и состоянием выходного реле.
Датчик температуры DS18B20 по команде от контроллера производит замер температуры и передаёт полученные показания контроллеру.
GPRS модем SIM900 передаёт значение температуры, полученное от датчика, на сервер и получает в ответ команду для управления реле. Работой модема управляет контроллер. По его командам SIM900 подключается к GPRS, открывает HTTP-соединение, передаёт запросы и получает от сервера ответы. Кроме того контроллер управляет включением/выключением и перезагрузкой модема.
Передающее устройство имеет в своём составе выходное реле, с помощью которого можно управлять любой нагрузкой. Так, например, можно включить печку и с помощью неё регулировать температуру в помещении.
Плата Arduino MegaКонтроллер Arduino Mega был выбран не случайно. Он обладает всеми необходимыми характеристиками: достаточным объёмом оперативной памяти для выполнения операций с получаемыми через интернет текстовыми данными, несколькими аппаратными последовательными портами для организации обмена с модемом и вывода отладочной информации на терминал.
Рис. 3. Плата Arduino Mega
Платформа Arduino имеет удобную свободно-распространяемую среду разработки, позволяющую даже новичку, не имеющему глубоких знаний, быстро освоить программирование.
Подключение модема SIM900 к ArduinoМодем SIM900 выполняет связующую роль между контроллером передающего устройства и удалённым сервером.
Рис. 4. GPRS-модем SIM900
Плата модема совместима с платой контроллера. SIM900 соединяется с платой Arduino Mega с помощью разъёмов и получает от неё питание. Для работы модема необходима сим-карта любого оператора, обеспечивающая уверенный доступ к сети интернет в той местности, где будет работать передающее устройство.
Информационный обмен между Arduino Mega и модемом происходит по последовательному порту, использующему две линии связи (принимающую и передающую). Кроме того, контроллер может программно включать и выключать модем, подавая определённые последовательности импульсов на вход «PWRKEY» SIM900.
Рис. 5. Интерфейс связи контроллера и модема
Питание модуля SIM900 коммутируется через реле перезагрузки модема (одно из реле на релейном модуле).
Рис. 6. Управление аппаратной перезагрузкой модема с помощью контроллера
При зависании модема контроллер имеет возможность снять с него питание его с помощью реле перезагрузки модема. При этом происходит полная очистка внутренней памяти SIM900, что гарантирует возвращение к нормальной работоспособности после перезагрузки.
Подключение датчика температуры DS18B20 к ArduinoДля измерения температуры используется цифровой датчик DS18B20.
Рис. 7. Датчик температуры DS18B20
Он обменивается данными с контроллером по протоколу One Wire, который предусматривает передачу информации в обе стороны (от контроллера датчику и обратно) по одному сигнальному проводу. Шина данных должна быть подключена к источнику питания через подтягивающий резистор. Питание датчик также получает от Arduino.
Рис. 8. Подключение датчика температуры к контроллеру
Подключение модуля реле к ArduinoВыходное реле служит для управления нагрузкой. Это может быть печка, вентилятор, цепь запуска водонагревателя, горелки, электродвигателя или другого устройства. Например, можно установить передающее устройство в помещении, подключить к нему электрический обогреватель и включать его, когда необходимо прогреть помещение.
Реле позволяет коммутировать напряжение до 220В с силой тока 10А. Этого достаточно для большинства бытовых приборов.
Рис. 9. Релейный модуль
Релейный модуль состоит из двух реле. Одно из них будет выполнять функцию выходного реле (рис.10), а другое пригодится, чтобы организовать аппаратную перезагрузку модема (рис.6).
Релейный модуль оснащён опторазвязкой, которая защищает управляющий контроллер от повреждения при превышении коммутируемого напряжения или коротком замыкании.
Рис. 10. Подключение выходного реле к контроллеру
Реле имеет нормально-закрытый (НЗ) и нормально-открытый (НО) контакты. При появлении управляющего сигнала на входе In1 оба контакта меняют своё состояние на противоположное.
ЗаключениеНа этом пока всё! Надеемся, что было интересно! В следующем уроке мы перейдём от теории к практике и соберём передающее устройство. До скорой встречи на LAZY SMART! Чтобы не пропустить новую статью, вступай в нашу группу Вконтакте, а также подписывайся на наш канал YouTube.
Учебное пособие по датчику температуры
DS18B20 с Arduino и ESP8266
Привет, как дела, ребята! Акарш здесь из CETech.
Сегодня мы собираемся добавить новый датчик в наш арсенал, известный как датчик температуры DS18B20. Это датчик температуры, аналогичный DHT11, но имеющий другой набор применений. Мы будем сравнивать его с различными типами доступных датчиков температуры и рассмотрим технические характеристики этих датчиков.
Ближе к концу этого руководства мы будем сопрягать DS18B20 с Arduino и ESP8266 для отображения температуры.В случае Arduino температура будет отображаться на последовательном мониторе, а для ESP8266 мы будем отображать температуру на веб-сервере.
Давайте начнем с веселья сейчас.
Получите печатные платы для вашего проекта, изготовленныеВы должны проверить нашу печатную плату, чтобы получить печатные платы для вашего проекта, изготовленные онлайн.
Они используют надежные компоненты от аккредитованных поставщиков, таких как Arrow, Avnet, Future Electronics и т. Д., И предлагают разумные цены, в конечном итоге максимизирующие прибыль пользователя.Специализируясь на многослойных и жестко-гибких технологиях, их приоритетом является поддержание высоких стандартов качества.
Наша печатная плата фокусируется на малых и средних объемах заказов и обеспечивает очень конкурентоспособную цену для объемов от 1 до 100 квадратных метров. Вам просто нужно загрузить файлы в любом из доступных форматов (Gerber, .pcb, .pcbdoc или .cam), и прототипы печатных плат будут доставлены к вашему порогу.
Вы также можете проверить их партнера WellPCB за хорошими предложениями.
Сравнение различных типов датчиков температурыВ приведенном выше сравнении используются три датчика: DS18B20, DHT11 и термистор NTC, но здесь мы ограничим наше сравнение только цифровыми датчиками.Это не означает, что термистор NTC не так важен, как цифровые датчики. Фактически, развитие цифровых датчиков возможно только благодаря термистору NTC. Цифровые датчики состоят из термистора NTC, соединенного с некоторыми микропроцессорами, которые в конечном итоге выдают цифровой выход.
Основными пунктами сравнения являются: –
1. DS18B20 является водонепроницаемым и прочным, в то время как DHT11 – нет, поэтому в реальных сценариях и приложениях, где требуется контактное зондирование, обычно используется DS18B20, в то время как DHT11 используется в приложения на открытом воздухе.
2. DS18B20 выдает данные размером 9–12 бит, а DHT11 выдает данные размером 8 бит.
3. DS18B20 показывает только температуру, в то время как DHT11 может использоваться для получения температуры, а также влажности.
4. DS18B20 охватывает более широкий температурный диапазон по сравнению с DHT11, а также имеет лучшую точность по сравнению с DHT (+ 0,5 градуса по сравнению с +2 градусом для DHT11).
5. Когда дело доходит до цен, эти датчики имеют небольшую разницу между собой, так как два разных варианта DS18B20, которые представляют собой упакованные провода, и корпус TO92, стоят около 1 и 0 долларов.4, в то время как DHT11 стоит около 0,6 доллара.
Таким образом, мы можем сказать, что DS18B20 несколько лучше, чем DHT11, но лучший выбор может быть сделан только на основе приложения, для которого требуется датчик.
Вы можете получить больше информации о DS18B20, прочитав его техническое описание отсюда.
Подключение DS18B20 к ArduinoЗдесь мы будем подключать датчик температуры DS18B20 к Arduino, чтобы получать температуру и отображать ее на последовательном мониторе.
Для этого шага нам требуются – датчик температуры Arduino UNO, DS18B20 (в корпусе или в корпусе TO92, какой доступен) и резистор 4,7 кОм.
Датчик DS18B20 имеет 3 провода: черный, красный и желтый. Черный – для GND, красный – для Vcc, а желтый – для сигнального контакта
1. Подключите контакт GND или черный провод датчика к GND.
2. Подключите вывод Vcc или красный провод датчика к источнику питания 5 В.
3. Подключите сигнальный контакт или желтый провод к 5V через 4.7 кОм, а также подключите этот сигнальный вывод к цифровому выводу № 12 Arduino.
Для лучшего понимания вы можете обратиться к схеме, показанной выше.
Кодирование Arduino для отображения температурыНа этом этапе мы будем кодировать нашу плату Arduino для получения и отображения температуры через последовательный монитор.
1. Подключите плату Arduino UNO к ПК.
2. Перейдите отсюда в репозиторий Github для этого проекта.
3. В репозитории GitHub вы увидите файл с именем « Basic code », откройте этот файл, скопируйте код и вставьте его в вашу Arduino IDE.
4. Выберите правильную плату и COM-порт на вкладке «Инструменты» и нажмите кнопку загрузки.
5. После загрузки кода откройте Serial Monitor и выберите правильную скорость передачи (9600 в нашем случае), и вы сможете увидеть там температуру, измеренную DS18B20.
Вы можете наблюдать за повышением и понижением температуры, выполняя подходящие действия для повышения или стабилизации температуры, например, протирая металлическую часть или поджигая зажигалку рядом с металлической частью датчика упакованного типа.
Подключение DS18B20 к ESP8266На этом этапе мы будем подключать DS18B20 к модулю ESP8266 для измерения температуры.
Для этого шага нам понадобятся = модуль ESP8266, резистор 4,7 кОм и датчик температуры DS18B20 (в корпусе или корпусе TO92 в зависимости от наличия).
Подключения для этого шага аналогичны подключениям, выполненным с помощью Arduino.
1. Подключите контакт GND или черный провод датчика к GND.
2. Подключите контакт Vcc или красный провод датчика к контакту 3.Питание 3 В.
3. Подключите сигнальный контакт или желтый провод к 3,3 В через резистор 4,7 кОм, а также подключите этот сигнальный контакт к GPIO12, который является контактом D5 модуля.
Для лучшего понимания вы можете обратиться к схеме, показанной выше.
Настройка Arduino IDEДля кодирования ESP8266 с использованием Arduino IDE нам необходимо установить плату ESP8266 в дополнительные платы Arduino IDE, поскольку они не предустановлены. Для этого нам необходимо выполнить шаги, указанные ниже: –
1.Перейдите в Файл> Настройки
2. Добавьте http://arduino.esp8266.com/stable/package_esp8266com_index.json в URL-адреса диспетчера дополнительных плат.
3. Выберите Инструменты> Плата> Менеджер плат
4. Найдите esp8266 и установите плату.
5. Перезагрузите среду IDE.
Кодирование ESP8266 для отображения температурыНа этом этапе мы собираемся кодировать ESP8266 для чтения температуры, а после этого, вместо того, чтобы отображать эту температуру на последовательном мониторе, мы собираемся отображать ее на веб-сервере.
1. Отсюда перейдите в репозиторий Github для этого проекта.
2. В репозитории вы увидите код с именем « ESP8266 Temperature Web Server », вам просто нужно скопировать этот код и вставить его в Arduino IDE.
3. После вставки кода измените SSID и пароль в коде на коды вашей сети Wi-Fi.
4. На вкладке «Инструменты» выберите правильную плату и COM-порт, а затем нажмите кнопку загрузки.
5.Когда код будет загружен, откройте последовательный монитор IDE, а затем нажмите кнопку обновления на модуле ESP8266, вы получите запись на каком-то неизвестном языке, а под ним будет присутствовать IP-адрес. Вам необходимо скопировать этот IP-адрес, так как это адрес веб-сервера, который будет отображать температуру.
И все готово.Когда код загружен и IP-адрес получен. Откройте веб-сервер, используя этот IP-адрес
На веб-сервере будут отображаться показания температуры в градусах Цельсия, а также в градусах Фаренгейта.
Помимо веб-сервера, показания температуры также можно наблюдать на последовательном мониторе.
Вы заметите, что по мере изменения температуры рядом с датчиком, показания на веб-сервере также изменяются.
Вот и все для демонстрации.
Как использовать датчик температуры в Arduino
В текущем документе содержится некоторая полезная информация о датчиках температуры. С датчиком температуры Arduino вы можете измерять температуру окружающей среды. с достаточно высокой точностью.Документ содержит основы того, как температура датчик работает, тогда вы сможете узнать, как можно использовать датчик температуры с вашим Arduino и управляйте им с вашего компьютера с Ozeki 10.
Что такое датчик температуры?
Датчики температуры (термисторы) – это переменные резисторы, которые меняют свое сопротивление с температурой. Они классифицируются по тому, как их сопротивление реагирует на изменения температуры.
Как работает датчик температуры?
В термисторах с отрицательным температурным коэффициентом (NTC) сопротивление уменьшается с увеличением повышение температуры.В термисторах с положительным температурным коэффициентом (PTC), сопротивление возрастает с повышением температуры. Термисторы NTC являются наиболее распространенными, и именно этот тип мы будем использовать в этом руководстве. Термисторы NTC изготавливаются из полупроводниковый материал (например, оксид металла или керамика), который нагревается и спрессован с образованием термочувствительного проводящего материала.
Проводящий материал содержит носители заряда, которые позволяют току течь через него. Высокие температуры заставляют полупроводниковый материал выделять больше носителей заряда. В термисторах NTC, изготовленных из оксида железа, электроны являются носителями заряда. В термисторах NTC из оксида никеля носителями заряда являются электронные дырки.
Схема подключения датчика температуры Arduino
Рисунок 1 – Схема подключения датчика температуры Arduino
Как использовать датчик температуры Arduino в Ozeki
Измеряет или устанавливает температуру.Данные могут передаваться между устройством регулятора температуры. и любое выбранное соединение Ozeki. Эти данные могут быть командой к контроллеру температуры или событием от него. Например, вы можете установить желаемую температуру с помощью команды и после этого ваш Ozeki 10 может получать события о текущей температуре и состоянии нагревателя. Чтобы использовать датчик температуры в Ozeki, вам сначала необходимо загрузить Ozeki Robot Developer. Озэки Robot Developer установит библиотеки Arduino, необходимые для эффективного использования этого датчика.
Скачать Ozeki Robot Developer
После того, как разработчик Ozeki Robot будет установлен, вам необходимо загрузить код управления датчиком температуры к вашему Arduino. Вы можете найти код и инструкции по загрузке на следующих страницах. Процесс загрузки состоит из двух шагов: сначала вам нужно отформатировать EEPROM Arduino, тогда вам нужно загрузить контрольный код. Процедура очень проста, требуется всего лишь несколько секунд.
Загрузите код датчика температуры в Arduino Uno
Загрузите код датчика температуры в Arduino Mega 2560
Загрузите код датчика температуры в Arduino Nano
Датчики Arduino и Ozeki будут обмениваться данными через USB-порт, используя протокол датчика температуры Ozeki.Этот Протокол позволяет использовать датчик прямо на вашем ПК. Вы сможете управлять этим датчиком через Интернет. пользовательский интерфейс или вы сможете общаться с ним с помощью Ozeki Chat. Вы можете узнать больше об управлении чатом на следующей странице.
Как общаться с датчиком температуры в чате
Важно понимать управление чатом, потому что когда вы создаете робота, вы хотите управлять этим датчиком, отправляя и получая сообщения.если ты откройте приложение Ozeki Robot Developer, вы увидите, кому вы можете написать C # .Net программа для работы с этим датчиком.
Шаги подключения
- Подключите датчик температуры к Arduino, следуя схеме подключения
- Подключите плату Arduino к компьютеру
- Проверить COM-порт в списке устройств Windows
- Откройте приложение Arduino на своем компьютере
- Загрузить пример кода в Arduino
- Откройте https: // localhost: 9515 в своем браузере
- Выберите подключение датчика температуры
- Проверить датчик путем измерения температуры объекта
Обзор системы
Предлагаемая нами система состоит из датчика температуры, подключенного к аналоговому порту. вашего Arduino.Arduino будет отвечать за чтение данных с этого устройства. в реальном времени. Мозг системы будет работать на ПК (рисунок 2). На ПК Озэки 10 смогут управлять общением. Вы можете легко запустить Ozeki 10 с помощью веб-браузера.
Рисунок 2 – Системная конфигурация датчика температуры, подключенного к ПК с помощью Arduino
Предварительные требования
- Термистор NTC
- конденсатор 10 мкФ и 4.Резистор 7кОм
- Ozeki 10 установлен на вашем компьютере
- Программируемая плата (Arduino Mega / Nano / Uno)
- Кабель USB между платой и компьютером
Шаг 1. Подключите датчик температуры к Arduino
Вы можете увидеть, как подключить термистор NTC на любую из следующих досок:
Ваш браузер не поддерживает видео тег.
После подключения подключите плату к компьютеру!
Шаг 2 – Загрузите код в микроконтроллер
(Вот код для загрузки)
Ваш браузер не поддерживает видео тег.
Шаг 3 – Запустите Ozeki 10, чтобы попробовать датчик температуры
Ваш браузер не поддерживает видео тег.
Шаг 4 – Настройте датчик температуры в Ozeki 10
Чтобы иметь возможность настроить датчик температуры (подключенный к Arduino) в Ozeki 10, который установлен на вашем компьютере, вам необходимо открыть графический интерфейс пользователя (GUI) Ozeki 10. Вы можете открыть графический интерфейс, введя URL-адрес компьютера в свой веб-браузер.Например, если у нашего ПК IP-адрес 192.168.1.5, мы бы введите http://192.168.1.5:9513 в наш веб-браузер.
Шаг 5 – Изучите протокол датчика температуры
Контроллер температуры может связываться с Ozeki через следующий протокол.
Ссылки:
https://www.create.arduino.cc
https://www.circuitbasics.com
Как использовать датчик температуры MCP9808 I2C с Arduino
Когда дело доходит до датчиков температуры для Arduino, мы обычно думаем о DS18B20.Тем не менее, MCP9808 является одним из наиболее точных датчиков температуры, который мы когда-либо видели, благодаря его широкому рабочему диапазону и точности + 0,0625 ° C. Кроме того, этот датчик температуры отлично работает с Arduino с его протоколом связи I2C!
Следовательно, можно с уверенностью сказать, что нам нужно будет проверить, о чем это все, в сегодняшнем посте, вместе с руководством по Arduino, которое поможет вам немедленно приступить к работе!
Введение в MCP9808Ранее мы установили, что датчик температуры MCP9808 I2C является точным / точным вариантом, но он может предложить еще больше.Он поставляется с программируемыми пользователем регистрами, которые позволяют выбирать настройки (например, режимы низкого энергопотребления или отключения), обеспечивая гибкость для ваших приложений измерения температуры.
Являясь цифровым датчиком температуры, он легко преобразует температуру -20 ° C и + 100 ° C в цифровое слово для облегчения считывания показаний микроконтроллера.
По своим характеристикам у вас есть:
- Точность считывания:
- ± 0,25 (типовая) от -40 ° C до + 125 ° C
- ± 0.5 ° C (максимум) от -20 ° C до 100 ° C
- ± 1 ° C (максимум) от -40 ° C до + 125 ° C
- Как уже упоминалось, выбираемое пользователем разрешение измерения:
- +0,5 ° C, + 0,25 ° C, + 0,125 ° C, + 0,0625 ° C
- Программируемые пользователем пределы температуры:
- Температурный интервал и пределы критических температур
- Типичный диапазон рабочего напряжения от 2,7 В до 5,5 В
- Типичный рабочий ток 200 мкА
Для своих приложений вы можете использовать MCP9808 для:
- Проекты по общему измерению температуры
- Промышленное использование, такое как морозильные камеры, холодильники, пищевая промышленность
- Персональные компьютеры и серверы
- Бытовая электроника
- Карманные / портативные устройства
- Периферийные устройства для ПК
Если вам интересно узнать Полные характеристики и схемы MCP9808 вы можете найти здесь!
Начало работы с MCP9808Чтобы начать работу с датчиком MCP9808, вам сначала понадобится модуль, основанный на нем.На рынке есть ряд коммутационных плат, модулей и т. Д., Но сегодня я порекомендую высокоточный датчик температуры Grove – I2C (MCP9808) здесь, в Seeed!
Во-первых, взглянем на его особенности:
Поскольку это интегрированный модуль MCP9808, вы увидите сходство:
- Высокая точность ± 0,25 (номинал) от -40 ° C до + 125 ° C ± 0,5 ° C (максимум) от -20 ° C до 100 ° C ± 1 ° C (максимум) от -40 ° C до +125 ° C
- Выбираемое пользователем разрешение измерения + 0.5 ° C, + 0,25 ° C, + 0,125 ° C, + 0,0625 ° C
- Программируемый пользователем выход температурного предупреждения
- I 2 Интерфейс C
Зачем выбирать этот модуль MCP9808 вместо других коммутационных плат?
Простота сопряжения MCP9808 с Arduino через собственную систему Grove компании Seeed
СистемаGrove является собственной инициативой Seeed, в основном направленной на то, чтобы помочь таким же пользователям, как вы, легко использовать различные модули с помощью нашей системы plug and play!
Это означает, что больше не нужно использовать запутанные и сложные перемычки, пайку, макетную плату или отладку электронных схем!
- MCP9808 Подключение коммутационной платы с Arduino
- Подключение датчика Grove MCP9808 к Arduino
Как и наш высокоточный температурный датчик Grove – I2C (MCP9808) предлагает гораздо более простое сопряжение с Arduino по сравнению с опцией коммутационной платы на плате левый?
- Что ж, все, что вам нужно, это Grove Base Shield вместе с вашим Arduino, и вперед! Переключитесь на использование Grove сегодня же!
Теперь, когда вы увидели, насколько просто сопряжение с Arduino, вот пошаговое руководство, которое поможет вам начать работу!
Примечание. Этот модуль совместим с другими микроконтроллерами, но пользователи должны написать свою собственную программную библиотеку, поскольку невозможно предоставить программную библиотеку / демонстрационный код для всех платформ.
Что вам понадобится:
Seeeduino – это собственная плата Seeed для Arduino, созданная с относительными преимуществами по сравнению с исходной
.- Если вы не хотите покупать Seeeduino, это руководство по-прежнему применимо для следующих плат Arduino: Arduino UNO, Arduino Mega, Arduino Leonardo, Arduino 101, Arduino Due
- Шаг 1: Подключите Grove – Высокоточный датчик температуры I2C (MCP9808) к порту I2C Grove – Base Shield
- Шаг 2: Подключите Grove – Base Shield к Seeeduino
- Шаг 3: Подключите Seeeduino к ПК через USB кабель
После выполнения вышеуказанных действий он должен выглядеть примерно так:
Программные конфигурации с Arduino Код:- Шаг 1: Загрузите библиотеку Grove MCP9808 с Github
- Шаг 2: Установите библиотеку Arduino
- Если вы не знаете, как установить библиотеку, обратитесь к нашему руководству здесь
- Шаг 3: Перезапустите Arduino IDE, открыть пример по пути: Файл -> Примеры -> Датчик температуры Grove MCP9808 -> MCP9808_demo_with_limit
- Шаг 4: Загрузите демонстрацию
- Если вы не знаете, как загрузить код, обратитесь к нашему руководству здесь
- Шаг 5: Откройте Serial Monitor Arduino IDE, нажав Tool -> Serial Monitor.Или нажмите CTRL + Shift + M одновременно.
Тогда вы должны получить следующий результат:
инициализация датчика !!
значение температуры: 29.31
значение температуры: 29.31
значение температуры: 29.31
значение температуры: 29,25
значение температуры: 29,25
значение температуры: 29,25
значение температуры: 29,25
значение температуры: 29,25
значение температуры: 29,19
значение температуры: 29,25
Использование ALE Pad Этот модуль MCP9808 имеет 3 набора контактных площадок ALE на задней стороне печатной платы, как вы можете видеть на распиновке выше.Если вас интересует, как его использовать, посетите нашу вики-страницу здесь!
СводкаВ целом, датчик MCP9808 – отличный выбор для ваших потребностей в измерении температуры. Будучи цифровым датчиком температуры с высокой точностью, вам не придется беспокоиться о том, что вы не получите точных результатов для ваших проектов микроконтроллеров!
Однако, чтобы испытать MCP9808, вам понадобится модуль для сопряжения с Arduino или Raspberry Pi. Поэтому я настоятельно рекомендую высокоточный датчик температуры Grove – I2C (MCP9808) просто благодаря простоте сопряжения по сравнению с другими коммутационными платами MCP9808!
Следите за нами и ставьте лайки:
Продолжить чтение
Список совместимых с Arduino датчиков температуры
Введение
После мигания светодиодов и управления реле с помощью Arduino каждый любитель, который активно занимается своими проектами, планирует построить метеостанцию.Ему не нужно предсказывать количество осадков или штормов, а просто измерять базовые параметры, такие как температура и влажность.
Датчик температурыи датчик влажности (часто они поставляются в одной упаковке, но доступны и незаметные компоненты) являются основными компонентами метеостанции Arduino. Поскольку эта статья посвящена датчикам температуры, совместимым с Arduino, давайте сосредоточимся на них.
Измерение температуры объекта или комнаты с помощью Arduino – очень полезный проект. Вы можете постоянно отслеживать изменения температуры и записывать данные для дальнейшего анализа.
На рынке доступно множество датчиков температуры, совместимых с Arduino. Некоторые из них относительно дешевы и просты в использовании, а некоторые дороги с большой точностью.
Я составил список некоторых наиболее часто встречающихся датчиков температуры для Arduino, с некоторыми основными характеристиками, указанными для каждого датчика. Эти датчики могут использоваться с другими платами разработки, такими как STM32F103C8T6 Blue Pill Board, Raspberry Pi, ESP8266 или ESP32.
Итак, если вы ищете идеальный датчик температуры Arduino для своего проекта DIY, просмотрите список и примите решение.
LM35
Сегодня существует множество датчиков температуры, предназначенных для домашних хозяйств и любителей. Но несколько лет назад, если говорить о датчике температуры, то LM35 – единственный выбор (по крайней мере, для меня).
Аналоговый датчик температуры LM35 IC
Это один из самых популярных доступных датчиков температуры, который используется даже сегодня. LM35 – это аналоговый датчик температуры, который калибруется непосредственно в градусах Цельсия. Выходное аналоговое напряжение линейно пропорционально температуре в градусах Цельсия.
Передаточная функция LM35 –
V OUT = 10 мВ / 0 C x T, где V OUT – выходное напряжение, T – температура в 0 C.
Передаточная функция означает, что при повышении температуры на каждый градус Цельсия выходное напряжение увеличивается на 10 мВ.
Есть два других датчика температуры, подобных LM35. Это LM34, который откалиброван для температуры в градусах Фаренгейта, и LM335, который откалиброван для температуры в Кельвинах.
Важные характеристики LM35:
Диапазон | -55 0 C до 150 0 C |
Точность | ± 0,5 0 C при 25 0 C |
Диапазон рабочего напряжения | от 4 В до 30 В |
Протокол связи | Аналоговый выход |
Приложения | Источники питания |
Системы отопления, вентиляции и кондиционирования воздуха | |
Бытовая техника | |
Системы управления батареями |
DHT11
Одним из часто используемых датчиков температуры в проектах Arduino является датчик DHT11.Это датчик относительной влажности и, следовательно, он может измерять как температуру, так и влажность.
DHT11 Датчик температуры и влажности
Внутренне датчик DHT11 состоит из резистивного датчика влажности, термистора NTC (датчика температуры) и 8-битного микроконтроллера, который выполняет операцию АЦП для создания цифрового выхода.
Говоря о цифровом выходе, датчик DHT11 обменивается данными по однопроводному протоколу. Диапазон и показатели точности датчика температуры и влажности DHT11 не так впечатляют по сравнению с его старшим братом DHT22.
Для получения дополнительной информации о взаимодействии датчика температуры DHT11 с Arduino. Посмотрите этот проект.
Важные характеристики DHT11:
Диапазон температур | 0 0 C до 50 0 C |
Точность температуры | ± 2 0 С |
Диапазон влажности | 20-90% относительной влажности |
Точность влажности | ± 5% относительной влажности |
Диапазон рабочего напряжения | 3.От 3 В до 5,5 В |
Протокол связи | Один провод |
Приложения | Системы домашней автоматизации |
Системы отопления, вентиляции и кондиционирования воздуха | |
Метеостанции |
DHT22
Хотя DHT11 – отличный выбор для простых приложений, его диапазон и точность могут быть ограничивающим фактором. Следовательно, DHT22, который также является датчиком относительной влажности (следовательно, измеряет как влажность, так и температуру), считается лучшей альтернативой.
DHT22 Датчик температуры и влажности
Хотя и DHT11, и DHT22 кажутся одинаковыми, между ними есть одно главное различие. DHT11 – это датчик относительной влажности резистивного типа, а DHT22 – это датчик относительной влажности емкостного типа.
Часто DHT11 доступен в корпусе синего цвета, а DHT22 – в корпусе белого цвета. Распиновка датчика DHT22 такая же, как и у DHT11. Из-за лучшего диапазона и точности DHT22 дороже, чем DHT11.
Важные характеристики DHT22:
Диапазон температур | -40 0 C до 80 0 C |
Точность температуры | ± 0,5 0 С |
Диапазон влажности | 0 – 100% относительной влажности |
Точность влажности | ± 2% относительной влажности |
Диапазон рабочего напряжения | 3.От 3 В до 6 В |
Протокол связи | Один провод |
Приложения | Системы домашней автоматизации |
Системы отопления, вентиляции и кондиционирования воздуха | |
Метеостанции |
Датчик температуры DHT11 и DHT22 можно подключить к кабелю длиной до 20 м для дистанционного измерения температуры.
TMP36
TMP36 – еще один аналоговый датчик температуры, очень похожий на известный датчик температуры LM35.Это низковольтный датчик температуры с начальным диапазоном рабочего напряжения 2,7 В и температурой, откалиброванной в 0 C.
TMP36 Датчик температуры IC
TMP36 имеет масштабный коэффициент 10 мВ / 0 C, который идентичен LM35, но значения диапазона и точности немного меньше, чем у LM35. Тем не менее, это отличная альтернатива LM35, если вы заинтересованы в покупке аналогового датчика температуры.
Важные характеристики TMP36:
Диапазон | -40 0 C до 125 0 C |
Точность | ± 2 0 C при 25 0 C |
Диапазон рабочего напряжения | 2.От 7 В до 5,5 В |
Протокол связи | Аналоговый выход |
Приложения | Источники питания |
Системы тепловой защиты | |
Пожарная сигнализация | |
Мониторы системы питания | |
Управление температурой процессора |
БМП180
По сути, датчик барометрического давления BMP180 от Bosch также может измерять температуру.Это делает его лучшим датчиком для интеграции в проекты мониторинга погоды или метеостанции.
Модуль датчика давления и температуры BMP180
Поскольку BMP180 является датчиком давления, мы также можем измерять высоту (чем выше высота, тем ниже давление). Благодаря своей точности, стабильности и надежности (по отношению к электромагнитной совместимости) датчик BMP180 часто используется в мобильных телефонах, системах GPS-навигации и других наружных устройствах.
Внутри BMP180 объединяет пьезорезистивный датчик, АЦП, блок управления с EEPROM и последовательный интерфейс в форме I 2 C.
Через шину I 2 C датчик передает данные как о давлении, так и о температуре.
Важные характеристики BMP180:
Диапазон давления | от 300 гПа до 1100 гПа (от 9000 до -500 м относительно уровня моря) |
Точность давления | от -4 гПа до 2 гПа |
Диапазон температур | 0 0 C до 65 0 C |
Точность температуры | ± 2 0 С |
Диапазон рабочего напряжения | 1.От 8 В до 3,6 В (для датчика) от 3,3 В до 5 В (для модуля) |
Протокол связи | Я 2 С |
Приложения | Мобильные телефоны |
Системы навигации GPS | |
КПК | |
Прогноз погоды | |
Спортивные устройства |
DS18B20
DS18B20 – еще один цифровой датчик температуры, и он по-своему уникален.Во-первых, он обменивается данными по шине 1-Wire (разработанной Dallas Semiconductor), что означает, что для связи требуется только одна линия данных (и, конечно же, провод GND).
ИС датчика температуры DS18B20 и водонепроницаемый датчик
Вторая уникальная особенность заключается в том, что датчик DS18B20 может получать питание от самой линии передачи данных (так называемое паразитное питание). Это устраняет необходимость во внешнем питании. Третья уникальная особенность – вы можете выбрать разрешение вывода от 9 до 12 бит.
Другой важной особенностью является то, что каждый датчик DS18B20 имеет уникальный 64-битный серийный номер, связанный с ним. Используя эту функцию, вы можете подключить множество датчиков DS18B20 к одной шине 1-Wire и обмениваться данными с одним микроконтроллером.
Важные характеристики DS18B20:
Диапазон | -55 0 C до 125 0 C |
Точность | ± 0,5 0 C для -10 0 C до 85 0 C |
Диапазон рабочего напряжения | 3В на 5.5 В |
Протокол связи | 1-Wire |
Приложения | Термостатические регуляторы |
Промышленные системы | |
Термометры | |
Потребительские товары |
BME280
Еще один универсальный датчик от Bosch – датчик BME280. Он может измерять давление, влажность и температуру с большим диапазоном измерения и точностью.Это датчик с низким энергопотреблением, поэтому он подходит для устройств с батарейным питанием, таких как мобильные телефоны, фитнес-трекеры, навигационные системы и т. Д.
Модуль датчика влажности, давления и температуры BME280
Датчик поддерживает интерфейсы I 2 C и SPI. Итак, если вы выбираете модуль, убедитесь, что соответствующие выводы доступны.
Важные характеристики BME280:
Диапазон давления | от 300 гПа до 1100 гПа |
Точность давления | ± 1 гПа |
Диапазон температур | -40 0 C до 85 0 C |
Точность температуры | ± 1 0 С |
Диапазон влажности | от 0% до 100% |
Точность влажности | ± 3% |
Диапазон рабочего напряжения | 1.От 8 В до 3,6 В (для датчика) от 3,3 В до 5 В (для модуля, если есть регулятор напряжения) |
Протокол связи | I 2 C или SPI (проверьте распиновку) |
Приложения | Мобильные телефоны |
Системы навигации GPS | |
КПК | |
Прогноз погоды | |
Спортивные устройства (фитнес-трекеры) |
MCP9808
MCP9808 – это высокоточный цифровой датчик температуры от Microchip.Это маломощный датчик, который обменивается данными через I 2 C или SMBus. Типичная точность ± 0,25 0 C делает его одним из самых точных датчиков температуры в списке.
MCP9808 Модуль датчика температуры
Используя три регулируемых адресных контакта, вы можете подключить до 8 датчиков температуры MCP9808 к одной шине I 2 C. Такая установка подходит для многозонного мониторинга температуры.
Важные характеристики MCP9808:
Диапазон | -40 0 C до 125 0 C |
Точность | ± 0.25 0 С |
Диапазон рабочего напряжения | от 2,7 В до 5,5 В |
Протокол связи | I 2 C / SMBus |
Приложения | Промышленный морозильник |
Пищевая промышленность | |
Персональные компьютеры | |
Портативные устройства |
Si7021
Si7021 – это интегрированный датчик влажности и температуры от Silicon Labs.IC объединяет датчик влажности, датчик температуры, ADC и интерфейс связи I 2 C.
Si7021 Модуль датчика температуры
Датчики влажности и температуры откалиброваны на заводе, поэтому калибровка пользователем не требуется. Si7021 – датчик малой мощности с датчиком температуры высокой точности.
Важные характеристики Si7021:
Диапазон температур | -10 0 C до 85 0 C |
Точность температуры | ± 0.4 0 С |
Диапазон влажности | 0 – 80% относительной влажности |
Точность влажности | ± 3% относительной влажности |
Диапазон рабочего напряжения | от 1,9 В до 3,6 В (для датчика) |
Протокол связи | Я 2 С |
Приложения | Термостаты |
Системы отопления, вентиляции и кондиционирования воздуха | |
Метеостанции | |
Мобильные телефоны | |
Автомобильный климат-контроль |
TC74
Датчики температуры в корпусе ТО-220 можно встретить довольно редко, но TC74 – одно из таких устройств.Это последовательный цифровой датчик температуры, используемый в недорогих приложениях. Это не высокоточный датчик температуры, но его недорогая комплектация TO-220 (также доступная в SOT-23) делает TC74 хорошим выбором для широкого круга проектов.
TC74 Датчик температуры IC
Интерфейс связи TC74 – I 2 C или SMBus со скоростью 100 кГц.
Важные характеристики TC74:
Диапазон | 25 0 C до 85 0 C |
Точность | ± 2 0 С |
Диапазон рабочего напряжения | 2.От 7 В до 5,5 В |
Протокол связи | I2C / SMBus |
Приложения | Жесткие диски |
Источники питания | |
Персональные компьютеры | |
Термостаты |
PCT2075
Отличным цифровым датчиком температуры на основе I 2 C от NXP является PCT2075. Если вы знакомы с датчиком температуры LM75, то PCT2075 – очень хорошая альтернатива этому.
Модуль датчика температуры PCT2075
Датчик PCT2075 содержит 11-разрядный сигма-дельта АЦП с разрешением 0,125 0 C.Шина I 2 C PCT2075 поддерживает стандартный режим (100 кГц), быстрый режим (400 кГц) и быстрый режим плюс (1 МГц) частоты.
Важные спецификации PCT2075:
Диапазон | -55 0 C до 125 0 C |
Точность | ± 2 0 С |
Диапазон рабочего напряжения | 2.От 7 В до 5,5 В |
Протокол связи | I2C / SMBus |
Приложения | Электронное оборудование |
Промышленные контроллеры | |
Персональные компьютеры | |
Системы охлаждения |
AMT1001
Еще один комбинированный датчик, который может измерять как относительную влажность, так и температуру, – это датчик AMT1001.Это датчик с аналоговым выходом емкостного типа с отдельными выходами для влажности и температуры.
AMT1001 Датчик температуры и влажности
ВАЖНОЕ ПРИМЕЧАНИЕ. Датчик AM1001 измеряет только относительную влажность, тогда как AMT1001 измеряет как относительную влажность, так и температуру. Будьте осторожны при покупке.
Важные характеристики AMT1001:
Диапазон влажности | от 20% до 90% относительной влажности |
Точность влажности | ± 5% |
Диапазон температур | 0 0 C до 50 0 C |
Точность температуры | ± 1 0 С |
Диапазон рабочего напряжения | 4В на 5.5 В |
Протокол связи | Аналоговый выход |
Приложения | HVAC |
Увлажнители | |
Осушители |
Заключение
Это список некоторых часто используемых датчиков температуры Arduino. Если я найду какие-либо дополнительные датчики по разумной цене и подходящие для DIY-приложений, я добавлю их в будущем.Для получения дополнительной информации об отдельных датчиках я предлагаю вам поискать данные производителя.
Как использовать датчик температуры на основе 3-контактного термистора с Arduino
или без негоПросмотры сообщений: 682
3-контактный термистор NTC и модуль на базе компаратора LM393 могут использоваться для измерения температуры или тепла. Его можно использовать как с Arduino, так и без него.
Во-первых, давайте посмотрим, как вы можете использовать его с Arduino.
Эксперимент: В этом эксперименте мы просто увеличиваем температуру окружающей среды вокруг термистора, и мы видим, как термистор реагирует на изменение температуры.
Подключение:
Подключите вывод VCC к выводу 3,3 В или 5 В Arduino.
Подключите GND модуля к GND и подключите вывод DO модуля к выводу D2 Arduino.
Подключите светодиод к контакту 13 или оставьте его, потому что на вашем Arduino уже есть светодиод, подключенный к контакту 13.
Загрузите этот скетч на свой Arduino.
Вывод: Когда температура вокруг датчика увеличивается, модуль датчика выдает НИЗКИЙ сигнал, и Arduino включает светодиод.Вместо светодиода вы можете подключить модуль реле на 5 В для включения вентилятора или чего-либо, работающего от 110-220 В переменного тока. Убедитесь, что вы делаете это только с помощью релейного модуля на 5 В.
ПРИМЕЧАНИЕ. Выходной сигнал модуля термистора по умолчанию ВЫСОКИЙ, поэтому вам необходимо запрограммировать Arduino на реакцию НИЗКОГО, потому что это то, что происходит, когда вы увеличиваете температуру вокруг датчика.
Смотрите все изображения на Flickr
Как настроить чувствительность?
Вы можете отрегулировать чувствительность модуля датчика температуры на основе термистора NTC, перемещая потенциометр (переменный резистор, присутствующий на модуле) с помощью отвертки.Продолжайте вращать / перемещать ручку потенциометра по часовой стрелке и остановитесь сразу после того, как ЗЕЛЕНЫЙ светодиод на плате датчика погаснет. Таким образом вы можете увеличить или уменьшить чувствительность. Если вы продолжите вращать ручку даже после того, как зеленый светодиод погас, вам понадобится больше тепла вокруг термистора, чтобы включить его. Итак, убедитесь, что вы переместили ручку в соответствии с вашими требованиями.
ПРИМЕЧАНИЕ: Когда вы видите, что модуль включил ЗЕЛЕНЫЙ светодиод, выход на контакте DO низкий, в противном случае он всегда ВЫСОКИЙ.
Видео: На видео я сжег спичку, чтобы изменить температуру вокруг датчика, но на самом деле это НЕ обязательно. Вы можете выдувать горячий воздух изо рта и повышать температуру, эффект будет таким же, как на видео.
Вас заинтересовал этот модуль?
Вы можете купить этот модуль на сайте www.buildcircuit.com.au
Как выбрать лучший датчик температуры для вашего проекта Arduino – Блог
При разработке нового проекта ThinIce нам пришлось выбрать датчик температуры Arduino.Техническое задание требовало от нас использования 4-х датчиков температуры для контроля температуры элементов Пельтье, сторон с низкой и высокой температурой. Установка порога температуры должна быть не хуже ± 0,5 ° C, а диапазон измерения – от + 5 ° C до + 60 ° C.
Схема схемы измерения температуры устройстваДля анализа мы взяли лучшие датчики температуры для Arduino.
Ниже мы приводим сравнительный список датчиков Arduino:
- AD7415
- ADT7310TRZ
- DS18B20
- DS75S
- DHT11
- LMT01LPG
- LM75 9 датчик температуры для проекта мы использовали сравнительный датчик температуры для проекта с датчиком температуры arduino 902 характеристики
Датчик Диапазон измерения, ° C Разрешение, ° C Интерфейс Цена, $ AD7415 -40 до +85 ± 0.5 I2C 2,5 ADT7310TRZ от -55 до +150 ± 0,5 SPI 3 DS18D20 -55 Провод к +125 ± 0,5 1 DS75S от -55 до +125 ± 0,5 I2C 2 1,5DHT11 0 до +50 ± 1 1-Wire LMT01LPG от -50 до +150 ± 0.5 PCI 2,5 LM75 от -55 до +125 ± 0,5 I2C 1 Большинство датчиков температуры имеют интерфейс I2C, который позволяет подключать к шине до 128 устройств , что очень удобно с точки зрения доставки данных на большие расстояния. Интерфейс состоит из двух основных проводов:
SCL – тактовый сигнал от основного устройства;
SDA – двунаправленный сигнал данных.
Для нормальной работы устройств, подключенных по протоколу I2C, необходимо их запитать.Для этого используются сигналы Vdd и GND.
Для обеспечения разделения адресов устройства на шине I2C сами устройства предоставляют возможность указывать адрес с помощью одного из выводов. Например, в цепи датчика температуры AD7415 для этого используется вывод AS.
Распиновка датчика температуры AD7415Возможные варианты создания адресного пространства схемы:
Вывод AS Адрес I2C Float 1001 000 001GND Vdd 1001 010 Всего может быть 3 возможных варианта реализации адресного пространства для датчиков температуры, чего явно недостаточно по заданным исходным техническим требованиям.
Распиновка контроллера ATMEGA328, широко используемого в ArduinoСогласно спецификации контроллера ATMEGA324, на выводах PC4 и PC5 имеется только один интерфейс I2C. Использование двух I2C
В качестве альтернативы мы рассматривали использование DS75S в качестве датчика температуры для Arduino. Эта микросхема термодатчика имеет три контакта для конфигурации адресного пространства. В результате получаем 23 (или 8) возможных адресных комбинаций.
Распиновка датчика температуры DS75Разрешение этого датчика равно ± 0.5 ° C, но если вы посмотрите таблицу, вы обнаружите, что ошибка термометра TERR имеет максимальное значение ± 3 ° C во всем диапазоне измерений. Например: несмотря на точность датчика в полградуса и из-за параметра температурной погрешности TERR, равного ± 3 ° C, когда датчик показывает + 12,5 ° C, реальное значение может быть от + 9,5 ° C до + 15,5 ° C. Такая точность измерения неприемлема для нашего проекта Arduino.
Между тем датчик температуры LM75 является аналогом предыдущего, имеющим близкие или похожие параметры.Разрешение этого датчика составляет ± 0,5 ° C, точность измерения – ± 2 ° C.
ADT7310 Датчик температуры Arduino с интерфейсом SPI. SPI – популярный интерфейс, используемый для высокоскоростной передачи данных в архитектуре Master / Slave. Для реализации обмена данными через интерфейс SPI используются следующие сигналы:
– MISO или SOMI – Master In, Slave Out. Используется для передачи данных от ведомого устройства к ведущему устройству;
– MOSI или SIMO – Master Out, Slave In.Используется для передачи данных от ведущего устройства к ведомому устройству;
– SCLK или SCK – Последовательный тактовый сигнал. Используется для передачи тактового сигнала на ведомые устройства;
– CS или SS – Выбор микросхемы / Выбор ведомого.
И два дополнительных шнура питания: Vdd и GND.
Пример подключения четырех ведомых устройств через интерфейс SPI.Таким образом, согласно схеме, приведенной выше, нам нужно провести шину к датчикам температуры, используя 7 служебных и 2 силовых провода – всего 9 проводов.В то же время нам нужно добавить 4 контакта к занятому интерфейсу SPI Arduino, чтобы реализовать переключение между четырьмя датчиками температуры. Таким образом, всего семь контактов на Arduino будут использоваться для измерения температуры.
Следующий – датчик температуры DS18D20 с интерфейсом 1-Wire.
Связь между устройствами, подключенными к шине 1-Wire, осуществляется по одному проводу. Каждое устройство на шине имеет свой уникальный 64-битный серийный номер. В связи с этим мы легко можем подключить необходимое количество датчиков температуры (в нашем случае 4).При этом датчик можно перемещать вперед на большое расстояние (десятки метров). Также существует версия датчика с герметичным корпусом для измерения температуры воды – Waterproof DS18B20.
Пример подключения нескольких (4) датчиков температуры, подключенных к интерфейсу 1-WireПараметры датчика температуры DS18D20 согласно паспорту:
– Точность: ± 0,5 ° C во всем диапазоне измерения;
– Разрешение: 0,0625 ° C (12-битное преобразование).
Еще один датчик 1-Wire в нашем списке – DHT11.Наряду с измерением температуры этот датчик может измерять влажность и часто используется вместе с датчиком влажности для Arduino.
Внешний вид DHT11По сравнению с DS18D20 с точки зрения возможностей подключения, этот датчик не может похвастаться какой-либо встроенной логикой, которая могла бы помочь реализовать адресное пространство. Таким образом, для подключения 4 датчиков к Arduino нам нужно использовать 4 провода DATA, по одному на каждый датчик.
Параметры датчика температуры DHT11:
– Точность: ± 2 ° C;
– Разрешение: 1 ° C.
Как видим, разрешение и точность явно выходят за рамки технических требований, установленных для этого проекта.
Есть еще один датчик температуры с интересным способом подключения, использующий интерфейс подсчета импульсов (PCI) – LMT01.
Согласно паспорту, его параметры следующие: – точность: ± 0,5 ° C во всем диапазоне измерения; – Разрешение: не хуже 0,06 ° С. Для подключения датчика температуры к Arduino требуется всего 2 порта GPIO контроллера.
Подключение одного датчика температуры LMT01 или пяти портов GPIO для подключения 4 датчиков температуры Пример подключения нескольких датчиков температуры LMT01 к ArduinoВажной особенностью этого датчика является небольшое температурное сопротивление между корпусом датчика и измеряемой средой. Поскольку нам необходимо получать измерения (температуры) на холодной и теплой сторонах элемента Пельтье с точностью не менее ± 0,5 ° C, конструктивные особенности этого датчика очень важны.
Из всех вышеупомянутых датчиков DHT11 имеет наибольшее температурное сопротивление, поскольку сам датчик выполнен в пластиковом корпусе и больше подходит для измерения температуры воздушных потоков, чем контактных измерений.Все остальные датчики имеют корпус типа TO-92, WSON, SOP, μSOP, SOIC или SOT-23, которые обеспечивают большую площадь контакта с исследуемой поверхностью и низкое термическое сопротивление.
Результаты этого исследования мы собрали в следующей таблице:
Датчик Диапазон измерений, ° C Точность, ° C Разрешение, ° C Интерфейс данных Цена, $ Тепловой сопротивление AD7415 -40 до +85 ± 0.5 ± 0,5 I2C 2,5 низкий ADT7310TRZ от -55 до +150 ± 3 ± 0,5 SPI 3 низкий DS От -55 до +125 ± 0,5 ± 0,5 1-Wire 1 низкий DS75S от -55 до +125 ± 3 ± 0,5 I2C 2 низкий DHT11 от 0 до +50 ± 2 ± 1 1-Wire 1.5 высокий LMT01LPG от -50 до +150 ± 0,5 ± 0,5 PCI 2,5 низкий LM75 от -55 до +125 9049± 0,5 I2C 1 низкий С целью снижения затрат на массовое производство, количества используемых GPIO, мы выбрали дистанционный датчик температуры DS18D20, который удовлетворяет нашим требованиям по точности и погрешности измерения температуры пределы.Также этот датчик имеет невысокую стоимость. Благодаря хорошей точности, небольшой погрешности измерения и водонепроницаемому корпусу этот датчик в будущем будет использоваться как дешевый датчик температуры тела.
Даже при использовании одного провода DATA для каждого датчика температуры задействовано всего 4 GPIO. Это важно, поскольку другие порты GPIO нам необходимо использовать для клавиш управления, кнопок, служебных входов, измерения напряжения батареи, ЖК-монитора и соединений Bluetooth. Интерфейс 1-Wire можно без особых усилий перенастроить программно на любой GPIO.
Итак, суммируя все вышесказанное, вот полный список всех замечательных возможностей DS18D20.
- Цена: стоимость компонента не превышает 1 $ ни в каких магазинах, у него одна из самых низких цен среди других датчиков температуры.
- Распределение: это очень популярный датчик, его можно купить в любом магазине электронных компонентов.
- Точность измерения: датчик температуры DS18D20 имеет точность измерения ± 0,5 ° C и разрешение ± 0.5 ° C с возможностью иметь разрешение 12 бит при разрешении ± 0,0625 ° C.
- Простота в использовании: использование шины 1-Wire упрощает подключение микроконтроллеров как к одному датчику, так и к куча датчиков. Фактически, к этому датчику температуры можно подключить любой контроллер, а также еще несколько датчиков. В случае изменения конструкции датчик температуры можно легко перенести на другие выводы GPIO с небольшими изменениями кода или оборудования.
- Диапазон температур: широкий диапазон температур охватывает весь диапазон комфортных для человека температурных диапазонов от -50 ° C до + 50 ° C и даже имеет более широкий диапазон от -55 ° C до + 125 ° C.
- Энергосбережение: потребление тока в активном режиме не превышает 1,5 мА, а в режиме низкого энергопотребления менее 1 мкА, что позволяет использовать эти датчики в устройствах с батарейным питанием.
построить простой цифровой датчик температуры с последовательным интерфейсом RS232
Датчик температуры с последовательным интерфейсом RS232
Цель этой статьи – представить метод создания недорогого датчика температуры, который может обмениваться данными через последовательное соединение RS232 с приемником GPS Trimble.Затем данные о температуре могут быть записаны во внутреннюю память приемника или переданы через порт TCP в форматах BINEX или RT27. Этот датчик предназначен для использования с приемником Trimble NetRS / NetR5 / NetR8 / NetR9 путем включения на приемнике функции регистрации наклона / метеографии. Возможно, это устройство можно будет использовать с другими приемниками, если они поддерживают датчики со знаком.
В этой статье будет задокументировано следующее: материалы, необходимые для создания проекта; как запрограммировать датчик для связи с приемником; и как настроить приемник для связи с датчиком.Основное применение этого датчика – регистрация данных о температуре на сайте GPS. Требуются предварительные знания базовых навыков пайки / электроники.
Это руководство не включает инструкции по созданию корпуса для этого устройства. Размер датчика можно уменьшить, выбрав более мелкие компоненты (например, Arduino Nano, Arduino Mini).
Компоненты
- 1 Arduino Uno (доступен у нескольких поставщиков, например, sparkfun.com)
- 1 однопроводной цифровой датчик температуры – DS18B20 (http: // www.adafruit.com/products/381)
- Резистор 1 1/4 Вт 4,7 кОм (обычно идет в комплекте с датчиком температуры)
- 1 плата переключения RS232 (http://www.sparkfun.com/products/449)
- провод (можно использовать несколько цветов)
Инструменты
- припой с выводами или без свинца
- паяльник
- Отвертка с крестообразным шлицем
- кусачки и инструменты для снятия изоляции
Схема
Схема подключения однопроводного датчика температуры Arduino Uno, DS18S20 и платы переключения RS232 показана ниже.Размер каждого компонента не в масштабе. В этой конфигурации датчику температуры DS18S20 требуется подтягивающий резистор (1/4 Вт, 4,7 кОм) между проводами 5 В (красный) и данными (синий).
Программирование датчика
- Загрузите эскиз Arduino, расположенный здесь. Заархивированная папка содержит программу, которая позволит Arduino обмениваться данными с приемником и датчиком температуры. Разархивируйте папку после загрузки.
- Если оно еще не установлено, загрузите и установите последнюю версию программного обеспечения Arduino для своего компьютера (http: // www.arduino.cc/en/Main/Software).
- Если вы используете порт USB Arduino для программирования, отключите переключатель RS232 от Arduino перед программированием. Плата RS232 может мешать USB-соединению. В качестве альтернативы вы можете использовать соединение RS232 для программирования Arduino. Я рекомендую использовать порт USB.
- Подключите порт USB от Arduino к порту USB на вашем компьютере. Соединение USB обеспечит питание и соединение данных с Arduino.
- Откройте программное обеспечение Arduino на вашем компьютере.
- Выберите последовательный порт для вашего устройства (Инструменты -> Последовательный порт -> Порт вашего устройства)
- Выберите тип платы Arduino (Инструменты -> Плата -> Arduino Uno)
- Откройте скетч Arduino (Файл -> Открыть …)
- Выберите файл с именем «serial_onewire_temp» из папки, которую вы загрузили на шаге 1.
- В верхнем левом углу окна serial_onewire_temp щелкните стрелку вправо. Это загрузит скрипт в подключенный Arduino.
- Теперь ваш Arduino должен быть правильно запрограммирован для связи как с приемником, так и с датчиком температуры.
Программирование приемника (для Trimble NetR9)
- Перейти в веб-интерфейс приемника
- щелкните Конфигурация ввода / вывода
- Выберите последовательный порт, к которому вы хотите подключить датчик
- Выберите Met-Tilt из раскрывающегося меню
- Выберите скорость передачи 19 200
- Четность: N
- Поток: отключен
- в столбце «Команда» введите заглавную букву «R» в первой строке
- выберите желаемую частоту записи (от 1 секунды до 4 часов) в столбце «Расписание» в той же строке.
Подключите устройство к приемнику с помощью последовательного кабеля.
Как только и Arduino, и приемник настроены правильно, соедините два устройства последовательным кабелем. Arduino необходимо будет запитать от источника постоянного тока 7-12 В с использованием центральной положительной цилиндрической вилки.