Სარჩევი:

Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო: 4 ნაბიჯი
Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო: 4 ნაბიჯი

ვიდეო: Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო: 4 ნაბიჯი

ვიდეო: Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო: 4 ნაბიჯი
ვიდეო: 2. შესავალი პროგრამირებაში და Arduino-ს დაპროგრამება( C++ ენა) 2024, ივლისი
Anonim
Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო
Arduino- ს დაპროგრამება ჰაერში (OTA) - ამება არდუინო

ბევრია Wi-Fi მიკროკონტროლი ბაზარზე, ბევრი შემქმნელი სარგებლობს თავისი Wi-Fi მიკროკონტროლის პროგრამირებით Arduino IDE გამოყენებით. თუმცა, ერთ – ერთი ყველაზე მაგარი თვისება, რომელსაც Wi-Fi მიკროკონტროლერი უნდა გვთავაზობდეს, იგნორირებულია, ეს არის პროგრამირება და თქვენი კოდის დისტანციურად და უკაბელო ატვირთვა OTA (Over-The-Air) ფუნქციის გამოყენებით.

ამ ინსტრუქციაში, მე გაჩვენებთ თუ როგორ უნდა დააყენოთ OTA თქვენს Wi-Fi მიკროკონტროლერზე ყველგან გავრცელებული Arduino IDE გამოყენებით Ameba Arduino Wi-Fi მიკროკონტროლერზე!

მარაგები

ამება არდუინო x 1

ნაბიჯი 1: OTA

OTA
OTA

OTA (Over-The-Air) ეხება ინტერნეტით განახლების ონლაინ მექანიზმს.

Arduino IDE გთავაზობთ OTA მახასიათებელს, რომელიც მიჰყვება სამუშაოს მიმდინარეობას ზემოთ მოცემულ ფიგურაში.

(i) Arduino IDE ეძებს mDNS– ის საშუალებით მოწყობილობებს Arduino IDEOTA სერვისით ადგილობრივ ქსელში.

(ii) ვინაიდან mDNS სერვისი მუშაობს ამებაზე, ამება პასუხობს mDNS ძებნას და ხსნის კონკრეტულ TCP პორტს დასაკავშირებლად.

(iii) მომხმარებელი ავითარებს პროგრამას Arduino IDE– ში. დასრულების შემდეგ, აირჩიეთ ქსელის პორტი.

(iv) დააწკაპუნეთ ატვირთვაზე. შემდეგ Arduino IDE აგზავნის OTA სურათს ამებას TCP საშუალებით, ამება ინახავს სურათს კონკრეტულ მისამართზე და აყენებს ჩატვირთვის ვარიანტს ამ სურათის ჩატვირთვის შემდეგ დროს.

სამუშაო ნაკადი სამი ნაწილისგან შედგება: mDNS, TCP და OTA გამოსახულების პროცესი. MDNS– თან დაკავშირებული დეტალები აღწერილია mDNS სამეურვეოში. TCP სოკეტის პროგრამირება გამოიყენება გამოსახულების გადასაცემად და უკვე მოცემულია OTA API– ში.

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

ნაბიჯი 2: ამება ფლეშ მეხსიერების განლაგება

ამება ფლეშ მეხსიერების განლაგება
ამება ფლეშ მეხსიერების განლაგება

ფლეშ მეხსიერების ზომა Ameba RTL8195A არის 2 მბ, მერყეობს 0x00000000 -დან 0x00200000 -მდე. ამასთან, Ameba RTL8710 ფლეშ მეხსიერების ზომაა 1 მბ. სხვადასხვა დაფების გამოყენებისათვის, ჩვენ ვივარაუდოთ, რომ ფლეშ მეხსიერების განლაგება არის 1 მბ.

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

- ჩატვირთვის სურათი

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

- ნაგულისხმევი სურათი 2

დეველოპერის კოდი მოთავსებულია ამ ნაწილში, მისამართი იწყება 0x0000B000– დან. პირველი 16 ბაიტი არის გამოსახულების სათაური, 0x0000B008 ~ 0x0000B00F შეიცავს ხელმოწერას, რომელიც გამოიყენება სურათის მოქმედების დასადასტურებლად. ხელმოწერის ველს აქვს ორი სწორი მნიშვნელობა ახალი სურათის ძველი სურათისგან განასხვავებლად.

- OTA სურათი

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

კოდის გარდა, არსებობს მონაცემთა ბლოკები:

- სისტემის მონაცემები

სისტემის მონაცემთა ბლოკი იწყება 0x00009000 -დან. OTA– სთან დაკავშირებული ორი მონაცემი არსებობს:

1. OTA მისამართი : 4 ბაიტი მონაცემები დაწყებული 0x00009000. ის ეუბნება OTA სურათის მისამართს. თუ OTA მისამართის მნიშვნელობა არასწორია (ანუ 0xFFFFFFF), ფლეშ მეხსიერებაში OTA გამოსახულების სწორად ჩატვირთვა შეუძლებელია.

2. აღდგენის პინი : 4 ბაიტი მონაცემებით დაწყებული 0x00009008, აღდგენის პინი გამოიყენება იმის დასადგენად, თუ რომელი სურათი (ნაგულისხმევი სურათი 2 ან OTA სურათი) უნდა შესრულდეს, როდესაც ორივე სურათი მართებულია. თუ აღდგენის პინის მნიშვნელობა არასწორია (ანუ 0xFFFFFFF), ახალი სურათი ნაგულისხმევად შესრულდება.

სისტემის მონაცემები წაიშლება, როდესაც ჩვენ ამტვირთავთ პროგრამას ამებაში DAP– ის საშუალებით. ანუ, OTA მისამართი წაიშლება და ამება დაადგენს, რომ არ არსებობს OTA სურათი.

- დაკალიბრების მონაცემები this პერიფერიული დაკალიბრების მონაცემები მოთავსებულია ამ ბლოკში. ჩვეულებრივ, ეს მონაცემები არ უნდა წაიშალოს.

ნაბიჯი 3: ჩატვირთვის ნაკადი

ჩატვირთვის ნაკადი
ჩატვირთვის ნაკადი

ზემოთ გამოსახულიდან, ჩვენ განვიხილავთ შემდეგ სცენარებს: (i) OTA არ გამოიყენება, გამოიყენეთ DAP პროგრამის ასატვირთად:

ამ სიტუაციაში, ჩამტვირთავი ამოწმებს ნაგულისხმევი სურათის ხელმოწერას და OTA მისამართს. მას შემდეგ, რაც OTA მისამართი ამოღებულია, ნაგულისხმევი სურათი შეირჩევა შესასრულებლად.

(ii) OTA სურათი გადადის ამებაში, OTA მისამართი არის სწორად მითითებული, აღდგენის პინი არ არის მითითებული

ამებამ მიიღო განახლებული სურათი OTA– ს საშუალებით, ნაგულისხმევი სურათის ხელმოწერა იქნება ძველი ხელმოწერა.

ჩამტვირთავი ამოწმებს ნაგულისხმევი სურათის 2 ხელმოწერას და OTA მისამართს. ის აღმოაჩენს, რომ OTA მისამართი შეიცავს მოქმედ OTA სურათს. ვინაიდან აღდგენის პინი არ არის მითითებული, ის ირჩევს ახალ სურათს (ანუ OTA სურათს) შესასრულებლად.

(iii) OTA სურათი გადადის ამებაში, OTA მისამართი სწორად არის მითითებული, აღდგენის პინი მითითებულია

ამებამ მიიღო განახლებული სურათი OTA– ს საშუალებით, ნაგულისხმევი სურათის ხელმოწერა იქნება ძველი ხელმოწერა.

ჩამტვირთავი ამოწმებს ნაგულისხმევი სურათის 2 ხელმოწერას და OTA მისამართს. ის აღმოაჩენს, რომ OTA მისამართი შეიცავს მოქმედ OTA სურათს. შემდეგ შეამოწმეთ აღდგენის პინის მნიშვნელობა. თუ აღდგენის პინი უკავშირდება LOW- ს, ახალი სურათი (ანუ OTA სურათი) შესრულდება. თუ აღდგენის პინი დაკავშირებულია HIGH- თან, ძველი სურათი (ანუ ნაგულისხმევი სურათი 2) შესრულდება.

ნაბიჯი 4: მაგალითი

მაგალითი
მაგალითი
მაგალითი
მაგალითი
მაგალითი
მაგალითი
მაგალითი
მაგალითი

OTA ფუნქციის გამოსაყენებლად, გთხოვთ განაახლოთ DAP firmware ვერსია> 0.7 (v0.7 არ შედის). ქარხნის ნაგულისხმევი DAP firmware არის ვერსია 0.7. გთხოვთ მიჰყევით ინსტრუქციას DAP ფირმის განახლებისთვის:

გახსენით მაგალითი: "ფაილი" -> "მაგალითები" -> "AmebaOTA" -> "ota_basic"

შეავსეთ ssid და პაროლის ინფორმაცია ნიმუშის კოდში ქსელის კავშირისთვის.

არსებობს რამდენიმე პარამეტრი, რომელიც დაკავშირებულია OTA– სთან:

§ MY_VERSION_NUMBER first პირველ ვერსიაში ჩვენ უნდა დავაყენოთ OTA მისამართი და აღდგენის პინი. ვინაიდან ამჯერად ჩვენ ვტვირთავთ USB– ით არის პირველი ვერსია, ჩვენ არ გვჭირდება ამ მნიშვნელობის შეცვლა.

§ OTA_PORT : Arduino IDE იპოვის ამებას mDNS– ის საშუალებით. ამება ეუბნება Arduino IDE– ს, რომ ის ხსნის TCP პორტს 5000, რათა დაელოდოს OTA სურათს.

