Სარჩევი:

Smart განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით: 11 ნაბიჯი
Smart განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით: 11 ნაბიჯი

ვიდეო: Smart განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით: 11 ნაბიჯი

ვიდეო: Smart განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით: 11 ნაბიჯი
ვიდეო: Stress, Portrait of a Killer - Full Documentary (2008) 2024, ივლისი
Anonim
ჭკვიანი განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით
ჭკვიანი განაწილებული IoT ამინდის მონიტორინგის სისტემა NodeMCU გამოყენებით

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

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

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

Როგორ მუშაობს…

ამ პროექტის 3 ძირითადი ნაწილია.

მოწყობილობის მხარე:

მოწყობილობა არის IoT მოდული, რომელიც ნაჩვენებია სურათზე და აგზავნის ამინდის მონაცემებს სერვერზე დროის ყოველ 'x' ინტერვალში. მონაცემები შეიცავს ამინდის ფაქტობრივ მონაცემებს, მოდულის გეოგრაფიულ მდებარეობას; ანუ მისი კოორდინატები, მისი MAC მისამართი; მოწყობილობის ცალსახად იდენტიფიცირებისთვის, firmware ვერსია, რომელზეც ის ამჟამად მუშაობს. მოწყობილობის მხარე მოიცავს N- მოდულებს, რომლებიც ნაწილდება მთელ ტერიტორიაზე და აქტიურად უწყობს ხელს სერვერის მონაცემებს.

სერვერის მხარე:

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

კლიენტის/მომხმარებლის მხარე:

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

მარაგები

  • NodeMCU (ESP8266-12E)
  • DHT11 (ტენიანობის და ტემპერატურის სენსორი)
  • BMP180 (წნევის და ტემპერატურის სენსორი)
  • MQ-135 (ჰაერის ხარისხის ინდექსის სენსორი)
  • USB კაბელი (პროგრამის ასატვირთად)
  • 5 ვოლტიანი კვების წყარო
  • კონდენსატორები (სურვილისამებრ: განთავსდება ელექტროგადამცემი ხაზის პარალელურად)
  • Arduino IDE (პროგრამის გამართვისა და ატვირთვისთვის)
  • POSTMAN პროგრამა (სურვილისამებრ: API გამართვისთვის)
  • ვებსაიტი (PHP და MySQL სერვერის მასპინძლობისთვის)

ნაბიჯი 1: შეაერთეთ ყველა კომპონენტი და ატვირთეთ პროგრამა NodeMCU– ში

შეაერთეთ ყველა კომპონენტი და ატვირთეთ პროგრამა NodeMCU- ში
შეაერთეთ ყველა კომპონენტი და ატვირთეთ პროგრამა NodeMCU- ში
შეაერთეთ ყველა კომპონენტი და ატვირთეთ პროგრამა NodeMCU- ში
შეაერთეთ ყველა კომპონენტი და ატვირთეთ პროგრამა NodeMCU- ში

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

მას შემდეგ, რაც შედუღების სამუშაოები დასრულდება, ატვირთეთ ფაილი "code.c".

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

კოდის მახასიათებლები:

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

რწმუნებათა სიგელების კონფიგურაციის შემდეგ, NodeMCU ამოწმებს EEPROM– ს რწმუნებათა სიგნალებს და უკავშირდება EEPROM– ში არსებულ WiFi სერთიფიკატებს.

WiFi– სთან წარმატებით დაკავშირების შემდეგ, NodeMCU იწყებს მონაცემების ატვირთვას სერვერზე დროის ყოველ „x“ინტერვალში, მონაცემები მოიცავს ამინდის მონაცემებს, მოდულის MAC მისამართს, ფირმის ვერსიას, მოწყობილობის გეოგრაფიულ მდებარეობას.

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

Watchdog Timer: ატლასტი უნდა არსებობდეს გზა ადამიანის ყოველგვარი ჩარევის გარეშე გამოჯანმრთელების შემთხვევაში, თუ ის ჩერდება ან ავარია. ამის მიღწევა შესაძლებელია Watchdog ტაიმერის გამოყენებით. ეს მუშაობს შემდეგნაირად: არსებობს შეწყვეტის ქვე-რუტინა, რომელიც მუშაობს ყოველ წამს. ISR ყოველ ჯერზე ზრდის მრიცხველს და ამოწმებს მიაღწია თუ არა მრიცხველმა მაქსიმალურ რაოდენობას. მას შემდეგ, რაც მრიცხველი მიაღწევს მაქსიმალურ მნიშვნელობას, მოდული გადატვირთულია ვარაუდით, რომ ის ჩამოვარდა. ნორმალური მუშაობისას, მრიცხველი ყოველთვის გადატვირთულია სანამ მიაღწევს მაქსიმალურ რაოდენობას.

ნაბიჯი 2: SQL სერვერის კონფიგურაცია

SQL სერვერის კონფიგურაცია
SQL სერვერის კონფიგურაცია

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

შენიშვნა: ფაილის გადარქმევა ".txt" - დან ".sql" - ში.

ნაბიჯი 3: ფაილის სერვერის კონფიგურაცია

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

ვინაიდან Instructable არ იძლევა PHP ფაილების ატვირთვის საშუალებას, მე ფაილები გადავარქვი ".txt" - ში.

შენიშვნა: გთხოვთ გადაარქვათ ფაილების გაფართოებას ".php". ასევე არ დაგავიწყდეთ "config.php" ფაილის რწმუნებათა სიგელის შეცვლა.

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

მე მოგაწვდით მოკლე ინფორმაციას PHP ფაილების შესახებ.

db_config.php:

ამ ფაილში ინახება ყველა რწმუნებათა სიგელი SQL სერვერთან დასაკავშირებლად.

db_connect:

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

insert.php:

NodeMCU ამ PHP ფაილს უწოდებს სერვერზე მონაცემების ატვირთვას GET მეთოდის გამოყენებით. ეს ფაილი ასევე პასუხისმგებელია SQL სერვერზე იგივე მონაცემების შესანახად.

retrieve.php:

მომხმარებელი/კლიენტი ამ PHP- ს ეძახის GET მეთოდით. სერვერი ითვლის მომხმარებლის და ყველა მოდულის მანძილს. შემდეგ უახლოესი მოდულის მონაცემები იგზავნება როგორც პასუხი კლიენტზე JSON/XML ფორმატში, კლიენტის მიერ სასურველი.

update.php:

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

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

ნაბიჯი 4: მომხმარებლის დოკუმენტაცია

მომხმარებლის დოკუმენტაცია
მომხმარებლის დოკუმენტაცია
მომხმარებლის დოკუმენტაცია
მომხმარებლის დოკუმენტაცია

შესავალი:

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

Სანამ დაიწყებ:

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

ამინდის მონაცემების მოთხოვნები:

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

ამინდის API მოთხოვნა იღებს შემდეგ ფორმას:

example.com/retrieve.php?lat=25.96446&lon=53.9443&format=json

სადაც გამომავალი ფორმატი (ფორმატი) შეიძლება იყოს რომელიმე შემდეგი მნიშვნელობიდან:

  • JSON (რეკომენდებულია), მიუთითებს JavaScript Object Notation- ში (JSON); ან
  • XML, მიუთითებს გამომავალს XML- ში, გახვეული კვანძში.

მოთხოვნის პარამეტრები:

როგორც სტანდარტულია ყველა URL– ში, პარამეტრები გამოყოფილია ampersand (&) სიმბოლოს გამოყენებით. ქვემოთ მოცემულია პარამეტრების სია და მათი შესაძლო მნიშვნელობები.

საჭირო პარამეტრები:

  • lat: წარმოადგენს ადგილმდებარეობის განედს საძიებლად. (მაგ. lat = 19.56875)
  • ლონ: წარმოადგენს ადგილის გრძედს საძიებლად. (მაგ. ლონ = 72.97568)

არჩევითი პარამეტრები:

ფორმატი: განსაზღვრავს ამინდის მონაცემების პასუხის გამომავალი ფორმატს. ეს შეიძლება იყოს JSON ან XML. ნაგულისხმევი არის JSON. (მაგ. ფორმატი = json ან ფორმატი = xml)

ამინდის პასუხები:

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

  • წარმატება: მნიშვნელობა, რომელიც მიუთითებს პასუხის სტატუსზე.

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

    • ტემპერატურა: ტემპერატურის მონაცემები.
    • hum: ტენიანობის არსებობის მონაცემები.
    • pres: აბსოლუტური წნევის მონაცემები.
    • aqi: არსებული ჰაერის ხარისხის ინდექსი.

ორივე ფორმატის პასუხების მაგალითები ჩანს სურათებში.

ნაბიჯი 5: მოდულის დაყენება

მოდულის დაყენება
მოდულის დაყენება
მოდულის დაყენება
მოდულის დაყენება

იქმნება წვდომის წერტილი და ვებ – გვერდი განთავსებულია IP მისამართზე (ნაგულისხმევი: 192.168.4.1) მოწყობილობის მენეჯერის/მომხმარებლისგან სერთიფიკატების მისაღებად პირველი ჩატვირთვისას ან თუ მოდული ვერ პოულობს უკვე შენახულ მონაცემებს EEPROM

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

მას შემდეგ რაც შეიტანთ ყველა დეტალს, დააწკაპუნეთ ღილაკზე "SEND" და შემდეგ ყველა სერთიფიკატი ჩაწერილია მოდულის EEPROM- ში.

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

ნაბიჯი 6: ახლა დროა შევიტანოთ მონაცემები ღრუბელში

ახლა დროა შევიტანოთ მონაცემები ღრუბელში
ახლა დროა შევიტანოთ მონაცემები ღრუბელში
ახლა დროა შევიტანოთ მონაცემები ღრუბელში
ახლა დროა შევიტანოთ მონაცემები ღრუბელში

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

ის უწოდებს "insert.php" - ს, როგორც API ზარს, ყველა პარამეტრის გავლით GET მეთოდით გასაგზავნად.

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

if (isset ($ _ GET ['temp']) && isset ($ _ GET ['hum']) && isset ($ _ GET ['pres']) && isset ($ _ GET ['aqi']) && isset ($ _ GET ['mac']) && isset ($ _ GET ['lat']) && isset ($ _ GET ['lon']))) 2. {3. // მთავარი პროგრამა 4.}

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

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

ნაბიჯი 7: ჰაერის (OTA) განახლება

საჰაერო (OTA) განახლება
საჰაერო (OTA) განახლება

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

ახალი განახლების შესამოწმებლად, მოდული იძახებს "update.php" - ს MAC მისამართის გაგზავნით მოთხოვნის სათაურში. სერვერი ამოწმებს აქვს თუ არა ამ კონკრეტულ MAC მისამართს რაიმე ახალი განახლება, თუ კი, ის საპასუხოდ აგზავნის უახლესი ფირმის ორობითი ფაილს.

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

ნაბიჯი 8: როგორ შეუძლია მომხმარებელს/კლიენტს წვდომა მონაცემებზე…

როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…
როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…
როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…
როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…
როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…
როგორ შეუძლია მომხმარებელს/კლიენტს მონაცემებზე წვდომა…

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

სანიმუშო მოთხოვნა მზადდება POSTMAN ინსტრუმენტის გამოყენებით, API– ს მუშაობის შესამოწმებლად.

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

var url = "https://example.com/retrieve.php?lat=19.044848&lon=72.8464373";; ფუნქცია httpGet (theUrl) {var xmlHttp = ახალი XMLHttpRequest (); xmlHttp.open ("GET", theUrl, false); // ყალბი სინქრონული მოთხოვნისათვის xmlHttp.send (null); დაბრუნება xmlHttp.responseText; } var myVar = httpGet (url); var obj = JSON.parse (myVar); document.getElementById ("aqi"). innerHTML = obj.data [0].aqi; document.getElementById ("ტემპერატურა"). innerHTML = Math.round (obj.data [0].temp) + "° C"; document.getElementById ("temp"). innerHTML = Math.round (obj.data [0].temp) + "° C"; document.getElementById ("ტენიანობა"). innerHTML = Math.round (obj.data [0].hum) + "%"; document.getElementById ("წნევა"). innerHTML = Math.round (obj.data [0].pres) + "mb";

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

შენიშვნა: შეცვალეთ ფაილის გაფართოება ".html".

ნაბიჯი 9: ამ პროექტის შეზღუდვები

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

ნაბიჯი 10: შემდგომი გაუმჯობესება, რაც შეიძლება განხორციელდეს ამ პროექტში

  • მოდულის სიზუსტე შეიძლება კიდევ უფრო გაუმჯობესდეს სენსორების სპეციალურად მორგებით კონკრეტული მიზნის ნაცვლად, ბაზარზე არსებული ზოგადი მოდულის გამოყენების ნაცვლად.
  • მოდულის შეცვლა შესაძლებელია უფრო დამოუკიდებლად მუშაობისთვის სპეციალური ჩიპის გამოყენებით, რომელიც უსადენოდ აკავშირებს Cell-Tower– ებს მონაცემების გასაგზავნად, რაც აუმჯობესებს ხარვეზის ტოლერანტობას.
  • მზის პანელი და ბატარეის სისტემა შეიძლება გამოყენებულ იქნას ESP ღრმა ძილის რეჟიმთან ერთად, რითაც გააუმჯობესებს ენერგიის ეფექტურობას და უფრო დამოუკიდებელს ხდის გარე კვების წყაროსგან.
  • POST შეიძლება გამოყენებულ იქნას მონაცემების გასაგზავნად ავტორიზაციის მექანიზმით, როგორიცაა ციკლური კოდების გამოყენება მონაცემთა ყოველი გადაცემისათვის.
  • NodeMCU- ის ნაცვლად, რომელიც არის პროტოტიპების დაფა, ჩვენ შეგვიძლია გამოვიყენოთ მასობრივი წარმოების პერსონალური მიკროკონტროლერი, რომელიც არა მხოლოდ ამცირებს ღირებულებას, არამედ საუკეთესოდ იყენებს სისტემის რესურსებს.
  • Google- ის გეოლოკაციის API- სთან და ნებისმიერ ღია WIFI- თან დაკავშირებასთან ერთად, მოდულს შეუძლია მისი კონფიგურაციის გარეშეც იმუშაოს; მზად არის გადასცეს მონაცემები ქარხნიდან ყოველგვარი დაყენების გარეშე.

ნაბიჯი 11: რამდენიმე სიტყვა აუდიტორიისთვის

რამდენიმე სიტყვა მაყურებლისთვის
რამდენიმე სიტყვა მაყურებლისთვის

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

თუ თქვენ გჭირდებათ რაიმე დახმარება ამ პროექტის ან მსგავსი რამის შესაქმნელად, უბრალოდ დამიკავშირდით [email protected]– ზე, ან შეგიძლიათ დატოვოთ კომენტარი, როგორც ყოველთვის. მე შევეცდები დაგეხმაროთ ბიჭებო, როგორც ჩემი შესაძლებლობები.

Გმადლობთ!!

გირჩევთ: