Йогуртница на основе arduino своими руками

Самодельная йогуртница

Для приготовления йогурта в домашних условиях требуется термостат, способный в течении 5 – 10 часов поддерживать температуру 38 – 40 градусов Цельсия. Йогуртницы, выпускаемые промышленностью, обычно содержат маломощный электрический нагреватель постоянно подключенный к питающей сети. В некоторых случаях это приводит к существенному отклонению температуры от оптимальной, что отрицательно сказывается на качестве получаемого продута. В данной статье предлагается схема и конструкция простого электронного термостата, способного поддерживать температуру с достаточной точностью. Схема электрическая принципиальная термостата приведена на рисунке.

Зелёный светодиод HL1 является индикатором наличия сетевого напряжения. На элементах VD2, R1, R2 и R3 собран стабилизированный источник питания с выходным напряжением 12В. Кремниевые диоды VD3, VD4 используются в качестве датчика температуры. При температуре 20°C падение напряжения на них около 1В, а коэффициент преобразования составляет -4 мВ/°C. Компаратор DA1.2 сравнивает напряжение на датчике с уставкой, получаемой с переменного резистора R9. Благодаря резисторам R11, R12 компаратор работает с небольшим гистерезисом. Если температура ниже заданной, то напряжение на входе 3 DA1.2 выше, чем на входе 2 DA1.2, выходной транзистор компаратора заперт, мощный высоковольтный полевой транзистор VT1 открыт, т. к. благодаря резистору R13 на его затворе присутствует напряжение 12 вольт. На нагреватель R17 подаётся выпрямленное сетевое напряжение. Когда температура поднимется выше заданной, то выходной транзистор компаратора откроется, а VT1 запрётся, нагреватель выключится. Красный светодиод HL2 является индикатором включения нагревателя. Переменный резистор R9 снабжён шкалой 20°C – 60°C, позволяющей задавать желаемое значение температуры. Подстроечные резисторы R5 и R6 задают границы диапазона регулирования температуры.

Описанная схемная реализация имеет недостаток, заключающийся в том, что в случае обрыва цепи датчика произойдёт неконтролируемый рост температуры нагревателя. Для устранения этого недостатка используется компаратор DA1.1, выход которого соединён с выходом DA1.2 по схеме “монтажного или”. В случае обрыва в цепи датчика напряжение на входе 6 DA1.2 окажется выше, чем на входе 5. Выходной транзистор компаратора DA1.1 откроется и VT1 будет заперт независимо от состояния DA1.2.

Демпфирующая цепочка (снаббер) R16, С6 защищает транзистор VT1 от пробоя короткими высоковольтными импульсами, которые иногда возникают в питающей сети.

Конструкция и детали

Устройство состоит из двух частей – электронного блока и термостабилизированной поверхности, представленных на следующей фотографии.

Электронный блок собран в пластмассовой коробке размером 100х75х65 [мм]. Ось переменного резистора R9 выведена на верхнюю панель блока. Торец этой оси немного заглублён относительно уровня верхней панели. На нём имеется шлиц, позволяющий с помощью отвёртки менять заданную температуру. Также на верхнею панель вынесены светодиоды HL1 “Сеть” и HL2 “Нагрев”. Монтаж электронного блока выполнен на макетной плате, представленной на следующей фотографии.

Термостабилизированная поверхность изготовлена из металлического подноса, внутри которого размещены датчик температуры VD3, VD4 и нагреватель R17, в качестве которого использован нагревательный элемент от фотоглянцевателя. Нагреватель и датчик смонтированы на алюминиевой пластине толщиной 5 мм, прикрученной к дну подноса 6-ю винтами с потайными головками. Пластину следует изготовить по размерам дна подноса. Краску с внутренней поверхности дна подноса нужно счистить и нанести на него тонкий слой теплопроводящей пасты КПТ-8 или, что хуже, смазки Литол-24, а затем установить пластину и прикрепить винтами. Размеры пластины можно существенно уменьшить или даже вовсе от неё отказаться, если использовать поднос из алюминия, теплопроводность которого существенно больше, чем у стали. Нагреватель следует разместить в середине пластины. Взаимное положение нагревателя и датчика показано на фотографии. Зазор между нагревателем и датчиком нужно заполнить теплопроводящей пастой.

Со стороны нагревателя поднос закрыт крышкой из фанеры. Между крышкой и нагревателем полезно проложить теплоизолятор – тонкий войлок, синтепон и т.п.

Электронный блок подключается к термостабилизированной поверхности с помощью самодельного четырёхжильного кабеля длиной 50 см, заканчивающегося разъём DB-9. Провода, идущие к нагревателю, следует перевить, а для подключения датчика использовать провод в экране, как это показано на схеме.

В качестве HL1 можно использовать любой зелёный светодиод, например L-1154GF фирмы Kingbright, в качестве HL2 – любой красный, например L-1154ID той же фирмы.

VD3, VD4 1N4148 можно заменить на КД512 или КД503 с любой буквой. VT1 IRF740 можно заменить на IRF840.

Резисторы R1, R2, R4, R7 и R10 желательно использовать стабильные С2-23, MF-25 и т.п. Подстроечные резисторы R5 и R6 СП5-3, СП5-14 или 3266 bowrns. Переменный резистор R9 должен иметь линейную зависимость сопротивления от угла поворота оси (для отечественных резисторов – группа А, для импортных – B). Автор использовал проволочный резистор ПП3-20.

Данное устройство имеет непосредственную связь с питающей сетью. Все операции по наладке рекомендуется выполнять подключив электронный блок к сети через разделительный трансформатор 220В/220В.

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

Термометр следует расположить вблизи датчика и записать его показания. После этого нужно измерить напряжение на датчике – контрольная точка КТ1. Зная коэффициент преобразования датчика (- 4 мВ/°C) легко рассчитать какое будет напряжение на датчике при температуре 20°C (V1) и при 60°C (V2).

Подключив вольтметр к КТ3 нужно установить на этой контрольной точке напряжение V2 с помощью подстроечного резистора R6. Далее следует установить на КТ2 напряжение V1 с помощью R5. Поскольку эти регулировки являются взаимозависимыми их следует повторить несколько раз. На этом наладку устройства можно считать законченной.

В заключении несколько советов по эксплуатации.

Для равномерного прогрева йогурта полезно создать над термостатированной поверхностью замкнутый термоизолированный объём. Проще всего это сделать с помощью одеяла или толстого пледа.

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

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

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

Йогуртница на основе arduino своими руками

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

Блуждая по просторам интернета, наткнулся я на такую интересную вещь, как йогуртница. Жена у меня любит йогурт и частенько его покупает. Почитал профильный сайт, вдохновился. Вдохновила сама мысль о том, что его можно легко приготовить дома, причём он получится даже полезней, чем из магазина. После прочтения нескольких обзоров и сравнений, мы с женой решили купить «Moulinex YG230 YOGURTEO». Но вот незадача – город у нас небольшой и в продаже её мы просто не смогли найти. Хотели уже оформлять под заказ и тут меня осенило.

Что такое йогуртница? Грубо говоря – прибор для поддержания определённой температуры в течении определённого времени. Это же просто, почему бы не сделать самому? Конечно! Как раз в тумбочке уже с полгода лежит без дела arduino. Каюсь, грешен, да простят меня гуру микроконтроллеров, но я далёк от этого. Необходимости и времени изучать программирование микроконтроллеров у меня не было, поэтому, интереса ради, купил ардуинку, поморгал светодиодом, убрал в тумбочку и забыл. И вот, у меня появился шанс объяснить жене «зачем я покупаю весь этот хлам, если он потом всё равно без дела лежит в тумбочке».

Помимо ардуины нужны ещё термодатчик DS18B20 и твердотельное реле.

Сам скетч:

int active = true, ssrPin = 4, ledPin = 5;

float millisecondsPerGradus, currentTemperature, cookingTemperature = 36.0;

unsigned long totalWorkTime = 28800000; // 8 * 60 * 60 * 1000

void setup (void) <

if (!ds.search (addr) ) ds.reset_search () ;

digitalWrite (ssrPin, HIGH) ;

