Оглавление:

Датчик температуры и влажности Arduino: 7 шагов
Датчик температуры и влажности Arduino: 7 шагов

Видео: Датчик температуры и влажности Arduino: 7 шагов

Видео: Датчик температуры и влажности Arduino: 7 шагов
Видео: Датчик температуры DS18B20: Обзор, подключение к Arduino и пример скетча 2024, Ноябрь
Anonim

Следуйте дальше от автора:

PIC16F877A Аналого-цифровой преобразователь (АЦП)
PIC16F877A Аналого-цифровой преобразователь (АЦП)
PIC16F877A Аналого-цифровой преобразователь (АЦП)
PIC16F877A Аналого-цифровой преобразователь (АЦП)
ЖК-интерфейс с микроконтроллером PIC16F877A
ЖК-интерфейс с микроконтроллером PIC16F877A
ЖК-интерфейс с микроконтроллером PIC16F877A
ЖК-интерфейс с микроконтроллером PIC16F877A
Модульный настольный блок питания DIY
Модульный настольный блок питания DIY
Модульный настольный блок питания DIY
Модульный настольный блок питания DIY

В этом уроке я собираюсь объяснить создание датчика температуры и влажности с использованием мини-платы Arduino pro с датчиком DHT11 (или DHT22).

Шаг 1. Посмотрите видео

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

www.youtube.com/watch?v=56LKl7Xd770

Шаг 2: Необходимые детали

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

1- Мини-плата Arduino pro (или любая другая Arduino).

2- Датчик температуры и влажности DHT11 (или DHT22).

3- ЖК-дисплей 16x2.

4- Корпус по вашему выбору, желательно такой же, как тот, который использовался в видео.

Потенциометр 5-10К.

6- Винтовые клеммы.

7- Резисторы разного номинала.

Аккумулятор 8- 9в.

а необходимые инструменты:

1- ручная дрель типа Дремила.

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

3- руки помощи.

плюс обычные инструменты для электроники типа мультиметра и тд.

Шаг 3: схематический дизайн

Схематический дизайн
Схематический дизайн

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

Это страница проекта на сайте easyEDA:

Объяснение схемы выглядит следующим образом:

1- Я использовал 6-контактный адаптер ICSP для программирования Arduino pro mini, так как он не поставляется с ним на борту. это J2 на схеме.

2- R2 составляет 100 Ом и устанавливает яркость ЖК-дисплея. В принципе, вы можете поставить сопротивление больше 100R, если хотите, чтобы подсветка ЖК-дисплея была более тусклой. Или еще лучше, пусть потенциометр действует как переменное последовательное сопротивление.

3- JP1 - это просто разъем, который занимает хорошее место на печатной плате. Я никогда не ставил настоящую клемму, а вместо этого припаивал провода. Делай как хочешь.

4- U2 - клеммы подключения аккумулятора. Здесь я предпочитаю хорошие винтовые клеммы для надежного соединения. Вы можете припаять провода, но не забудьте положить достаточно припоя, чтобы соединение было достаточно прочным и выдерживало любые встряски.

5- LCD1 - ЖК-компонент easyEDA. Он имеет базовое подключение к Arduino pro mini. Убедитесь, что контакты здесь идентичны контактам в программном обеспечении.

6- RV1 - потенциометр 10K для установки контрастности ЖК-дисплея. Его следует использовать только один раз - при первом включении ЖК-дисплея.

Шаг 4: Дизайн печатной платы

Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы
Дизайн печатной платы

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

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

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

Шаг 5: Изготовьте печатную плату

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

Моя любимая компания - JLCPCB. Они лучше всего подходят для таких проектов и прототипов, и они предлагают всего 2 доллара за целые 10 частей вашего дизайна!

Итак, теперь мы нажимаем (….) И выбираем JLCPCB. Мы перенаправлены на веб-сайт JLCPCB, поскольку они являются партнерами EasyEDA. Теперь заполните все и сделайте заказ. Теперь просто подождите, пока не появятся печатные платы.

Стоит отметить, что JLCPCB не только ассоциирован с EasyEDA, но и имеет большой склад компонентов! Преимущество здесь заключается в том, что и заказ на печатную плату, и заказ компонентов отправляются вместе! Да, не нужно ждать, пока 2 посылки прибудут по отдельности, вместо этого они будут объединены в одну посылку. Я очень рекомендую это использовать.

Шаг 6: Сборка

Печатные платы теперь остались одни со всем. Пора все собрать воедино.

Во-первых, нам нужно спаять электронику по схеме. Это простая задача для этого проекта.

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

Теперь вы должны использовать потенциометр для регулировки контрастности ЖК-дисплея, при выборе требуемого резистивного клапана для яркости, я выбрал 100R.

Шаг 7: Код

Код для этого проекта прилагается к этому шагу, и его объяснение выглядит следующим образом:

// включаем код библиотеки: #include #include "DHT.h" // устанавливаем вывод DHT #define DHTPIN 2

Включите необходимые библиотеки и определите контакт 2 Arduino pro mini как контакт данных для датчика. Обязательно установите эти библиотеки, если у вас их нет.

// инициализируем библиотеку номерами контактов интерфейса LiquidCrystal lcd (9, 8, 7, 6, 5, 4); #define DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

Теперь инициализируйте ЖК-библиотеку этими контактами в соответствии с самой схемой. Также используйте библиотеку DHT и выберите DHT11 в качестве используемого датчика, поэтому, если у вас есть DHT22, вы должны его изменить.

В последней строке говорится, что у нас есть датчик DHT11, и его контакт данных находится на контакте «DHTPIN», который является контактом 2, как мы определили ранее.

void setup () {// устанавливаем количество столбцов и строк на ЖК-дисплее: lcd.begin (16, 2); dht.begin (); lcd.setCursor (0, 0); lcd.print («Температура и»); lcd.setCursor (0, 1); lcd.print («датчик влажности»); задержка (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («THUNDERTRONICS»); lcd.setCursor (0, 1); lcd.print («Хоссам Мограби»); задержка (3000); }

Пришло время настройки! и вот что происходит:

ЖК-дисплей - тип 16 на 2.

Запустите команду DHT, чтобы получить значения.

Выведите «Датчик температуры и влажности» в 2 строки.

Задержка 3 секунды.

Четкий дисплей

Выведите «THUNDERTRONICS» в первую строку, затем выведите «Hossam Moghrabi» во второй строке.

Задержка 3 секунды.

^ Я сделал это как экран приветствия, который длится около 6 секунд перед отображением значений.

void loop () {// считываем влажность int h = dht.readHumidity (); // считываем температуру в c int t = dht.readTemperature (); если (isnan (h) || isnan (t)) {lcd.print ("ОШИБКА"); возвращение; }

Теперь мы внутри нашего вечного цикла, который будет повторяться.

Сохраняйте показания влажности внутри переменной "h" и показания температуры внутри переменной "t".

Далее у нас есть оператор if. Это в основном возвращает сообщение об ошибке, когда есть ошибка. Оставьте, не меняя.

Теперь у нас есть все необходимые значения.

lcd.setCursor (0, 0); lcd.print ("Температура ="); lcd.print (т); lcd.print (""); lcd.print ((char) 223); lcd.print («C»); lcd.setCursor (0, 1); lcd.print ("Влажность ="); lcd.print (h); lcd.print ("%"); // lcd.print ("Хоссам Мограби"); задержка (2000);

Наконец, мы отображаем эти значения на ЖК-дисплее. Вы можете изменить его так, как хотите, потому что он просто выводит значения внутри переменных «h» и «t». Задержка в 2 секунды не является обязательной, но вы не получите особой выгоды от того, что сделаете это быстрее, поскольку сам датчик не так быстр, и даже если это так, физические значения никогда не меняются так быстро. Так что 2 секунды - это очень быстро для работы!

Вот и все!

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