Სარჩევი:

NaTaLia ამინდის სადგური: Arduino Solar Powered Weather Station შესრულებულია სწორი გზით: 8 ნაბიჯი (სურათებით)
NaTaLia ამინდის სადგური: Arduino Solar Powered Weather Station შესრულებულია სწორი გზით: 8 ნაბიჯი (სურათებით)

ვიდეო: NaTaLia ამინდის სადგური: Arduino Solar Powered Weather Station შესრულებულია სწორი გზით: 8 ნაბიჯი (სურათებით)

ვიდეო: NaTaLia ამინდის სადგური: Arduino Solar Powered Weather Station შესრულებულია სწორი გზით: 8 ნაბიჯი (სურათებით)
ვიდეო: ამინდის პროგნოზი 2024, ივლისი
Anonim
NaTaLia ამინდის სადგური: Arduino Solar Powered ამინდის სადგური გაკეთდა სწორი გზით
NaTaLia ამინდის სადგური: Arduino Solar Powered ამინდის სადგური გაკეთდა სწორი გზით
NaTaLia ამინდის სადგური: Arduino Solar Powered ამინდის სადგური გაკეთდა სწორი გზით
NaTaLia ამინდის სადგური: Arduino Solar Powered ამინდის სადგური გაკეთდა სწორი გზით

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

ნაბიჯი 1: ამინდის სადგურის მოქმედება

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

2, მიმღები: შიდა ერთეული, რომელიც დამზადებულია ჟოლოს PI 2 + Arduino Mega– სგან, რომელსაც აქვს 433 Mhz RF მიმღები, რომელიც დაკავშირებულია მონაცემთა მიღებისათვის. ჩემს კონფიგურაციაში ამ ერთეულს არ გააჩნია ადგილობრივი LCD დისპლეის ფუნქცია. უდარდელად გარბის. ძირითადი C პროგრამა ზრუნავს Arduino– დან შემომავალი მონაცემების სერიული საშუალებით მიღებით, შემდეგ მონაცემების ტექსტურ ფაილში ჩაწერაზე და ტელნეტის საშუალებით ბოლო მიღებული მონაცემების ხელმისაწვდომობაზე სხვა მოწყობილობებისთვის.

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

ნაბიჯი 2: პირველი ვერსიები

პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები
პირველი ვერსიები

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

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

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

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

პირველ სურათზე შეგიძლიათ ნახოთ ჩემი პირველი (Arduino Nano Based) სადგური და მეორე Arduino Barebone Atmega 328P დაფა.

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

ყველა ვერსია იყენებდა შემდეგ ბატარეას:

18650 6000 mAh დაცული Li-ion დატენვის ბატარეა ჩამონტაჟებული დაცვის დაფა

განაახლეთ ამ ScamFire ბატარეებზე. მიუხედავად იმისა, რომ ეს საკმაოდ ძველი ინსტრუქციაა, მე მაინც იძულებული გავხდი ეს გამომეცადა ამ ყალბი ბატარეის გამო. ნუ იყიდით ხსენებულ ბატარეას, ჩაატარეთ საკუთარი კვლევა სხვა LION/LIPO ბატარეების შესახებ, ყველა 3.7V ბატარეა იმუშავებს ამ პროექტთან.

დაბოლოს, მე მქონდა დრო, რომ გამეფუჭებინა ScamFire ბატარეა, რომ გამეგო რა არის მისი რეალური სიმძლავრე. ამიტომ ჩვენ ვაწარმოებთ 2 გამოთვლას რეალურ და "რეკლამირებულ" შესაძლებლობებთან ერთად.

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

პატარა სტატია LION/LIPO ბატარეებზე:

TLDR:

ეს იმას ნიშნავს, რომ უჯრედის მაქსიმალური ძაბვაა 4.2 ვ და რომ "ნომინალური" (საშუალო) ძაბვა არის 3.7 ვ.

მაგალითად, აქ არის ძაბვის პროფილი "კლასიკური" 3.7V/4.2V ბატარეისთვის. ძაბვა იწყება 4.2 მაქსიმუმიდან და სწრაფად იკლებს დაახლოებით 3.7 ვ -მდე ბატარეის უმეტესობისთვის. 3.4 ვ -ის დაჭერისას ბატარეა მკვდარია და 3.0 ვ -ზე გათიშვის სქემა გათიშავს ბატარეას.

ჩემი გაზომვები დუმული დატვირთვის გამოყენებით:

ბატარეა დატენულია: 4.1 ვ

გამორთვის რეჟიმი: 3.4V

დატვირთვის სიმულაცია: 0.15A (ჩემს მოწყობილობას ცოტა პრობლემა ჰქონდა ამაზე დაბალ დონეზე).

საზომი ტევადობა: 0.77Ah მიეცით მას უსასყიდლოდ 0.8 Ah, რომელიც არის 800mAh რეკლამირებული 6000mAh- ის ნაცვლად!

ვინაიდან ამ ბატარეას არც კი ჰქონდა დაცვის წრე თავისუფლად შემეძლო დაბლა დაწევა, მაგრამ 10 წუთის შემდეგ 3.4 ვ -ზე ის უკვე იშლება 3.0 ვ -მდე.

ამიტომ მარტივი გათვლებით ბატარეა უზრუნველყოფს:

თეორიული

ბატარეის ძაბვა = 3.7V

სიმძლავრე = 3.7x6000 = 22000 მგვტ.სთ

ნამდვილი

ბატარეის ძაბვა = 3.7V სიმძლავრე = 3.7x800 = 2960 mWh

ვერსია: 0.1 ARDUINO NANO დაფუძნებული

თუნდაც LowPower ბიბლიოთეკით Arduino nano მოიხმარს ~ 16 mA (ძილის რეჟიმში) -> FAIL.

თეორიული

Pavg = VxIavg = 5Vx16mA = 80 მგვტ

ბატარეის ხანგრძლივობა = 22000/80 = 275 საათი = დაახლოებით 11 დღე

RealPavg = VxIavg = 5Vx16mA = 80 მგვტ

ბატარეის ხანგრძლივობა = 800/80 = 10 საათი

ვერსია: 0.2 Atmega 328P Barebone

ATmega328- ის მიერ მოხმარებული სიმძლავრე დამოკიდებულია იმაზე, თუ რას აკეთებთ მასთან. უბრალოდ იჯდა ნაგულისხმევ მდგომარეობაში, მას შეუძლია გამოიყენოს 16mA @ 5V 16MHz– ზე მუშაობისას.

როდესაც ATmega328P არის აქტიურ რეჟიმში, ის განუწყვეტლივ შეასრულებს რამდენიმე მილიონ ინსტრუქციას წამში. გარდა ამისა, ციფრული გადამყვანის ანალოგური პერიფერიული მოწყობილობები (ADC), სერიული პერიფერიული ინტერფეისი (SPI), ტაიმერი 0, 1, 2, ორი მავთულის ინტერფეისი (I2C), USART, Watchdog Timer (WDT) და Brown-out Detection (BOD) მოიხმარენ ძალას.

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

დაბალი სიმძლავრის ბიბლიოთეკა არის მარტივი გამოსაყენებელი, მაგრამ ძალიან ძლიერი. განცხადება LowPower.powerDown (SLEEP_8S, ADC_OFF, BOD_OFF); აყენებს MCU– ს SLEEP_MODE_PWR_DOWN– ში 16 ms– დან 8 წამამდე, პირველი არგუმენტის მიხედვით. ის გამორთავს ADC და BOD. ძილის გამორთვა ნიშნავს, რომ ჩიპის ყველა ფუნქცია გამორთულია მომდევნო შეფერხებამდე. გარდა ამისა, გარე ოსცილატორი შეჩერებულია. მხოლოდ დონის შეფერხებები INT1 და INT2– ზე, პინის შეცვლის შეფერხებები, TWI/I2C მისამართების დამთხვევა ან WDT, თუ ჩართულია, შეუძლია MCU– ს გაღვიძება. ასე რომ, ერთი განცხადებით, თქვენ შეამცირებთ ენერგიის მოხმარებას. 3.3 V Pro Mini- სთვის დენის LED და მარეგულირებლის გარეშე (იხ. ქვემოთ), რომელიც მუშაობს განცხადებაში, ენერგიის მოხმარება არის 4.5 μA. ეს ძალიან ახლოს არის ATmega328P მონაცემთა ცხრილში ნახსენები ძაბვის გათიშვისთვის WDT ჩართულია 4.2 μA (მონაცემთა ფურცელი დაკავშირებულია წყაროებში). ამიტომ, მე საკმაოდ დარწმუნებული ვარ, რომ powerDown ფუნქცია გამორთავს ყველაფერს, რაც შესაძლებელია. განცხადებით LowPower.powerDown (SLEEP_FOREVER, ADC_OFF, BOD_OFF); WDT გამორთული იქნება და თქვენ არ გაიღვიძებთ სანამ არ მოხდება შეფერხება.

ამრიგად, შიშველი ძაფის დაყენებით ჩვენ შეგვიძლია ჩიპი ჩავდოთ ძილის რეჟიმში 5 წუთის განმავლობაში, მაშინ როდესაც ის მოიხმარს ძალიან მცირე რაოდენობის ენერგიას (0.04 mA პერიფერიული მოწყობილობების გარეშე). თუმცა ეს მხოლოდ Atmega 328P ჩიპია ბროლის ოსცილატორით და სხვა არაფერი, ამ კონფიგურაციაში გამოყენებული ძაბვის გამაძლიერებელი ბატარეის ძაბვის გაზრდის მიზნით 3.7V -> 5.0 V ასევე მოიხმარს 0.01 mA.

ერთი მუდმივი ძაბვის გადინება იყო დამატებული ფოტო რეზისტორი, რომელიც ამატებდა მოხმარებას ძილის რეჟიმში საერთო 1 mA– მდე (ეს მოიცავს ყველა კომპონენტს).

ძილის და გაღვიძების რეჟიმში მოწყობილობის ზუსტი მოხმარების გაანგარიშების ფორმულაა:

Iavg = (ტონა*იონი + ძილი*სძინავს) / (ტონა + ძილი)

იონი = 13mA

ეს ძირითადად მოდის RF433 Mhz გადამცემიდან:

გადამცემი:

სამუშაო ძაბვა: 3V - 12V მაქსიმალური. ენერგიის მოხმარება 12V სამუშაო დენი: მაქს არანაკლებ 40mA მაქს და min 9m ხმამაღალი რეჟიმი: (SAW) მოდულაციის რეჟიმი: ASK სამუშაო სიხშირე: Eve 315MHz ან 433MHz გადაცემის სიმძლავრე: 25mW (315MHz 12V) სიხშირის შეცდომა: +150kHz (max) სიჩქარე: ნაკლები 10Kbps

ძილი = 1 mA

გაცილებით ნაკლები იქნებოდა ფოტორეზისტორის გარეშე.

ტრუნონის დრო ტონი = 250 mS = 0.25 წმ

ძილის დრო ძილი = 5 წთ = 300 წ

Iavg = (ტონა*იონი + ძილი*სძინავს) / (ტონა + ცზლი)

Iavg = (0.25s*13mA + 300s*1mA) / (0.25s + 300s)

Iavg = 1.26mA

Pavg = VxIavg = 5Vx1.26mA = 6 მგვტ

თეორიული

ბატარეის ხანგრძლივობა = 22000mWh/6mW = 3666 საათი = 152 დღე დაახლოებით

ნამდვილი

ბატარეის ხანგრძლივობა = 800mWh/6mW = 133 საათი = 5.5 დღე დაახლოებით

მიუხედავად იმისა, რომ ეს ჯერ კიდევ უკეთესი UltraFire სერია იყო, რასაც თავდაპირველად ვიყენებდი, ხედავდით, რომ მზის პანელის ან დაბალი 1mA მოხმარების გარეშე ეს პროექტი დიდხანს არ გადარჩებოდა.

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

ნაბიჯი 3: წარმატებული ამინდის სადგურის მშენებლობა

წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა
წარმატებული ამინდის სადგურის მშენებლობა

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

ახალი პატარა მოდული სურათზე, რომელსაც ინდიკატორიც კი არ აქვს, ფაქტობრივად 3 mA (*FAIL*) თავისთავად დაიწია, ასე რომ, მე დავრჩი ჩემს ძველ დაფაზე:

PFM კონტროლი DC-DC USB 0.9V-5V to 5V dc Boost Step-up Power Supply Module

წერის დროს ეს მოდული ჯერ კიდევ ხელმისაწვდომია Ebay– ზე 99 ცენტით, მაგრამ თუ გადაწყვეტთ სხვა გამაძლიერებლის გამოყენებას, ყოველთვის შეამოწმეთ ლოდინის ენერგიის მოხმარება. კარგი ხარისხის გამაძლიერებლით ის არ უნდა იყოს ჩემზე მეტი (0.01 mA), თუმცა ბორტზე არსებული მცირე ზომის LED- ის მოხსნა უნდა მოხდეს.

ნაბიჯი 4: აპარატურის სია

აპარატურის სია
აპარატურის სია
  • 18650 6000 mAh დაცული Li-ion დატენვის ბატარეა ჩამონტაჟებული დაცვის დაფა
  • ატმეგა 328P16M 5V ჩამტვირთავი
  • Adafruit DC Boarduino (Arduino თავსებადი) ნაკრები (w/ATmega328) <ეს იქნება კარგი ინვესტიცია, თუ მომავალში აკეთებთ შიშველ პროექტებს
  • ფოტო სინათლის მგრძნობიარე რეზისტორი Photoresistor Optoresistor 5 მმ GL5539
  • 1A 1000V დიოდი 1N4007 IN4007 DO-41 მაკორექტირებელი დიოდები
  • PFM კონტროლი DC-DC USB 0.9V-5V to 5V dc Boost Step-up Power Supply Module
  • 1.6W 5.5V 266mA მინი მზის პანელის მოდულის სისტემა ეპოქსიდური უჯრედის დამტენი წვრილმანი
  • TP405 5V მინი USB 1A ლითიუმის ბატარეის დამტენი დაფის დამტენი მოდული
  • 433Mhz RF გადამცემი და მიმღები ბმული ნაკრები Arduino/ARM/MC დისტანციური მართვისთვის <ნაკრები, შეიცავს როგორც გადამცემს, ასევე გამხსნელს
  • IP65 გადამრთველი დამცავი ყუთი გარე წყალგაუმტარი დანართი 150x110x70 მმ
  • ახალი DHT22 ტემპერატურისა და ტენიანობის შედარებითი სენსორის მოდული არდუინოსთვის
  • 1x220 Ohm, 2x10KOhm, 1xLED, 1x Mini Switch, 1x1N4007 დიოდი
  • Adafruit 16 MHz კერამიკული რეზონანტი / ოსცილატორი [ADA1873]
  • Arduino UNO/მეგა და სხვ მიმღების სადგურისთვის + ჟოლო PI 1/2/3
  • გამჭვირვალე აკრილის პლასტმასის ყუთი (სურვილისამებრ)

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

შენიშვნები აპარატურის სიის შესახებ:

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

მზის დამტენი შეიცავს 2 პატარა ფერის LED- ებს, რომლებიც ჩართულია მხოლოდ მზის დატენვის შემთხვევაში და მიუთითებს (წითელი-დამუხტვა, ლურჯი-> სრულად დამუხტული მდგომარეობა). ეს ასევე შეიძლება იყოს გაყიდული. ის უფრო მეტ დამატებით წვენს აძლევს ბატარეას დატენვის დროს.

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

TP405 5V მინი USB 1A ლითიუმის ბატარეის დატენვის დაფა: სამწუხაროდ, ეს დაფა არ შეიცავს მზის პანელის საპირისპირო დენის დაცვას, ამისათვის თქვენ დაგჭირდებათ კიდევ 1 დიოდი მზის პანელის ერთ ფეხს შორის და დატენვის წრეს შორის, რათა შეაჩეროთ მიმდინარე მცდელობა ღამით ისევ მზის პანელში ჩაედინება.

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

შეკრება
შეკრება
შეკრება
შეკრება
შეკრება
შეკრება

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

დარწმუნდით, რომ თქვენ არ ჩადეთ Atmega328P არასწორი გზით (რომელსაც შეუძლია გაათბოს და აგურით ჩიპი, შესაძლოა გაანადგუროს ძაბვის გამაძლიერებელიც).

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

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

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

TP: არის ტესტი მთლიანი წრის დენის გაზომვისთვის.

DHT22: არ შეიძინოთ იაფი DHT11, დახარჯეთ 50 ცენტი მეტი თეთრი DHT22– ის მისაღებად, რომელსაც ასევე შეუძლია უარყოფითი ტემპერატურის გაზომვა.

ნაბიჯი 6: საქმის დიზაინი

საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი
საქმის დიზაინი

მიუხედავად იმისა, რომ ეს ცოტათი გადაჭარბებულია, 3D დაბეჭდილი კუბი (ამინდის_კუბი) გაკეთდა, რომ DHT22 ტემპერატურის სენსორი თავის ადგილზე დაიჭიროს. კუბი წებოვანია IP ყუთის ბოლოში, რომელშიც მხოლოდ 1 ხვრელია ჰაერი სენსორამდე მისასვლელად. მე დავამატე ბადე ხვრელში ფუტკრების, ვოსფსის და სხვა პატარა ბუზების წინააღმდეგ.

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

იდეა 1 სასარგებლო თვისებისთვის: ყუთის თავზე დიდი მეტალის სახურავის ფირფიტის დამატება 1-2 სმ, რომელიც უზრუნველყოფს მზის ჩრდილს ზაფხულში, თუმცა ამან ასევე შეიძლება წაიღოს ჩვენი სასარგებლო მზის პანელიდან. თქვენ შეგიძლიათ შეიმუშაოთ დიზაინი, რომელიც ჰყოფს პანელსა და ყუთს (პანელის დატოვება მზეზე, ყუთი ჩრდილში).

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

ნაბიჯი 7: პროგრამული უზრუნველყოფა

პროგრამული უზრუნველყოფა
პროგრამული უზრუნველყოფა

პროგრამული კოდი მოითხოვს 3 გარე ბიბლიოთეკას (LowPower, DHT, VirtualWire). ამ ბოლო დროს მე მქონდა პრობლემა, რომ ზოგიერთი მათგანი ადვილად გამომეძებნა, ამიტომ ცალკე ZIP ფაილში ვამაგრებ. მიუხედავად იმისა, თუ რა ოპერატიულ სისტემას იყენებთ Linux/Windows– ზე, უბრალოდ იპოვეთ თქვენი Arduino IDE ბიბლიოთეკის საქაღალდე და ამოიღეთ ისინი იქ.

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

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

აღმოვაჩინე, რომ ბაუდრატის შემცირება გაზრდის რადიო გადაცემების სტაბილურობას. სადგური აგზავნის ძალიან მცირე რაოდენობის მონაცემებს, 300 bps საკმარისზე მეტია. ასევე არ უნდა დაგვავიწყდეს, რომ გადამცემი მუშაობს მხოლოდ დაახ. 4.8V, მომავალში 3.3V ვერსიაში ეს შეიძლება გამოიწვიოს გადაცემის კიდევ უფრო უარესი ხარისხი (მონაცემების გაგზავნა კედლებით და სხვა დაბრკოლებებით). მე შეექმნა პრობლემა Arduino Mega– სთან, რომელიც ერთვის Raspberry PI 2 –ს, რომელიც PI– ს მეგას აძლიერებს, რომ მე არ მიმიღია რაიმე გადაცემა. გამოსავალი იყო მეგას ელექტროენერგია ცალკე გარე 12 ვ კვების წყაროდან.

ნაბიჯი 8: ვერსია 2 (ESP32 დაფუძნებული)

ვერსია 2 (ESP32 დაფუძნებული)
ვერსია 2 (ESP32 დაფუძნებული)
ვერსია 2 (ESP32 დაფუძნებული)
ვერსია 2 (ESP32 დაფუძნებული)
ვერსია 2 (ESP32 დაფუძნებული)
ვერსია 2 (ESP32 დაფუძნებული)

ყველაფერი, რისი გაფუჭებაც მოხდება, ძველი ძველი მერფის ციტირებას მოჰყვება და საბოლოოდ წლების შემდეგ სადგურები იდუმალი გზებით ჩავარდა. ერთმა ათიათასამდე აზარულმა მზის მონაცემების გაგზავნა დაიწყო, რაც შეუძლებელია: Arduino დაფაზე არის 6 არხი (8 არხი მინიზე და ნანოზე, 16 მეგაზე), 10 ბიტიანი ციფრული ანალოგური გადამყვანი. ეს ნიშნავს, რომ იგი შეყვანის ძაბვებს 0 -დან 5 ვოლტამდე დაადგენს მთელ მნიშვნელობებში 0 -დან 1023 -მდე. რადიოს, LDR- ის და Atmega 328P- ის რამდენჯერმე გადაპროგრამების შემდეგ, მე უარი ვთქვი და გადავწყვიტე, რომ დრო იყო ინოვაციებისთვის. მოდით წავიდეთ ESP32.

დაფა რაც გამოვიყენე იყო: ESP32 WEMOS LOLIN32 Lite V1.0.0 Wifi & Bluetooth Card Rev1 MicroPython 4MB FLASH

wiki.wemos.cc/products:lolin32:lolin32_lit…

მიკროკონტროლი ESP-32

საოპერაციო ძაბვა 3.3V ციფრული I/O ქინძისთავები 19 ანალოგური შეყვანის ქინძისთავები 6 საათის სიჩქარე (მაქს) 240Mhz Flash 4M ბაიტი სიგრძე 5 მმ სიგანე 2.54 მმ წონა 4 გ

რომელსაც სურათისგან განსხვავებით არ აქვს LOLIN ლოგო (ყალბი ჩინეთიდან). ჩემი პირველი სასიამოვნო სიურპრიზი იყო ის, რომ დაფაზე დაბეჭდილი პინუტი ემთხვეოდა არდუინოს პინუტს! მას შემდეგ რაც საქმე ამდენი noname დაფები სადაც მე უნდა ვეძებოთ pinouts მთელი დღის დაღუპული დაღლილი მიღების შეცდომები საბოლოოდ დაფა სადაც pinout არის პირდაპირ წინ WoW!

თუმცა აქ არის ისტორიის ბნელი მხარე:

თავდაპირველად მე LDR დავუკავშირე A15- ს, რომელიც არის 12 პინი, რადგან უფრო ადვილი იყო ქინძისთავების ერთმანეთთან შეხება. შემდეგ მე მივიღე 4095 წაკითხვა (რაც მაქსიმუმი შეგიძლიათ მიიღოთ AnlogRead– ით ESP32– ზე), რამაც გამაბრაზა, რადგან მთელი მიზეზი, რის გამოც მე ავაშენე სადგური, იყო ძველიდან დაზიანებული LDR წაკითხვა (DHT ჯერ კიდევ კარგად მუშაობდა). ასე რომ, გამოდის, რომ:

Esp 32 აერთიანებს ორ 12 ბიტიან ACD რეგისტრს. ADC1 8 არხი, რომელიც ერთვის GPIO– ს 32-39 და ADC2 10 არხზე სხვა ქინძისთავებში.საქმე იმაშია, რომ ESP32 იყენებს ADC2– ს wifi ფუნქციების სამართავად, ასე რომ, თუ თქვენ იყენებთ Wifi– ს, თქვენ არ შეგიძლიათ გამოიყენოთ ეს რეგისტრაცია. ADC დრაივერის API მხარს უჭერს ADC1 (8 არხი, მიმაგრებულია GPIO– ებზე 32 - 39) და ADC2 (10 არხი, ერთვის GPIO– ს 0, 2, 4, 12 - 15 და 25 - 27). ამასთან, ADC2– ის გამოყენებას აქვს გარკვეული შეზღუდვები პროგრამისთვის:

ADC2 გამოიყენება Wi-Fi დრაივერის მიერ. ამრიგად, პროგრამას შეუძლია გამოიყენოს ADC2 მხოლოდ მაშინ, როდესაც Wi-Fi დრაივერი არ არის დაწყებული. ზოგიერთი ADC2 ქინძისთავები გამოიყენება როგორც სამაგრის ქინძისთავები (GPIO 0, 2, 15), შესაბამისად თავისუფლად გამოყენება შეუძლებელია. ასეთია შემდგომი განვითარების ოფიციალური ნაკრები:

ასე რომ, LDR პინ 12 – დან A0– სთან, რომელიც არის VP– მ, გადაჭრა ყველაფერი, მაგრამ მე არ მესმის, რატომ ასახელებენ ისინი ასევე ADC2 ქინძისთავებს, როგორც ხელმისაწვდომია შემქმნელებისთვის. რამდენმა სხვა ჰობისტმა დაკარგა ტონა დრო ამის გარკვევაში? მინიმუმ მონიშნეთ გამოუსადეგარი ქინძისთავები წითელით ან რამეებით ან საერთოდ არ ახსენოთ ეს სახელმძღვანელოში, ასე რომ სხვა შემქმნელებს შეუძლიათ გაარკვიონ მათ შესახებ, თუ მათ ნამდვილად სჭირდებათ. ESP32– ის მთელი მიზანია გამოიყენოს იგი WIFI– ით, ყველა იყენებს მას WIFI– ით.

კარგი დასაწყისი, თუ როგორ უნდა დააყენოთ Arduino IDE ამ დაფისთვის:

მიუხედავად იმისა, რომ მე მას კოდი აქ ჩავდე, ის კიდევ ერთხელ მიდის:

ეს კოდი შეიძლება არ იყოს შედგენილი სხვა ESP32 მოდელებისთვის, ვიდრე Weemos LOLIN 32!

შექმენით პარამეტრები: -გამოიყენეთ ატვირთვის/სერიული: 115200 -გამოიყენეთ CPU/ram: 240Mhz (Wifi | BT) -გამოიყენეთ ფლეშ სიხშირე: 80 Mhz

ქსელში არის უამრავი ESP32 ამინდის ამინდის სადგური, ისინი გაცილებით მეტია ვიდრე ჩემი ვერსია 1 შიშველი ჩიპით, რადგან მათი დაყენება უფრო ადვილია, თქვენ არ გჭირდებათ პროგრამისტი, უბრალოდ ჩართეთ მოწყობილობა USB– ზე და დააპროგრამეთ ის და მათი ღრმა ძილის რეჟიმი შესანიშნავია ბატარეიდან დიდი ხნის განმავლობაში. ეს იყო პირველი რამ, რაც მე გამოვცადე გარღვევის ქინძისთავებში, რადგან როგორც მე აღვნიშნე ამ პროექტში მრავალი ადგილი, ყველაზე მნიშვნელოვანი არის ენერგიის მოხმარება და ამჟამინდელი (ყალბი) ბატარეით და მცირე მზის პანელით ლოდინის სიმძლავრე ნამდვილად არ აღემატება 1-2mA- ს, წინააღმდეგ შემთხვევაში პროექტი ვერ შეძლებს თავის შენარჩუნებას გრძელვადიან პერსპექტივაში.

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

მონაცემების გაგზავნისას დენი იყო დაახლოებით 80mA (რაც დაახლოებით 5 -ჯერ მეტია ვიდრე Atmega 328P– ის გაღვიძებისა და გადაცემის დროს), თუმცა არ უნდა დაგვავიწყდეს, რომ V1– ით იყო LDR– ზე საშუალოდ 1 mA დენის გადინება ძილის რეჟიმში (რომელიც ასევე დამოკიდებული იყო სინათლის დონეზე და წავიდა 0.5mA - 1mA) რომელიც ახლა გაქრა.

ახლა, როდესაც UltraFire ბატარეა გათიშულია, თუ თქვენ იყენებთ იგივე ბატარეას, აქ არის ის, რისი მოლოდინიც შეგიძლიათ:

Iavg = (ტონა*იონი + ძილი*სძინავს) / (ტონა + ცზლი)

Iavg = (2s*80mA + 300s*0.01mA) / (2s + 300s) Iavg = 0.5mA

Pavg = VxIavg = 5Vx0.5mA = 2.5 მგვტ

თეორიული

ბატარეის ხანგრძლივობა = 22000mWh/2.5mW = 8800 საათი = 366 დღე დაახლოებით

ნამდვილი

ბატარეის ხანგრძლივობა = 800mWh/2.5mW = 320 საათი = დაახლოებით 13 დღე

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

მე არ მინდოდა შუადღის გატარება ყველაფრის პერსონალურ კოდირებაზე, ასე რომ ვეძებდი სხვა ამინდის ამინდის სადგურს Instructables– ზე ESP32– ზე დაფუძნებული, რომ ვნახო რას აკეთებენ ისინი მონაცემთა შენახვისთვის. სამწუხაროდ შენიშნა, რომ ისინი იყენებენ მოუქნელ და შეზღუდულ საიტებს, როგორიცაა weathercloud. იმის გამო, რომ მე არ ვარ "ღრუბლის" ფანი და მათი კოდი დიდი ხანია გატეხილია, რადგან მას შემდეგ საიტმა შეცვალა თავისი API, მე 10 წუთი დამჭირდა პერსონალური გადაწყვეტის შესაქმნელად, რადგან ეს არ არის ისეთი რთული, როგორც შეიძლება ფიქრობდეს. Დავიწყოთ!

უპირველეს ყოვლისა, ამ პროექტისთვის არ არის მიკროსქემის სურათი ცალკე, რადგან ის იყენებს ზუსტად იგივე კომპონენტებს (უკაცრავად, რომ შეხამებულია მახინჯ დაფაზე) V1 იმ განსხვავებით, რომ ყველაფერი გადის 3.3 ვ. DHT გადაერთო VCC– ით გაყვანით, LDR ჩამოაგდო 10k– ით. პრობლემა, რომლის დანახვაც შესაძლებელია 18650 ბატარეის მსგავსად, ჩემი ჩინური ყალბია (6500 mAh ულტრა მზის ცეცხლი lol: D) არის ის, რომ ისინი იწყებენ გამონადენის მრუდს დაახლოებით 4.1 ვ ახალ ასაკიდან და მიდიან მანამ, სანამ მათი შეწყვეტის სქემა არ იწყებს უჯრედების დაზიანების შესაჩერებლად (მათ, ვისაც გაუმართლა, რომ ჰქონდეთ). ეს არ არის კარგი ჩვენთვის, როგორც 3.3V შეყვანა. მიუხედავად იმისა, რომ ამ LOLIN დაფას აქვს ლითიუმის ბატარეის კონექტორი და დატენვის წრე ამ პროექტში, მინდოდა რაც შეიძლება მეტი შემეკეთებინა ძველი სადგურიდან, ასე რომ ძველი 18650 -ით თქვენ არ შეგიძლიათ გამოიყენოთ ეს ჩაშენებული დამტენი. გამოსავალი მკვდარი იყო: მე დავწყვიტე მიკრო USB კაბელი, რომელიც 5 ვ -ში იყო შეყვანილი ძველი ძაბვის გამაძლიერებელიდან და ვოილას პრობლემა მოგვარებულია, ვინაიდან microUSB- ის დაფაზე არის რეგულატორი.

ამრიგად, განსხვავება ძველ და ახალ ვერსიას შორის, რომელიც ძველ ბატარეაში იძლევა 3.7 ვ -> გაზრდილია 5 ვ -> არდუ მუშაობს 5 ვ -> ყველა კომპონენტი მუშაობს 5 ვ.

ახალში: ბატარეა უზრუნველყოფს 3.7 ვ -> გაზრდილია 5 ვ -> რეგულირდება საბორტო სისტემით ESP32– ზე -> ყველა კომპონენტი მუშაობს 3.3 ვ.

პროგრამული თვალსაზრისით ჩვენ დაგვჭირდება DHT ბიბლიოთეკა ასევე, Arduino– ს DHT არ არის თავსებადი ESP– თან. ჩვენ გვჭირდება DHT ESP.

დავიწყე ჩემი კოდის დამყარება DHT მაგალითის გარშემო, ეს კოდი მოწოდებულია. კოდის მუშაობა ასეთია:

1, მიიღეთ გარემოსდაცვითი მონაცემები DHT + მზის მონაცემებიდან ფოტოელემენტიდან

2, დაუკავშირდით wifi– ს სტატიკური IP– ით

3, განათავსეთ მონაცემები php სკრიპტში

4, დაიძინე 10 წუთი

როგორც შეამჩნევთ, მე მოვახერხე კოდი ეფექტურობისთვის, რათა მაქსიმალურად შევამცირო გაღვიძების დრო, ვინაიდან ის 5 – ჯერ კარგავს ენერგიას, ვიდრე ძველი პროექტი აკეთებდა ჩართვისას. როგორ გავაკეთე ეს? უპირველეს ყოვლისა, თუ რაიმე სახის შეცდომაა, getTemperature () ფუნქცია დაბრუნდება ყალბი (რაც ნიშნავს 10 წუთის ძილს ისევ). ეს შეიძლება იყოს ისე, როგორც DHT სენსორი არ შეიძლება დაიწყოს ან wifi კავშირი არ არის ხელმისაწვდომი. როგორც თქვენ შეამჩნევთ ჩვეულებრივ () მარყუჟს wifi ასოციაციის სამუდამოდ მცდელობისთვის, ასევე მოიხსნა, მაგრამ 1 წამი დაგვიანებით უნდა დარჩეს იქ, წინააღმდეგ შემთხვევაში ის ყოველთვის არ დაუკავშირდება და ეს ასევე დამოკიდებულია AP ტიპის, დატვირთვის და ა.შ. რამდენად სწრაფად მოხდება, 0,5 წთ -ით მივიღე არათანმიმდევრული ქცევა (ზოგჯერ მისი დაკავშირება ვერ ხერხდება). თუ ვინმემ იცის ამის გაკეთების უკეთესი გზა, დატოვეთ კომენტარებში. მხოლოდ DHT მონაცემების წაკითხვის და wifi კავშირის დასრულების შემდეგ ის შეეცდება მონაცემების სკრიპტში განთავსებას ვებ სერვერზე. ყველა დროის დროის დაკარგვის ფუნქციები, როგორიცაა Serial.println (), გამორთულია ნორმალურ ოპერაციულ რეჟიმშიც. როგორც სერვერი, მე ასევე ვიყენებ IP– ს DNS– ის არასაჭირო ძიების თავიდან ასაცილებლად, ჩემს კოდში ნაგულისხმევი კარიბჭე და დნს სერვერი დაყენებულია 0.0.0.0 –ზე.

მე არ მესმის, რატომ არის ასე ძნელი საკუთარი API- ს შექმნა, როდესაც ყველაფერი საჭიროა:

sprintf (პასუხი, "temp =%d & hum =%d & hi =%d & sol =%d", temp, hum, hi, sol);

int httpResponseCode = http. POST (პასუხი);

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

რამდენიმე შენიშვნა კოდის შესახებ:

WiFi.config (staticIP, gateway, subnet, dns); // უნდა იყოს მას შემდეგ, რაც Wifi დაიწყება რამდენად მუნჯია…

WiFi.mode (WIFI_STA); // სხვაგვარად უნდა შეიქმნას არასასურველი AP

ჰო, ახლა თქვენ იცით. ასევე IP კონფიგურაციის თანმიმდევრობა შეიძლება შეიცვალოს პლატფორმების საშუალებით, მე პირველად შევეცადე სხვა მაგალითები, სადაც გადაერთო კარიბჭისა და ქვექსელის მნიშვნელობები. რატომ უნდა დააყენოთ სტატიკური IP? ეს აშკარაა, თუ თქვენ გაქვთ გამოყოფილი ყუთი თქვენს ქსელში, როგორიცაა linux სერვერი, რომელიც მუშაობს isc dhcpd, თქვენ არ გსურთ ასი მილიონი ჟურნალის ჩანაწერი, როდესაც ESP იღვიძებს და მიიღებთ IP– ს DHCP– დან. როგორც წესი, მარშრუტიზატორები არ შედიან ასოციაციებში ისე, რომ ისინი უხილავი დარჩებიან. ეს არის ენერგიის დაზოგვის ფასი.

V2 ვერასდროს შეძლებდა თავის შენარჩუნებას ცუდი ხარისხის ბატარეის გამო და მე უბრალოდ დავამატე ადაპტერზე, ასე რომ, თუ გსურთ V1 ან V2 ააშენოთ, ნუ იყიდით აღნიშნულ ბატარეას, გააკეთეთ თქვენი საკუთარი კვლევა ბატარეებზე (ნებისმიერი 18650 2000 mAh– ზე მეტი რეკლამირებული სიმძლავრე Ebay– ზე არის თაღლითობა დიდი ალბათობით).

გირჩევთ: