Съдържание:

Сензор за температура и влажност на Arduino: 7 стъпки
Сензор за температура и влажност на Arduino: 7 стъпки

Видео: Сензор за температура и влажност на Arduino: 7 стъпки

Видео: Сензор за температура и влажност на Arduino: 7 стъпки
Видео: How to Program the ESP8266 ESP01 DHT11 Temperature Humidity Sensor Module | RemoteXY | FLProg 2024, Юли
Anonim

От Thundertronics Следвайте още от автора:

PIC16F877A аналогово -цифров преобразувател (ADC)
PIC16F877A аналогово -цифров преобразувател (ADC)
PIC16F877A аналогово -цифров конвертор (ADC)
PIC16F877A аналогово -цифров конвертор (ADC)
LCD интерфейс с микроконтролер PIC16F877A
LCD интерфейс с микроконтролер PIC16F877A
LCD интерфейс с микроконтролер PIC16F877A
LCD интерфейс с микроконтролер 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 LCD дисплей.

4- Заграждение по ваш избор, за предпочитане същото като използваното във видеото.

5-10K потенциометър.

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

7- Резистори с различни стойности.

Батерия 8- 9v.

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

1- ръчна тренировка като Dremil.

2- различни бита за бормашината, тъй като ще използваме изглаждащи битове и режещи битове.

3- помагащи ръце.

плюс, обичайните електронни инструменти като мултицет и така нататък.

Стъпка 3: Схематичен дизайн

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

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

Това е страницата на проекта на уебсайта на easyEDA:

Обяснението на схемата е следното:

1- Използвах 6-пинов ICSP адаптер за програмиране на Arduino pro mini, тъй като той не идва с такъв на борда. това е J2 на схематично.

2- R2 е 100 ома и задава яркостта на LCD. По принцип можете да поставите по -голямо съпротивление от 100R, ако искате подсветката на LCD дисплея да бъде по -слаба. Или още по -добре, вземете потенциометър да действа като променливо съпротивление на серията.

3- JP1 е просто конектор, който има хубав печат на печатни платки. Никога не съм поставял истински терминал, а вместо това запоявах проводниците. Прави каквото ти харесва.

4- U2 са клемите за свързване на батерията. Тук предпочитам хубави винтови клеми, за да постигна стабилна връзка. Можете да запоите проводниците, но не забравяйте да поставите достатъчно спойка, за да направите връзката достатъчно здрава, за да издържи на всякакви разклащания.

5- LCD1 е LCD компонентът в easyEDA. Той има основна връзка с Arduino pro mini. Уверете се, че щифтовете тук са идентични с тези в софтуера.

6- RV1 е 10K потенциометър за настройка на LCD контраста. Той трябва да се използва само веднъж и е при първото включване на LCD дисплея.

Стъпка 4: Дизайн на печатни платки

Дизайн на печатни платки
Дизайн на печатни платки
Дизайн на печатни платки
Дизайн на печатни платки

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

Трябва да натиснете „Convert to PCB“в EasyEDA, за да създадете PCB в редактора на PCB. След това започнете да поставяте части и да правите маршрутизиране както обикновено. Предлагам обаче никога да не използвате автоматичния рутер.

Използвал съм много виа, за да се движа от горния към долния слой, тъй като пространството е толкова малко.

Стъпка 5: Изработете печатната платка

Сега дизайнът на печатни платки е завършен. Проверихме всичко и не открихме проблем. Трябва да изпратим дизайнерските файлове (герберите) на избраната от нас компания за производство на печатни платки, за да може тя да го направи вместо нас.

Моята избрана компания е JLCPCB. Те са най -добрите за такива проекти и прототипи и предлагат само 2 $ на цена за цели 10 парчета от вашия дизайн!

Така че, сега щракваме върху (…) и избираме JLCPCB. Ние сме насочени към уебсайта на JLCPCB, тъй като те са партньори на EasyEDA. Сега попълнете всичко и направете поръчката. Сега просто изчакайте, докато печатните платки пристигнат.

Заслужава да се спомене, че JLCPCB не само свързват EasyEDA с тях, но и имат голям магазин за компоненти! Предимството тук е, че както поръчката на печатни платки, така и поръчката на компоненти се доставят заедно! Да, няма нужда да чакате 2 пакета да пристигнат отделно, но вместо това те се комбинират в един пакет. Горещо препоръчвам да използвате това.

Стъпка 6: Монтаж

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

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

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

Сега трябва да използвате потенциометъра, за да регулирате контраста на LCD, като при избора на необходимия резисторен вентил за яркостта, аз избрах 100R.

Стъпка 7: Код

Кодът за този проект е приложен към тази стъпка, а обяснението е следното:

// включваме кода на библиотеката: #include #include "DHT.h" // задаваме DHT Pin #дефинираме DHTPIN 2

Включете необходимите библиотеки и определете щифт 2 на Arduino pro mini като щифт за данни за сензора. Не забравяйте да инсталирате тези библиотеки, ако нямате такива.

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

Сега инициализирайте LCD библиотеката с тези щифтове според самата схема. Използвайте също DHT библиотека и изберете DHT11 като сензор за използване, така че ако имате DHT22, трябва да го промените.

Последният ред казва, че имаме DHT11 сензор и неговият пин за данни е на пин "DHTPIN", който е пин 2, както го дефинирахме по -рано.

void setup () {// настройва броя на колоните и редовете на LCD дисплея: 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 ("Hossam Moghrabi"); забавяне (3000); }

Сега е време за настройка! и ето какво се случва:

LCD е тип 16 на 2.

Стартирайте командата DHT, за да получите стойности.

Отпечатайте "Сензор за температура и влажност" на 2 реда.

Забавяне 3 секунди.

Ясен дисплей

Отпечатайте „THUNDERTRONICS“на първия ред, след това отпечатайте „Hossam Moghrabi“на втория ред.

Забавяне 3 секунди.

^Направих това като екран за добре дошли, който трае около 6 секунди, преди стойностите да се покажат.

void loop () {// четене на влажност int h = dht.readHumidity (); // четене на температура в c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("ГРЕШКА"); връщане; }

Сега сме във вечния си цикъл, който ще се повтаря.

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

След това имаме оператор if. Това основно връща съобщение за грешка, когато има грешка. Оставете го, без да го променяте.

Сега имаме всички ценности, от които се нуждаем.

lcd.setCursor (0, 0); lcd.print ("Темп. ="); lcd.print (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("Влажност ="); lcd.принт (h); lcd.print (" %"); // lcd.print ("Hossam Moghrabi"); забавяне (2000);

Накрая показваме тези стойности на LCD дисплея. Можете да го промените както искате, защото той просто отпечатва стойности в променливите "h" и "t". Поставянето на закъснение от 2 секунди е малко по избор, но няма да имате голяма полза от това да го направите по -бързо, тъй като самият сензор не е толкова бърз и дори да е така, все пак физическите стойности никога не се променят толкова бързо. Така че 2 секунди са много много бързи за работата!

Това е!

Препоръчано: