Оглавление:

Измерение температуры с помощью XinaBox и термистора: 8 шагов
Измерение температуры с помощью XinaBox и термистора: 8 шагов

Видео: Измерение температуры с помощью XinaBox и термистора: 8 шагов

Видео: Измерение температуры с помощью XinaBox и термистора: 8 шагов
Видео: Система управления котлом и бойлером на ESP8266 через Android приложение 2024, Июль
Anonim
Измерение температуры с помощью XinaBox и термистора
Измерение температуры с помощью XinaBox и термистора

Измерьте температуру жидкости с помощью аналогового входа xChip от XinaBox и термисторного зонда.

Шаг 1. Вещи, использованные в этом проекте

Компоненты оборудования

  • XinaBox SX02 x 1 xChip аналоговый входной датчик с АЦП
  • XinaBox CC01 x 1 xChip версия Arduino Uno на базе ATmega328P
  • Резистор 10 кОм x 1 резистор 10 кОм для сети делителя напряжения
  • Термисторный зонд x 1 10к при 25 ° C Водонепроницаемый термисторный зонд с NTC
  • XinaBox IP01 x 1 USB-программатор xChip на базе FT232R от FTDI Limited
  • XinaBox OD01 x 1 xChip 128x64 пикселей OLED-дисплей
  • XinaBox XC10 x 4 разъема для шины xChip
  • XinaBox PU01 x 1 xChip USB (тип A) Блок питания
  • Блок питания USB 5 В x 1 блок питания или аналогичный

Программные приложения и онлайн-сервисы

IDE Arduino

Ручные инструменты и производственные машины

Отвертка с плоской головкой Для затягивания или ослабления зажима винтовых клемм

Шаг 2: история

Вступление

Я хотел измерить температуру жидкости, создав простой термометр. Используя XinaBox xChips, я смог добиться этого с относительной простотой. Я использовал аналоговый вход SX02 xChip, который принимает 0–3,3 В, CC01 xChip на базе ATmega328P и OD01 OLED-дисплей xChip для просмотра результатов измерения температуры.

Термистор измерения температуры воды в стакане

Шаг 3. Загрузите необходимые файлы

Вам потребуются следующие библиотеки и программное обеспечение:

  • xSX0X- Библиотека датчиков аналогового входа
  • xOD01 - библиотека OLED-дисплеев
  • Arduino IDE - среда разработки

Щелкните здесь, чтобы узнать, как установить библиотеки.

После того, как вы установили Arduino IDE, откройте ее и выберите «Arduino Pro или Pro Mini» в качестве платы для загрузки вашей программы. Также убедитесь, что выбран процессор ATmega328P (5 В, 16 МГц). См. Изображение ниже.

Выберите плату Arduino Pro или Pro Mini и процессор ATmega328P (5 В, 16 МГц)

Шаг 4: Соберите

Щелкните программатор xChip, IP01 и CC01 xChip на базе ATmega328P вместе, используя разъемы шины XC10, как показано ниже. Для загрузки в CC01 вам необходимо установить переключатели в положения «A» и «DCE» соответственно.

IP01 и CC01 щелкнули вместе

Затем возьмите резистор 10 кОм и прикрутите один конец к клемме с маркировкой «IN», а другой конец к клемме заземления «GND» на SX02. Возьмите провода на термисторном зонде и прикрутите один конец к Vcc, «3,3 В», а другой конец - к клемме «IN». См. Рисунок ниже.

SX02 соединения

Теперь объедините OD01 и SX02 с CC01, просто щелкнув их вместе с помощью соединителей шины XC10. См. ниже. Серебряный элемент на изображении - это термисторный зонд.

Полный блок для программирования

Шаг 5: программа

Вставьте устройство в USB-порт вашего компьютера. Загрузите или скопируйте и вставьте приведенный ниже код в свою среду разработки Arduino. Скомпилируйте и загрузите код на свою доску. После загрузки ваша программа должна начать работу. Если зонд находится в условиях комнатной температуры, вы должны наблюдать на OLED-дисплее ± 25 ° C, как показано ниже.

После загрузки наблюдайте за температурой в помещении на OLED-дисплее.

Шаг 6: портативный термометр

Снимите блок с вашего компьютера. Разберите блок и снова соберите его, используя PU01 вместо IP01. Теперь возьмите портативный USB-блок питания на 5 В, такой как блок питания или аналогичный, и вставьте в него новую сборку. Теперь у вас есть собственный крутой портативный термометр с хорошей точностью. См. Изображение на обложке, чтобы увидеть его в действии. Я мерял горячую воду в стакане. На изображениях ниже показано ваше устройство полностью.

Полный блок, состоящий из CC01, OD01, SX02 и PU02.

Шаг 7: Заключение

Сборка этого проекта заняла менее 10 минут, а программирование - еще 20 минут. единственный требуемый пассивный компонент - это резистор. XChips просто соединяются вместе, что очень удобно.

Шаг 8: Код

ThermTemp_Display.ino Arduino Изучите термисторы, чтобы понять вычисления в коде.

#include // включить базовую библиотеку для xCHIP

#include // включить библиотеку аналогового входного датчика #include // включить библиотеку OLED-дисплея #include // включить математические функции #define C_Kelvin 273.15 // для преобразования из градусов Кельвина в градусы Цельсия #define series_res 10000 // значение последовательного резистора в омах #define B 3950 // параметр B для термистора #define room_tempK 298.15 // комнатная температура в кельвинах #define room_res 10000 // сопротивление при комнатной температуре в омах #define vcc 3.3 // напряжение питания xSX01 SX01 (0x55); // установить адрес i2c float Voltage; // переменная, содержащая измеренное напряжение (0 - 3,3 В) float therm_res; // поплавок сопротивления термистора act_tempK; // фактическая температура по Кельвину float act_tempC; // фактическая температура в градусах Цельсия void setup () {// поместите сюда свой установочный код, чтобы запустить его один раз: // инициализировать переменные значением 0 Voltage = 0; therm_res = 0; act_tempK = 0; act_tempC = 0; // запускаем последовательную связь Serial.begin (115200); // запускаем связь i2c Wire.begin (); // запускаем датчик аналогового входа SX01.begin (); // запускаем OLED-дисплей OLED.begin (); // очистить дисплей OD01.clear (); // задержка для нормализации delay (1000); } void loop () {// поместите сюда ваш основной код для повторного запуска: // считайте напряжение SX01.poll (); // сохраняем напряжение напряжения = SX01.getVoltage (); // вычисляем сопротивление термистора therm_res = ((vcc * series_res) / Voltage) - series_res; // вычисляем фактическую температуру в кельвинах act_tempK = (room_tempK * B) / (B + room_tempK * log (therm_res / room_res)); // преобразовать градусы Кельвина в градусы Цельсия act_tempC = act_tempK - C_Kelvin; // вывод температуры на OLED-дисплей // ручное форматирование для отображения по центру OD01.set2X (); OD01.println (""); OD01.println (""); OD01.print (""); OD01.print (act_tempC); OD01.print («C»); OD01.println (""); задержка (2000); // обновлять отображение каждые 2 секунды}

Рекомендуемые: