Სარჩევი:

Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!): 12 ნაბიჯი (სურათებით)
Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!): 12 ნაბიჯი (სურათებით)

ვიდეო: Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!): 12 ნაბიჯი (სურათებით)

ვიდეო: Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!): 12 ნაბიჯი (სურათებით)
ვიდეო: მილიონი დარჩა უკან | გამოჩენილი ფრანგი რევოლუციონერი პოლიტიკოსის კაშკაშა მიტოვებული ციხე 2024, ნოემბერი
Anonim
Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!)
Crawl Space Monitor (აკა: აღარ არის გაყინული მილები !!)

წყალი ჩემს სახლში მოდის ჩემი ჭაბურღილიდან, გაცხელებული მცოცავი სივრცის გავლით. სამზარეულოს და აბაზანის ყველა სანტექნიკა გადის ამ სივრცეშიც. (შიდა სანტექნიკა იყო შპალერი შემდგომში 70-იანი წლების შუა პერიოდში ამ სახლში!) მე ვიყენებ სითბოს ნათურებს "სატანკო" თერმოსტატულ სანთლებზე, რომ შევინარჩუნო ტემპერატურა გაყინვის ზემოთ. იყო რამდენიმე მნიშვნელოვანი პრობლემა ამ მოწყობაში: 1 - ხილვადობის გარეშე. დამწვარი ბოლქვების პირველი მითითება არის გაყინული მილები! 2 - ზოგჯერ სანთლები არ იკეტება. რომ გააკეთა nasty სიურპრიზები მოდის ელექტრო გადასახადი. 3 - არ გრანულურობა. მე შევინახე 3 ბოლქვი "ონლაინ რეჟიმში" (სულ 750 ვატი) და ეს იყო გამოსავალი ან არაფერი. (2 ნათურა ყოველთვის არ უმკლავდება მას.) არდუინოს გაცნობის შემდეგ და იმის დანახვაზე, რასაც სხვა ადამიანები აკეთებდნენ მასთან ერთად, გადავწყვიტე, რომ მას მორევა მომეცა. მე პირდაპირ ვაღიარებ, რომ მე ურცხვად ჩავაგდე და შევასწორე სხვა ადამიანების პროექტების ნიმუში კოდი ამ სამუშაოს შესასრულებლად, თუმცა საბოლოოდ მე დავწერე ყველაფერი. თავდაპირველად, მე ავაშენე ეს "WiFi ამინდის სადგური", რომელიც ვიპოვე Adafruit.com და შეცვალა იგი. ვებგვერდის განახლების ნაცვლად, მე გამოვიყენე ამაზონის ვებ სერვისები, რომ გამომიგზავნა SMS სტატუსის განახლებები. მე ასევე დავამატე 110V რელეების კონტროლი (https://www.adafruit.com/products/268). შემდეგ მე გავხდი "ჭკვიანი" და გადავწყვიტე მისი "გამკაცრება" - კარგი - რაღაცამ რაღაც შეაფერხა და მე მივიღე ჯადოსნური ლურჯი კვამლი. ყველაფერი შემწვარი იყო … არ მქონდა სხვა CC3000 WiFi გარღვევა, მე ამჯერად ყველაფერი სხვაგვარად გავაკეთე. მე ავაშენე ის ინტერაქტიული მონიტორინგისთვის სერიული ინტერფეისის საშუალებით და შემდეგ დავამატე EZ-Link Bluetooth FTDI ინტერფეისი. (აღარ შემიძლია ლეპტოპის გადატანა სახლის ქვეშ პროგრამული უზრუნველყოფის განახლებისთვის !!!) მე ასევე შევქმენი პითონის ინტერფეისი, რომელიც აკავშირებს მოწყობილობას Bluetooth– ის საშუალებით, რეგულარულად აკითხავს მას და აჩვენებს სტატუსის ინფორმაციას ჩემს Mac– ზე. (ასევე არსებობს "ადამიანის ინტერფეისი", რომლის წვდომა შესაძლებელია ნებისმიერი ტერმინალური ემულაციის პროგრამული უზრუნველყოფის საშუალებით.) ყველა WiFi და RTC კოდის ხელახალი ჩაწერის და ამოღების შედეგად, პროექტი შემცირდა 29K- დან 10K- მდე. მან ასევე გააუმჯობესა საიმედოობა იმდენად, რამდენადაც ტექნიკის დამკვირვებელი საერთოდ არ გააქტიურებულა რამდენიმე კვირის განმავლობაში, როდესაც ის მუშაობდა და მე ვარეგულირებდი.

2/17/16 განახლება/შენიშვნა: ზოგიერთ კოდზე სათანადო ფორმატირების მცდელობისას (განსაკუთრებით პითონის კოდის ჩაღრმავება), ყველაფერი მახინჯიდან გამოუსადეგრად გადავიდა. დარწმუნებული ვარ, რომ საკითხი სადღაც მიდის ბოლომდე და შევეცდები ამის გარკვევას. მანამდე კი DropBox– ის საშუალებით დავამატე კოდის ფაილების ბმულები. ისინი ყველასთვის ხელმისაწვდომი უნდა იყოს. თუ არა, გთხოვთ შემატყობინოთ, რომ შემიძლია თქვენთან სხვა გზით მივიღო!

ნაბიჯი 1: პრობლემების გადასაჭრელად

სისტემას სჭირდებოდა შემდეგი რამ ჩემთვის: 1 - ტემპერატურის მონიტორინგი სეირნობის სივრცეში. 2 - ჩართეთ გათბობის ნათურები საჭიროებისამებრ, რომ შეინარჩუნოთ ტემპერატურა გაყინვის ზემოთ. მათი სტატუსი.4 - მომეცი ტემპერატურისა და სისტემის სტატუსის ხილვადობა, მათ შორის: - მუშაობს სისტემა? - რა ტემპერატურაა ახლა? - რა არის ყველაზე ცივი ტემპერატურა? - რამდენი ბოლქვი გაუშვა? - რამდენი ბოლქვია კარგი გამოცდა? - რა არის ჩემი საერთო დრო "სინათლის წუთებში" (აკა "დაწვის დრო")? 5 - გააკეთე ყოველივე ზემოთქმული ისე, რომ არ დამჭირდეს სახლის ქვეშ სეირნობა !!! მე გადავწყვიტე, რომ ბოლქვის მუშაობის შესამოწმებლად ყველაზე მარტივი გზა იყო სინათლის სენსორი. ზოგიერთი სხვა საკითხი, რომლის გადაწყვეტაც მინდოდა, იყო განათების ციკლის დრო. ძალიან ნელა და მე ვწვავ არასაჭირო ელექტროენერგიას. ძალიან სწრაფად, და მე ვდგავარ რისკზე მათი დაწვისგან ყველა ჩართვისა და გათიშვის შედეგად გათბობისა და გაგრილების შედეგად.

ნაბიჯი 2: აპარატურა

აპარატურა
აპარატურა

2 250 ვატიანი გათბობის ნათურები 1 500 ვატიანი სამუშაო ნათურა (ერთი ჩემი გათბობის ნათურა გაქრა, ასე რომ ეს დგას) Arduino UnoDHT22 ტემპერატურის/ტენიანობის სენსორი GA1A12S202 სინათლის სენსორი სიმძლავრის გადამრთველი 110V რელეები Bluefruit EZ-Link სერიული ინტერფეისი და პროგრამისტი მაღალტექნოლოგიური საქმე (სენდვიჩის ზომის რეზინის) საკაბელო ჯირკვალი 1/2 ზომის პურის დაფა აკრილის ფირფიტა პურისთვის და არდუინოსთვის ასორტიმენტიანი ჯუმბერის მავთულები. კოლმენის 5 გასასვლელი "სემინარის ზოლები" მე ასევე გამოვიყენე Adafruit Trinket როგორც ტექნიკის დამცველი, მაგრამ ის აღმოჩნდა არასაჭირო (რა თქმა უნდა, ჟინქსი!) და მე დაწერა ცალკე ინსტრუქცია ამის შესახებ, ასე რომ მე ამას აქ აღარ გავიმეორებ. Coleman pigtail იყო სასიამოვნო აღმოჩენა, რადგან მომცა 4 გასასვლელი ჩემი გათბობის ნათურებისთვის PLUS გასასვლელი Arduino დენის წყაროს გარეშე ყოველგვარი დამატებითი გამყოფი ან დენის ზოლების ჩართვის გარეშე. სრული 15 ამპერიანი სიჩქარით, გადამრთველით და შიდა ამომრთველით, მას შეუძლია გაუმკლავდეს ყველაფერს, რისი გაღებაც შემიძლია ერთ გასასვლელში.

ნაბიჯი 3: მიდგომა

მიუხედავად იმისა, რომ სისტემა შექმნილია იმისთვის, რომ ვიჯდე ლოდინისას და რაღაცეები შედარებით ნელა გავაკეთო, ის, რაც მე არ მსურდა, იყო სისტემის შექმნა, სადაც კონტროლერი იჯდა დაგვიანებული () ციკლით, რომელიც არ რეაგირებდა. მე ასევე მინდოდა შემეძლო შემეცვალა კონფიგურაციის პარამეტრები რაც შეიძლება ახლოს-რა თქმა უნდა არა ისე, რომ საჭირო ყოფილიყო კოდის ხელახლა დაწერა ან მასობრივი ძებნის და წყაროს ოპერაციების შეცვლა. I იპოვა ბილ ერლის ყველაზე შესანიშნავი სტატიები თემაზე "Arduino Multitasking" (დაიწყეთ აქ: https://learn.adafruit.com/multi-tasking-the-arduino-part-1) და დაკავებული იყო. "ტაიმერის" და "გამათბობლის" კლასების შექმნით შევძელი შევასრულო ყველა დროის ფუნქცია, რომელიც მინდოდა დაგვიანების გარეშე () (მხოლოდ რამდენიმე გამონაკლისის გარდა) და ნათურების ("გამათბობლების") კონფიგურაცია თითოეული კოდის ერთი ხაზით. ერთი

ნაბიჯი 4: გაყვანილობა

გაყვანილობა
გაყვანილობა
გაყვანილობა
გაყვანილობა

Fritzing დიაგრამა არ შეიცავს Bluefruit EZ-LinkArduino 5V & Ground to breadboard busHHT22 pin 1 to 5V busHHT22 pin 2 to Arduino pin 7DHT22 pin 4 to Ground bus 10K resistor DHT22 pin 1 and 2GA1A12S202 VCC pin to 5V bus busGA1A12S202 OUT pin to Arduino A0 Arduino 3V pin to Arduino AREF pin Relay Ground იწვევს გრუნტში bus Rele 1 power lead to Arduino A1Relay 2 power lead to Arduino A2Relay 3 power lead to Arduino A3Relay 4 power lead to Arduino A4 რა ერთადერთი, რაც კრიტიკულია, არის OUT სინათლის სენსორზე, რომელიც უნდა წავიდეს ანალოგიურ პინზე. ეს ამოხსნა იმუშავებს ჩემს კოდთან ერთად, როგორც დაწერილია. თუ თქვენ იყენებთ ტექნიკის დამცველს, დაინახავთ, რომ ჩემი კოდი აყენებს გულისცემას Arduino pin 2-ზე.

ნაბიჯი 5: არდუინოს კოდი, მთავარი ესკიზი

CrawlSpace_monitor.ino

ნაბიჯი 6: შენიშვნები კოდექსზე

კოდის შემდეგი ხაზები ქმნის გამათბობლის შემთხვევებს და განსაზღვრავს ფუნქციურ პარამეტრებს: // გამათბობელი (relayPin, onTemp (f), offTemp (f), minMinutes, testInterval (წუთი), luxDelta) გამაცხელებელი გამათბობელი 1 = გამაცხელებელი (A1, 38, 43, 20, 1440, 5); გამაცხელებელი გამათბობელი 2 = გამაცხელებელი (A2, 36, 41, 20, 1440, 5); გამათბობელი (A4, 32, 37, 20, 1440, 5); (და დიახ, მე განვსაზღვრე ოთხივე გამათბობელი, მიუხედავად იმისა, რომ ამ მომენტში მხოლოდ 3 -ს ვმუშაობ. მე მაინც დამჭირდებოდა კიდევ ერთი სარელეო, მაგრამ შემდეგ მე -4 გამაცხელებლის დამატება იქნებოდა იყოს ისეთივე მარტივი, როგორც მისი ჩართვა.) მე ვამძიმებ მათ გამომწვევ ტემპერატურას, დაწყებული 38 გრადუსიდან პირველიდან და დამთავრებული 32 – ით არარსებული მე –4 – ისთვის. ერთ -ერთი ის, რაც მე აღმოვაჩინე, როდესაც პირველად დავიწყე ამის გაკეთება, იყო ის, რომ მე უნდა მიმეცა ტემპერატურის დიაპაზონი, ასევე განვსაზღვრო მინიმალური „დაწვის დრო“, ან გიჟებივით ვანთებდი და ჩავაქრობდი განათებას. აქვე ვაძლევ თითოეულ მათგანს 5 გრადუსიანი გავრცელებით, ასევე 20 წუთიანი მინიმალური დაწვის დროს. ტესტის ინტერვალი 24 საათზე დავაყენე და 5 ლუქსი დავაყენე, როგორც მინიმალური სინათლის მაჩვენებელი, რომელიც მჭირდებოდა იმის დასადგენად, რომ ნათურა კვლავ მუშაობდა. თითქმის ყველაფერი, რაც საჭიროებს კონფიგურაციას, არის სწორედ ამ კოდის ამ 4 სტრიქონში.

ნაბიჯი 7: არდუინოს კოდი, კლასები

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

ქრონომეტრი.ჰ

აკუმულატორი.ჰ

ნაბიჯი 8: სისტემის მონიტორინგი

სისტემის მონიტორინგი
სისტემის მონიტორინგი

მე შევქმენი ერთი ინტერფეისი ორ ცალკეულ მონიტორზე. ეს არის ინტერაქტიული სესია სერიულ კონსოლზე. ჩემს შემთხვევაში მე ვიყენებ Bluefruit EZ-Link- ს, ასე რომ მე შემიძლია სისტემაში შევიდე სახლის ქვეშ მცურავის გარეშე ან USB კაბელის მოტაცების მიზნით იატაკის სვეტებს შორის! EZ-Link– ის დამატებითი უპირატესობა ის არის, რომ მე შემიძლია ატვირთო Arduino– ზე ახალი პროგრამული კოდი ასევე Bluetooth– ით. „ადამიანის“ინტერფეისზე წვდომა შესაძლებელია (Bluetooth ან ფიზიკური კაბელი) ნებისმიერი ტერმინალური ემულაციის პროგრამული უზრუნველყოფით, მათ შორის Arduino IDE– ს სერიულით. მონიტორი. როდესაც თავდაპირველად აკავშირებთ, პასუხი არ არის, მაგრამ ღილაკი "u" ("განახლებისთვის") და "t" ("ტესტისთვის") მიიღებს ეკრანის კადრში ნაჩვენებ გამომავალს. "m" ("მონიტორი") და "s" ("sys check") მოგაწვდით ერთსა და იმავე მონაცემებს, მაგრამ გაცილებით ნაკლებად იკითხება ფორმატში. ისინი განკუთვნილია სხვა პროგრამის მიერ "გახეხვისთვის" ავტომატური ჩვენებისთვის. მე შევადგინე პითონის სკრიპტი, რომელიც ამას აკეთებს. ნებისმიერი სხვა გასაღები ინახავს შეცდომის შეტყობინებას. თქვენ ნახავთ მნიშვნელობას "წვის დრო" - იფიქრეთ ამაზე, როგორც "ბოლქვის წუთი" - 1 ბოლქვი 10 წუთის განმავლობაში = 10 წუთი, 3 ბოლქვი 10 წუთის განმავლობაში = 30 წუთი.

ნაბიჯი 9: პითონის სკრიპტი

პითონის სკრიპტი
პითონის სკრიპტი

crawlspace_gui.py

ნაბიჯი 10: გასაკეთებელი ჯერ კიდევ…

ეს არ შეიძლება იყოს ლამაზი ან სრულყოფილი, მაგრამ ეფექტურია და ადასტურებს თავის საიმედოობას. და, მე არ მქონდა რაიმე გაყინული მილების პრობლემა ჯერ კიდევ ამ ზამთარს !!! მე მაქვს გასაკეთებელი სიების სია. რასაკვირველია, ახლა, როდესაც ის მუშაობს, მე შემიძლია ან შეიძლება არასოდეს მივიღო ამ ნივთების უმეტესობის მისაღწევად: მიიღეთ Bluetooth გაშვებული ერთ ჩემს Raspberry Pi– ზე, რათა შევძლო შევქმნა ერთგული მონიტორი. ისწავლეთ კიდევ რამდენიმე პითონი - შემდეგ გაწმინდეთ პითონი ინტერფეისი. ელემენტების განცალკევება მიზანმიმართულად არ ხდება და მე არ მესმის რატომ არის იქ. დაამატეთ ინტერფეისი Adafruit- ის IO სერვისის მსგავსად, ასე რომ მე შემიძლია მისი მონიტორინგი ნებისმიერი ადგილიდან. დაამატეთ გამაფრთხილებელი ტექსტური შეტყობინება. გადადით პატარა კონტროლერთან (შესაძლოა მეტრო Mini or Trinket Pro?), ნაკლებად ძვირი რელეები და უკეთესი შეფუთვა. ამოიღეთ იგი დაფაზე და გადადით "პერმა პროტო" დაფაზე. კონფიგურაციის პარამეტრები EEPROM- ში. უფრო მარცვლოვანი ინტერფეისი, რომელიც მიუთითებს - რომელი ნათურები არის კარგი და შესაძლოა ცალკეული ნათურების დროც კი დაწვეს. როგორც კი მათ გავაკეთებ, მე დავბრუნდები და განვაახლებ ამ ინსტრუქციულს.

ნაბიჯი 11: განაახლეთ 3/16, "მუდმივი" აშენება

განახლება 3/16,
განახლება 3/16,
განახლება 3/16,
განახლება 3/16,
განახლება 3/16,
განახლება 3/16,

ცივ ამინდში კარგი შესვენების შემდეგ, მე ვიღებ ერთეულს და გადავიყვანე პატარა კონტროლერში (მე ვაპირებდი Trinket Pro– ს გამოყენებას, მაგრამ Adafruit Metro Mini იჯდა ირგვლივ ნებისმიერი სხვა პროექტის გამოუცხადებლად), შევაერთე პერმა-პროტოს დაფა და ეს ყველაფერი უკეთეს შემთხვევაში. გამომდინარე იქიდან, თუ რამდენად საიმედო იყო ეს, მე არ დავუბრუნე აპარატურის დამცველი. მე ჯერჯერობით მხოლოდ 3 ნათურას/რელეს ვიყენებ, სადაც სისტემა იმუშავებს 4. Bluetooth მოდული მოთავსებულია სათაურზე, ასე რომ მისი ამოღება შესაძლებელია თუ სადმე სხვაგან დამჭირდება. ახალ კონტროლერზე გადასასვლელად საჭირო არ იყო კოდის ცვლილებები - მარტივი გადაჯამება და დატვირთვა რამდენიმე წუთში გამიშვა. (Metro Mini- ს აქვს იდენტური pinout როგორც Arduino Uno და ასევე არის ATMega328 პროცესორი.)

ნაბიჯი 12: განახლება 12/1/2018 - კეთილი იყოს თქვენი მობრძანება IoT– ში

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

მე –3 წელს სისტემისთვის, Bluetooth მოდული ვერ მოხერხდა. ჩვენ ასევე ავაშენეთ ახალი სახლი, ამიტომ მონიტორინგის სისტემა კარგად არის Bluetooth დიაპაზონის მიღმა. (ძველი სახლი ცოტა ხნით დგას, მაგრამ არა სამუდამოდ.) შუალედში მე ბევრს ვაკეთებ ESP8266 WiFi ჩართული პროცესორით; როგორც Adafruit Feather ფორმატში, ასევე ღია კოდის "NodeMCU" ფორმატში. NodeMCU ჩვეულებრივ შეგიძლიათ ნახოთ ამაზონზე დაახლოებით 5 დოლარად - გაცილებით ნაკლები თუ ყიდულობთ მასობრივად და/ან ვინმესგან, როგორიცაა AliExpress.

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

WiFi ქსელის მენეჯერი მყარი კოდირების WiFi სერთიფიკატების აღმოსაფხვრელად.

Arduino IDE– ს საშუალებით firmware– ის ეთერში განახლების შესაძლებლობა (სანამ თქვენ ხართ იმავე WiFi ქსელში-გაითვალისწინეთ, რომ მოწყობილობაზე USB ატვირთვის შემდეგ, საჭიროა გადატვირთვა, სანამ OTA განახლებები იმუშავებს). გთხოვთ შეცვალოთ OTA პაროლი მე -6 ხაზზე, რომ იყოს უნიკალური თქვენთვის !!

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

თქვენ შეგიძლიათ იპოვოთ ახალი კოდი აქ. გაითვალისწინეთ, რომ პინების სახელები იცვლება NodeMCU– ზე გადასვლისას.

გირჩევთ: