უკაბელო ამინდის სადგურის ელექტრული მუშაობის სქემატური დიაგრამა. ავტომატური ამინდის სადგური მზა მოდულებზე. ამინდის სადგურის ზოგადი სქემა

გამარჯობა საიტის ძვირფასო მეგობრებო" რადიო სქემები"! დიდი ხანია მინდოდა სახლის მეტეოროლოგიური სადგურის აწყობა, თავიდან იგეგმებოდა ავტონომიური სტრუქტურის დამზადება LCD ინდიკატორით და ა.შ., მაგრამ როცა ხელები თითქმის ტექსტოლიტს მიწვდა, შემიქმნა სიტუაცია, უფრო სწორად. ერთ-ერთ კომპანიაში, რომელშიც ვმუშაობ, კერძოდ, სერვერის ოთახში კონდიციონერი გამიფუჭდა, შედეგები შეიძლებოდა ყოფილიყო ძალიან სამწუხარო, რომ არ მქონოდა იქ წასვლა სხვა საკითხებზე, მაგრამ მადლობა ღმერთს, ყველაფერი გამოვიდა. ამ სიტუაციაში მივხვდი, რომ ამინდის სადგურის იდეა მოითხოვს სასწრაფო განხორციელებას, მხოლოდ სრულიად განსხვავებული ფორმით. ასე რომ, წარმოდგენილი დიზაინი არის USB გაჯეტი კომპიუტერზე, რომელიც გადასცემს მონაცემებს სენსორებიდან UART - USB-ის საშუალებით 2 ინტერვალით. წამში, შესაბამისად, კომპიუტერზე დამონტაჟებულია პროგრამა, რომელიც, გარდა მიღებული მონაცემების დამუშავებისა და ჩვენების გარდა, გადასცემს მათ, თუ სასურველია, WEB სერვერზე, რომელზე წვდომით შეგიძლიათ თვალყური ადევნოთ ყველა კითხვას რეალურ დროში და, როგორც თქვენ გვესმის, რომ იყო მსოფლიოს ნებისმიერ წერტილში. გადაცემული მონაცემების ბლოკი ასეთია:

  • +მონაცემები
  • ტენიანობა: xx
  • ტემპერატურა: xx
  • წნევა: xxx
  • - მონაცემები

ჯუმპერები JP1, JP2, JP3 შექმნილია გარკვეული მნიშვნელობების "ნულისთვის", ანუ ჯუმპერი JP1 დაყენებისას ტენიანობის მნიშვნელობა ყოველთვის იქნება 0, JP2 დაყენებისას ტემპერატურის მნიშვნელობა ყოველთვის იქნება 0, ხოლო JP3-ით, წნევის მნიშვნელობა ყოველთვის იქნება 0.

თვითნაკეთი ამინდის სადგურის სქემა

წრე ძალიან მარტივია და არსებითად შედგება 4 ძირითადი კომპონენტისგან. ეს არის MK, ატმოსფერული წნევა + ტემპერატურის სენსორი, ტენიანობის სენსორი და USB - UART გადამყვანი.

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

წნევის და ტემპერატურის სენსორი

განსაცვიფრებელი ყველა თვალსაზრისით, BMP180 ბარომეტრული წნევის და ტემპერატურის სენსორი.


მიუხედავად მისი მცირე ზომისა, ეს სენსორი იძლევა ტემპერატურისა და ბარომეტრული წნევის საოცრად ზუსტ კითხვას. თავად სენსორს აქვს ზომები ~ 3x3 მმ, დასრულებული მოდული არის ~ 10x13 მმ, სენსორი იკვებება 3.3 ვოლტით, ამიტომ შარფზე არის სტაბილიზატორი. ინტერფეისი I2C.

DHT11 არის ტენიანობის + ტემპერატურის სენსორი, რომელიც საკმაოდ კარგია მისი ფასის დიაპაზონისთვის. მაგრამ არის პატარა მინუსი, ეს არის სიზუსტე. თუ ტენიანობის შეცდომა საკმაოდ ნორმალურ დიაპაზონშია, მაშინ ყველაფერი არც ისე კარგია ტემპერატურის ჩვენებით, მაგრამ ჩვენ არ გვჭირდება მისი ტემპერატურის მონაცემები, რადგან. ტემპერატურას ავიღებთ BMP180-დან. მოდულზე ქინძისთავები შედუღებულია სწორზე, თავდაპირველად მოდულს მოყვება კუთხოვანი ქინძისთავები და გარდა ამისა, ისინი იკეტება მეორე მხარეს.

USB to UART გადამყვანი

ზოგადად, არის დიდი რაოდენობით მიკროსქემები და მზა USB - UART გადამყვანები, მე ამაზე დავფიქრდი. ეს მოდული მუშაობს FT232RL ჩიპზე, მაგრამ ამ ჩიპის მწარმოებელი შორს არის FTDI-სგან, როგორც ამ ჩიპის საქმეზეა ნათქვამი, სხვა სიტყვებით რომ ვთქვათ, გამოყენებული ჩიპი არის ჩინური ყალბი. მაგრამ ამაში ცუდი არაფერია, გარდა იმისა, რომ FTDI-მ გადაწყვიტა ებრძოლა ყალბებს ძალიან რთული გზით, მათ გამოუშვეს დრაივერები, რომლებიც აწერენ ჩიპების ID-ებს არა ორიგინალურ ჩიპებზე, რის შემდეგაც ყალბი წყვეტს მუშაობას. იმისათვის, რომ ეს არ მოხდეს, საკმარისია გამოიყენოთ დრაივერები 2.08.14 ვერსიაზე არ არის უფრო მაღალი და შემდეგ პრობლემები არ შეგექმნებათ, თქვენ ვერ შეამჩნევთ განსხვავებას არაორიგინალის მუშაობაში. თუ, მიუხედავად ამისა, ეს მოხდა და მოწყობილობა სწორად აღარ იქნა აღმოჩენილი მოწყობილობის მენეჯერში, მაშინ არაფერი დაიკარგება, ნებისმიერ საძიებო სისტემაში თქვენ იპოვით ამ პრობლემის გადაწყვეტას 5 წუთში, მე ამაზე არ შევჩერდები.

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

ამის გაკეთება საკმაოდ მარტივია PCB-ის დაზიანების გარეშე, ჯერ უნდა გამოყოთ პლასტმასის ბუჩქები ქინძისთავებს შორის თხელი მავთულის საჭრელებით, შემდეგ თითოეული ქინძისთავები ცალკე შეადუღეთ ბუჩქთან, შემდეგ მოაშორეთ ზედმეტი შედუღება - შეადუღეთ საჭირო ქინძისთავები მარჯვენა მხრიდან. . MK უნდა აანთოთ ასეთი საკრავებით:

მას შემდეგ, რაც ყველა მოდული დასრულდება და მზად იქნება, შეგიძლიათ დაიწყოთ აწყობა. ბეჭდური მიკროსქემის დაფა ჩემს ვერსიაში აქვს საბოლოო ზომა 45 x 58 მმ, მე გავაკეთე ფოტორეზისტული გზით, თუმცა სიმარტივიდან გამომდინარე, ნაძარცვიც აქტუალურია. ჩამოტვირთეთ ყველა ფაილი დაფისთვის და პროგრამული უზრუნველყოფისთვის ზოგადი არქივში.

მოწყობილობისთვის აუცილებელი კომპონენტების მთელი ნაკრები.

ამინდის სადგურის აწყობა

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

ახლა გაგიზიარებთ ჩემს საიდუმლოებებს. PCB-ის დაყენების დასრულების შემდეგ ვაკეთებ შემდეგს: ვრეცხავ ყველა ნაკადს და ნარჩენებს საერთო გამხსნელით, რის შემდეგაც ვიყენებ ამ მიზნით შეძენილ კბილის ჯაგრისს, რათა გავწმინდო შედუღების წერტილებს შორის ჩარჩენილი ბოჭკოების ზედაპირი. გაწმენდის შედეგად, შემდეგ გადადით შემდეგ პროცესზე - PP-ს "სპილენძის" მხარის ლაქირება. ამისთვის ჯერ ფურცელში დავჭრი ფანჯარა PP-ის ზომით, რის შემდეგაც PP-ს ამ ფურცელზე ელექტრო ლენტით ვაწებებ, როგორც ნახატზეა ნაჩვენები.

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

ესე იგი, ამინდის სადგურის აწყობის ყველა ეტაპი დასრულებულია, შეგიძლიათ ქაღალდი მოაშოროთ.

და აქ არის მოწყობილობის დასრულებული, სრულად მოქმედი ვერსია.

მე შევაჯამებ აპარატურას. მზა მოწყობილობის ღირებულება, არ ჩავთვლით ტექსტოლიტს და სახარჯო მასალას, რომელიც გამოიყენება PCB-ის წარმოებისა და მონტაჟისთვის, იყო დაახლოებით 500 რუბლი.

პროგრამა

ახლა ტექნიკიდან პროგრამულ უზრუნველყოფამდე. პროგრამა შედგება ერთი შესრულებადისაგან exeფაილი. პირველი დაწყებისას, პროგრამა ეტაპობრივად "ითხოვს" საჭირო პარამეტრების გაკეთებას, ჯერ COM პორტი ინიციალიზებულია, პროგრამა აჩვენებს შემდეგ ფანჯარას:

პორტის ნომრის გარდა, პარამეტრებში არაფრის შეცვლა არ გჭირდებათ! პორტის არჩევის შემდეგ, თქვენ უნდა დააჭიროთ " ხელახლა ცდა» პროგრამის დაწყების ფანჯარაში. შემდეგ ეტაპზე, პროგრამა "მოითხოვს" "სამუშაო" პარამეტრების გაკეთებას.

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

სურვილისამებრ, შეგიძლიათ მიუთითოთ პროგრამის გაშვების ვარიანტი (მინიმიზირებული / არამინიმიზირებული რეჟიმი). არის კიდევ ერთი განყოფილება - ეს არის შესვლა, პაროლი, გაგზავნის სიხშირე და ღილაკი, რომელიც საშუალებას გაძლევთ გაგზავნოთ მონაცემები WEB სერვერზე. აქ არის ცოტა უფრო დეტალურად. ეს პარამეტრი, თუ სასურველია, იძლევა ტემპერატურის, ტენიანობის და წნევის მნიშვნელობების გაგზავნას გლობალურ WEB სერვერზე meteolk.ru - ეს არის რესურსი, რომელიც შექმნილია სპეციალურად ამ პროექტისთვის, სინამდვილეში ეს მხოლოდ პირადი ანგარიშია, რომელიც შეიცავს ყველა ინფორმაციას. მიიღო მეტეოროლოგიური სადგური და სხვა არაფერი. იმისათვის, რომ შეძლოთ ამ რესურსის გამოყენება, ჯერ უნდა დარეგისტრირდეთ მომხმარებლის შემდგომი იდენტიფიკაციის შესაძლებლობისთვის, ამისათვის უბრალოდ გადადით საიტზე და დააწკაპუნეთ " რეგისტრაცია". ასე რომ, თქვით, გამოიყენეთ ჯანმრთელობაზე, მე არ ვწუხვარ. რეგისტრაციის გვერდზე შეიყვანეთ თქვენი სახელი, მომხმარებლის სახელი და პაროლი.

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

მენიუში " დამატებით"არსებობს ვარიანტი" წაიკითხეთ მონაცემები კონტროლერიდან“, აქ აგიხსნით. ყოველ ნახევარ საათში, ტემპერატურის, ტენიანობის და წნევის მნიშვნელობები ჩაიწერება მიკროკონტროლერის RAM-ში, საერთო ჯამში შეიძლება იყოს 100 ასეთი ჩანაწერი, თუ აღმოჩნდა, რომ პროგრამა არ იყო გაშვებული და თქვენ გჭირდებათ სტატისტიკის ნახვა, შემდეგ გამოიყენეთ ამ ოფციაში შეგიძლიათ ნახოთ მონაცემები, ეს არის 2 დღე თუ არის რა თქმა უნდა. „MK მონაცემების წაშლის“ დახმარებით, ყველა ადრე შეგროვებული და ოპერატიული მეხსიერებაში შენახული სტატისტიკა გადაიწერება. მიმდინარე, ნაჩვენები მნიშვნელობების გარდა, ასევე არის "მაქს". და "მინ.", ეს არის მაქსიმალური და მინიმალური მნიშვნელობები, რომლებიც დაფიქსირდა პროგრამის მუშაობის დროს.
ეს ყველაფერი პროგრამითაა, დანარჩენ მენიუებზე არ შევჩერდები, ვფიქრობ, რომ ყველაფერი მაინც ინტუიციურად ნათელია. დავუბრუნდეთ ჩემს პირად ანგარიშს. რეგისტრაციის შემდეგ შეგიძლიათ შეხვიდეთ თქვენი ანგარიშის ქვეშ, სხვათა შორის, ასევე შეგიძლიათ შეხვიდეთ შესვლის ქვეშ " ტესტი» და პაროლი « ტესტი“, ეს გაცნობის მიზნით. თუ თქვენ გაქვთ მონაცემები, მაშინ ნახავთ ამ ფანჯარას:

სურვილის შემთხვევაში, მონაცემების ნახვა შესაძლებელია გრაფიკული ვერსიით, გრაფიკების სახით.

Სულ ეს არის. იმედი მაქვს, რომ მოგეწონებათ ჩემი პროექტი და გამოგადგებათ. Ნახვამდის! შევხვდებით საიტზე. ავტორი ვიტალი ანისიმოვი.კალუგა.

განიხილეთ სტატია HOME USB ამინდის სადგური

(ქრონო-თერმო-ჰიგირო-ბარომეტრი)

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

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

სადგურის გარეგნობა ნაჩვენებია ნახატებზე (სურათი 1 და სურათი 2).

სურათი 1.
სადგურის გარეგნობა

სურათი 2.
სადგურის გარე ხედი (უკანა მხარე)

სადგურის მუშაობის ამსახველი ვიდეო წარმოდგენილია ქვემოთ:


Ელექტრული წრედი.

ელექტრული წრედის დიაგრამა ნაჩვენებია სურათზე 3.

სურათი 3
სქემატური ელექტრული წრე.

სადგური აწყობილია ATmega8 მიკროკონტროლერზე. R1C1 ჯაჭვი უზრუნველყოფს მიკროკონტროლერის საწყის გადატვირთვას (გადატვირთვას), როდესაც ის ჩართულია. MK-ის ჩართვაში პროგრამირება უზრუნველყოფილია XP3 "SPI პროგრამისტი" კონექტორის მეშვეობით.
საკრავები MK ATmega8: HIGH=0xD9, LOW=0xE4.

დისპლეი იყენებს ოთხნიშნა 7 სეგმენტიან ინდიკატორს ტიპის CL5642BN საერთო ანოდით და ორპუნქტიანი (“:”) გამყოფით საათებისა და წუთებისთვის. ინდიკატორის სეგმენტების კათოდები უკავშირდება MC-ს შემზღუდველი რეზისტორების მეშვეობით. MK უზრუნველყოფს დინამიურ მითითებას ტრანზისტორი გადამრთველების ჩართვით VT3…VT6.

ქრონომეტრი აწყობილია DS1307 ჩიპზე სტანდარტული გადართვის სქემის მიხედვით. საათის სიზუსტეს უზრუნველყოფს Y1 კვარცის რეზონატორი 32768 ჰც სიხშირით. ძირითადი ელექტრომომარაგების არარსებობის შემთხვევაში (5 ვოლტი), საათის უწყვეტობა უზრუნველყოფილია სარეზერვო დენის წყაროს მიერ CR2032 გალვანურ უჯრედზე (3 ვოლტი). MK-ის ურთიერთქმედება DS1307 ჩიპთან ხორციელდება TWI (I2C) ავტობუსის მეშვეობით. TWI ავტობუსის ხაზები "გაყვანილია" VCC2 მიწოდებამდე რეზისტორებით R20, R21. საათებისა და წუთების დაყენება მოცემულია ღილაკებით SA1 ("საათები +"), SA2 ("წუთები +"), SA3 ("ინსტალაცია"). ამავდროულად, საჭიროა ეკრანზე მონაცემების ჩვენების ციკლის დაწყების მომენტში დააჭიროთ და დააჭიროთ ღილაკს "Setting". ღილაკების „საათები +“ ან „წუთები +“ დაჭერით ან დაჭერით და დაჭერით, დგინდება ქრონომეტრის დრო. როდესაც ღილაკი "Set" გათავისუფლდება, ეკრანზე ნაჩვენები საათებისა და წუთების მნიშვნელობები ჩაიწერება DS1307 ჩიპის შესაბამის უჯრედებში, ხოლო მნიშვნელობა 0 დაიწერება წამის უჯრედში. ამ გზით შეგიძლიათ. დროის ზუსტად სინქრონიზაცია ზუსტი დროის გარე საცნობარო წყაროებთან (მაგალითად, სამაუწყებლო რადიოსადგურებიდან ან ტელევიზიიდან).

BMP180 ბარომეტრის დაფა ასევე დაკავშირებულია TWI ავტობუსთან. მოწყობილობის პროგრამა კითხულობს მწარმოებლის მიერ დადგენილ კალიბრაციის კოეფიციენტებს და ითვალისწინებს მათ ატმოსფერული წნევის გაანგარიშებისას.

ტემპერატურის გაზომვა ხორციელდება DHT11 სენსორით. MK აკონტროლებს სენსორს სერიული ერთსადენიანი ორმხრივი ინტერფეისით. ინტერფეისის ხაზი "გაყვანილია" VCC2 მიწოდებამდე რეზისტორი R19-ით.

ბატარეის ენერგიის შესანარჩუნებლად, მიკროკონტროლერი დროის უმეტეს ნაწილს ატარებს ღრმა ძილის მდგომარეობაში ("გამორთვა"). ამავდროულად, დაძინებამდე, MC გამორთავს VCC2-თან დაკავშირებულ ყველა საზომ სენსორს (ქრონომეტრი, ატმოსფერული წნევის სენსორი, ტენიანობის და ტემპერატურის სენსორი). სენსორების დეენერგია უზრუნველყოფილია ტრანზისტორებზე VT1 და VT2 კლავიშებით.

MK-ის გასაღვიძებლად, HC-SR501 მოძრაობის სენსორი შედის სადგურის წრეში. მისი ამოცანაა MK გამოიყვანოს ძილის მდგომარეობიდან. გააქტიურებისას სენსორი აგზავნის სიგნალს MK-ზე, რომელიც იღვიძებს თავისთავად და აწვდის VCC2-ს პერიფერიულ სენსორებს (ქრონომეტრი, ატმოსფერული წნევის სენსორი, ტენიანობის და ტემპერატურის სენსორი). ტრანზისტორი VT7 გასაღები უზრუნველყოფს მოძრაობის სენსორის სიგნალის ინვერსიას MK-თან კოორდინაციისთვის. "Motion" გადამრთველი გაძლევთ საშუალებას გამორთოთ მოძრაობის სენსორი, ბატარეის კიდევ უფრო დიდი დაზოგვისთვის. ამ შემთხვევაში, MK-ის გაღვიძების ალტერნატიული ბრძანება შეიძლება გაიცეს ღილაკზე "ინსტალაციის" დაჭერით.

სადგური იკვებება ორი ალტერნატიული ტიპის წყაროდან: სამი AA ბატარეიდან ან 5 V ქსელის კვების წყაროდან USB ავტობუსის საშუალებით. კვების წყაროებს შორის გადართვისთვის, თქვენ უნდა დააყენოთ "Power" გადამრთველი ერთ-ერთ პოზიციაზე: "USB" ან "Battery". ბატარეებით კვებისას, სადგურის მიმდინარე მოხმარება ძილის რეჟიმში არის არაუმეტეს 200 μA, რაც ბატარეის ტევადობით 2000 mAh შეესაბამება 10000 საათს (ერთ წელზე მეტი) უწყვეტ მუშაობას.

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

როდესაც იკვებება USB ავტობუსიდან, ზოგჯერ მიზანშეწონილია უზრუნველყოთ, რომ სენსორები მუდმივად გაზომონ მნიშვნელობები და აჩვენონ მონაცემები ეკრანზე. ამისათვის დააყენეთ "Display" გადამრთველი "On" პოზიციაზე. ამ შემთხვევაში, MK არ მოთავსდება ძილის მდგომარეობაში.

ბეჭდური მიკროსქემის დაფები.

ბეჭდური მიკროსქემის დაფები შექმნილია Dip Trace პროგრამაში. ისინი მზადდება ცალმხრივი კილიტა მინაბოჭკოვანი. ძირითადი ბეჭდური მიკროსქემის დაფაზე ნაწილების მდებარეობა ნაჩვენებია სურათზე (სურათი 4). ნახატზე, სამონტაჟო მხარეს მხტუნავები ხაზგასმულია ფერადი გატეხილი ხაზებით. ნაბეჭდი მიკროსქემის დაფა ტრასების მხარეს არის ნაჩვენები ფიგურაში (სურათი 5).

სურათი 4
ბეჭდური მიკროსქემის დაფა (ხედი რადიოს კომპონენტების მხრიდან).

სურათი 5
PCB (ქვედა ხედი, სარკისებური გამოსახულება).

სადგურის მართვის პანელის ღილაკები და გადამრთველები დამონტაჟებულია ცალკე ბეჭდურ მიკროსქემის დაფაზე (სურათი 6 და სურათი 7).

სურათი 6
მართვის პანელის ბეჭდური მიკროსქემის დაფა (ზედა ხედი).

სურათი 7
მართვის პანელის ბეჭდური მიკროსქემის დაფა (ხედი ლიანდაგების მხრიდან).

USB კაბელის დამაკავშირებელი სოკეტი დამონტაჟებულია AliExpress-ისგან შეძენილ ცალკეულ დაფაზე (სურათი 8).

Ფიგურა 8
დაფა USB სოკეტით.

ინსტალაცია.

სადგური დამონტაჟებულია საკაბელო არხების უნივერსალური ყუთის შემთხვევაში "პრომრუკავ" - IP42; 400 ვ; პოლისტირონი GOST R 50827.1-2009 TU 3464-001-97341529-2012 მუხლი 40-0460.

კორპუსის წინა მხარეს ფანჯრები გაჭრილია ეკრანისა და მოძრაობის სენსორისთვის. კორპუსის უკანა მხარეს არის DHT11 ტენიანობის და ტემპერატურის სენსორი, მართვის პანელის ღილაკები და კონცენტრატორები.

კვების ელემენტი - სამი AA 1.5 ვოლტის უჯრედი მოთავსებულია სპეციალიზებულ დამჭერში - "საწოლში".

ბეჭდური მიკროსქემის დაფაზე რადიო კომპონენტების განთავსება ნაჩვენებია სურათზე (სურათი 9).

სურათი 9
დაფაზე ნაწილების განლაგების გამოჩენა.

არქივი სტატიისთვის "CTBH.rar" შეიცავს:

1. CTBH საქაღალდე - C პროექტის ფაილები Atmel Studio 7 გარემოში.
2. CTBH.dch - ელექტრული წრედის დიაგრამა Dip Trace ფორმატში.
3. CTBH.dip - მოწყობილობის ბეჭდური მიკროსქემის დაფა Dip Trace ფორმატში.
4. CTBH_Buttons.dip - მართვის პანელის ბეჭდური მიკროსქემის დაფა Dip Trace ფორმატში.
5. CTBH.hex - ჩატვირთვის ფაილი MK-სთვის.

წარმატებებს გისურვებთ თქვენს საქმიანობაში და ყოველივე საუკეთესო!

ჩამოტვირთეთ არქივი.

ჩემმა კოლეგამ ცოტა ხნის წინ უმასპინძლა პატარა სამეცნიერო გამოფენას.
ჩემმა მასწავლებელმა მთხოვა, კოლეჯის სტუდენტებისთვის წარმედგინა ელექტრონიკის პროექტი. ორი დღე მქონდა რაღაც საინტერესო და საკმარისად მარტივი მოსაფიქრებლად.



ვინაიდან აქ ამინდის პირობები საკმაოდ ცვალებადია და ტემპერატურა მერყეობს 30-40 ° C-ის ფარგლებში, გადავწყვიტე სახლის მეტეოროლოგიური სადგურის გაკეთება.

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

ჩვეულებრივ, ეს არის შემდეგი სენსორები:

  • ქარი
  • ტენიანობა
  • წვიმა
  • ტემპერატურა
  • წნევა
  • სიმაღლეებს

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

მას უნდა შეეძლოს შემდეგი პარამეტრების განსაზღვრა:

  • ტემპერატურა
  • ტენიანობა
  • წნევა
  • სიმაღლე

ნაბიჯი 1: შეიძინეთ სწორი კომპონენტები







  • DHT22, ტემპერატურისა და ტენიანობის სენსორი.
  • BMP180, წნევის სენსორი.
  • შედუღება
  • ერთი რიგის კონექტორი 40 გამომავალი

აღჭურვილობიდან დაგჭირდებათ:

  • soldering რკინის
  • ცხვირის ბალიშები
  • მავთულები

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







ტემპერატურის გასაზომად გამოიყენება სხვადასხვა სენსორები. პოპულარულია DHT22, DHT11, SHT1x

აგიხსნით რით განსხვავდებიან ისინი ერთმანეთისგან და რატომ გამოვიყენე DHT22.

AM2302 სენსორი იყენებს ციფრულ სიგნალს. ეს სენსორი მუშაობს უნიკალურ კოდირების სისტემაზე და სენსორის ტექნოლოგიაზე, ამიტომ მისი მონაცემები საიმედოა. მისი სენსორის ელემენტი დაკავშირებულია 8-ბიტიან ერთ ჩიპიან კომპიუტერთან.

ამ მოდელის თითოეული სენსორი თერმულად კომპენსირებული და ზუსტად დაკალიბრებულია, კალიბრაციის კოეფიციენტი ინახება ერთჯერად პროგრამირებად მეხსიერებაში (OTP მეხსიერება). წაკითხვისას სენსორი იხსენებს კოეფიციენტს მეხსიერებიდან.

მცირე ზომა, დაბალი ენერგიის მოხმარება, გადაცემის დიდი მანძილი (100 მ) ხდის AM2302-ს თითქმის ყველა აპლიკაციისთვის შესაფერისი, ხოლო ზედიზედ 4 გამომავალი ინსტალაციას ძალიან მარტივს ხდის.

მოდით შევხედოთ სამი სენსორის მოდელის დადებით და უარყოფით მხარეებს.

DHT11

დადებითი: არ საჭიროებს შედუღებას, სამი მოდელიდან ყველაზე იაფი, სწრაფი სტაბილური სიგნალი, დიაპაზონი 20 მ-ზე მეტი, ძლიერი ჩარევა.
მინუსები: ბიბლიოთეკა! გარჩევადობის პარამეტრები არ არის, ტემპერატურის გაზომვის შეცდომა +/- 2°С, ფარდობითი ტენიანობის დონის გაზომვის შეცდომა +/- 5%, გაზომილი ტემპერატურის არაადეკვატური დიაპაზონი (0-50°С).
პროგრამები: მებაღეობა, სოფლის მეურნეობა.

DHT22

დადებითი: არ საჭიროებს შედუღებას, დაბალი ღირებულება, გლუვი მოსახვევები, მცირე გაზომვის შეცდომები, დიდი გაზომვის დიაპაზონი, დიაპაზონი 20 მ-ზე მეტი, ძლიერი ჩარევა.
მინუსები: მგრძნობელობა შეიძლება იყოს უფრო მაღალი, ტემპერატურის ცვლილებების ნელი თვალყურის დევნება, საჭიროა ბიბლიოთეკა.
პროგრამები: გარემოსდაცვითი კვლევები.

SHT1x

დადებითი: არ არის საჭირო შედუღება, გლუვი მოსახვევები, მცირე გაზომვის შეცდომები, სწრაფი რეაგირება, დაბალი ენერგიის მოხმარება, ძილის ავტომატური რეჟიმი, მაღალი სტაბილურობა და მონაცემთა თანმიმდევრულობა.
მინუსები: ორი ციფრული ინტერფეისი, შეცდომა ტენიანობის დონის გაზომვისას, გაზომილი ტემპერატურის დიაპაზონი 0-50°C, საჭიროა ბიბლიოთეკა.
გამოყენება: ექსპლუატაცია მკაცრ გარემოში და ხანგრძლივ ინსტალაციაში. სამივე სენსორი შედარებით იაფია.

ნაერთი

  • Vcc - 5V ან 3.3V
  • გნდ - გნდთან
  • მონაცემები - მეორე Arduino პინზე

ნაბიჯი 3: BMP180 წნევის სენსორი



BMP180 არის ბარომეტრული ატმოსფერული წნევის სენსორი I2C ინტერფეისით.
ბარომეტრიული წნევის სენსორები ზომავენ ატმოსფერული ჰაერის აბსოლუტურ მნიშვნელობას. ეს მაჩვენებელი დამოკიდებულია კონკრეტულ ამინდის პირობებზე და ზღვის დონიდან სიმაღლეზე.

BMP180 მოდულს ქონდა 3.3V 662k ohm რეგულატორი, რომელიც მე ჩემი სისულელეებით შემთხვევით ავაფეთქე. მომიწია დენის დარტყმა პირდაპირ ჩიპზე.

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

სენსორისა და I2C ავტობუსის შეერთების დიაგრამა Arduino-სთან (ნანო ან უნო)

  • SDA-A4
  • SCL-A5
  • VCC - 3.3V
  • GND-GND

მოდით ვისაუბროთ ცოტა წნევაზე და იმაზე, თუ როგორ უკავშირდება ის ტემპერატურასა და სიმაღლეს.

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

მაგალითად, წნევის ვარდნა ჩვეულებრივ ნიშნავს წვიმიან ამინდს ან ჭექა-ქუხილის მოახლოებას (დაბალი წნევის ზონას, ციკლონს). წნევის მატება ჩვეულებრივ ნიშნავს მშრალ, ნათელ ამინდს (თქვენზე გადის მაღალი წნევის ზონა, ანტიციკლონი).

ატმოსფერული წნევა ასევე იცვლება სიმაღლესთან ერთად. აბსოლუტური წნევა ევერესტის საბაზო ბანაკში (5400 მ ზღვის დონიდან) უფრო დაბალია, ვიდრე დელიში (216 მ ზღვის დონიდან).

ვინაიდან აბსოლუტური წნევის მაჩვენებლები განსხვავდება თითოეულ ადგილას, ჩვენ მივმართავთ შედარებით წნევას, ან ზღვის დონის წნევას.

სიმაღლის გაზომვა

საშუალო წნევა ზღვის დონეზე არის 1013,25 GPa (ან მილიბარი). თუ ატმოსფეროზე მაღლა აიწევთ, ეს მნიშვნელობა ნულამდე დაეცემა. ამ ვარდნის მრუდი სავსებით გასაგებია, ასე რომ თქვენ შეგიძლიათ თავად გამოთვალოთ სიმაღლე შემდეგი განტოლების გამოყენებით: alti=44330*

თუ ზღვის დონის წნევას აიღებთ 1013,25 GPa, როგორც p0, განტოლების გამოსავალი არის თქვენი ამჟამინდელი სიმაღლე.

სიფრთხილის ზომები

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

დაიცავით სითბოსგან. წნევის გასაზომად საჭიროა ტემპერატურის ზუსტი მაჩვენებლები. ეცადეთ დაიცვათ სენსორი ტემპერატურის რყევებისგან და არ დატოვოთ იგი მაღალი ტემპერატურის წყაროებთან ახლოს.

დაიცავით ტენიანობისგან. BMP180 სენსორი მგრძნობიარეა ტენიანობის დონის მიმართ, შეეცადეთ თავიდან აიცილოთ წყლის შესაძლო შეჭრა სენსორზე.

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

ნაბიჯი 4: მოწყობილობის აწყობა







ერთი რიგის კონექტორების დაყენება Arduino Nano-სთვის. ძირითადად, ჩვენ მათ ზომაზე დავჭრათ და ცოტა ქვიშით მოვასხათ ისე, როგორც იყვნენ. შემდეგ ჩვენ ვამაგრებთ მათ. ამის შემდეგ, ჩვენ ვამონტაჟებთ ერთ რიგის კონექტორებს DHT22 სენსორისთვის.

დააინსტალირეთ 10kΩ რეზისტორი მონაცემთა გამომავალიდან მიწამდე (Gnd). ჩვენ ვამაგრებთ ყველაფერს.
შემდეგ, ანალოგიურად, ვამონტაჟებთ BMP180 სენსორისთვის ერთ რიგის კონექტორს, ვაკეთებთ ელექტრომომარაგებას 3.3 ვ. ყველაფერს ვაკავშირებთ I2C ავტობუსით.

და ბოლოს, ჩვენ ვუკავშირდებით LCD ეკრანს იმავე I2C ავტობუსს, როგორც BMP180 სენსორს.
(მოგვიანებით ვგეგმავ RTC მოდულის (რეალური დროის საათის) დაკავშირებას მეოთხე კონექტორთან, რათა მოწყობილობამ ასევე აჩვენოს დრო).

ნაბიჯი 5: კოდირება




ჩამოტვირთეთ ბიბლიოთეკები

Arduino-ზე ბიბლიოთეკების დასაყენებლად მიჰყევით ბმულს

#შეიცავს
#include #include #include "DHT.h" #include

SFE_BMP180 წნევა;

#define ALTITUDE 20.56 #define I2C_ADDR 0x27 //<<- Add your address here. #define Rs_pin 0 #define Rw_pin 1 #define En_pin 2 #define BACKLIGHT_PIN 3 #define D4_pin 4 #define D5_pin 5 #define D6_pin 6 #define D7_pin 7

#define DHTPIN 2 // რა ციფრულ პინთან ვართ დაკავშირებული

// უღიმღამოდ, თუ რა ტიპს იყენებთ! Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);float t1,t2;

void setup() ( Serial.begin(9600); lcd.begin(16,2); //<<-- our LCD is a 20x4, change for your LCD if needed // LCD Backlight ON lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH); lcd.home (); // go home on LCD lcd.print("Weather Station"); delay(5000); dht.begin(); pressure.begin(); } void loop() { char status; double T,P,p0,a; status = pressure.startTemperature(); if (status != 0) { delay(status);

სტატუსი = წნევა.getTemperature(T); if (სტატუსები != 0) ( Serial.print("1"); lcd.clear(); lcd.setCursor(0,0); lcd.print("Baro Temperature:"); lcd.setCursor(0,1 lcd.print(T,2);lcd.print("deg C");t1=T; delay(3000);

status = presion.startPressure(3); if (status != 0) ( // დაველოდოთ გაზომვის დასრულებას: delay(status);

სტატუსი = წნევა.getPressure(P,T); if (სტატუსები != 0) (lcd.clear(); lcd.setCursor(0,0); lcd.print("abslt ზეწოლა:"); lcd.setCursor(0,1); lcd.print(P,2 lcd.print("mb"); delay(3000);

p0 = წნევა. sealevel(P,ALTITUDE); // ჩვენ ვართ 1655 მეტრზე (ბოულდერი, CO)

a = წნევა.სიმაღლე (P,p0); LCD.clear(); lcd.setCursor(0,0); lcd.print ("სიმაღლე: "); lcd.setCursor(0,1); lcd.print(a,0); lcd.print("მეტრები"); დაგვიანებით (3000); ) ) ) ) float h = dht.readHumidity(); // ტემპერატურის წაკითხვა, როგორც ცელსიუსი (ნაგულისხმევი) float t = dht.readTemperature(); t2=t; LCD.clear(); lcd.setCursor(0,0); // გადადით მე-2 ხაზის დასაწყისზე lcd.print(" Humidity: "); lcd.setCursor(0,1);lcd.print(h); lcd.print("%"); დაგვიანებით (3000); LCD.clear(); lcd.setCursor(0,0); // გადადით მე-2 ხაზის LCD ბეჭდვის დასაწყისზე ("DHT Tempurature:"); lcd.setCursor(0,1); LCD ბეჭდვა (t); lcd.print("degC"); დაგვიანებით (3000); LCD.clear(); lcd.setCursor(0,0); // გადადით მე-2 სტრიქონზე lcd.print("საშუალო ტემპერატურა:"); lcd.setCursor(0,1); lcd.print((t1+t2)/2); lcd.print("degC"); დაგვიანებით (3000); )

მე გამოვიყენე Arduino ვერსია 1.6.5, კოდი ზუსტად ჯდება, შემდგომმაც შეიძლება იმუშაოს. თუ კოდი რაიმე მიზეზით არ ჯდება, გამოიყენეთ 1.6.5 ვერსია, როგორც ძირითადი.

მეტეოროლოგიური სადგურების სხვადასხვა პროექტების დათვალიერებისას ერთი ტენდენცია შევნიშნე. ეს არის ტემპერატურისა და ტენიანობის სენსორი, ყველაზე ხშირად საყვარელი ჩინური DHT-11 ან DHT-22, რომელსაც ისინი ამატებენ ან სინათლის სენსორს (მეტეოროლოგიური სადგური Arduino-ზე მონაცემთა ვიზუალიზაციით) ან წნევა (Ethernet ამინდის სადგური), ან ფანტასტიური. ერთი მრავალი ასეულ დოლარად (ავტომატური ამინდის სადგური ქვეყანაში)

ვინაიდან პირადად ჩემთვის მეტეოროლოგიური სადგური ქარის მიმართულებისა და სიჩქარის გაზომვის გარეშე არ არის მეტეოროლოგიური სადგური და მე არ ვარ მზად სათამაშოზე დავხარჯო დაახლოებით 700 დოლარი, ზოგადად, გადაწყდა, რომ მსგავსი რამ "ძვირი- ლამაზი”, მაგრამ არა ძვირი.

ელექტრონიკა


ახლა ქარის მიმართულების გაზომვის შესახებ. ბევრი ვარიანტი იყო, დაწყებული ოპტიკური კოდირებიდან - ქარხნული (ძვირადღირებული) ან სახლში დამზადებული რამდენიმე წყვილი LED-ების და ფოტოდიოდების სახით და რუხი კოდის დისკიდან (რთული და მრავალი კომპონენტით), მაგნიტამდე და 4-8 რიდამდე. კონცენტრატორები (ზედმეტად მარტივი და არაზუსტი). შედეგად, არჩევანი დაეცა AS5040 - მაგნიტურ ენკოდერს. ვინაიდან განსაკუთრებული სიზუსტე არ არის საჭირო, ენკოდერის ანალოგური გამომავალი უკავშირდება მიკროკონტროლერის ADC-ს.

მიკროკონტროლერი - PIC16F88. გამომავალი არის RS485 ჭკვიანი სახლის შიდა ქსელში, რომლის შესახებაც არის სტატიების ეს სერია. მთელი ელექტრონული ნაწილი აწყობილია სამ დაფაზე.

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

მექანიკა

სამწუხაროდ, ქეისის 3D პრინტერზე დაბეჭდვა შეუძლებელია და თითქმის ყველას უჭირს წყალგამძლე ქარხნული ქეისები. გარდა ამისა, საკისრები და ყველაფერი დანარჩენი რევოლუციის ორგანოა, ამიტომ მრგვალი სხეული ყველაზე ლოგიკური არჩევანი იქნებოდა. მომიწია თვალის გადატანა სხვა სფეროებზე - წყალმომარაგებაზე. როგორც საცხოვრებელი, აიღეს კანალიზაციის "32" შეერთება და ორი განშტოებული მილი მათში ტარების შეკრებებისთვის. თითბერისგან დამუშავებული იყო ორი შტეფსელი, რომელშიც ჩასმული იყო ორი საკისარი 626.

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

მიუხედავად იმისა, რომ გასაყიდი უმეტესობას აქვს სხვადასხვა ბოძები სხვადასხვა მხარეს.

მაგრამ აღმოჩნდა, რომ საჭირო მაგნიტები განლაგებულია CD/DVD დისკების ძრავების ღეროებზე.

აწყობილი ტარების შეკრებები ასე გამოიყურება

დაფების დამზადებისა და აწყობის შემდეგ, ქარის სიჩქარისა და მიმართულების სენსორები საბოლოო ფორმას იღებს

ვინაიდან მეტეოროლოგიური სადგური ჯერ კიდევ მზადდება იმპროვიზირებული მასალებისგან, ჩვენ ვჭრით ჩოგბურთის ბურთებს იმპულსისთვის, ასევე ვაკეთებთ ამინდის ლიანდაგს, რაც ხელთ მოვა. რადიკალურ შავ ფერში ვხატავთ და ასე გამოდის.

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

ვაგროვებთ, ვაკავშირებთ და ვამაგრებთ მაღლა

ინტერფეისი

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

ტემპერატურის დენი, მინიმალური, მაქსიმალური, ცვლილების მიმართულება. წნევა იგივეა. ტენიანობა. ქარი - მიმართულება და ქარის ვარდი. ნომრები უფრო საჭიროა გამართვისთვის, ისინი აჩვენებენ რამდენ ხანს იყო ამინდის ზოლი რომელ სექტორში. ქარის სიჩქარე, დრო, სინათლის სენსორის ჩვენებები (კალიბრაციის გარეშე, რა გაზომა ADC) და წვიმის სენსორი. ყველა მონაცემი და დამუშავება ხორციელდება ამინდის სადგურის მიკროკონტროლერში.

მეორე ტიპის ინტერფეისი დაფუძნებულია ვიჯეტებზე. აქ არის ნაკლები მონაცემები, ტემპერატურა, ტენიანობა, წნევა, ქარის სიჩქარე და მიმართულება

და სად Android Wear-ის გარეშე - საათზე

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



„მაშ, მაშინვე შევთანხმდეთ: თქვენ არ აპირებთ ფილმის გადაღებას ჰოლივუდისთვის. საოცრებათა ქვეყანაშიც კი, ყველა სცენარის ხუთი პროცენტზე მეტი არ არის დამტკიცებული და მხოლოდ ერთი პროცენტი გადადის წარმოებაში... ასე რომ, ამ ყველაფრის ნაცვლად, თქვენ აპირებთ შექმნათ თქვენი საკუთარი ჰოლივუდი. ”
ედ გასკელი "ციფრული კინოს გადაღება, ან ჰოლივუდი სახლში"

წინასიტყვაობა

რა, კიდევ ერთი არდუინოს მეტეოროლოგიური სადგური?! დიახ, კიდევ ერთი და, რაღაც მეუბნება, არა უკანასკნელი ინტერნეტში.


როგორც ყველა პროგრამისტს მოეთხოვება დაწეროს პროგრამა "Hello World!", ასევე ყველა არდუინს უნდა ჰქონდეს გამოცდილება მარტივი ან არც თუ ისე ძალიან ამინდის სადგურის აშენებაში.
აღწერილია ინტერნეტში ამინდის სადგურების უკვე შექმნილი პროექტების მნიშვნელოვანი რაოდენობა, მკითხველს შეუძლია აირჩიოს რომელიმე მათგანი განსახორციელებლად. გულწრფელად რომ გითხრათ, მე ყურადღებით შევისწავლე დაახლოებით ათეული მსგავსი პროექტი და რამდენიმე დაკავშირებული. ამიტომ, არ შეიძლება ითქვას, რომ ყველაფერი ნულიდან შევქმენი, რა თქმა უნდა „გიგანტების მხრებზე ვიდექი“.


დაუყოვნებლივ უნდა ვთქვა, რომ ჩემი გეგმები არ მოიცავდა მესამე მხარის სერვისების გამოყენებას მონაცემების შესანახად და ჩვენებისთვის. მინდოდა პირადად მეგრძნო და გამეგო, როგორ მუშაობს ეს ყველაფერი შიგნიდან თავიდან ბოლომდე, A-დან Z-მდე.


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



ეს პროექტი ჯერ კიდევ 2016 წელს განხორციელდა, მაგრამ იმედია კვლავ აქტუალურია.

ტექნოლოგიური ნაკრები

ჩვენ შევისწავლით და ვიმუშავებთ მარტივ და რთულ ნივთებზე:

  • ტემპერატურისა და ტენიანობის სენსორები ტიპის DHT22, DHT11
  • ბარომეტრიული წნევის სენსორი ტიპის BMP180
  • WiFi მოდული ESP8266
  • რადიო მოდულის ტიპი nRF24 2.4 GHz
  • ოჯახი Arduino Pro Mini, Arduino Mega
  • მზის პანელები და ბატარეები
  • პროგრამირების ენა C/C++
  • PHP პროგრამირების ენა
  • MySQL მონაცემთა ბაზის მართვის სისტემა
  • Java პროგრამირების ენა და Android Framework (Adnroid-ისთვის აპლიკაციის შექმნა სმარტფონზე ამინდის მონაცემების საჩვენებლად).

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


მაგრამ თავიდანვე დავიწყებთუფლება. კერძოდ, მომავალი მოწყობილობის აღწერიდან და დიზაინიდან "ფურცელზე"ისე, რომ ბოლოს ყოველი აგური თავის ადგილზე იწვა.

პროტოტიპირება

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


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


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


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


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


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

მოთხოვნები

როგორც წესი, ეს ნაბიჯი გამოტოვებულია. ახლავე გადავწყვიტე მსგავსი რამის გაკეთება და მერე აღმოჩნდება პატარა დეტალები, რომლებიც მთელ პროექტს ჩიხში აყენებს ან თუნდაც აუტანელს ხდის. ყველა ჩვენი სურვილების სია უნდა ჩაიწეროს, ამისთვის ვიყენებ Google Drive-ს, ის ხელმისაწვდომია კომპიუტერიდან და მობილური მოწყობილობიდან.


ასე რომ, ჩვენი ამინდის სადგური უნდა:

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

სენსორები გამოიყენება ყველაზე მარტივი და იაფი. მაგალითად, წინსვლის ყურებით, მე ვიტყვი, რომ DHT22 ზომავს ტემპერატურას საკმაოდ ზუსტად, მაგრამ ცოტა არაზუსტია ტენიანობის მიმართ. მაგრამ, კიდევ ერთხელ ვიმეორებ, არაფერ შუაშია, რადგან ჩვენ წინ გვაქვს პროტოტიპი და 5%-იანი ტენიანობის გაფანტვა არ იმოქმედებს რაიმე მნიშვნელოვანზე ჩვენს ცხოვრებაში.


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

რკინა. კომპონენტის შერჩევა

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


აქ არის ერთი ნიუანსი. კომპონენტების შესარჩევად, კარგად უნდა იცოდე მათი შესაძლებლობები, თავად ტექნოლოგიები უნდა იცოდე. ანუ, სხვა სიტყვებით რომ ვთქვათ, აქ თქვენ უნდა იყოთ შორს დამწყები ელექტრონიკის ინჟინრისა და პროგრამისტისგან. მაშ, რა უნდა გავატაროთ ორი წლის განმავლობაში შესაძლო მოწყობილობების მთელი დიაპაზონის შესასწავლად?


მანკიერი წრე? მაგრამ მანკიერი წრეები არსებობს მათი დაშლის მიზნით.


არის გასასვლელი. თქვენ შეგიძლიათ უბრალოდ აიღოთ და გაიმეოროთ ვინმეს პროექტი. შევისწავლე მეტეოროლოგიური სადგურების უკვე არსებული პროექტები და იმედია გადავდგი ნაბიჯი წინ.


Ისე. ამინდის სადგურის არქიტექტურა დაფუძნებულია Arduino-ზე. იმიტომ რომ Arduino-ს აქვს შესვლის მცირე ბარიერი და მე უკვე შევეხე ამას. მაშინ უფრო ადვილია არჩევა.


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


ცენტრალური, მთავარი ბლოკი განთავსდება შენობაში. მნიშვნელოვანია ამის დადგენა საწყის ეტაპზე; აქედან ისეთი მნიშვნელოვანი მახასიათებლები, როგორიცაა მუშაობის ტემპერატურული რეჟიმი და ძალის „ცეკვა“.


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


გარე სამყაროსთან კომუნიკაციისთვის ინტერნეტი ცალსახად აირჩია ESP8266 WiFi მოდულმა თითქმის ალტერნატივის გარეშე (შენიშვნა, ალბათ ახლა გამოჩნდა ასეთი ალტერნატივები). Ethernet-ის გაფართოების დაფები ხელმისაწვდომია Arduino-სთვის, მაგრამ მე საერთოდ არ მინდოდა კაბელზე მიბმა.



საინტერესო კითხვა იყო, თუ როგორ უნდა უზრუნველყოფილიყო კომუნიკაცია გარე სენსორს (ან სენსორებს, გახსოვთ სისტემის გაფართოების მოთხოვნა?) და ცენტრს შორის. 433 MHz რადიოშუქურები ნამდვილად არ არის შესაფერისი (ისინი საერთოდ არ არის შესაფერისი არაფრისთვის).


გამოიყენო ისევ ESP8266?


ამ გადაწყვეტის უარყოფითი მხარეები:

    მოითხოვს სტაბილურ WiFi-ს სახლის გარეთ

    კომუნიკაციის დიაპაზონი არ იქნება დიდი

    საიმედოობა დაზარალდება, თუ ინტერნეტი ჩაიშლება, ჩვენ ვერ დავინახავთ ჩვენს დისტანციურ სენსორებს

    მეტი ენერგიის მოხმარება.

    ენერგიის მოხმარება ESP8266:

    120-170 mA გადაცემისას

    50-56 mA მიღებისას

    ღრმა ძილის რეჟიმში 10 μA (μA)

    გამორთული მდგომარეობა 5 μA (μA).

საბოლოო ჯამში, დისტანციური სენსორების მთავარ საცხოვრებელ განყოფილებასთან დასაკავშირებლად, არჩეული იქნა nRF24L01 + ჩიპი 2.4 გჰც სიხშირის გადამცემით და მიმღებით ერთ ბოთლში, დამატებითი გარე ანტენით, რა თქმა უნდა, კედლების "გარღვევისთვის".



ენერგიის მოხმარება nRF24L01+ 2.4 GHz:

  • 11 mA მიღებისას
  • 2Mbps სიჩქარით გადაცემისას - 13 mA
  • ლოდინის-I რეჟიმში - 26 μA (μA)
  • გამორთული მდგომარეობა 900 nA (nA).

ESP8266-ს და nRF24L01+-ს აქვს შესაბამისი ოპერაციული ტემპერატურის დიაპაზონი: -40℃-დან +80℃-მდე.


შეგიძლიათ შეიძინოთ nRF24L01+ დაახლოებით 1 დოლარად, ან გარე ანტენით 3 დოლარად. შეგიძლიათ შეიძინოთ ESP8266-01 დაახლოებით 4 დოლარად. ყურადღებით წაიკითხეთ პროდუქტის აღწერა! წინააღმდეგ შემთხვევაში, იყიდეთ ერთი ანტენა.


გაჩნდა სისტემის ბირთვი. მოდით გადავიდეთ თავად სენსორებზე.


ქუჩაში, როგორც მოგეხსენებათ, ტემპერატურამ შეიძლება მიაღწიოს უარყოფით მნიშვნელობებს, ამიტომ DHT11 სენსორი არ არის შესაფერისი, მაგრამ DHT22 სწორია.



DHT22 / AM2302-ის სპეციფიკაციები:

  • 3.3V-დან 5V-მდე მიწოდება, რეკომენდებულია 5V
  • მოხმარება მაქსიმუმ 2.5 mA, გაზომვისა და მონაცემთა გადაცემის დროს
  • ტენიანობის გაზომვის დიაპაზონი 0-100% შეცდომით 2-5%
  • ტემპერატურის გაზომვის დიაპაზონი -40-დან +125°C-მდე ±0.5°C შეცდომით
  • გაზომვის მოთხოვნა არაუმეტეს 0,5 ჰც - 2 წამში ერთხელ.

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


DHT11-ის მახასიათებლები:

  • 3.3V-დან 5V-მდე მიწოდება
  • მოხმარება მაქსიმუმ 2.5 mA, გაზომვისა და მონაცემთა გადაცემის დროს
  • ტენიანობის გაზომვის დიაპაზონი 20-80% შეცდომით 5%
  • ტემპერატურის გაზომვის დიაპაზონი 0-დან +50°C-მდე ±2°C შეცდომით
  • გაზომვის მოთხოვნა არაუმეტეს 1 ჰც - წამში ერთხელ.

შეგიძლიათ შეიძინოთ DHT22 დაახლოებით 3 დოლარად. DHT11 ღირს ნაკლები - $1, მაგრამ ის ასევე ნაკლებად ზუსტია.


ახლა ისევ Arduino-ს დაუბრუნდით. რომელი დაფა აირჩიოს?


მე გამოვცადე სისტემის ცალკეული ნაწილები Arduino UNO-ზე. იმათ. ESP მოდული შევაერთე uno-ზე და შევისწავლე, გამოვრთე, მერე nRF24 და ა.შ. ფანჯრის სენსორის საბოლოო განხორციელებისთვის, მე ავირჩიე Arduino Pro Mini, როგორც Uno-სთან უახლოესი მინიატურა.



ენერგიის მოხმარების თვალსაზრისით, Arduino Pro Mini ასევე კარგად გამოიყურება:

  • არ არის USB-TTL გადამყვანი, რომელიც თავისთავად ბევრს "ჭამს",
  • LED უკავშირდება 10k რეზისტორის საშუალებით.

ენერგიის მოწინავე დაზოგვისთვის დაიგეგმა:

  • ამოიღეთ LED - დენის ინდიკატორი Arduino Pro Mini-ზე (ვნანობდი, რომ დაფა არ გავაფუჭე)
  • ან გამოიყენეთ "შიშველი" ასამბლეა Atmel ATmega328 მიკროპროცესორზე (არ გამომიყენებია)
  • გამოიყენეთ დაბალი სიმძლავრის ბიბლიოთეკა ან JeeLib.

ბიბლიოთეკებიდან მე ავირჩიე Low Power Library, ის მარტივია და შეიცავს მხოლოდ იმას, რაც გჭირდებათ.


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


შეგიძლიათ შეიძინოთ Arduino Mega დაახლოებით 8 დოლარად.

სიმძლავრე და ენერგიის მოხმარება

ახლა კვებისა და ენერგიის მოხმარების შესახებ.


არსებობს ორი სახის Arduino Pro Mini:

  • მიწოდების ძაბვისთვის 5V და სიხშირე 16MHz
  • მიწოდების ძაბვისთვის 3.3V და სიხშირე 8MHz.

ვინაიდან nRF24L01+ რადიო მოდულს სჭირდება 3.3V ელექტრომომარაგებისთვის და სიჩქარე აქ არ არის მნიშვნელოვანი, შეიძინეთ Arduino Pro Mini 8MHz და 3.3V.


ამ შემთხვევაში, Arduino Pro Mini-ის მიწოდების ძაბვის დიაპაზონი არის:

  • 3.35-12V 3.3V მოდელისთვის
  • 5-12V 5V მოდელისთვის.

მე უკვე მყავდა 5V Arduino Pro Mini, რის გამოც გამოვიყენე. შეგიძლიათ შეიძინოთ Arduino Pro Mini დაახლოებით 4 დოლარად.


ცენტრალური ბლოკის ელექტრომომარაგება იქნება 220 ვ ქსელიდან მცირე ელექტრომომარაგების ბლოკის მეშვეობით, რაც გამომავალი იქნება 12 ვ, 450 მA, 5 ვტ. რაღაც ამდაგვარი 5 დოლარად. ასევე არის ცალკე გამომავალი 5 ვ.



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


ამიტომ, Arduino Pro Mini და nRF24 რადიო მოდული იკვებება 4 Ni-Mh ბატარეის შეკვრით.


და დაიმახსოვრე თანამედროვე ბატარეის მაქსიმალური ტევადობადაახლოებით 2500-2700 mAh, მეტი არაფერი არის მარკეტინგული ხრიკი (Ansmann 2850) ან ხუმრობა (UltraFire 3500).


მე არ ვიყენებ Li-Ion ბატარეებს რამდენიმე მიზეზის გამო:

  • ძალიან ძვირი
  • როდესაც გარემოს ტემპერატურა 0°C-ზე დაბლა ეცემა, ლითიუმ-იონური ბატარეის სიმძლავრე მცირდება 40-50%-მდე.
  • ისინი, რომლებიც იაფია, დამზადებულია დაცვის გარეშე და არის სახიფათო (მოკლე ჩართვის ან გამონადენის დროს შეიძლება აფეთქდეს და დაიწვას, იხილეთ რამდენიმე ვიდეო YouTube-ზე)
  • დაბერდება, მაშინაც კი, თუ ისინი არ გამოიყენება (თუმცა, ეს შეიძლება ითქვას ყველა ქიმიურ ელემენტზე), 2 წლის შემდეგ Li-Ion ბატარეა კარგავს თავისი სიმძლავრის დაახლოებით 20% -ს.

პროტოტიპისთვის სავსებით შესაძლებელია მაღალი ხარისხის Ni-MH AA ან AAA ბატარეებით. უფრო მეტიც, ჩვენ არ გვჭირდება დიდი დენები. Ni-MH ბატარეების ერთადერთი მინუსი არის მათი ხანგრძლივი დატენვის დრო.

ამინდის სადგურის ზოგადი სქემა

შევაჯამოთ. აქ არის ზოგადი დიაგრამა, თუ როგორ მუშაობს ეს ყველაფერი.



Გაგრძელება იქნება.

მოგეწონათ სტატია? Მეგობრებთან გაზიარება!