digitalWrite (ssrPin, LOW) ;

//замер, за сколько миллисекунд температура воды изменяется на один градус

float startTemperature = currentTemperature;

digitalWrite (ssrPin, HIGH) ;

Читайте также:  Как осуществить мечту! Яхта из фанеры своими руками!

digitalWrite (ssrPin, LOW) ;

millisecondsPerGradus = 1000.0 / ( (currentTemperature — startTemperature) / 30.0) ;

float thermometer (void) <

for (byte i = 0; i

currentTemperature = (float) ( (data[1]

if (currentTemperature != 85.00) break;

if (millis () > totalWorkTime) <

//завершаем подогрев и оповещаем светодиодом

digitalWrite (ledPin, HIGH) ;

unsigned long delayTime;

if (currentTemperature >= cookingTemperature) <

else if (currentTemperature > cookingTemperature — 2.0) <

//если температура близка к необходимой, замедляем процесс подогрева

delayTime = millisecondsPerGradus * ( (cookingTemperature — currentTemperature) /3.0) ;

//иначе подогреваем на градус

digitalWrite (ssrPin, HIGH) ;

digitalWrite (ssrPin, LOW) ;

Температура и время подбирались экспериментальным путём, не одна банка йогурта была испорчена. В итоге сошёлся на том, что надо готовить восемь часов (ставлю на ночь) при температуре 36 градусов. Везде пишут, что температура должна быть 38-40 градусов, но при такой температуре за восемь часов йогурт скисал (расслаивался), а за пять часов (до момента начала расслоения), как мне показалось, йогурт не успевал настаиваться и получался хоть и густым, но не таким вкусным. Кстати, точность DS18B20 меня приятно удивила, сверял с ртутным градусником — разница всего в 0,2-0,3 градуса. Об окончании приготовления оповещает светодиод (это же ардуино, она обязана моргать светодиодом в любом проекте, любой сложности).

Ну а теперь фотографии:

«Я его слепила из того, что было», реле с радиатором для хиленького кипятильничка это конечно сильно. Реле и без радиатора не нагревается, но чтобы не потерять радиатор — поставил реле вместе с ним.

Кипятильник, термодатчик и «миксер» чтобы температура воды была одинаковой в любой точке.

Внешний вид конечно с «Moulinex YG230 YOGURTEO» ни в какое сравнение, зато своими руками, из подручных средств, на коленке.

Жена отобрала кастрюлю, теперь йогуртница выглядит так.

На йогурт беру молоко 3,2% жирности (на 2,5% йогурт выходит жидковат). Закваску можно покупать в аптеке, например Эвиталия, но я предпочитаю Активию или Актимель, йогурт получается плотный и однородный, две чайных ложки на такую баночку вполне достаточно.

Готовый йогурт. Аж ложка стоит! Ну, почти стоит.

МНОГОКАНАЛЬНЫЙ АВТОПОЛИВ НА ARDUINO СВОИМИ РУКАМИ

18.08.18 Версия 1.5: исправлены ошибки
17.04.19 Версия 2.0: новая логика меню, более гибкие таймеры! ЗАМЕНИТЕ СТАРЫЕ ВЕРСИИ БИБЛИОТЕК НОВЫМИ ИЗ ПАПКИ!
20.04.19 Версия 2.1: добавлено автоотключение подсветки дисплея (включается по любому действию с энкодера)

05.06.2019 Исправлена схема версии 2+!

КОНТРОЛЛЕР УМНОЙ ТЕПЛИЦЫ

Наши ответы на ваши вопросы

Все хотят датчики влажности, каждый третий об этом написал.

  • Вопрос: зачем тогда нужен таймер и все эти настройки? Мой проект не об этом, мой проект о таймере
  • С датчиками влажности МИКРОКОНТРОЛЛЕР ВООБЩЕ НЕ НУЖЕН. Почему? Как? Смотрите ЗДЕСЬ
  • Все жалуются на дождь. В видео звучало слово “теплица” и “рассада”, там не идёт дождь
  • Китайские датчики влажности почвы разъедаются почвой, так как сделаны не из золота!

Да, согласен, нужна одна помпа и клапана на каналы! Добавил прошивку auto-pumps_valve, читайте описание в начале скетча, там всё написано!

Многоканальная система автополива растений для установки в умную теплицу, на огород или в квартиру. Особенности:

  • Поддержка от 1 до 15 помп (Arduino NANO / UNO)
  • Индивидуальная настройка периода и времени работы
  • Дисплей 1602 с отображением настроек
  • Индивидуальное название каждого канала (можно по-русски!)
  • Удобное управление и настройка энкодером
  • Хранение настроек в энергонезависимой памяти
  • Настройка уровня управляющего сигнала
  • Настройка часы/минуты/секунды работы
  • Параллельный режим работы / очередь

ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ

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

Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.

ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ

  • Нажатие на ручку энкодера – переключение выбора помпы/периода/времени работы
  • Поворот ручки энкодера – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

Версия 2.*
ПЕРЕД ПРОШИВКОЙ ВТОРОЙ ВЕРСИИ ЗАМЕНИТЕ ВСЕ БИБЛИОТЕКИ НОВЫМИ (ИДУТ В АРХИВЕ ПРОЕКТА, В ПАПКЕ НОВАЯ ВЕРСИЯ).
Поворачивая рукоятку энкодера мы перемещаем стрелочку выбора по экрану. Обратите внимание на то, что настройка времени работы помпы находится правее «за экраном», нужно пролистать стрелочку направо чтобы её активировать. Чтобы изменить выбранный стрелочкой параметр, нужно повернуть рукоятку энкодера, удерживая её нажатой. Таким образом можно настроить время периода и работы помпы в формате ЧЧ:ММ:СС. Логика работы настроек PUPM_AMOUNT, START_PIN, SWITCH_LEVEL и PARALLEL такая же как для версии 1.*

  • Поворот ручки энкодера – изменение позиции стрелки
  • Поворот ручки энкодера удерживая её нажатой – изменение значения
  • Кнопка энкодера удерживается при включении системы – сброс настроек

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

СХЕМЫ ОБНОВЛЕНЫ ДЛЯ ВЕРСИИ 2+ .
Внимание! Для коммутации индуктивных нагрузок рекомендуется использовать искрогасящие цепи, иначе микроконтроллер может зависнуть. Читайте в этом проекте в разделе СХЕМЫ

5V помпы

12V помпы

220V AC помпы

14 реле

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Автоматический увлажнитель воздуха на основе Ардуино

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

Вступление

Если для вас много текста читать скучно, то ниже мы разбираем два варианта реализации этого интересного устройства:

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

Решить эту проблему можно легко и просто. Здесь на помощь приходят увлажнители воздуха. Это такое устройство, которое измеряет влажность окружающего воздуха. Если он будет слишком сухой, то устройство его повысит. Увлажнители воздуха появились на рынке сравнительно недавно и из-за этого не успели войти в привычную для всех жизнь. Также при покупке данного устройства придется выложить круглую сумму и поэтому его проще и дешевле собрать своими руками.

Само устройство очень простое. Однако решает одну из главных проблем бытовой жизни. Как говорится «красота в простоте». Увлажнитель воздуха, хоть и дорогое новаторское решения, но его можно сделать своими руками. Единственное, что придется – это закупить электронные компоненты в разных интернет магазинах. Детали для нашего устройство можно найти в Российских радиоэлектронных магазинах или в известном всем АлиЭкспресс.

Ниже мы поговорим о двух вариантах реализация увлажнителя воздуха на основе плат Arduino, но, вкратце, для создания увлажнителя воздуха нам понадобится:

  • ультразвуковой испаритель воды,
  • платформа Ардуино Нано или Ардуино Уно,
  • соединительные провода,
  • датчик влажности,
  • потенциометр,
  • вентилятор,
  • блок питания и гнездо для его подключения.

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

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

Следующим делом необходимо приклеить распределительную коробку к корпусу, так чтобы просверленное отверстие не пропускало воду. Затем можно начинать спаивать электронную часть. Делается это при помощи пинцетов и паяльника. Все провода и компоненты надежно фиксируются в распределительной коробке. Сам потенциометр выводится наружу, чтобы можно было настраивать влажность. К датчику влажности нужно просверлить отверстие, чтобы к нему постоянно поступал свежий воздух.

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

Читайте также:  Металлоискатель своими руками (схема, печатная плата, принцип работы)

Вариант № 1

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

Комплектующие

  • Arduino
  • Сенсор влажности и температуры Grove (Temp&Humi Sensor)
  • Кнопка Grove (Button)
  • Дисплей I2C LCD
  • Модуль автоматизации Grove Water Atomization

Grove Water Atomization – это идеальный модуль, позволяющий легко создать распылитель или модуль распылителя. Всего за несколько простых шагов вы можете создать прототип распылителя. Он имеет интерфейс Grove, который позволяет легко интегрироваться во множество приложений. Увлажнитель воздуха – это базовое устройство, которое может быть создано на его основе.

Grove Water Atomization 1.0

Купить его можно на сайте производителя на этой странице. Стоимость на момент публикации урока составляла чуть менее 10 долларов США. Вы можете разрабатывать более сложные и интересные проекты в которых требуется распыление.

Делаем корпус

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

Подключаем модули

Подключаем все модули таким образом:

  • Grove Temp&Humi A0
  • I2C_LCD I2C-Port
  • Grove Water Atomization D5
  • Grove Button D2

Код и библиотеки

Подключаем плату Arduino к компьютеру через USB. Далее скачайте все библиотеки и основной код ниже:

Распакуйте загруженные zip-файлы в:

C:UsersAdministratorDocumentsArduino

Запустите Arduino IDE. Далее нажмите:

Sketch -> Add file

Для версии на русском: Эскиз / Скетч -> Добавить файл. Таким образом мы добавим файл uvlazhnitel.ino. Нажмите CTRL+U, чтобы загрузить код на вашу плату. Подождите некоторое время, появится подсказка, подобная следующей:

Поздравляю, вы уже выполнили большую часть работы. Теперь вы можете протестировать свое устройство.

Заливать можно любую воду, но желательно дистиллированную. Ее можно купить в любом автомобильном магазине. Это делается для того, чтобы в испарители не образовалась накипь, которая приведет его в негодность.

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

Вариант № 2

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

Комплектующие

  • Реле (общее) × 1
  • Arduino UNO и Genuino UNO × 1
  • Перемычки (общие) × 1
  • Датчик температуры и влажности DHT11 (4 контакта) × 1
  • Резистор 10 кОм × 1
  • Увлажнитель воздуха из магазина

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

Для начала нам нужно прикрепить датчик температуры/влажности DHT-11 к Arduino. Далее берем вилку увлажнителя воздуха и отрезаем конец, который является питанием:

Теперь очистите обрезанный провод примерно на 1-1,5 см, а затем открутите клемму COM на модуле реле. Вставьте штекерный провод в разъем COM, а другой конец – в разъем NO или нормально открытый. Будьте осторожны, когда вы подключаете провод или контакты с оголенными проводами, неправильные действия могут привести к поражению электрическим током.

Оставьте пока всё в таком отключенном состоянии. Если вам ближе познакомиться с работой модуля DHT-11, то лучше всего начать с этих двух уроков:

Убедитесь, что пин данных DHT-11 подключен к контакту 2 Ардуино, а контакт управления реле подключен к контакту 7. Итоговая схема нашего проекта ниже:

Код проекта

Откройте вашу IDE и установите библиотеку DHT-11. Теперь скопируйте и вставьте код Arduino и загрузите его на плату.

Что вы делаете с библиотекой. Откройте Arduino IDE, перейдите в:

Sketch -> Include libraries -> Manage libraries

Если у вас русская версия, то путь такой : Скетч -> Включение библиотек -> Управление библиотеками

Далее мы переходим:

DHT -> Install the DHT sensor library by adafruit – version 1.2.2

Теперь повторно запустите свой скетч.

Нам осталось только включить Arduino и подключите шнур питания к сетевой розетке. Теперь увлажнитель воздуха должен включаться каждый раз, когда влажность опускается ниже 30%. Он также имеет “период охлаждения”, чтобы избежать слишком частого включения и выключения увлажнителя.

На этом всё. Желаю вам хорошо увлажнить воздух.

Что такое Arduino?

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

Возможности

Платформа Arduino представляет собой комбинацию среды быстрой разработки Arduino IDE и модулей для прототипирования на базе микроконтроллеров. Фактически, Arduino это — простейший электронный конструктор для создания готовых устройств из отдельных модулей. Arduino пользуется огромной популярностью во всем мире из-за контроллеров, модулей и шилдов.

Arduino — это не просто универсальный микроконтроллер, который можно адаптировать под любой проект за минимальное время. Это простейшая и доступная для изучения среда разработки Arduino IDE, которая служит для вовлечения в программирование и робототехнику, а также для быстрой разработки проектов. На основе Arduino можно собрать 3D-принтер или станок с ЧПУ. Все это происходит благодаря тому, что у платформы Arduino одно из самых больших сообществ, а также доступно огромное количество примеров, руководств и готовых библиотек для разработки.

Модули Arduino

Модули базовых контроллеров Arduino получили широкое распространение благодаря своей универсальности. Популярные платы Arduino Uno и Leonardo имеют достаточный набор периферии, а платы Mega и Due — расширенный. Даже компактные модули типа Pro, Micro и Nano подойдут для собственного проекта. В последнее время появились модули Mega сразу с установленным SoC ESP8266 и беспроводной связью Wi-Fi на борту.

Модули Arduino представляют собой платы со встроенным процессором, памятью и периферией, которая позволяет реализовать базовый функционал посредством одной всего платы. Для расширения возможностей служат дополнительные модули-шилды, которые работают с двигателями и сенсорами различных типов, а также способны читать и писать на карты памяти и накопители, поддерживают USB Host, умеют работать с Ethernet, Bluetooth и Wi-Fi. Модули расширения уровня Industrial имеют гальваническую развязку, а модули для умного дома подойдут с целью прототипирования устройств IoT ( «интернета вещей»). Вы даже можете сделать свой собственный web-сервер на основе Arduino.

На сегодняшний день существует множество оригинальных разновидностей и популярных клонов, а также огромное количество совместимых модулей-шилдов. Обратите внимание на приведенную Arduino Nano — это компактный модуль с 8-битным контроллером, на борту которого размещается приличный набор периферии (аналого-цифровые преобразователи, ШИМ-генераторы и таймеры, последовательные интерфейсы и так далее).

Для прототипирования и обучения доступен огромный арсенал периферии. Это разнообразные сенсоры, большинство типов датчиков и исполнительных механизмов, различные дисплеи, буферные и усилительные модули, драйверы двигателей, модули для беспроводной связи и управления. Модули комбинируются с основной платой-контроллером и затем конфигурируются в среде Arduino IDE.

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

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

Базовый механизм можно создать, имея всего две серво-машинки и два аналоговых источника сигнала для управления. Для прототипа даже не понадобятся паяльные принадлежности — весь проект собирается на монтажных беспаечных платах Arduino.

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

Что может быть лучше и интереснее, чем собрать за вечер управляемого робота или автомобиль? Одновременно, возможности среды Arduino позволяют профессионалам разрабатывать прикладные проекты для промышленной автоматики и для умного дома. Arduino — это открытая платформа, и вы тоже можете стать разработчиков, создать собственный проект и присоединиться к сообществу Arduino.

Читайте также:  Домашний камин своими руками (фото, мастер-класс)

Урок 10. Контроль доступа. RFID-rc522 + Servo + Arduino

В данном уроке мы научимся делать простую систему, которая будет отпирать замок по электронному ключу (Метке).

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

В этом уроке нам понадобится:

Для реализации проекта нам необходимо установить библиотеки:

Сборка:

1) RFID-модуль RC522 подключается к arduino проводами Папа-Мама в следующей последовательности:

MFRC522Arduino UnoArduino MegaArduino Nano v3Arduino Leonardo/MicroArduino Pro Micro
RST95D9RESET/ICSP-5RST
SDA(SS)1053D101010
MOSI11 (ICSP-4)51D11ICSP-416
MISO12 (ICSP-1 )50D12ICSP-114
SCK13 (ICSP-3)52D13ICSP-315
3.3V3.3V3.3VСтабилизатор 3,3ВСтабилизатор 3,3ВСтабилизатор 3,3В
GNDGNDGNDGNDGNDGND

2) Теперь нужно подключить Зуммер, который будет подавать сигнал, если ключ сработал и замок открывается, а второй сигнал, когда замок закрывается.

Зуммер подключаем в следующей последовательности:

ArduinoЗуммер
5VVCC
GNDGND
pin 5IO

3) В роли отпирающего механизма будет использоваться сервопривод. Сервопривод может быть выбран любой, в зависимости от требуемых вам размеров и усилий, который создает сервопривод. У сервопривода имеется 3 контакта:

ArduinoСервопривод
5V *Красный (Центральный)
GNDЧерный или Коричневый (Левый)
pin 6Белый или Оранжевый (Правый)

*Сервопривод рекомендуется питать от внешнего источника питания, если запитать сервопривод от ардуины, то могут возникнуть помехи и перебои в работе arduino. Организовать это можно с помощью источника питания 9V и комбинированного стабилизатора 5V ,3.3V.

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

Теперь, если все подключено, то можно переходить к программированию.

Скетч:

Разберем скетч более детально:

Для того, что бы узнать UID карточки(Метки), необходимо записать данный скетч в arduino, собрать схему, изложенную выше, и открыть Консоль (Мониторинг последовательного порта). Когда вы поднесете метку к RFID, в консоли выведется номер

Полученный UID необходимо ввести в следующую строчку:

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

Видео:

Делаем RFID-замок с использованием Arduino

Сегодня урок о том как использовать RFID-ридер с Arduino для создания простой системы блокировки, простыми словами – RFID-замок.

В уроке будет использоваться RFID-метка с Arduino. Устройство читает уникальный идентификатор (UID) каждого тега RFID, который мы размещается рядом со считывателем, и отображает его на OLED-дисплее. Если UID тега равен предопределенному значению, которое хранится в памяти Arduino, тогда на дисплее мы увидим сообщение «Unlocked» (англ., разблокировано). Если уникальный идентификатор не равен предопределенному значению, сообщение “Unlocked” не появится – см. фото ниже.

Замок закрыт

Замок открыт

Шаг 1: Детали, комплектующие

Детали, необходимые для создания этого проекта:

  • Arduino Uno
  • RFID-ридер RC522
  • OLED-дисплей
  • Макетная плата
  • Провода
  • Аккумулятор (powerbank)

Общая стоимость комплектующих проекта составила примерно 15 долларов.

Шаг 2: RFID-считыватель RC522

В каждой метке RFID есть небольшой чип (на фото белая карточка). Если направить фонарик на эту RFID-карту, можно увидеть маленький чип и катушку, которая его окружает. У этого чипа нет батареи для получения мощности. Он получает питание от считывателя беспроводным образом используя эту большую катушку. Можно прочитать RFID-карту, подобную этой, с расстояния до 20 мм.

Тот же чип существует и в тегах RFID-брелка.

Каждый тег RFID имеет уникальный номер, который идентифицирует его. Это UID, который показывается на OLED-дисплее. За исключением этого UID, каждый тег может хранить данные. В этом типе карт можно хранить до 1 тысячи данных. Впечатляет, не так ли? Эта функция не будет использована сегодня. Сегодня все, что интересует, – это идентификация конкретной карты по ее UID. Стоимость RFID-считывателя и этих двух карт RFID составляет около 4 долларов США.

Шаг 3: OLED-дисплей

В уроке используется OLED-монитор 0.96′ 128×64 I2C.

Это очень хороший дисплей для использования с Arduino. Это дисплей OLED и это означает, что он имеет низкое энергопотребление. Потребляемая мощность этого дисплея составляет около 10-20 мА, и это зависит от количества пикселей.

Дисплей имеет разрешение 128 на 64 пикселя и имеет крошечный размер. Существует два варианта отображения. Один из них монохромный, а другой, как тот, который использован в уроке, может отображать два цвета: желтый и синий. Верхняя часть экрана может быть только желтой, а нижняя часть – синей.

Этот OLED-дисплей очень яркий и у него отличная и очень приятная библиотека, которую разработала компания Adafruit для этого дисплея. В дополнение к этому дисплей использует интерфейс I2C, поэтому соединение с Arduino невероятно простое.

Вам нужно только подключить два провода, за исключением Vcc и GND. Если вы новичок в Arduino и хотите использовать недорогой и простой дисплей в вашим проекте, начните с этого.

Шаг 4: Соединяем все детали

Связь с платой Arduino Uno очень проста. Сначала подключим питание как считывателя, так и дисплея.

Так как дисплей также может работать на 3,3 В, мы подключаем VCC от обоих модулей к положительной шине макета. Затем эта шина подключается к выходу 3,3 В от Arduino Uno. После чего соединяем обе земли (GND) с шиной заземления макета. Затем мы соединяем GND-шину макета с Arduino GND.

OLED-дисплей → Arduino

SCL → Аналоговый Pin 5

SDA → Аналоговый Pin 4

RFID-ридер → Arduino

RST → Цифровой Pin 9

IRQ → Не соединен

MISO → Цифровой Pin 12

MOSI → Цифровой Pin 11

SCK → Цифровой Pin 13

SDA → Цифровой Pin 10

Модуль RFID-считывателя использует интерфейс SPI для связи с Arduino. Поэтому мы собираемся использовать аппаратные штыри SPI от Arduino UNO.

Вывод RST поступает на цифровой контакт 9. Контакт IRQ остается несвязным. Контакт MISO подключается к цифровому выходу 12. Штырь MOSI идет на цифровой контакт 11. Контакт SCK переходит на цифровой контакт 13, и, наконец, вывод SDA идет на цифровой вывод 10. Вот и все.

Считыватель RFID подключен. Теперь нам нужно подключить OLED-дисплей к Arduino, используя интерфейс I2C. Таким образом, вывод SCL на дисплее переходит к аналоговому выводу Pin 5 и SDA на дисплее к аналоговому Pin 4. Если теперь мы включим проект и разместим RFID-карту рядом с ридером, мы увидим, что проект работает нормально.

Шаг 5: Код проекта

Чтобы код проекта был скомпилирован, нам нужно включить некоторые библиотеки. Прежде всего, нам нужна библиотека MFRC522 Rfid.

Чтобы установить её, перейдите в Sketch -> Include Libraries -> Manage libraries (Управление библиотеками). Найдите MFRC522 и установите её.

Нам также нужна библиотека Adafruit SSD1306 и библиотека Adafruit GFX для отображения.

Установите обе библиотеки. Библиотека Adafruit SSD1306 нуждается в небольшой модификации. Перейдите в папку Arduino -> Libraries, откройте папку Adafruit SSD1306 и отредактируйте библиотеку Adafruit_SSD1306.h. Закомментируйте строку 70 и раскомментируйте строку 69, т.к. дисплей имеет разрешение 128×64.

Сначала мы объявляем значение метки RFID, которую должен распознать Arduino. Это массив целых чисел:

Затем мы инициализируем считыватель RFID и дисплей:

После этого в функции цикла мы проверяем тег на считывателе каждые 100 мс.

Если на считывателе есть тег, мы читаем его UID и печатаем его на дисплее. Затем мы сравниваем UID тега, который мы только что прочитали, со значением, которое хранится в кодовой переменной. Если значения одинаковы, мы выводим сообщение UNLOCK, иначе мы не будем отображать это сообщение.

Конечно, вы можете изменить этот код, чтобы сохранить более 1 значения UID, чтобы проект распознал больше RFID-меток. Это просто пример.

Код проекта:

Шаг 6: Итоговый результат

Как видно из урока – за небольшие деньги можно добавить RFID-ридер в ваши проекты. Можно легко создать систему безопасности с помощью этого ридера или создать более интересные проекты, например, чтобы данные с USB-диска считывались только после разблокировки.

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