Мазмуну:

Arduino Температура жана нымдуулук сенсору: 7 кадам
Arduino Температура жана нымдуулук сенсору: 7 кадам

Video: Arduino Температура жана нымдуулук сенсору: 7 кадам

Video: Arduino Температура жана нымдуулук сенсору: 7 кадам
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Июль
Anonim

By ThundertronicsForlow More by Author:

PIC16F877A аналогдук санариптик конвертерге (ADC)
PIC16F877A аналогдук санариптик конвертерге (ADC)
PIC16F877A аналогдук санариптик конвертерге (ADC)
PIC16F877A аналогдук санариптик конвертерге (ADC)
LCD Interface PIC16F877A микроконтроллери менен
LCD Interface PIC16F877A микроконтроллери менен
LCD Interface PIC16F877A микроконтроллери менен
LCD Interface PIC16F877A микроконтроллери менен
DIY модулдук скамейка менен камсыз кылуу
DIY модулдук скамейка менен камсыз кылуу
DIY модулдук скамейка менен камсыз кылуу
DIY модулдук скамейка менен камсыз кылуу

Бул үйрөткүчтө мен DHT11 (же DHT22) сенсору менен Arduino pro mini board колдонуп, температура жана нымдуулук сенсорунун жасалышын түшүндүрөм.

1 -кадам: Видеону көрүңүз

Кийинки кадамга өтүүдөн мурун видеону биринчи көрүү маанилүү. Видео баардыгын түшүндүрөт жана анын кантип жасалганын көрсөтөт. Бирок, бул постто мен дагы техникалык маалыматтарды жана деталдарды жазам.

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

2 -кадам: керектүү бөлүктөр

Бул долбоор үчүн керектүү бөлүктөр:

1- Arduino pro mini board (же каалаган Arduino).

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

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

4- Сиз тандаган корпус, эң жакшысы видеодо колдонулгандай.

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

6- Терминалдар.

7- Ар кандай баалуулуктарга каршылаштар.

8-9В батарея.

керектүү шаймандар болсо:

1- Dremil сыяктуу кол менен машыгуу.

2- Бургулоо үчүн ар түрдүү биттер, анткени биз текшилөөчү жана кесүүчү биттерди колдонобуз.

3- жардам колу.

плюс, кадимки электроника каражаттары, мисалы, мультиметр ж.

3 -кадам: Схемалык дизайн

Схемалык дизайн
Схемалык дизайн

Бул долбоордо, мен аны зымга өткөрүүнүн ордуна, ПХБ жасоону чечтим. Ошентип, мен EasyEDA онлайн куралын жакшы тажрыйба болгон жумушта колдондум.

Бул проекттин баракчасы easyEDA сайтында:

Схеманын түшүндүрмөсү төмөнкүчө:

1- Мен Arduino pro mini программасы үчүн 6 пиндүү ICSP адаптерин колдондум, анткени ал бортто жок. бул схемада J2.

2- R2- 100 Ом жана ЖКнын жарыктыгын орнотот. Негизинен, эгер сиз ЖК жарыктын күңүрт болушун кааласаңыз, 100Rге караганда көбүрөөк каршылык көрсөтө аласыз. Же андан да жакшы, өзгөрмөлүү катар каршылык катары иштөө үчүн потенциометрди алыңыз.

3- JP1- бул жакшы PCB изине ээ болгон туташтыргыч. Мен эч качан чыныгы терминал койгон эмесмин, тескерисинче зымдарды ширеткем. Сиз каалагандай кылыңыз.

4- U2- батареяны туташтыруучу терминалдар. Бул жерде, мен бекем байланышты алуу үчүн жакшы бурамалуу терминалдарды артык көрөм. Сиз зымдарды эрите алмаксыз, бирок туташууну кандайдыр бир титирөөгө туруштук бере ала тургандай кылып бекемдөө үчүн жетиштүү ширетүүнү коюңуз.

5- LCD1- easyEDAдагы ЖК компоненти. Бул Arduino pro mini менен негизги байланышка ээ. Бул жердеги пиндер программалык камсыздоого окшош экенине ишениңиз.

6- RV1- бул ЖК контрастын орнотуу үчүн 10K потенциометр. Бул бир гана жолу колдонулушу керек жана ЖКны биринчи жолу иштеткенде болот.

4 -кадам: PCB Дизайн

PCB Дизайн
PCB Дизайн
PCB Дизайн
PCB Дизайн

Схемалык дизайнды бүтүрүп, бардыгы эмнени билдирерин түшүнгөндөн кийин, азыр ал үчүн ПХБ жасоонун убактысы келди.

PCB редакторунда ПХБ түзүү үчүн EasyEDAда "ПКБга айландыруу" баскычын басуу керек. Андан кийин, бөлүктөрдү жайгаштырып, адаттагыдай эле маршрут жасоону баштаңыз. Мен эч качан авто роутерди колдонбоону сунуштайм.

Мен боштуктар аз болгондуктан, өйдөдөн астыңкы катмарга өтүү үчүн көптөгөн виас колдоном.

5 -кадам: ПХБ жасоо

Азыр, PCB дизайны аяктады. Биз баарын текшердик, эч кандай маселе табылган жок. Дизайн файлдарын (герберлерди) өзүбүз тандаган PCB фабрикасына жөнөтүшүбүз керек, андыктан ал биз үчүн жасай алат.

Менин тандаган компаниям JLCPCB. Алар мындай долбоорлор жана прототиптер үчүн эң мыктысы жана дизайныңыздын 10 бөлүгүнө болгону 2 $ баасын сунушташат!

Ошентип, азыр биз [….] Басабыз жана JLCPCB тандап алабыз. Биз JLCPCB вебсайтына багытталганбыз, анткени алар EasyEDA менен өнөктөш. Эми баарын толтуруп, заказ кылыңыз. Эми PCBлер келгенче күтө туруңуз.

Айта кетүүчү нерсе, JLCPCB алар менен гана байланышкан EasyEDAга ээ эмес, бирок аларда ошондой эле чоң компоненттер дүкөнү бар! Бул жердеги пайда PCB заказын да, компоненттеринин да заказын чогуу алуу! Ооба, 2 пакеттин өзүнчө келишин күтүүнүн кажети жок, бирок анын ордуна алар бир пакетте чогуу келет. Мен муну колдонууну абдан сунуштайм.

6 -кадам: Ассамблея

Бизде азыр ПХД бар, баары бар. Баарын чогуу чогултуу убактысы келди.

Биринчиден, биз электрониканы схемага ылайык ширетишибиз керек. Бул долбоор үчүн оңой тапшырма.

Пластикалык корпуста керектүү тешиктерди кесип, ширетүүнү бүтүргөндөн кийин, ысык желим пистолеттин жардамы менен ПХБны башка компоненттери менен оңдоңуз.

Сиз азыр ЖКнын контрастын жөнгө салуу үчүн потенциометрди колдонушуңуз керек, жаркыроо үчүн керектүү резистордук клапанды тандап жатып, мен 100R тандадым.

7 -кадам: Код

Бул долбоордун коду бул кадам менен тиркелет жана түшүндүрмө төмөнкүчө:

// китепкана кодун камтыйт: #include #include "DHT.h" // DHT Pin орнотуу #DHTPIN 2ди аныктоо

Керектүү китепканаларды кошуп, Arduino pro mini'дин 2 -пинин сенсор үчүн маалымат пини катары аныктаңыз. Эгерде бул китепканалар жок болсо, аларды орнотууну унутпаңыз.

// китепкананы 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.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); }

Эми бул орнотуу убактысы! жана бул жерде эмне болуп жатат:

ЖК 2ден 16га чейин.

Баалуулуктарды алуу үчүн DHT буйругун баштаңыз.

2 сапта "Температура жана нымдуулук сенсорун" басып чыгарыңыз.

3 секунд кечиктирүү.

Дисплейди тазалоо

Биринчи сапта "THUNDERTRONICS" басып чыгарыңыз, андан кийин 2 -сапта "Hossam Moghrabi" басып чыгарыңыз.

3 секунд кечиктирүү.

^Мен муну 6 секундга жакын созулган саламдашуу экраны катары кылдым, баалуулуктар көрсөтүлөр алдында.

void loop () {// нымдуулукту окуу h h = dht.readHumidity (); // окуунун температурасы c int t = dht.readTemperature (); if (isnan (h) || isnan (t)) {lcd.print ("ERROR"); кайтуу; }

Эми биз түбөлүк циклдин ичиндебиз, ал кайталанат.

Нымдуулук көрсөткүчтөрүн "h" өзгөрмөсүнүн ичинде жана температуранын көрсөткүчтөрүн "t" өзгөрмөсүнүн ичинде сактаңыз.

Кийинки, бизде if билдирүүсү бар. Бул ката болгондо негизинен ката билдирүүсүн кайтарат. Аны өзгөртпөстөн калтырыңыз.

Азыр бизде керектүү бардык баалуулуктар бар.

lcd.setCursor (0, 0); lcd.print ("Temp. ="); lcd.print (t); 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 секунд жумуш үчүн абдан тез!

Бул ошол!

Сунушталууда: