Arduino. подключение простейших датчиков (часть 4)

Содержание

Что такое Ардуино

Фирма Arduino Software выпускает различные модели микропроцессоров и других электронных устройств. Однако, если в разговоре упоминается об Ардуино, в виду чаще всего имеется микрокомпьютер Arduino Uno. Это небольшая плата, на которой установлен процессор и электронные компоненты. По своим функциональным возможностям это устройство близко к материнским платам компьютеров, хоть и с урезанными возможностями.

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

Где используются

Микропроцессоры Ардуино уже успели стать незаменимыми во множестве систем и комплексов:

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

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

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

  • игрушки;
  • оснащение предметов или аттракционов в квест-румах;
  • интерактивные арт-инсталляции и так далее.

Единственным ограничением является необходимость составления специальных программ для микропроцессора. Они закачиваются в него с обычного компьютера через интерфейс USB, для чего надо предварительно написать код. Это доступно только программистам, владеющим языком С++. Однако, в сети немало готовых программ для Ардуино, которые можно использовать для решения разных задач.

Пример программы

Простейший скетч для датчика движения Ардуино выглядит следующим образом:

Текст скетча можно скачать здесь: здесь

Это самая простая программа, которая плохо подходит для выполнения практических задач. Чаще всего ее используют для тестирования датчиков и проверки их работоспособности. Основным недостатком этого скетча является отсутствие возможности определить количество и размер регистрируемых объектов, что будет приводить к ложным срабатываниям. Для практического использования составляют более сложные скетчи, которые включают увеличенное количество команд (строк кода).

Недостатки

В силу отработанности аппаратной платформы, хорошо документированных схем, простоты разработки ПО и дешевизны PIR-датчики на Ардуино не обладают особыми недостатками в рамках возлагаемых на них задач. Возможности их применения ограничиваются естественными пределами ИК-технологии, периферийным оборудованием и заложенными в прошивку контроллера функциями.

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

Примеры работы

Простой датчик движения

Инфракрасный датчик может работать даже без микроконтроллера. Соберите простой детектор движения объекта.


При появлении объекта в зоне видимости датчика, лампочка загорится.

Используйте инфракрасный датчик движения как одно из зёрен в своём умном доме. Тут уже не обойтись без Arduino, Raspberry Pi или Iskra JS.

Пример для Arduino

Подключим датчик движения к Arduino Uno через Troyka Shield к цифровому пину.

Код программы

Выведем в Serial-порт текущее состояние датчика с обновлением каждые 100 миллисекунд.

motionState.ino
// пин инфракрасного датчика движения 
#define MOTION_PIN  4
 
void setup()
{
  // открываем монитор Serial-порта
  Serial.begin(9600);
  // настраиваем пин в режим входа
  pinMode(MOTION_PIN, INPUT);
}
 
void loop()
{
  // считываем состояние пина
  int motionState = digitalRead(MOTION_PIN);
  // выводим в Serial-порт
  Serial.println(motionState);
  delay(100);
}

После прошивки платы, вы увидите бегущие нули. А как только появится живой объект на горизонте — нули сменятся на единицы.

Пример для Iskra JS

Скоммутируем PIR-сенсор к Iskra JS через Troyka Shield к цифровому пину.

Код программы

Зафиксируем движение объекта с помощью Espruino и языка JavaScript.

motionDetect.js
// наблюдаем за датчиком движения
setWatch(function() {
  // если датчик зафиксировал движение
  // печатаем об этом в консоль
  print("Movement detected");
}, P4, {
  // функция вызывается многократно
  repeat true,
  // фиксация восходящего фронта
  edge "rising"
});

В результате вы увидите сообщение в консоле, при обнаружении живого объекта в зоне видимости сенсора.

Пример для Raspberry Pi

Поймаем живой объект одноплатником Raspberry Pi, например, Raspberry Pi 4. Подключите сенсор движения к пину Raspberry. Для избежания макеток и проводов используйте плату расширения Troyka Cap.

Код программы

motionState.py
# библиотека для работы с методами языка Wiring (Arduino)
import wiringpi as wp
# инициализация WiringPi 
wp.wiringPiSetup()
# пин 4 в режим входа
wp.pinMode(4, )
 
while (True):
    # считываем состояние с датчика движения
    motionState = wp.digitalRead(4)
    # печатаем результат в консоль
    print(motionState);
    # ждём 100 мс
    wp.delay(100)   

После запуска скрипта вы увидите текущие показатели сенсора. Пока движения нет — в консоли выводятся нули, при обнаружении живого объекта — единицы.

УЗ дальномер для Arduino

Ультразвуковой датчик расстояния Ардуино удобен проработанностью интерфейсной части, соединяющей его с конечным микроконтроллером. Для передачи данных применяют всего два цифровых пина платы. Первый используется с целью генерации длительности звука, на втором сигнал HIGH держится до момента получении эха, после изначальной отправки волны. С целью увеличения точности, HC-SR04 посылает не единичный импульс, а серию из восьми.

Параметры, характеризующие ультразвуковой дальномер HC-SR04:

  • Питание: 5 В
  • Ток в активном состоянии (мА): 15
  • Ток в режиме простоя (мА): <2
  • Угол захвата ультразвука: 15°
  • Ширина импульса: 30°
  • Глубина минимального охвата чувствительности: 3 мм
  • Время действия излучателя: 10–6 сек

Интерфейсные контакты датчика:

Номер (слева-направо) Обозначение Указание
1 +5 В Питание +5 В
2 TRIG(T) Триггер инициализации импульса.
3 ECHO(R) Пин возвращающий время возврата
4 GND «Земля»

Пример программы

Скетч представляет собой программный код, который помогает проверить работоспособность датчика движения после его включения. В самом простом его примере есть множество недостатков:

  • Вероятность ложных срабатываний, за счет того, что для самоинициализации датчика требуется одна минута;
  • Отсутствие выходных устройств исполнительного типа – реле, сирены, светоиндикации;
  • Короткий временной интервал сигнала на выходе сенсора, который необходимо на программном уровне задержать, в случае появления движения.

Указанные недостатки устраняются при расширении функционала датчика.

Скетч самого простого типа, который может быть использован в качестве примера работы с датчиком движения на Arduino, выглядит таким образом:

  #define PIN_PIR 2  #define PIN_LED 13    void setup() {    Serial.begin(9600);      pinMode(PIN_PIR, INPUT);    pinMode(PIN_LED, OUTPUT);    }    void loop() {    int pirVal = digitalRead(PIN_PIR);    Serial.println(digitalRead(PIN_PIR));      //Если обнаружили движение    if (pirVal)    {      digitalWrite(PIN_LED, HIGH);      Serial.println("Motion detected");      delay(2000);    }    else    {      //Serial.print("No motion");      digitalWrite(PIN_LED, LOW);    }  }

Что такое Ардуино

Фирма Arduino Software выпускает различные модели микропроцессоров и других электронных устройств. Однако, если в разговоре упоминается об Ардуино, в виду чаще всего имеется микрокомпьютер Arduino Uno. Это небольшая плата, на которой установлен процессор и электронные компоненты. По своим функциональным возможностям это устройство близко к материнским платам компьютеров, хоть и с урезанными возможностями.

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

Где используются

Микропроцессоры Ардуино уже успели стать незаменимыми во множестве систем и комплексов:

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

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

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

  • игрушки;
  • оснащение предметов или аттракционов в квест-румах;
  • интерактивные арт-инсталляции и так далее.

Единственным ограничением является необходимость составления специальных программ для микропроцессора. Они закачиваются в него с обычного компьютера через интерфейс USB, для чего надо предварительно написать код. Это доступно только программистам, владеющим языком С++. Однако, в сети немало готовых программ для Ардуино, которые можно использовать для решения разных задач.

Пример программы

Простейший скетч для датчика движения Ардуино выглядит следующим образом:

Текст скетча можно скачать здесь: здесь

Это самая простая программа, которая плохо подходит для выполнения практических задач. Чаще всего ее используют для тестирования датчиков и проверки их работоспособности. Основным недостатком этого скетча является отсутствие возможности определить количество и размер регистрируемых объектов, что будет приводить к ложным срабатываниям. Для практического использования составляют более сложные скетчи, которые включают увеличенное количество команд (строк кода).

Общие сведения

Любой человек или животное с температурой выше нуля испускает тепловую энергию в виде излучения. Это излучение не видно человеческому глазу, потому что оно излучается на инфракрасных волн, ниже спектра, который люди могут видеть. Измерение этой энергии, не то же самое, что измерять температуру. Так как температура зависит от теплопроводности, поэтому, когда человек входит в комнату, он не может мгновенно изменить температуру в помещении. Однако есть уникальная инфракрасное излучение из-за температуры тела и которую ищет PIR датчик.
Принцип работы инфракрасного датчика движения HC-SR501 прост, при включении, датчик настраивается на «Нормальную» инфракрасное излучение в пределах своей зоны обнаружения. Затем он ищет изменения, например человек прошел или переместился в пределах контролируемой зоны. Для определения инфракрасного излечение детектор использует пироэлектрический датчик. Это устройство, которое генерирует электрический ток в ответ на прием инфракрасного излучения. Поскольку датчик не излучает сигнал (например, ранее упомянутый ультразвуковой датчик), его наказывают «пассивным». Когда обнаружено изменение, датчик HC-SR501 изменяет выходной сигнал.

Для повышения чувствительности и эффективности датчика HC-SR501 используется метод фокусировки инфракрасного излечения на устройство, достигается, это с помощью «Линзы Френеля». Линза выполнен из пластика и выполнена в виде купола и фактически состоит из нескольких небольших линз Френеля. Хоть пластик и полупрозрачен для человека, но на самом деле полностью прозрачен для инфракрасного света, поэтому он также служит в качестве фильтра.

HC-SR501 — недорогой датчик PIR, который полностью автономный, способный работать сам по себе или в сопряжении с микроконтроллером. Датчик имеет регулировку чувствительности, которая позволяет определять движение от 3 до 7 метров, а его выход можно настроить так, чтобы он оставался высоким в течение времени от 3 секунд до 5 минут. Так же, датчике имеет встроенный стабилизатор напряжения, поэтому он может питаться от постоянного напряжения от 4,5 до 20 вольт и потребляет небольшое количество тока. HC-SR501 имеет 3-контактный разъем, назначение следующие:

Назначение выводов► VCC — положительное напряжение постоянного тока от 4,5 до 20 В постоянного тока.
► OUTPUT — логический выход на 3,3 вольта. LOW не указывает на обнаружение, HIGH означает, что кто-то был обнаружен.
GND — заземление.

На плате также установлены два потенциометра для настройки нескольких параметров:►  SENSITIVITY — устанавливает максимальное и минимальное расстояние (от 3 метров до 7 метров).►  TIME (ВРЕМЯ) — время, в течение которого выход будет оставаться HIGH после обнаружения. Как минимум, 3 секунды, максимум 300 секунд или 5 минут.

Назначение перемычек:►  H — это настройка Hold или Repeat. В этом положении HC-SR501 будет продолжать выдавать сигнал HIGH, пока он продолжает обнаруживать движение.►  — Это параметр прерывания или без повтора. В этом положении выход будет оставаться HIGH в течение периода, установленного настройкой потенциометра TIME.

На плате HC-SR501 имеются дополнительные отверстия для двух компонентов, рядом расположена маркировка, посмотреть на нее можно сняв линзу Френеля.

Назначение дополнительных отверстий:►  RT — это предназначено для термистора или чувствительного к температуре резистора. Добавление этого позволяет использовать HC-SR501 в экстремальных температурах, а также в некоторой степени повышает точность работы детектора.►  RL — это соединение для светозависимого резистора или фоторезистора. Добавляя компонент, HC-SR501 будет работать только в темноте, что является общим приложением для чувствительных к движению систем освещения.

Недостатки

В силу отработанности аппаратной платформы, хорошо документированных схем, простоты разработки ПО и дешевизны PIR-датчики на Ардуино не обладают особыми недостатками в рамках возлагаемых на них задач. Возможности их применения ограничиваются естественными пределами ИК-технологии, периферийным оборудованием и заложенными в прошивку контроллера функциями.

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

Ниши применения

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

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

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

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

Описание датчика движения ардуино

Конструкция ПИР датчика движения не очень сложна – он состоит из пироэлектрического элемента, отличающегося высокой чувствительностью (деталь цилиндрической формы, в центре которой расположен кристалл) к наличию в зоне действия определенного уровня инфракрасного излучения. Чем выше температура объекта, тем больше излучение. Сверху PIR-датчика устанавливается полусфера, разделенная на несколько участков (линз), каждый из которых обеспечивает фокусировку излучения тепловой энергии на различные сегменты датчика движения. Чаще всего в качестве линзы применяют линзу Френеля, которая за счет концентрации теплового  излучения позволяет расширить диапазон чувствительности инфракрасного датчика движения Ардуино.

PIR-sensor конструктивно разделен на две половины

Это обусловлено тем, что для устройства сигнализации важно именно наличие движения в зоне чувствительности, а не сам уровень излучения. Поэтому части установлены таким способом, что при улавливании одной большего уровня излучения, на выход будет подаваться сигнал со значением high или low

Основными техническими характеристиками датчика движения Ардуино являются:

  • Зона обнаружения движущихся объектов составляет от 0 до 7 метров;
  • Диапазон угла слежения – 110°;
  • Напряжение питания – 4.5-6 В;
  • Рабочий ток – до 0.05 мА;
  • Температурный режим – от -20° до +50°С;
  • Регулируемое время задержки от 0.3 до 18 с.

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

Принцип работы датчика движения на Arduino следующий:

  • Когда устройство установлено в пустой комнате, доза излучения, получаемая каждым элементом постоянна, как и напряжение;
  • При появлении в комнате человека, он первым делом попадает в зону обозрения первого элемента, на котором появляется положительный электрический импульс;
  • Когда человек перемещается по комнате, вместе с ним перемещается и тепловое излучение, которое попадает уже на второй сенсор. Этот PIR-элемент генерирует уже отрицательный импульс;
  • Разнонаправленные импульсы регистрируются электронной схемой датчика, которая делает вывод, что в поле зрения Pir-sensor Arduino находится человек.

Для надежной защиты от внешних шумов, перепадов температуры и влажности, элементы Pir-датчика на Arduino устанавливаются в герметичный металлический корпус. На верхней части корпуса по центру находится прямоугольник, выполненный из материала, который пропускает инфракрасное излучение (чаще всего на основе силикона). Чувствительные элементы устанавливаются за пластиной.

PIR датчик

PIR датчик представляет собой пироэлектрический инфракрасный (PIR) датчик движения. Подобные датчики часто используются в системах сигнализации и легко обнаруживают присутствие людей или животных. Они малые по габаритам, недорогие, потребляют мало энергии, легки в эксплуатации и практически не подвержены износу.

В PIR датчике присутствуют два важных элемента: пироэлектрический кристалл, который может обнаруживать тепловые сигнатуры от живого организма (человека/животных), и линзы Френеля, которые расширяют диапазон действия датчика. Также в PIR датчике доступно несколько вариантов опций, показанных на следующем рисунке.

Два потенциометра (оранжевый цвет) используются для управления чувствительностью и срабатывания по времени датчика. Основной контакт датчика (Dout) располагается между его контактами Vcc и Gnd. Датчик работает от напряжения 3.3 В, но также может работать и от напряжения 5 В. В левом верхнем углу датчик имеет переключатель режимов своей работы. Всего доступно два режима работы: “H” режим и “I” режим.

В “H” режиме на выходном контакте датчика Dout будет появляться напряжение высокого уровня (3.3V) когда в диапазоне действия датчика будет появляться человек. Спустя некоторое время, устанавливаемое с помощью потенциометра, напряжение на этом контакте становится низкого уровня. То есть в этом режиме напряжение высокого уровня на контакте Dout будет независимо от того присутствует ли еще человек в зоне действия датчика или покинул ее. Этот режим мы будем использовать в нашем проекте – в большинстве случаев он предпочтительней при работе с этим датчиком. Еще его называют режимом “с перезапуском”.

В режиме “I” напряжение высокого уровня (3.3V) на выходном контакте датчика Dout будет только тогда, когда человек находится в зоне действия датчика. Как только человек покинет ее, то спустя некоторое время, регулируемое с помощью потенциометра, на контакте Dout будет напряжение низкого уровня. То есть если вы будете ходить около датчика, то он будет постоянно срабатывать и выключаться. Этот режим еще называется режимом “без перезапуска”.

Примечание: местоположение контактов и потенциометров могут отличаться в зависимости от производителя PIR датчика.

Установка Python и PySerial

Если в проекте используется компьютер с операционной системой Linux, например, Raspberry Pi, Python уже установлен. Если используется компьтер с операционной системой Windows, то Python требуется установить. В любом случае, потребуется установить библиотеку PySerial чтобы обеспечить связь с Arduino.

Установка Python на Windows

Чтобы установить Python на Windows, скачайте установщик с https://www.python.org/downloads/. Были сообщения о проблемах с PySerial на Windows при использовании Python 3, поэтому используем Python 2. После установки Python, в меню Пуск появится соответствующая группа. Но для установки PySerial нужно будет использовать Python из командной строки, поэтому добавим к переменной PATH среды Windows соответствующий каталог.


Чтобы сделать это, нужно зайти в Панель управления Windows, найти System Properties (Свойства системы). Затем нажать на кнопку с надписью Environment Variabes («Переменные среды») и в появившемся окне выбрать «Path» в нижней части System variables (Системные переменные). Нажать кнопку Edit («Изменить»), а затем в конце «Значение переменной», не удаляя имеющийся текст, добавить «; C: \ Python27». Не забывать «;» после каждой указанной папки. Чтобы проверить, что переменную PATH изменили корректно, в командной строке введем команду «“python». Должна появляться подобная картина:


Установка PySerial

Независимо от используемой операционной системы, скачиваем .tar.gz установочный пакет для PySerial 2.6 с https://pypi.python.org/pypi/pyserial Получаем файл с именем pyserial-2.6.tar.gz При использовании Windows нужно распаковать файл в папку. К сожалению, это не обычный файл ZIP, так что, возможно, потребуется скачать, например, 7-zip (https://www.7-zip.org/). При использовании компьютера с операционной системой Linux, например, при использовании в этом проекте Raspberry Pi, нужно открыть терминальную сессию, выполнить команду «CD» с указанием папки куда скачана pyserial-2.6.tar.gz, а затем выполнить следующую команду, чтобы распаковать установщик: $ tar -xzf pyserial-2.6.tar.gz Далее независимо от используемой операционной системы в командной строке выполняем команду “CD” c указанием папки pyserial-2.6 и выполняем команду: sudo python setup.py install

Описание датчика движения

Создаваемые на базе Ардуино сенсоры перемещения устроены довольно просто. Они работают на принципе регистрации инфракрасных излучений. Помимо контроллера, основной компонент устройства — высокочувствительный пассивный пироэлектрический (PIR) элемент, регистрирующий присутствие определенного уровня инфракрасного спектра. Чем теплее появившийся в радиусе действия сенсора объект, тем сильнее излучение.

Типичный PIR-датчик снабжается полусферой с фокусирующими поступающую на сегменты сенсора тепловую энергию линзами. Обычно применяется линза Френеля: она хорошо концентрирует тепло и существенно увеличивает чувствительность. В качестве платформы нередко берут Arduino Uno, но возможно создание датчика и на других версиях контроллера.

Конструктивно PIR-сенсор делится на две части

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

KY-008, модуль лазерного светодиода

Модуль лазерного диода

 Можно заменить на лазерный диод за 20 р  и последовательно поставить токоограничивающий резистор, на Али удовольствие стоит  от 50 р
 Модуль аналогичен KY-005, только в роли излучающего элемента выступает 3 мВт лазерный светодиод. Можно использовать для передачи данных на дальние расстояния (лазер все таки, имеет довольно узкий луч, который имеет больший световой поток при одинаковой мощности инфракрасных и лазерных диодов), если использовать зеркала  то можно построить довольно объемную охранную сигнализацию помещения. Единственный недостаток в ней будет заключаться в юстировке зеркал.

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

Следующая конструкция построена на сенсоре-анероиде BMP180. Экран, в нее входящий, будет отображать текущее давление атмосферного воздуха и температуру окружающей среды. Для изготовления понадобятся:

Элемент Наименование/характеристика Количество
Микроконтроллер Arduino UNO/Nano 1
Датчик BMP180 1
Экран HD447080LCD-1602 1
Резистор 100 Ом 1
Регулируемый резистор До 10 кОм 1

Ну и конечно провода для связки всего названого в единую систему.

Библиотека, управляющая сенсором берется тут: https://github.com/adafruit/Adafruit-BMP085-Library

Принципиальная схема

Фотография итогового устройства:

Плата-шилд самодельная, для желающих повторить, она вблизи:

Датчик питается от 3.3V, соответственно и подключаются его контакты получения энергии (VCC и GND) к плате Arduino. Для передачи данных используются входы A5 (SCL) и A4(SDA). Дисплей с микроконтроллером соединяется согласно следующей таблицы:

Arduino Экран
D6 E и D4 вместе
D4 D5
D3 D6
D2 D7
GND GND
D7 RS

Скетч

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

Схема подключения датчика движения к Ардуино

Подключение Pir-датчика к Ардуино выполнить не сложно. Чаще всего модули с сенсорами движения оснащены тремя коннекторами на задней части. Распиновка каждого устройства зависит от производителя, но чаще всего возле выходов есть соответствующие надписи. Поэтому, прежде чем выполнить подключение датчика к Arduino необходимо ознакомиться с обозначениями. Один выход идет к земле (GND), второй – обеспечивает выдачу необходимого сигнала с сенсоров (+5В), а третий является цифровым выходом, с которого снимаются данные.

Подключение Pir-сенсора:

  • «Земля» – на любой из коннекторов GND Arduino;
  • Цифровой выход – на любой цифровой вход или выход Arduino;
  • Питание – на +5В на Arduino.

Схема подключения инфракрасного датчика к Ардуино представлена на рисунке.

Схема датчика освещения на фоторезисторе и реле

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

#define PIN_RELAY 10
#define PIN_PHOTO_SENSOR A0

void setup() {
  pinMode(PIN_RELAY, OUTPUT);
  digitalWrite(PIN_RELAY, HIGH);
}

void loop() {
  int val = analogRead(PIN_PHOTO_SENSOR);
  if (val < 300) {
    // Светло, выключаем реле
    digitalWrite(PIN_RELAY, HIGH);
  } else {
    // Темновато, включаем лампочку
    digitalWrite(PIN_RELAY,  LOW);
  }
}

Краткие выводы

Ультразвуковые датчики расстояния достаточно универсальны и точны, что позволяет их использовать для большинства любительских проектов. В статье рассмотрен крайне популярный датчик HC SR04, который легко подключается к плате ардуино (для этого следует сразу предусмотреть два свободных пина, но есть вариант подключения и с одним пином). Для работы с датчиком существуют несколько бесплатных библиотек (в статье рассмотрена лишь одна из них, NewPing), но можно обойтись и без них – алгоритм взаимодействия с внутренним контроллером датчика достаточно прост, мы показали его в этой статье.

Исходя из собственного опыта, можно утверждать, что датчик HC-SR04 показывает точность в пределах одного сантиметра на расстояниях от 10 см до 2 м. На более коротких и дальних дистанциях возможно появление сильных помех, что сильно зависит от окружающих предметов и способа использования. Но в большинстве случаев HC-SR04 отлично справлялся со своей работой.