Სარჩევი:

არდუინოს ტემპერატურის და ტენიანობის სენსორი: 7 ნაბიჯი
არდუინოს ტემპერატურის და ტენიანობის სენსორი: 7 ნაბიჯი

ვიდეო: არდუინოს ტემპერატურის და ტენიანობის სენსორი: 7 ნაბიჯი

ვიდეო: არდუინოს ტემპერატურის და ტენიანობის სენსორი: 7 ნაბიჯი
ვიდეო: ტემპერატურის სენსორი და არდუინო 2024, ნოემბერი
Anonim

ავტორი ავტორი: Thundertronics

PIC16F877A ციფრული ანალოგური გადამყვანი (ADC)
PIC16F877A ციფრული ანალოგური გადამყვანი (ADC)
PIC16F877A ციფრული ანალოგური გადამყვანი (ADC)
PIC16F877A ციფრული ანალოგური გადამყვანი (ADC)
LCD ინტერფეისი PIC16F877A მიკროკონტროლით
LCD ინტერფეისი PIC16F877A მიკროკონტროლით
LCD ინტერფეისი PIC16F877A მიკროკონტროლით
LCD ინტერფეისი PIC16F877A მიკროკონტროლით
წვრილმანი მოდულური სკამი კვების ბლოკი
წვრილმანი მოდულური სკამი კვების ბლოკი
წვრილმანი მოდულური სკამი კვების ბლოკი
წვრილმანი მოდულური სკამი კვების ბლოკი

ამ გაკვეთილში მე ვაპირებ აგიხსნათ ტემპერატურისა და ტენიანობის სენსორის დამზადება 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-9 ვ.

მაშინ როდესაც საჭირო ინსტრუმენტებია:

1- ხელით ბურღვა დრემილის მსგავსად.

2- სხვადასხვა ბიტი ბურღვისთვის, ვინაიდან ჩვენ გამოვიყენებთ დამარბილებელ ბიტებს და ჭრის ბიტებს.

3- დამხმარე ხელები.

პლუს, ჩვეულებრივი ელექტრონიკის ინსტრუმენტები, როგორიცაა მულტიმეტრი და ასე შემდეგ.

ნაბიჯი 3: სქემატური დიზაინი

სქემატური დიზაინი
სქემატური დიზაინი

ამ პროექტში, მე ავირჩიე PCB– ის გაკეთება იმის ნაცვლად, რომ მე თვითონ გამეყვანა იგი. ასე რომ, მე გამოვიყენე EasyEDA ონლაინ ინსტრუმენტი სამუშაოსთვის, რაც სასიამოვნო გამოცდილება იყო.

ეს არის პროექტის გვერდი easyEDA ვებსაიტზე:

სქემატური ახსნა შემდეგია:

1- მე გამოვიყენე 6 პინიანი ICSP ადაპტერი Arduino pro mini– ის დასაპროგრამებლად, რადგან ის არ მოყვება ბორტზე. ეს არის J2 სქემატურ რეჟიმში.

2- R2 არის 100 Ohms და ადგენს LCD სიკაშკაშეს. ძირითადად, თქვენ შეგიძლიათ მეტი წინააღმდეგობა გაუწიოთ ვიდრე 100R, თუ გსურთ LCD განათება იყოს უფრო მუქი. ან კიდევ უკეთესი, მიიღეთ პოტენომეტრი, რომელიც მოქმედებს როგორც ცვლადი სერიის წინააღმდეგობა.

3- JP1 არის მხოლოდ კონექტორი, რომელსაც აქვს ლამაზი PCB კვალი. მე არასოდეს დავდე ფაქტობრივი ტერმინალი, მაგრამ სამაგიეროდ შევკარი მავთულები. მოიქეცი როგორც გინდა.

4- U2 არის ბატარეის კავშირის ტერმინალები. აქ, მე მირჩევნია ლამაზი ხრახნიანი ტერმინალები მყარი კავშირის მისაღებად. თქვენ შეგიძლიათ შეაერთოთ მავთულები, მაგრამ დარწმუნდით, რომ შედგით ისე, რომ კავშირი იყოს საკმარისად მყარი, რომ გაუძლოს ნებისმიერ დარტყმას.

5- LCD1 არის LCD კომპონენტი easyEDA– ში. მას აქვს ძირითადი კავშირი Arduino pro mini– სთან. დარწმუნდით, რომ ქინძისთავები იდენტურია პროგრამულ უზრუნველყოფაში.

6- RV1 არის 10K პოტენომეტრი, LCD კონტრასტის დასადგენად. ის უნდა იქნას გამოყენებული მხოლოდ ერთხელ და ეს არის როდესაც თქვენ პირველად ააქტიურებთ LCD ეკრანს.

ნაბიჯი 4: PCB დიზაინი

PCB დიზაინი
PCB დიზაინი
PCB დიზაინი
PCB დიზაინი

სქემატური დიზაინის დასრულების შემდეგ და იმის გაგება, თუ რას ნიშნავს ყველაფერი, ახლა დროა გავაკეთოთ მისთვის PCB.

თქვენ უნდა დააჭიროთ ღილაკს "PCB- ზე გადაყვანა" EasyEDA- ში, რათა შექმნათ PCB PCB რედაქტორში. შემდეგ, დაიწყეთ ნაწილების განთავსება და მარშრუტის გაკეთება ჩვეულებისამებრ. მე გირჩევთ არასოდეს გამოიყენოთ ავტომატური როუტერი.

მე ბევრი ვიზა გამოვიყენე ზემოდან ქვემო ფენის გადასატანად, რადგან სივრცე იმდენად მცირეა.

ნაბიჯი 5: შექმენით PCB

ახლა, PCB დიზაინი დასრულებულია. ჩვენ შევამოწმეთ ყველაფერი და პრობლემა არ არის. ჩვენ უნდა გავაგზავნოთ დიზაინის ფაილები (გერბერები) ჩვენი არჩევანის PCB წარმოების კომპანიაში, რათა მან ეს ჩვენთვის შეძლოს.

ჩემი არჩეული კომპანიაა JLCPCB. ისინი საუკეთესოა ასეთი პროექტებისა და პროტოტიპებისათვის და გთავაზობთ მხოლოდ 2 $ -იან ფასს თქვენი დიზაინის 10 ნაწილისთვის!

ასე რომ, ახლა ჩვენ ვაწკაპუნებთ (….) და ვირჩევთ JLCPCB. ჩვენ მიმართული ვართ JLCPCB ვებსაიტზე, რადგან ისინი პარტნიორები არიან EasyEDA– სთან. ახლა შეავსეთ ყველაფერი და განათავსეთ შეკვეთა. ახლა უბრალოდ დაელოდეთ სანამ PCB– ები ჩამოვლენ.

აღსანიშნავია, რომ JLCPCB– ს არა მხოლოდ EasyEDA აქვს მათთან დაკავშირებული, არამედ მათ აქვთ დიდი კომპონენტების მაღაზიაც! სარგებელი აქ არის როგორც PCB შეკვეთის, ასევე კომპონენტების შეკვეთის ერთად გაგზავნა! დიახ, არ არის საჭირო 2 პაკეტის ცალკე ჩამოსვლას, მაგრამ სამაგიეროდ ისინი გაერთიანებულია ერთ პაკეტში. მე გირჩევთ ამის გამოყენებას.

ნაბიჯი 6: შეკრება

ჩვენ უკვე გვაქვს PCB– ები ყველაფერთან ერთად. დროა შევაგროვოთ ყველაფერი ერთად.

პირველ რიგში, ჩვენ უნდა შევაერთოთ ელექტრონიკა სქემატური მიხედვით. ამ პროექტისთვის ადვილი ამოცანაა.

შედუღების დასრულების შემდეგ, ახლა გაჭერით საჭირო ხვრელები პლასტმასის გარსში, შემდეგ დააფიქსირეთ PCB სხვა კომპონენტებით კარგად შიგნით ცხელი წებოს იარაღის გამოყენებით.

თქვენ ახლა უნდა გამოიყენოთ პოტენომეტრი, რომ შეცვალოთ LCD კონტრასტი, ხოლო სიკაშკაშისათვის საჭირო რეზისტენტული სარქველის არჩევისას მე ავირჩიე 100R.

ნაბიჯი 7: კოდი

