Სარჩევი:
- ნაბიჯი 1: წრე
- ნაბიჯი 2: სიგნალის დამუშავების კოდი და სერვერის კომუნიკაციები
- ნაბიჯი 3: სერვერი და მონაცემთა კომუნიკაცია
- ნაბიჯი 4: Android აპლიკაცია
- ნაბიჯი 5: დასკვნა
ვიდეო: IOT გულისცემის მონიტორი (ESP8266 და Android აპლიკაცია): 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
ჩემი ბოლო წლის პროექტის ფარგლებში მინდოდა შემექმნა მოწყობილობა, რომელიც მონიტორინგს გაუწევს თქვენს გულისცემას, შეინახავს თქვენს მონაცემებს სერვერზე და შეგატყობინებთ შეტყობინების საშუალებით, როდესაც თქვენი გულისცემა არანორმალურია. ამ პროექტის იდეა მაშინ გაჩნდა, როდესაც შევეცადე აეშენებინა მორგებული ბიტიანი აპლიკაცია, რომელიც აცნობებდა მომხმარებელს გულის პრობლემების დროს, მაგრამ რეალურ დროში ინფორმაციის გამოყენების გზას ვერ ვხვდებოდი. პროექტს აქვს ოთხი ძირითადი ნაწილი გულისცემის გაზომვის ფიზიკური წრე, ESP8266 Wi-Fi მოდული სიგნალის დამუშავების კოდით, სერვერი კოდის შესანახად და Android აპლიკაცია გულისცემის ჩვენებისათვის.
ვიდეო, სადაც აღწერილია ფიზიკური წრე, შეგიძლიათ ნახოთ ზემოთ. პროექტის ყველა კოდი შეგიძლიათ იხილოთ ჩემს Github– ზე.
ნაბიჯი 1: წრე
გულისცემის გაზომვის ორი ძირითადი მეთოდი არსებობს, მაგრამ ამ პროექტისთვის მე გადავწყვიტე გამოვიყენო ფოტოპლეტიზმოგრაფია (PPG), რომელიც იყენებს ინფრაწითელ ან წითელ სინათლის წყაროს, რომელიც ირეკლება კანის პირველი რამდენიმე ფენის მეშვეობით. ფოტო სენსორი გამოიყენება სინათლის ინტენსივობის ცვლილების გასაზომად (როდესაც სისხლი მიედინება ჭურჭელში). PPG სიგნალები წარმოუდგენლად ხმაურიანია, ამიტომ მე გამოვიყენე band pass filter, რათა გავფილტროთ საჭირო კონკრეტული სიხშირეები. ადამიანის გული სცემს 1 -დან 1.6 Hz სიხშირეზე. ოპ-გამაძლიერებელი, რომელიც მე გამოვიყენე, იყო lm324, რომელსაც ჰქონდა ძაბვის ყველაზე ოფსეტური ყველა იმ ამპ-დან, რაც ჩემთვის ხელმისაწვდომი იყო. თუ თქვენ ხელახლა შექმნით ამ პროექტს, მაშინ ზუსტი ოპ-გამაძლიერებელი ბევრად უკეთესი არჩევანი იქნება.
მხოლოდ ორი მოგება იქნა გამოყენებული, რადგან ESP8266– ზე მაქსიმალური ძაბვის ტოლერანტობა არის 3.3 ვ და მე არ მინდოდა ჩემი დაფის დაზიანება!
მიჰყევით ზემოთ სქემას და ეცადეთ ის პურის დაფაზე იმუშაოს. თუ თქვენ არ გაქვთ ოსცილოსკოპი სახლში, შეგიძლიათ შეაერთოთ გამომავალი არდუინოში და შეადგინოთ იგი, მაგრამ დარწმუნდით, რომ ძაბვა არ აღემატება არდუინოს ან მიკროკონტროლერის ტოლერანტობას.
წრე შემოწმდა პურის დაფაზე და გამომავალი ცვლილება დაფიქსირდა, როდესაც თითი მოათავსეს LED და ფოტო ტრანზისტორზე. შემდეგ მე გადავწყვიტე დაფის შეკვრა, რაც ვიდეოში არ იყო ნაჩვენები.
ნაბიჯი 2: სიგნალის დამუშავების კოდი და სერვერის კომუნიკაციები
მე გადავწყვიტე გამოვიყენო Arduino IDE ESP8266– ზე, რადგან მისი გამოყენება ძალიან ადვილია. სიგნალის შედგენისას ის ჯერ კიდევ ძალიან ხმაურიანი იყო, ამიტომ გადავწყვიტე გამეწმინდა ის FIR მოძრავი საშუალო ფილტრით, ათის ნიმუშით. მე შევცვალე Arduino პროგრამის მაგალითი სახელწოდებით "smoothing". მე ცოტა ექსპერიმენტი გავაკეთე, რათა გამომეძიებინა სიგნალის სიხშირის გაზომვის საშუალება. იმპულსები იყო განსხვავებული სიგრძისა და ამპლიტუდის გამო, რადგან გულს გააჩნდა ოთხი განსხვავებული ტიპის პულსი და PPG სიგნალების მახასიათებლები. მე ავირჩიე ცნობილი საშუალო მნიშვნელობა, რომელსაც სიგნალი ყოველთვის კვეთდა, როგორც მინიშნება თითოეული პულსისთვის. მე გამოვიყენე ბეჭედი ბუფერი იმის დასადგენად, როდის იყო სიგნალის დახრილობა დადებითი ან უარყოფითი. ამ ორის კომბინაციამ მომცა საშუალება გამოვთვალო იმპულსებს შორის პერიოდი, როდესაც სიგნალი დადებითი იყო და უდრიდა კონკრეტულ მნიშვნელობას.
პროგრამულმა უზრუნველყოფამ წარმოადგინა საკმაოდ არაზუსტი BPM, რომლის გამოყენებაც რეალურად შეუძლებელია. დამატებითი გამეორებით შეიძლება შეიქმნას უკეთესი პროგრამა, მაგრამ დროის შეზღუდვების გამო ეს არ იყო ვარიანტი. კოდი შეგიძლიათ იხილოთ ქვემოთ მოცემულ ბმულზე.
ESP8266 პროგრამული უზრუნველყოფა
ნაბიჯი 3: სერვერი და მონაცემთა კომუნიკაცია
მე გადავწყვიტე გამოვიყენო Firebase მონაცემების შესანახად, რადგან ეს არის უფასო სერვისი და ძალიან ადვილი გამოსაყენებელია მობილური აპლიკაციებისთვის. ESP8266– ით Firebase– ის ოფიციალური API არ არსებობს, მაგრამ აღმოვაჩინე, რომ Arduino ბიბლიოთეკა ძალიან კარგად მუშაობდა.
არსებობს მაგალითი პროგრამა, რომელიც შეგიძლიათ იხილოთ ESP8266WiFi.h ბიბლიოთეკაში, რომელიც საშუალებას გაძლევთ დაუკავშირდეთ როუტერს SSID– ით და პაროლით. ეს გამოიყენებოდა დაფის ინტერნეტთან დასაკავშირებლად, რათა შესაძლებელი იყოს მონაცემების გაგზავნა.
მიუხედავად იმისა, რომ მონაცემების შენახვა მარტივად ხდებოდა, ჯერ კიდევ არსებობს რიგი საკითხები push შეტყობინებების გაგზავნასთან HTTP POST მოთხოვნის საშუალებით. მე ვიპოვე კომენტარი Github– ზე, რომელმაც გამოიყენა ამის მეთოდი Google ღრუბლოვანი შეტყობინებების საშუალებით და HTTP ბიბლიოთეკა ESP8266– ისთვის. ეს მეთოდი ჩანს ჩემს Github– ის კოდში.
Firebase– ზე შევქმენი პროექტი და გამოვიყენე API და რეგისტრაციის გასაღებები პროგრამულ უზრუნველყოფაში. Firebase ღრუბლოვანი შეტყობინებები გამოიყენებოდა აპთან ერთად მომხმარებლისთვის push შეტყობინებების გაგზავნის მიზნით. როდესაც კომუნიკაციები იქნა შემოწმებული მონაცემები შეიძლება ნახოთ მონაცემთა ბაზაში ESP8266 გაშვებისას.
ნაბიჯი 4: Android აპლიკაცია
ძალიან ძირითადი Android აპლიკაცია შეიქმნა ორი აქტივობით. პირველი აქტივობა შედიოდა მომხმარებელში ან რეგისტრირებდა მათ Firebase API გამოყენებით. მე გამოვიკვლიე მონაცემთა ცხრილი და ვიპოვე სხვადასხვა გაკვეთილები, თუ როგორ გამოვიყენო Firebase მობილური აპლიკაციით. ძირითადი საქმიანობა, რომელიც აჩვენებს მომხმარებლის მონაცემების მომხმარებელს რეალურ დროში მოვლენის მსმენელს, ასე რომ არ შეინიშნება შესამჩნევი შეფერხება მომხმარებლის BPM ცვლილებებში. ბიძგი შეტყობინებები გაკეთდა Firebase ღრუბლოვანი შეტყობინებების გამოყენებით, რომელიც ზემოთ იყო ნახსენები. Firebase– ის მონაცემთა ცხრილში არის ბევრი სასარგებლო ინფორმაცია იმის შესახებ, თუ როგორ უნდა განახორციელოთ ეს და აპლიკაციის შემოწმება შესაძლებელია Firebase ვებსაიტზე დაფის შეტყობინებების გაგზავნით.
საქმიანობის ყველა კოდი და ღრუბლოვანი შეტყობინებების მეთოდი შეგიძლიათ იხილოთ ჩემს Github საცავში.
ნაბიჯი 5: დასკვნა
იყო რამდენიმე ძირითადი საკითხი მომხმარებლის BPM- ის გაზომვასთან დაკავშირებით. ღირებულებები მნიშვნელოვნად განსხვავდებოდა და არ იყო გამოსაყენებელი მომხმარებლის ჯანმრთელობის დასადგენად. ეს შემცირდა სიგნალის დამუშავების კოდამდე, რომელიც განხორციელდა ESP8266– ზე. დამატებითი კვლევის შემდეგ აღმოვაჩინე, რომ გულს აქვს ოთხი განსხვავებული პულსი სხვადასხვა პერიოდის განმავლობაში, ამიტომ გასაკვირი არ არის, რომ პროგრამული უზრუნველყოფა იყო არაზუსტი. ამის წინააღმდეგ ბრძოლის საშუალება იქნება მიიღოს მასივში საშუალოდ ოთხი პულსი და გამოვთვალოთ გულის პერიოდი ამ ოთხ იმპულსზე.
დანარჩენი სისტემა ფუნქციონირებდა, მაგრამ ეს არის ძალიან ექსპერიმენტული მოწყობილობა, რომლის აშენებაც მინდოდა იმის დასადგენად, შესაძლებელია თუ არა ობიექტი. ძველი კოდი, რომელიც გამოყენებული იყო push შეტყობინებების გასაგზავნად, მალე გამოუსადეგარი იქნება, ასე რომ, თუ ამას კითხულობთ 2018 წლის ბოლოს ან გვიან, სხვა მეთოდი იქნება საჭირო. ეს პრობლემა წარმოიქმნება მხოლოდ ESP– სთან ერთად, ასე რომ, თუ თქვენ გინდოდათ ამის განხორციელება WiFi– ს მქონე Arduino– ზე, პრობლემა არ იქნებოდა.
თუ თქვენ გაქვთ რაიმე შეკითხვა ან პრობლემა, გთხოვთ მოგერიდოთ მომწერეთ Instructables– ში.
გირჩევთ:
გულისცემის სენსორი არდუინოს გამოყენებით (გულისცემის მონიტორი): 3 ნაბიჯი
გულისცემის სენსორი არდუინოს გამოყენებით (გულისცემის მონიტორი): გულისცემის სენსორი არის ელექტრონული მოწყობილობა, რომელიც გამოიყენება გულისცემის გასაზომად, ანუ გულისცემის სიჩქარე. სხეულის ტემპერატურის, გულისცემის და არტერიული წნევის მონიტორინგი არის ძირითადი რამ, რასაც ჩვენ ვაკეთებთ იმისათვის, რომ შევინარჩუნოთ ჯანმრთელობა. გულისცემის მაჩვენებელი შეიძლება იყოს ერთჯერადი
DIY გულისცემის მონიტორი (ლოგერი): 4 ნაბიჯი
DIY გულისცემა შეინახეთ გულისცემის მონაცემები
თქვენი გულისცემის გაზომვა თქვენი თითის წვერშია: ფოტოპლეტიზმოგრაფიული მიდგომა გულისცემის დასადგენად: 7 ნაბიჯი
თქვენი გულისცემის გაზომვა არის თქვენი თითის წვერზე: ფოტოპლეტიზმოგრაფია გულისცემის განსაზღვრის მიდგომა: ფოტოპლეტიზმოგრაფი (PPG) არის მარტივი და იაფი ოპტიკური ტექნიკა, რომელიც ხშირად გამოიყენება ქსოვილის მიკროვასკულარული ფენის სისხლის მოცულობის ცვლილებების დასადგენად. იგი ძირითადად გამოიყენება არაინვაზიურად კანის ზედაპირზე გაზომვებისთვის, როგორც წესი
Arduino გულისცემის მონიტორი: 5 ნაბიჯი
Arduino გულისცემის მონიტორი: გამარჯობა ყველას, მე ავაშენე ეს ხელის არდუინოს კონტროლირებადი გულისცემის მონიტორი
გულისცემის მონიტორი AD8232, Arduino, დამუშავება: 4 ნაბიჯი
გულისცემის მონიტორი AD8232, Arduino, დამუშავება: ანალოგური მოწყობილობები AD8232 არის სრული ანალოგური წინა ნაწილი შექმნილია მილივოლტ დონის EKG (ElectroCardioGram) სიგნალების მოსაპოვებლად. მიუხედავად იმისა, რომ მარტივი საკითხია AD8232- ის მიერთება და მიღებული EKG სიგნალის ნახვა ოსცილოსკოპზე, გამოწვევა