§ RECOVERY_PIN recovery აღდგენისთვის გამოყენებული პინის კონფიგურაცია. ჩვენ აქ ვიყენებთ პინ 18 -ს.

შემდეგ ჩვენ ვიყენებთ USB ატვირთვის პროგრამას ამება. დაწკაპეთ ინსტრუმენტები -> პორტები, შეამოწმეთ სერიული პორტი გამოსაყენებლად

გთხოვთ გაითვალისწინოთ, რომ Arduino IDE იყენებს ერთ პორტს პროგრამის ასატვირთად და გამომავალი ბლოგისთვის. იმის თავიდან ასაცილებლად, რომ ჟურნალი არ გამოვიდეს OTA– ს გამოყენებისას, ჩვენ ვიყენებთ სხვა სერიული პორტის ტერმინალს (მაგ., ტერა ტერმინი ან პუტი) სერიული მონიტორის ნაცვლად ჟურნალის შეტყობინების საყურებლად.

შემდეგ დააჭირეთ ატვირთვას და დააჭირეთ გადატვირთვის ღილაკს.

ჟურნალის შეტყობინებაში:

1. "===== შეიყვანეთ სურათი 1 ====" და "შეიყვანეთ სურათი 2 ====" შორის, შეგიძლიათ იპოვოთ "Flash Image 2: Addr 0xb000". ეს ნიშნავს, რომ ამება გადაწყვეტს ჩატვირთვას ნაგულისხმევი სურათი 2 -დან 0xb000.

2. "შეიყვანეთ სურათი 2 ====" შემდეგ, შეგიძლიათ იპოვოთ "ეს არის ვერსია 1". ეს არის ჟურნალის შეტყობინება, რომელსაც ჩვენ ვამატებთ ესკიზში.

3. მას შემდეგ რაც Ameba უკავშირდება AP- ს და მიიღებს IP მისამართს "192.168.1.238", ის ააქტიურებს mDNS- ს და ელოდება კლიენტს.

შემდეგი, ჩვენ ვცვლით "MY_VERSION_NUMBER" - ს 2 -მდე.

დააწკაპუნეთ "ინსტრუმენტები" -> "პორტი", თქვენ შეგიძლიათ ნახოთ "ქსელის პორტების" სია. იპოვნეთ "MyAmeba at 192.168.1.238 (Ameba RTL8195A)", MyAmeba არის mDNS მოწყობილობის სახელი, რომელიც ჩვენ დავაყენეთ ნიმუშის კოდში, ხოლო "192.168.1.238" არის Ameba- ს IP.

თუ თქვენ ვერ პოულობთ ამების ქსელის პორტს, გთხოვთ დაადასტუროთ:

- თქვენი კომპიუტერი და ამება ერთსა და იმავე ლოკალურ ქსელშია?

- შეეცადეთ გადატვირთოთ Arduino IDE.

- შეამოწმეთ ჟურნალის შეტყობინება სერიულ მონიტორში, რომ ნახოთ არის თუ არა ამება წარმატებით დაკავშირებული AP– თან.

შემდეგ დააჭირეთ ატვირთვას. ამჯერად პროგრამა აიტვირთება TCP საშუალებით. ჟურნალის ტერმინალში შეგიძლიათ ნახოთ კლიენტის კავშირის ინფორმაცია.

როდესაც OTA სურათი წარმატებით გადმოწერილია, ამება გადატვირთავს და შემდეგ ჟურნალი ნაჩვენები იქნება ჟურნალის ტერმინალში.

- "===== შეიყვანეთ სურათი 1 ====" და "შეიყვანეთ სურათი 2 ====" შორის, შეგიძლიათ ნახოთ ჟურნალის შეტყობინება "Flash Image 2: Addr 0x80000". ეს ნიშნავს, რომ ამება გადაწყვეტს ჩატვირთვას OTA სურათიდან 0x80000.

- "შეიყვანეთ სურათი 2 ====" შემდეგ, ჟურნალი "ეს არის ვერსია 2" არის შეტყობინება, რომელსაც ჩვენ ვამატებთ ესკიზში.

OTA სურათის ამებაზე გადმოტვირთვის შემდეგ წინა სურათზე აღდგენისათვის გთხოვთ დააკავშიროთ ესკიზში დაყენებული აღდგენის პინი (ანუ პინი 18) HIGH (3.3V) და დააჭირეთ გადატვირთვას.

შემდეგ ნაგულისხმევი სურათი 2 გამოჩნდება ჩატვირთვისას. გაითვალისწინეთ, რომ გადმოწერილი OTA სურათი არ წაიშლება, მას შემდეგ რაც აღდგენის პინი გათიშულია HIGH– დან, OTA სურათი შესრულდება.

ჩვენ შევაჯამებთ განვითარების ნაკადს OTA– ს გამოყენებით შემდეგ ფიგურაში.

გირჩევთ: