Курс arduino — датчики

Подключение датчиков к микроконтроллеру Ардуино

Никогда ещё увлечение электротехникой, роботизацией, автоматическими системами реагирования и управления не было так просто реализовать.

Вводная информация

Если раньше существовали специализированные конструкторы с ограниченными наборами функций и жёстко заданными параметрами, то сегодняшнее разнообразие конструкторов просто поражает: настоящие микропроцессорные системы, собираемые на коленке, имеют практически неограниченный функционал. Богатая фантазия, широкая элементная база, большие комьюнити фанатов и инженеров и поддержка производителем — основные отличительные особенности таких востребованных рынком наборов для робототехники.

Один из них и наиболее популярный, что естественно, — Ардуино. Конструктор моментальной сборки электронных автоматических устройств любой степени сложности: высокой, средней и низкой.

Эту платформу называют иначе «physical computing» за плотное взаимодействие с окружающей средой.

Печатная плата с микропроцессором, открытый программный код, стандартные интерфейсы и подключение датчиков к Ардуино — слагаемые его популярности.

Система Ардуино — плата, которая объединяет все нужные компоненты, обеспечивающие полный цикл разработки. Сердце этой платы — микроконтроллер. Он обеспечивает управление всей периферией. Датчики, подключаемые к системе, позволяют системе «общаться» и взаимодействовать с окружением: анализировать, отмечать изменять.

Подключение цифрового датчика влажности, температуры

Два популярных датчика — DHT11, DHT22 — предназначены для замера влажности и температуры (про подключение датчика температуру мы еще поговорим ниже отдельно); недорогое решение, отлично подходят для простых схем и обучения. Термистор, ёмкостной датчик — основа DHT11 и DHT22. Внутренний чип выполняет АЦП, давая на выходе «цифру», которую поймёт любой микроконтроллер.

DHT11 отличается от DHT22 диапазоном измерения и частотностью опроса: влажность — 20-80% для DHT11 и 0-100% для DHT22; температура — 0°C до +50°C для DHT11 и -40°C до +125°C для DHT22; опрос — ежесекундный для DHT11 и раз в две секунды для DHT22.

Оба датчика DHT имеют стандартных 4 вывода:

  1. Питание датчиков.
  2. Шина данных.
  3. Не задействован.
  4. Земля.

Вывод данных и питания требует подключения между ними резистора 10 кОм.

Для DHT-датчиков разработана библиотека DHT.h (можно посмотреть по ссылке). При загрузке скетча в контроллер монитор порта должен отобразить текущие значения влажности, температуры. Проверить работоспособность просто — достаточно подышать на датчик и взять его в руки: температура и влажность должны поменяться.

Возможен вывод значений на экран LCD 1602 I2C, если включить его в систему.

При помощи этих датчиков можно соорудить автоматизированную систему полива почвы на открытом воздухе, в теплице и даже на подоконнике. Или организовать систему сушки ягод — последние обдуваются или нагреваются в зависимости от влажности ягод.

Также некоторые акватеррариумы требуют особых условий влажности, которые легко контролировать при помощи DHT1 и DHT22.

Подключение датчика давления

Часто в деле предсказания погоды или определения высоты подъёма над уровнем моря требуется решить задачу измерения давления. Здесь на помощь приходят электронные барометры на технологии МЭМС: тензорометрический или пьезорезизстивный метод, связанный с переменностью сопротивления прибора при приложении деформирующих материал сил.

Наиболее популярен датчик BMP085; помимо барометрического давления он регистрирует и температуру. Ему на смену выпустили BMP180, он обладает теми же характеристиками:

  • Чувствительность в диапазоне: 300-1100 гПа (если в метрах — 9000 — 500 м над уровнем моря );
  • Разрешение : 0,03 гПа или 0,25 м;
  • Рабочая температура датчика -40 +85°C, точность измерения в указанном диапазоне — ±2°C;
  • Подключение по стандарту i2c;
  • V1 использует 3.3 В для питания и логики;
  • V2 использует 3.3-5 В для питания и логики.

Подключение датчиков к Ардуино в этом случае стандартно:

Понадобится Unified Sensor Driver — его обновлённая версия обеспечивает более высокую точность показаний; кроме того, позволяет работать с несколькими разными подключёнными датчиками давления одновременно. Необходимо также установить Adafrut_Sensor library.

Подключение датчика движения

Без данного датчика не обходится ни одна серьёзная охранная система. Инфракрасный датчик — базовый элемент обнаружения присутствия теплокровных.

Также при помощи PIR-датчиков чрезвычайно удобно управлять освещением в зависимости от нахождения рядом человека. Инфракрасные или пироэлектрические датчики просты по внутреннему устройству и недороги. Они крайне надёжны и редко выходят из строя.

Основа датчика — пироэлектрик или диэлектрик, способный создавать поле при изменении температуры. Они устанавливаются попарно, а сверху закрываются куполом с сегментами в виде обычных линз или линзой Френеля. Это позволяет сфокусировать лучи от разных точек проникновения.

При отсутствии излучающих тепло тел в помещении у каждого элемента одинаковая попадающая доза излучения, соответственно, одинаковое напряжение на выходах. При попадании в зону «обзора» датчиков живого теплокровного нарушается равновесие и появляются импульсы, которые и регистрируются.

HC-SR501 — наиболее распространённый и популярный датчик. Он имеет два подстроечных переменных резистора: один — для регулировки чувствительности и размера обнаруживаемого объекта, второй — для регулировки времени срабатывания (времени генерации импульса после обнаружения).

Схема подключения стандартна и не вызовет затруднений.

Подключение датчика температуры

Несмотря на то, что функция измерения температуры входит во многие датчики, лучше использовать отдельный специализированный датчик. Например, DS18B20. Это интегральный датчик, имеющий цифровой последовательный интерфейс.

Его сильные стороны:

  • предварительная заводская калибровка;
  • погрешность менее 0,5°С;
  • программно задаваемая разрешающая способность в 0,0625°С при 12-и битном разрешении;
  • чрезвычайно большой диапазон измеряемых температур: от -55°С до +125°С;
  • в датчике имеется встроенный АЦП;
  • в одну линию связи могут быть включены несколько датчиков.

Корпус ТО-92 — самый распространённый для этих датчиков. Приняты две основные схемы подключения температурного датчика DS18B20 к микропроцессору или контроллеру:

  1. Схема питания извне. Или при помощи внешнего источника.
  2. Схема так называемого «паразитного питания». Датчик подключается только двумя проводами. Это имеет значение при размещении датчика на больших расстояниях.

При работе с температурой выше 100°С, схему с паразитным питанием использовать нельзя ввиду большой погрешности измерений.

Для работы с датчиком необходимо его проинициализировать. Далее следуют запись байта и чтение байта.

Эти три операции демонстрируют работу с датчиком и библиотека OneWire прекрасно их поддерживает. Устанавливаем библиотеку OneWire Library. После этого грузим скетч — и программная среда готова.

Возможно подключение нескольких датчиков DS18B20 — в этом случае их требуется подключать параллельно. Библиотека OneWire позволит считывать показания сразу со всех одновременно. При одновременном большом количеством подключений датчиков необходимо добавлять дополнительно резисторы на 100 или 120 Ом между ножкой data датчика DS18B20 и шиной data на Ардуино.

Выводы

Подключение датчиков к Ардуино — это превращение алгоритмизированного робота, управляемого автоматически или в ручном режиме, в полноценную среду взаимодействия устройств и схем с окружающей средой. Не стоит забывать — это не панацея от всех бед. И не конечный высокотехнологичный продукт или конечная область применения. Ардуино — это комплекс аппаратных и программных решений, который поможет:

  • освоить системы алгоритмизации начинающим инженерам;
  • освоить базовые навыки конструирования;
  • научиться программировать.
Читайте также:  Многофункциональные микросхемы серии мс34118 для телефонных аппаратов

Вне зависимости от вашего уровня подготовки, ваших знаний, всегда можно подобрать для себя задачи по силам.

Можно собрать простенькое решение автоматизации какой-либо несложной задачи без пайки вместе со школьником; а можно поставить глобальную задачу, где требуются помимо знаний и логики ещё и умение качественно паять и верно чертить и читать чертежи. А активные сообщества, форумы и базы знаний по системе Ардуино помогут решить практически любой вопрос.

Источник: https://ArduinoPlus.ru/podkluchenie-datchikov-k-arduino/

Код программы к уроку 7. arduino и датчик температуры

/* * Набор для экспериментов ArduinoKit * Код программы для опыта №7: sketch 07 * * Датчик температуры *

* Написано для сайта http://arduinokit.ru

* * * Помощь сообщества Arduino.

* Посетите сайт http://www.arduino.cc

* * * ДАТЧИК ТЕМПЕРАТУРЫ * * Использование «Монитора порта» (Serial Monitor), чтобы прочитать * показания датчика температуры. * * TMP35/TMP36/TMP37 являются простыми в использовании датчиками температуры, * которые меняют напряжение на своем выходе прямо пропорционально температуре * окружающей среды. Вы можете использовать их во всех видах задач * автоматизации, где необходимо использовать изменение параметров в * зависимости от изменения температуры. * * * Передача информации от Arduino компьютеру тема еще более интересная, чем * предыдущие опыты, — мы начнем использовать последовательный порт Arduino. * До сих пор мы ограничивались в использовании простых светодиодов для индикации * каких либо событий. Теперь мы убедимся, что Arduino можете не только * сигнализировать о чем либо, но и с легкостью общаться с компьютером, если это * необходимо, а также выводить все виды текста и данных на любой терминал.

*

* Подключение оборудования: * *  Будьте осторожны при установке датчика температуры, т.к. он очень *  похож на транзистор и есть шанс ошибиться! Вам нужен тот, на котором нет *  надписи 222, а есть треугольный логотип или надпись «TMP».

* *  Если повернуть датчик плоской стороной к себе, а выводами вниз, то *  назначение выводов будет таким (с лева на право): 5V, СИГНАЛ, и GND. * *  Подключите вывод датчика «5V» к  общей шине +5 вольт. *  Подключите вывод «Сигнал» к аналоговому порту 0 (Pin0).

*  Подключите вывод «GND» к земляной шине (GND). * *  Комментарий к программе переведен *  11 октября 2014

*  специально для http://arduinokit.ru

*

*/

// Мы будем использовать аналоговый порт 0 (Pin0) для снятия
// показаний с сигнального вывода датчика температуры.

const int temperaturePin = 0;

void setup()
{

// В этом скетче, мы будем используем последовательный порт Arduino, // чтобы передать текст обратно на компьютер. // Для того чтобы общение происходило корректно, необходимо соблюсти // общий протокол обмена данными, а также скорость передачи информации. // Для этого мы воспользуемся функцию Serial.begin(), она используется

// для инициализации порта и согласования скорости связи.

// Скорость передачи информации через последовательный порт измеряется в // битах в секунду, кстати бит может быть либо логической «единицей», // либо логическим «нулем». «baud rate» — скорость передачи. // Скорость 9600 является очень широко используемой при передачи данных, // хотя и очень медленной, при такой скорости передается примерно 10

// символов в секунду.

Serial.begin(9600);
}

void loop() { // До сих пор мы использовали для наших скетчей только целые числа («INT»), // «int» в переводе на русский — целые числа — 0, 1, 23 и т.д.. // В этй программе, мы будем использовать значения «float». // «Float» в переводе с английского – плавающий, у таких чисел помимо целой,

// есть еще дробная часть например, 1,42, 2523,43121 и т.д.

// Мы объявляем три переменных, все они будут «float», т.е. дробные, или как // еще говорят с плавающей точкой. Мы можем объявить несколько переменных

// одного типа за раз, на одной строчке, через запятую с пробелом:

float voltage, degreesC, degreesF;

// Сначала мы измерим напряжение на аналоговом входе. Обычно для этого мы // использовали функцию analogRead(), которая возвращает число от 0 до 1023. // Здесь же мы написали специальную функцию, о ней чуть дальше, под // названием getVoltage(), которая возвращает напряжение (от 0 до 5 вольт),

// присутствующего на аналоговом входе.

voltage = getVoltage(temperaturePin);

// Теперь мы преобразовываем напряжения в градусы Цельсия. // В этой формуле используются данные полученные с датчика температуры.

// Следующая формула работает для датчика TMP36:

degreesC = (voltage — 0.5) * 100.0;

// Если у вас датчик TMP35 формулу нужно немного изменить, // соответственно закомментируйте функцию выше и раскомментируйте // следующую, в ней ничего не надо вычитать, так как у TMP35

// выходное напряжение 0,25 милли вольт, а не 0,75 как у TMP36:

// degreesC = voltage * 100.0;

// Хотя нам это и не очень нужно, но давайте преобразуем градусы Цельсия (C) // в градусы Фаренгейта (F) (система используемая в США).

// Это классическая формула преобразования C в F:

degreesF = degreesC * (9.0/5.0) + 32.0;

// Теперь мы будем использовать последовательный порт для вывода
// данных на монитор!

// Чтобы открыть окно монитора порта, нужно загрузить код, а затем // нажать кнопку «увеличительное стекло» на правом краю панели

// инструментов Arduino IDE, откроется дополнительное окно монитора COM порта.

// (ПРИМЕЧАНИЕ: не забудьте, о чем мы говорили ранее, что скорость передачи // должна быть одинаковой для обеих сторон (передающей стороны и принимающей. // Убедитесь, что контроль скорости передачи в нижней части окна установлен

// в 9600. Если это не так, исправьте его на 9600.)

// Также обратите внимание, что каждый раз, когда вы загружаете // новый скетч в Arduino, окно монитора порта закрывается. Это // происходит потому что последовательный порт используется также // и для загрузки кода! Когда загрузка будет завершена, вы можете

// повторно открыть окно монитора COM порта.

// Для передачи данных от Arduino в COM порт, мы используем функцию // Serial.print(). Вы можете добавить свой текст напечатав его в кавычках. // С русскими символами монитор не дружит! Сразу за вашим текстом будет // впечатано значение переменной, см. ниже, оно без кавычек, их 3 —

// voltage, degreesC, degreesF:

Serial.print(«voltage: «); Serial.print(voltage); Serial.print(»  deg C: «); Serial.print(degreesC); Serial.print(»  deg F: «);

Serial.println(degreesF);

// Вывод информации будет иметь вид подобно следующему:
// «voltage: 0.73 deg C: 22.75 deg F: 72.96»

Читайте также:  Намотка тороидального трансформатора глазами практика. отделка и крепёж

// Обратите внимание, что все переменные выше заявлены как // «Serial.print», а для последнего «Serial.println». // Все слова и значения переменных будут выведены на экран в одной строке, // а вот после последней переменной будет произведен «перевод каретки»

// на новую строку, за это как раз и отвечает «println».

delay(1000); // повторение через одну секунду (можете поменять!)
}

float getVoltage(int pin) { // Эта функция имеет один входной параметр, получаемый с аналогового // порта. Вы могли заметить, что эта функция не имеет ключевого «void», // хотя «void» должен использоваться при объявлении функций, но если // только функция не возвращает никакого значение, у нас как раз случай, // наоборот, потому что возвращается значение с плавающей точкой,

// которое является настоящим напряжением на этом выводе (от 0 до 5 В).

// Вы можете написать свои собственные функции, которые принимают
// что-то в параметрах, и после возвращают какие-либо значения:

// Чтобы что-то принять в параметрах, укажите их тип и имя в скобках, // после имени функции (смотри выше). Вы можете указать несколько

// параметров, разделенных запятыми.

// Чтобы возвратить значение, укажите тип перед именем функции, // помните пример «float», и используйте функцию return() для возврата

// значение (см ниже).

// Если у вас нет необходимости, что-то получить, просто используйте
// пустые скобки «()» после имени функции.

// Если у вас нет необходимости возвращать какое либо значение,
// просто укажите «void» перед именем функции.

// Далее идет оператор возврата return() для нашей функции. Мы
// делаем все вычисления которые должны сделать:

return (analogRead(pin) * 0.004882814);

// Это уравнение преобразует значение напряжения от 0,0 до 5,0 В., // полученное с помощью функции analogRead() с аналогового порта, // в значения от 0 до 1023.

}

// Как еще можно попробовать использовать этот код?

// Например включить светодиод, если температура становится выше
// или ниже заданного значения.

// Прочитать показания с потенциометра — получится термостат!
// Ну и так далее, все в ваших руках!

Источник: http://arduinokit.ru/arduino/lessons-arduino/arduino-temperature-sensor.html

Электронные конструкторы и наборы, контроллеры, модули и датчики для Arduino

ИНТЕРНЕТ ВЕЩЕЙ ДЛЯ УМНОГО ДОМА
Элементы создания и отладки проектов по автоматизации вашего дома

 

Создание Умного дома предполагает наличие умных устройств. Но как устройство может стать «умным»? ● Первый вариант –  за счет, изменения своей конструкции: эта конструкция может быть таковой, что поведение системы может выглядеть разумным.

● Второй вариант –  за счет «интеллектуализации» (оснащения системы устройствами сбора информации, ее обработки и принятий решений). Такой подход позволяет обеспечить достаточно сложное и «разумное» поведение гораздо более простыми способами, чем за счет создания соответствующей конструкции.

● Наконец, третий вариант — поведение системы становится «разумным» за счет того, что она взаимодействует с другими системами.

 

Технология IoT (Интернет вещей) как раз и предоставляет возможность каждому элементу умного дома (вещи) и всему Умному дому выйти  в пространство Интернет паутины и обмениваться информацией с другими вещами и системами. Чем же привлекателен третий вариант?  Обо всём этом подробнее …

ОТ ПРОСТОГО К СЛОЖНОМУ. УРОКИ ARDUINOУрок 16:  Графический индикатор. Подключение дисплея Nokia 5110

В этом эксперименте мы рассмотрим работу графического дисплея Nokia 5110, который можно использовать в проектах Arduino для вывода графической информации.  Подробнее …

Урок 19:  Шаговый двигатель 4-фазный, с управлением на ULN2003 (L293)

В этом эксперименте мы рассмотрим подключение к Arduino шагового двигателя. Шаговые двигатели нашли широкое применение в области, где требуется высокая точность перемещений или скорости.  Подробнее …

 Урок 21:  Датчик влажности и температуры DHT11

В этом эксперименте мы рассмотрим рассмотрим работу датчика для измерения относительной влажности воздуха и температуры DHT11 и создадим проект вывода показаний датчика на экран  LCD1602. Подробнее …

Урок 23:  Ультразвуковой датчик расстояния HC-SR04. Принцип работы, подключение, пример

В этом эксперименте мы рассмотрим работу ультразвукового датчика для измерения расстояния и создадим проект вывода показаний датчика на экран ЖКИ WH1602.  Подробнее …

 

Урок 28:  Считыватель RFID на примере RC522. Принцип работы, подключение

В этом эксперименте мы покажем, как плата Arduino получает доступ к данным RFID-карт и брелоков Mifare с помощью RFID-считывателя RC522C. Подробнее …

Урок 33:  Модуль GPS. Принцип работы, подключение, примеры

А теперь экспериментируем с модулем GPS-приемника VK16E, позволяющего определять наше местоположение с помощью глобальной системы GPS, и подключение данного приемника к плате Arduino. Подробнее …

 Смотреть все уроки Arduino

Источник: https://arduino-kit.ru/

Подключаем датчик влажности к Arduino

В этой статье мы рассмотрим довольно популярные датчики влажности DHT11 и DHT22. Благодаря своей дешевизне и возможности подключения к любой из плат Arduino, они завоевали огромную популярность.

В наших примерах мы будем использовать оба датчика DHT11 и DHT22, а также печатную плату Arduino UNO, подключенную к ПК под управлением Windows 7. Технические характеристики DHT11 описаны ниже:

  • 3 к 5V питания для ввода / вывода;
  • Использование максимального тока 2.5mA во время преобразования (при запросе данных);
  • Снятие показаний влажности от 20 до 80 процентов с погрешностью до 5 процентов;
  • Определение температуры воздуха от 0°C до 50°C с погрешностью ± 2°C;
  • Частота дискретизации 1 Гц для показаний один раз в секунду;
  • Габаритные размеры 15.мм х 12 мм х 5,5 мм;
  • 4 контакта с шагом 0.1 дюйм.

Технические характеристики DHT22:

  • 3 к 5V питания для ввода / вывода;
  • Использование максимального тока 2.5mA во время преобразования (при запросе данных);
  • Снятие показаний влажности от 0 до 100 процентов с погрешностью от 2 до 5 процентов;
  • Определение температуры воздуха от -40°C до 125°C с погрешностью ±0.5°C;
  • Частота дискретизации 0.5 Гц для снятия показаний один раз в 2 секунды;
  • Габаритные размеры 15.1 мм x 25 мм x 7.7 мм;
  • 4 контакта с шагом 0.1 дюйм.

Исходя из технических характеристик сенсоров DHT11 и DHT22, последний является лучшим выбором для снятия показателей температуры и влажности. Кроме датчиков влажности DHT11 и DHT22, мы рассмотрим датчик влажности почвы, который состоит из контактного щупа YL-69 и датчика YL-38. Характеристики датчика YL-38 описаны ниже:

  • Двойной режим вывода, аналоговый выход и цифровой;
  • Питание от 3.3В до 5В;
  • Выходной сигнал от 0 до 4.2В;
  • Значение тока 35мА;
  • Микросхема компаратора LM393;
  • Размер PCB панели датчика: 3 x 1.5 см;
  • Размер контактного щупа почвы: 6 x 2 см.

Подключаем датчики DHT11 и DHT22 к Arduino UNO

Перед тем как подключать рассматриваемые компоненты, нам нужно установить на наш ПК Arduino IDE. Загрузить IDE можно на официальном сайте разработчика плат Ардуино. На данный момент последней Arduino IDE является версия под номером 1.6.10.

Читайте также:  Подсветка сабвуфера своими руками

Процесс установки Arduino IDE очень прост и сводится к нажатиям кнопки «Next >» и «Install», поэтому с ним справится любой пользователь.

После установки Arduino IDE на рабочем столе должен появиться ярлык с именем «Arduino».

Теперь рассмотрим схемы подключения рассматриваемых компонентов к Arduino UNO. Ниже изображена схема подключения датчика DHT22.

Для сенсора DHT11 схема подключения выглядит аналогично.

Теперь подключим нашу схему по USB-кабелю к компьютеру. Прежде чем отрывать Arduino IDE, мы скачаем библиотеку «DHT.h». Библиотеку можно загрузить по этой ссылке https://github.

com/amperka/dht. После загрузки извлеките содержимое папок «lib/dht» в директорию, где хранятся все библиотеки «C:Program FilesArduinolibraries».

После этого запустим Arduino IDE и наберем в скетче код, изображенный ниже.

Этот код написан для использования сенсора DHT22. Если вам нужно использовать датчик DHT11, то исправьте в третьей строке «DHT22» на «DHT11». Теперь загрузим наш код в Arduino UNO и откроем «Монитор порта».

В мониторе видно значение влажности в процентном соотношении и показатели температуры.

Подключаем датчик влажности почвы к Arduino UNO

В этой главе мы опишем пример подключения датчика влажности почвы YL-38 к Arduino UNO. Первым делом нам нужно собрать схему, которая изображена ниже.

После этого запустим Arduino IDE и наберем в скетче код, который можно загрузить по этой ссылке https://github.com/TasmanianDevilYouTube/Arduino/blob/master/Moisture_Sensor/Moisture_Sensor.ino

После набора кода загрузим его в наш Arduino UNO. Теперь откроем «Монитор порта» и увидим сообщение «Sensor is not in the Soil or DISCONNECTED», которое означает, что сенсор не подключен к почве.

Если мы подключим контактный щуп датчика к сухой почве, то мы увидим такое сообщение «Soil is DRY».

Если контактный щуп сенсора будет находиться во влажной почве, то мы увидим сообщение «Soil is HUMID» в «Мониторе порта».

Если контактный щуп сенсора будет находиться в воде, то мы увидим сообщение «Sensor in WATER» в «Мониторе порта».

Принцип работы этого скетча основан на условных операторах. Например, рассмотрим часть кода, когда в «Мониторе порта» выдается сообщение «Sensor is not in the Soil or DISCONNECTED»:

if(SensorValue >= 1000) {Serial.println(«Sensor is not in the Soil or DISCONNECTED»);

В этом коде, если значение переменной «SensorValue» меньше 1000, то с помощью команды «Serial.println» мы получаем заданное сообщение на «Монитор порта». На таком же принципе основан вывод остальных сообщений.

Перспективы использования рассмотренных датчиков

Датчики DHT11 и DHT22 редко используют для одиночного подключения к плате Arduino. Наиболее часто эти датчики можно встретить в составе погодных станций.

Например, статью по сборке такой станции можно найти на официальном сайте https://create.arduino.cc/projecthub/GeekRex/10-portable-arduino-weather-station-aws-ccf41f.

В этой статье пользователю объясняют, как собрать погодную станцию из таких компонентов:

  • Arduino Nano R3 — компактная плата Ардуино с микроконтроллером ATmega328;
  • DHT22 — датчик влажности и температуры воздуха;
  • BMP180 — датчик атмосферного давления;
  • Adafruit Standard LCD-16×2 White on Blue — дисплей для вывода информации с датчиков.

Сама погодная станция собрана по такой схеме.

Принцип действия этой станции основан на снятии показаний с датчиков и их выводе на дисплей Adafruit Standard LCD-16×2 White on Blue.

Датчик влажности почвы также можно использовать в составе готовых автоматизированных систем, построенных на Ардуино. Например, на Github можно найти готовый проект под названием «irrigator». Этот проект позволяет создать на Arduino автополивщик растений.

Используя такую систему, можно создать универсальный автополивщик растений, который сэкономит время и деньги.

Подводим итог

В этом материале мы рассмотрели простейшие способы подключения датчиков влажности воздуха и почвы. Используя разнообразные методы подключения различных компонентов к Arduino, вы сможете довольно быстро освоить сборку сложных систем на Ардуино. Поэтому надеемся, что наш материал хоть и немного, но поможет вам ближе подойти к созданию своего умного дома.

Видео по теме

Источник: https://VashUmnyiDom.ru/obshhaya-avtomatika/datchik-vlazhnosti-arduino.html

Измерение давления при помощи Arduino и датчика SPD005G

ПодробностиКатегория: ArduinoОпубликовано 11.08.2015 12:17Автор: AdminПросмотров: 8119

В данной статье будем измерять давление при помощи Arduino и датчика давления SPD005G.

Для измерения атмосферного давления используются датчики давления. В данной статье описан датчик давления SPD005G от Smartec. SPD означает Smart Pressure Device . Эти датчики собраны на основе кремния и пригодны как использования как в промышленности так и для использования в быту. Датчик представляет собой пластиковый корпус с специальным отверстием для измерения атмосферного давления.

Датчик может работать в двух режимах:в режиме абсолютного измерения когда давление измеряется относительно ваккума, и в режиме относительного измерения — когда измерение осуществляется относительно атмосферного давления. Когда датчик работает в режиме абсолютного измерения, то измеряет ся перепад давления между измеряемым давлением и давлением ваккумной камеры, которая находится в самом датчике.

Датчик SPD005G используется в различных медицинских аппаратах, системах кондиционирования воздуха, и многих других устройствах требующих достаточного уровня точности.

В проекте используется символьный LCD дисплей. Про подключение дисплея к Arduino было сказано ранее.

Принципиальная схема датчика давления

Документация датчика spd005g и его технические характеристики.

Схема подключения датчика давления к Arduino

Датчик подключается к Arduino через специальный каскад собранным на операционном усилителе LM324. Выходной вывод каскада 12 подключается к выводу A0 arduino. Вывод измеренного значения с датчика давления выводится на символьный LCD дисплей 16×2.

Светодиод L2 можно исключить из схемы, он необхоим только лишь для сигнализации наличия напряжения. Переменое сопротивление R4 предназначено для регилировки контрасности дисплея. Передачи данных осуществляется по 4-м проводам подключенным к выводам DB4-DB7.

Питание LCD дисплея 16×2 осуществляется от источника в 5 Вольт.

Программа для Arduino

#include int sensor=A0; int dig_out; float millivolt; LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // sets the lcd interfacing pins void setup() { pinMode(sensor,INPUT); // sets A0 as input lcd.begin(16, 2); // initializes the lcd } void loop() { dig_out=analogRead(sensor); // reads the input voltage millivolt=(dig_out*4.882); // converts the reading to millivolt lcd.setCursor(0,0); lcd.print(«Pressure Sensor»); // prints «Pressure Sensor» lcd.setCursor(0,1); lcd.print(millivolt); // prints the input voltage lcd.setCursor(9,1); lcd.print(«mV»); // prints the»mV» notation delay(300); // 300 mS delay lcd.clear(); // clears screen }

Источник: http://www.radio-magic.ru/arduino-projects/282-arduino-i-datchik-davleniya

Ссылка на основную публикацию