ამ პროექტის კოდს თან ერთვის ეს ნაბიჯი და ახსნა შემდეგია:

// შეიტანეთ ბიბლიოთეკის კოდი: #მოიცავს #მოიცავს #DHT.h // დააყენეთ DHT Pin #განსაზღვრეთ DHTPIN 2

ჩართეთ საჭირო ბიბლიოთეკები და განსაზღვრეთ Arduino pro mini- ის პინ 2, როგორც სენსორის მონაცემთა პინი. დარწმუნდით, რომ დააინსტალირეთ ეს ბიბლიოთეკები, თუ არ გაქვთ.

// ბიბლიოთეკის ინიციალიზაცია LiquidCrystal lcd (9, 8, 7, 6, 5, 4) ინტერფეისის ქინძისთავებით; #განსაზღვრეთ DHTTYPE DHT11 DHT dht (DHTPIN, DHTTYPE);

ახლა ინიციალიზაცია LCD ბიბლიოთეკა ამ ქინძისთავების მიხედვით სქემატური თავად. ასევე გამოიყენეთ DHT ბიბლიოთეკა და შეარჩიეთ DHT11, როგორც სენსორი გამოსაყენებლად, ასე რომ, თუ თქვენ გაქვთ DHT22, მაშინ უნდა შეცვალოთ იგი.

ბოლო სტრიქონში ნათქვამია, რომ ჩვენ გვაქვს DHT11 სენსორი და მისი მონაცემთა პინი არის "DHTPIN" პინზე, რომელიც არის პინ 2, როგორც ეს ადრე განვსაზღვრეთ.

void setup () {// დააყენეთ LCD სვეტებისა და რიგების რაოდენობა: lcd.begin (16, 2); dht. დაწყება (); lcd.setCursor (0, 0); lcd.print ("ტემპერატურა და"); lcd.setCursor (0, 1); lcd.print ("ტენიანობის სენსორი"); დაგვიანება (3000); lcd. წმინდა (); lcd.setCursor (0, 0); lcd.print ("THUNDERTRONICS"); lcd.setCursor (0, 1); lcd.print ("ჰოსამ მოღრაბი"); დაგვიანება (3000); }

ახლა დაყენების დროა! და აი რა ხდება:

LCD არის 16 ტიპის 2.

დაიწყეთ DHT ბრძანება ღირებულებების მისაღებად.

დაბეჭდეთ "ტემპერატურისა და ტენიანობის სენსორი" 2 სტრიქონზე.

გადაიდო 3 წამი.

ეკრანის გასუფთავება

დაბეჭდეთ "THUNDERTRONICS" პირველ სტრიქონში, შემდეგ დაბეჭდეთ "Hossam Moghrabi" მე -2 სტრიქონში.

გადაიდო 3 წამი.

^მე ეს გავაკეთე როგორც მისასალმებელი ეკრანი, რომელიც გრძელდება დაახლოებით 6 წამი ან მეტი ვიდრე მნიშვნელობების ჩვენება.

void loop () {// წაკითხვის ტენიანობა int 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. ბეჭდვა (t); lcd.print (""); lcd.print ((char) 223); lcd.print ("C"); lcd.setCursor (0, 1); lcd.print ("ტენიანობა ="); lcd. ბეჭდვა (თ); lcd.print (" %"); // lcd.print ("ჰოსამ მოღრაბი"); დაგვიანება (2000);

დაბოლოს, ჩვენ ვაჩვენებთ ამ მნიშვნელობებს LCD ეკრანზე. თქვენ შეგიძლიათ შეცვალოთ ის ისე, როგორც გსურთ, რადგან ის უბრალოდ დაბეჭდავს მნიშვნელობებს "h" და "t" ცვლადებში. 2 წამიანი დაყოვნება არჩევითია, მაგრამ ამით უფრო სწრაფად ვერ ისარგებლებთ, ვინაიდან თავად სენსორი არ არის ისეთი სწრაფი და რომც იყოს, მაინც ფიზიკური მნიშვნელობები ასე სწრაფად არ იცვლება. ასე რომ, 2 წამი ძალიან სწრაფია სამუშაოსთვის!

Სულ ესაა!

გირჩევთ: