Სარჩევი:

IoT წყლის სიგნალიზაცია: 5 ნაბიჯი (სურათებით)
IoT წყლის სიგნალიზაცია: 5 ნაბიჯი (სურათებით)

ვიდეო: IoT წყლის სიგნალიზაცია: 5 ნაბიჯი (სურათებით)

ვიდეო: IoT წყლის სიგნალიზაცია: 5 ნაბიჯი (სურათებით)
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ივლისი
Anonim
IoT წყლის სიგნალიზაცია
IoT წყლის სიგნალიზაცია

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

ნაბიჯი 1: ოპერაციის პრინციპი

ოპერაციის პრინციპი
ოპერაციის პრინციპი

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

წყლის სენსორი არის ორი მავთული, რომლებიც ერთმანეთისგან დაახლოებით 1 მმ დაშორებულია. ერთი მავთული უკავშირდება 3.3 V- ს, მეორე კი მიკროკონტროლერის მგრძნობიარე პინს, რომელიც ასევე მიწასთან არის დაკავშირებული 0.5 MOhm რეზისტორის საშუალებით. ჩვეულებრივ, წინააღმდეგობა სენსორულ მავთულებს შორის ძალიან მაღალია (10 MOhm– ზე მეტი), ასე რომ, მგრძნობიარე ბუდე იშლება 0 ვ -მდე, თუმცა, როდესაც მავთულებს შორის წყალია, წინააღმდეგობა მცირდება 1 MOhm– ზე ნაკლები, და მგრძნობიარე პინი ხედავს გარკვეულ ძაბვას (ჩემს შემთხვევაში დაახლოებით 1.5 ვ). როდესაც ATtiny85 აღმოაჩენს ამ ძაბვას სენსორულ პინზე, ის ააქტიურებს MOSFET- ს ზარის გამაძლიერებელი და აგზავნის გაღვიძების სიგნალს ESP8266 მოდულში, რომელიც პასუხისმგებელია სიგნალების გაგზავნაზე (ელ.ფოსტა და შეტყობინებების გაგზავნა). ერთი წუთის ხმაურის შემდეგ, განგაში განიარაღებულია და მისი გადატვირთვა შესაძლებელია მხოლოდ ელექტრო ველოსიპედით.

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

ვინაიდან ESP8266 მოდული პასუხისმგებელია როგორც დაბალი ბატარეის გაფრთხილების, ასევე წყალდიდობის შესახებ შეტყობინებების გაგზავნაზე, ის მოითხოვს საკონტროლო სიგნალს ATiny85– დან. ქინძისთავების შეზღუდული რაოდენობის გამო, ეს საკონტროლო სიგნალი გენერირდება იმავე პინით, რომელიც პასუხისმგებელია ბატარეის LED მითითებაზე. ნორმალური მუშაობის დროს (სიგნალიზაცია შეიარაღებულია და ბატარეები დატენილია), LED წყვეტს პერიოდულად. როდესაც გამოვლენილია დაბალი ბატარეის მდგომარეობა, LED ირთვება ESP მოდულის RX პინზე მაღალი სიგნალის უზრუნველსაყოფად. თუ წყალი გამოვლენილია, ბატარეის LED გამორთული იქნება სანამ ESP8266 გამოღვიძებულია.

ნაბიჯი 2: დიზაინი და შეკრება

დიზაინი და შეკრება
დიზაინი და შეკრება
დიზაინი და შეკრება
დიზაინი და შეკრება
დიზაინი და შეკრება
დიზაინი და შეკრება

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

საჭიროა შემდეგი ნაწილები:

- რეზისტორები: 330 Ω x 1; 470 Ω x 1; 680 Ω x 1; 1 kΩ x 1; 10 kΩ x 3; 470 kΩ x 3; - ერთი 10 µF კერამიკული კონდენსატორი- ერთი ლოგიკური დონის N არხი MOSFET (მაგ. RFP30N06LE ან AO3400)- ერთი წითელი და ერთი ყვითელი LED (ან სხვა ფერები თუ გნებავთ).- ორი მავთულის ხრახნიანი ტერმინალის კონექტორი x 3 (ისინი არ არის აბსოლუტურად აუცილებელია, მაგრამ ისინი აადვილებენ ტესტირების დროს პერიფერიის დაკავშირებას და გათიშვას)- ხმამაღალი პიეზო ზარი, რომელიც კარგია 3.3 V- სთვის- ATtiny85 მიკროკონტროლი (PDIP ვერსია)- 8-პინიანი PDIP სოკეტი მიკროკონტროლერისთვის- ESP-01 მოდული (ის შეიძლება შეიცვალოს სხვა ESP8266 მოდულით, მაგრამ ამ შემთხვევაში იქნება ბევრი ცვლილება განლაგებაში)-3.3 V DC-DC გამაძლიერებელი გადამყვანი, რომელსაც შეუძლია 200 mA (500 mA ადიდებული) დენის მიწოდება 2.2 V შეყვანა (მე გირჩევთ https://www.canton-electronics.com/power-converter… მისი ულტრა დაბალი მშვიდი დენის გამო)-ერთი 3 პინიანი ქალი სათაური-ორი 4 პინიანი ქალი სათაურები ან ერთი 2x4 სათაური-22 AWG მყარი მავთული წყლის სენსორისთვის- 22 AWG ხრახნიანი მავთული (ან სხვა სახის თხელი დაუცველი მავთულები კვალის შესაქმნელად)

მე გირჩევთ ზემოთ ჩამოთვლილი რეზისტორების მნიშვნელობებს, მაგრამ თქვენ შეგიძლიათ შეცვალოთ მათი უმეტესობა მსგავსი მნიშვნელობებით. დამოკიდებულია LED- ების ტიპზე, რომლის გამოყენებაც გსურთ, შეიძლება დაგჭირდეთ მიმდინარე შემზღუდველი რეზისტორის მნიშვნელობების მორგება სასურველი სიკაშკაშის მისაღებად. MOSFET შეიძლება იყოს ხვრელით ან SMT (SOT23). მხოლოდ 330 Ohm რეზისტორის ორიენტაციაზეა დამოკიდებული MOSFET- ის ტიპი. რეკომენდებულია PTC დაუკრა (მაგალითად 1 A), თუ თქვენ აპირებთ ამ მიკროსქემის გამოყენებას NiMH ბატარეებით. თუმცა, ეს არ არის საჭირო ტუტე ბატარეებით. რჩევა: ამ სიგნალიზაციისთვის საჭირო ნაწილების შეძენა იაფად შეიძლება ebay– დან ან aliexpress– დან.

გარდა ამისა, დაგჭირდებათ პურის დაფა, რამდენიმე ხვრელი 10k რეზისტორი, მრავალჯერადი მამაკაცი-მამაკაცი და ქალი-მამაკაცი მხტუნავები ("დუპონტი") და USB-UART ადაპტერი ESP-01 მოდულის დასაპროგრამებლად.

წყლის სენსორი შეიძლება გაკეთდეს სხვადასხვა გზით, მაგრამ უმარტივესი არის ორი 22 AWG მავთული გამოკვეთილი ბოლოებით (1 სმ სიგრძით) დაშორებული დაახლოებით 1 მმ ერთმანეთისგან. მიზანია სენსორულ კონტაქტებს შორის 5 MΩ ნაკლები წინააღმდეგობის გაწევა წყლის არსებობისას.

წრე განკუთვნილია ბატარეის მაქსიმალური ეკონომიისთვის. მონიტორინგის რეჟიმში ის მხოლოდ 40-60 µA- ს ამახვილებს (ESP-01 მოდულზე ამოღებული ენერგიის LED). სიგნალის გააქტიურებისთანავე წრე წამში ან ნაკლებ დროში ამოიღებს 300-500 mA (2.4 V შეყვანისას) და ამის შემდეგ დენი 180 mA– ზე დაბლა დაეცემა. მას შემდეგ, რაც ESP მოდული დასრულდება შეტყობინებების გაგზავნისას, მიმდინარე მოხმარება 70 mA– ზე დაბლა დაეცემა, სანამ ზუმერის გამორთვა არ მოხდება. შემდეგ მაღვიძარა განიარაღდება და მიმდინარე მოხმარება იქნება 30 µA– ზე ნაკლები. ამრიგად, AA ბატარეებს შეეძლებათ ჩართონ წრე მრავალი თვის განმავლობაში (სავარაუდოდ, ერთ წელზე მეტი ხნის განმავლობაში). თუ თქვენ იყენებთ სხვა გამაძლიერებელ გადამყვანს, ვთქვათ 500 μA წყნარი დენით, ბატარეები უფრო ხშირად უნდა შეიცვალოს.

შეკრების რჩევები:

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

- ზედა SMT LED- ები და იზოლირებული მავთულის ხიდები

-ზედა მხარე MOSFET (შენიშვნა: თუ თქვენ გაქვთ SOT-23 MOSFET, განათავსეთ იგი დიაგონალზე, როგორც ფოტოში. თუ თქვენ იყენებთ ხვრელ MOSFET- ს, განათავსეთ იგი ჰორიზონტალურად კარიბჭის პინით I3 პოზიციაზე.)

- ზედა მხარე ხვრელის ნაწილების გავლით (შენიშვნა: ზარი არ არის შედუღებული და არც კი უნდა იყოს დაყენებული PCB- ზე)

- უკანა მხარეს SMT ნაწილები და კვალი (მაგ. ცალკეული ძაფები AWG22 მავთულისგან)

ნაბიჯი 3: Firmware

C კოდი ATtiny85– ისთვის

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

-Arduino Uno- ს კონფიგურაცია, როგორც ISP (სისტემური პროგრამირება)

- ATtiny85– ის დაკავშირება არდუინო უნოსთან.

ფირმის შედგენისა და ატვირთვისთვის დაგჭირდებათ CrossPack (Mac OS– ისთვის) ან AVR ინსტრუმენტთა ქსელი (Windows– ისთვის). კოდის შესადგენად საჭიროა შემდეგი ბრძანების შესრულება:

avr -gcc -Os -mmcu = attiny85 -c main.c; avr -gcc -mmcu = attiny85 -o main.elf main.o; avr -objcopy -j.text -j.data -O ihex main.elf main.hex

Firmware- ის ასატვირთად გაუშვით შემდეგი:

avrdude -c arduino -p attiny85 -P /dev/cu.usbmodem1411 -b 19200 -e -U flash: w: main.hex

"/Dev/cu.usbmodem1411" - ის ნაცვლად, თქვენ დაგჭირდებათ სერიული პორტის ჩასმა, რომელთანაც თქვენი Arduino არის დაკავშირებული (შეგიძლიათ იპოვოთ Arduino IDE: Tools Port).

კოდი შეიცავს მრავალ ფუნქციას. deep_sleep () აიძულებს მიკროკონტროლერს შევიდეს ძალიან დაბალი სიმძლავრის მდგომარეობაში დაახლოებით 8 წამის განმავლობაში. read_volt () გამოიყენება ბატარეისა და სენსორის ძაბვის გასაზომად. ბატარეის ძაბვა იზომება შიდა ძაბვის მითითების წინააღმდეგ (2.56 V პლუს ან მინუს რამდენიმე პროცენტი), ხოლო სენსორის ძაბვა იზომება Vcc = 3.3 ვ. მაჩვენებლების მიხედვით BATT_THRESHOLD და SENSOR_THRESHOLD შესაბამისად 932 და 102 შესაბამისად, რაც შეესაბამება ~ 2.3 და 0.3 ვ. თქვენ შეიძლება შეძლოთ ბატარეის ზღურბლის შემცირება ბატარეის გაუმჯობესებული მუშაობისთვის, მაგრამ ეს არ არის რეკომენდებული (დეტალური ინფორმაციისთვის იხილეთ ბატარეის მოსაზრებები).

activ_alarm () აცნობებს ESP მოდულს წყლის გამოვლენის შესახებ და ჟღერს ზუზუნს. low_batt_notification () აცნობებს ESP მოდულს, რომ ბატარეა დაბალია და ასევე ჟღერს ზუზუნს. თუ თქვენ არ გსურთ გაღვიძება შუა ღამეს ბატარეის შესაცვლელად, ამოიღეთ "| 1 <" დაბალი_ბატტ_ნოტიფიკაციაში ().

არდუინოს ესკიზი ESP-01– ისთვის

მე შევარჩიე ESP მოდულის დაპროგრამება Arduino HAL– ის გამოყენებით (მიჰყევით ბმულს მითითებული ინსტრუქციისთვის). გარდა ამისა, მე გამოვიყენე შემდეგი ორი ბიბლიოთეკა:

ESP8266 ელ.ფოსტის გაგზავნა გორას პეტერის მიერ

ESP8266 პუშოვერი არდუინო ჰანოვერის გუნდის მიერ

პირველი ბიბლიოთეკა უკავშირდება SMTP სერვერს და აგზავნის შეტყობინებას თქვენს ელ.ფოსტის მისამართზე. უბრალოდ შექმენით gmail ანგარიში თქვენი ESP– სთვის და დაამატეთ სერთიფიკატები კოდს. მეორე ბიბლიოთეკა აგზავნის push შეტყობინებებს Pushover სერვისის საშუალებით (შეტყობინებები უფასოა, მაგრამ თქვენ უნდა გადაიხადოთ ერთხელ, რომ დააინსტალიროთ პროგრამა თქვენს ტელეფონზე/ტაბლეტზე). ჩამოტვირთეთ ორივე ბიბლიოთეკა. განათავსეთ ელ.ფოსტის გაგზავნის ბიბლიოთეკის შინაარსი თქვენს ესკიზის საქაღალდეში (arduino შექმნის მას, როდესაც არდუინოს ესკიზს პირველად გახსნით). დააინსტალირეთ Pushover ბიბლიოთეკა IDE– ს საშუალებით (ესკიზი -> ბიბლიოთეკის ჩართვა ->. ZIP ბიბლიოთეკის დამატება).

ESP-01 მოდულის დასაპროგრამებლად შეგიძლიათ მიყევით შემდეგ სახელმძღვანელოს: https://www.allaboutcircuits.com/projects/breadbo… არ არის საჭირო გადაიტვირთოთ ერთი რიგის ქინძისთავების გადატვირთვა, როგორც ეს მოცემულია სახელმძღვანელოში-უბრალოდ გამოიყენეთ ქალი-მამაკაცი დუპონტი მავთულები მოდულის ქინძისთავების დასაკავშირებლად პურის დაფაზე. ნუ დაგავიწყდებათ, რომ გამაძლიერებელმა გადამყვანმა და USB-UART ადაპტერმა უნდა გაიზიარონ საფუძველი (შენიშვნა: თქვენ შეიძლება შეძლოთ USB-UART ადაპტერის 3.3 ვ გამომავალი გამაძლიერებელი კონვერტორის ნაცვლად, მაგრამ, სავარაუდოდ, ეს არ იქნება შეძლოს საკმარისი დენის გამომუშავება).

ნაბიჯი 4: ბატარეის მახასიათებლები

მიწოდებული ფირმის კოდი წინასწარ არის კონფიგურირებული, რომ გააგზავნოს დაბალი ბატარეის გაფრთხილება და დაიხუროს 3 2.3 ვ. ეს ბარიერი ემყარება ვარაუდს, რომ ორი NiMH ბატარეა გამოიყენება სერიაში. არ არის რეკომენდებული რომელიმე ცალკეული NiMH უჯრედის 1 ვ -ზე დაბლა ჩაშვება, თუ ვარაუდობენ, რომ ორივე უჯრედს აქვს თანაბარი ტევადობა და გამონადენის მახასიათებლები, ორივე მათგანი გათიშულია 15 1.15 V- ზე - ასევე უსაფრთხო დიაპაზონში. ამასთან, NiMH უჯრედები, რომლებიც გამოიყენება გამონადენის მრავალი ციკლის განმავლობაში, განსხვავდება ტევადობით. სიმძლავრის 30% -მდე სხვაობა შეიძლება გადაიტანოს, რადგან ეს მაინც გამოიწვევს ყველაზე დაბალი ძაბვის უჯრედების გათიშვის წერტილს დაახლოებით 1 ვ.

მიუხედავად იმისა, რომ შესაძლებელია firmware– ში ბატარეის დაბალი ბარიერის შემცირება, ეს მოიხსნის უსაფრთხოების ზღვარს და გამოიწვევს ბატარეის ზედმეტად დაცლას და დაზიანებას, ხოლო ბატარეის ხანგრძლივობის მხოლოდ ზღვრული ზრდაა მოსალოდნელი (NiMH უჯრედი არის> 85% განთავისუფლებულია 1.15 V- ზე).

კიდევ ერთი ფაქტორი, რომელიც გასათვალისწინებელია, არის გამაძლიერებელი კონვერტორის უნარი უზრუნველყოს მინიმუმ 3.0 V (2.5 V ვრცელი მტკიცებულებების მიხედვით) 300-500 mA პიკ დენზე დაბალ ბატარეებზე. NiMH ბატარეების დაბალი შიდა წინააღმდეგობა იწვევს მხოლოდ უმნიშვნელო ვარდნას 0.1 V პიკის დენზე, ამიტომ NiMH უჯრედების წყვილი, რომლებიც გამოიყოფა 2.3 V- მდე (ღია წრე) შეძლებს უზრუნველყოს მინიმუმ 2.2 V გამაძლიერებელი გადამყვანი. თუმცა, ეს უფრო გართულებულია ტუტე ბატარეებით. წყვილი AA აკუმულატორი იჯდა 2.2-2.3 V- ზე (ღია წრე) ძაბვის ვარდნა 0.2-0.4 V მოსალოდნელია პიკის დენებზე. მიუხედავად იმისა, რომ მე შევამოწმე წრე მუშაობს რეკომენდებული გამაძლიერებელი კონვერტორით, როგორც მინიმუმ 1.8 V, რომელიც მიეწოდება პიკის დენზე, ეს, სავარაუდოდ, იწვევს გამომავალი ძაბვის მომენტალურ ვარდნას ესპრესიფის მიერ შემოთავაზებული მნიშვნელობის ქვემოთ. ამრიგად, 2.3 V შეწყვეტის ბარიერი ტოვებს მცირე უსაფრთხოების ზღვარს ტუტე ბატარეებით (გაითვალისწინეთ, რომ მიკროკონტროლერის მიერ შესრულებული ძაბვის გაზომვა ზუსტია მხოლოდ პლუს ან მინუს რამდენიმე პროცენტის ფარგლებში). იმის უზრუნველსაყოფად, რომ ESP მოდული არ გაბრწყინდეს, როდესაც ტუტე ბატარეები დაბალია, მე გირჩევთ გათიშვის ძაბვის გაზრდას 2.4 ვ-მდე (#განსაზღვრეთ BATT_THRESHOLD 973). 1.2 ვ-ზე (ღია წრე) ტუტე უჯრედი დაახლოებით 70% -ით გამოიყოფა, რაც მხოლოდ 5-10 პროცენტული პუნქტით დაბალია, ვიდრე გამონადენის ხარისხი 1.15 ვ.

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

ნაბიჯი 5: სამართლებრივი პასუხისმგებლობის უარყოფა

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

გირჩევთ: