Სარჩევი:

როგორ გამოვიყენოთ Bluetooth (BLE) ESP32– ით: 3 ნაბიჯი
როგორ გამოვიყენოთ Bluetooth (BLE) ESP32– ით: 3 ნაბიჯი

ვიდეო: როგორ გამოვიყენოთ Bluetooth (BLE) ESP32– ით: 3 ნაბიჯი

ვიდეო: როგორ გამოვიყენოთ Bluetooth (BLE) ESP32– ით: 3 ნაბიჯი
ვიდეო: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, სექტემბერი
Anonim

#####ᲨᲔᲜᲘᲨᲕᲜᲐ#####

ამ ინსტრუქციებში ნაჩვენები მეთოდი ძველი და მოძველებულია. უყურეთ ამ ვიდეოს უახლესი მეთოდისთვის.

###############

მიუხედავად იმისა, რომ ESP32 გამოირჩევა ფუნქციების ფართო ჩამონათვალით (ვიკიპედია), ყველაზე დიდი თვისება, რომელიც თვალს იპყრობს არის ჩაშენებული bluetooth v4.2, BLE მხარდაჭერით. მაგრამ ეს განცხადება შეიძლება შეცდომაში შეიყვანოს, სანამ ტექნიკა არსებობს, Bluetooth– ის გამოყენების პროგრამული უზრუნველყოფა აკლია. (დამუშავების პროცესშია)

მათთვის, ვინც არ იცის რა არის BLE, ის ნიშნავს Bluetooth Low Energy- ს. ეს არის bluetooth პროტოკოლი, რომელიც მნიშვნელოვნად ამცირებს ენერგიის მოხმარებას "კლასიკურ" Bluetooth- თან შედარებით.

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

რამდენიმე უარის თქმა…

რამდენიმე საყურადღებო რამ უნდა აღვნიშნო სანამ ამ სახელმძღვანელოს შემდგომ გააგრძელებ..

შენიშვნა 1: როდესაც მე ვამბობ, რომ Bluetooth მხარდაჭერა ჯერ კიდევ არ არის, ვგულისხმობ arduino განვითარების გარემოში.

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

შენიშვნა 2: მეთოდი, რომელსაც მე ვიყენებ, ძალიან გამოსავალია და არა ის, თუ როგორ იდეალურად უნდა მუშაობდეს BLE. ბიბლიოთეკა მხარს უჭერს სერვისების შექმნას BLE– ში არ არის არდუინოს გარემოსთვის.

ერთადერთი რისი გაკეთებაც საიმედოდ შეგიძლიათ შექმნათ შუქურა, რომელიც აქვეყნებს მის სახელს. YouTube- ის კომენტარმა ძალიან ელეგანტურად თქვა: "LOL, სასტიკი გარჩევა. მაგრამ რისი გაკეთება შეგიძლია?"

შენიშვნა 3: ერთადერთი სახის მონაცემები, რომელთა გაგზავნა შეგიძლიათ არის სტრიქონი.

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

ნაბიჯი 1: აგების მაგალითი

Image
Image
მაგალითი აშენება
მაგალითი აშენება
მაგალითი აშენება
მაგალითი აშენება
მაგალითი აშენება
მაგალითი აშენება

თუ თქვენ უბრალოდ აქ ხართ ახსნა -განმარტებისათვის, შეგიძლიათ გამოტოვოთ ეს ნაბიჯი, მაგრამ მისი გავლა შეიძლება მოგცეს ცოტა მეტი სიცხადე..

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

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

ერთადერთი აპარატურა, რაც გჭირდებათ არის ESP32 დაფა და ციფრული ტემპერატურის სენსორი. ჩემი დაფა მხარს უჭერს გარე ბატარეას, ასე რომ, მე ვიყენებ 3.7 ვ Li-po- ს, რომელიც ამოვიღე ძველი მოწყობილობიდან, რათა ეს პროექტი პორტატული იყოს.

ტექნიკა

ტემპერატურის სენსორის კავშირი მარტივია. წითელი მავთული უკავშირდება 3.3 ვ -ს, შავი უკავშირდება მიწას (gnd), ყვითელი უკავშირდება GPIO 2 -ს, რომელიც ჩემს დაფაზე აღინიშნება როგორც D9. შეაერთეთ 4.7k ohm რეზისტორი წითელ და ყვითელ მავთულს შორის. მე არ ვიყენებ რეზისტორს, სამაგიეროდ მე ვიყენებ 3 პინიანი დანამატის ტერმინალს, რომელსაც მოყვა ჩემი სენსორი. მას აქვს ჩამონტაჟებული გამწევი რეზისტორი.

Li-po ნამდვილად უნდა იყოს დაკავშირებული JST კონექტორის გამოყენებით, მაგრამ მე არ შემიძლია შევიწუხო მისი ყიდვა, ასე რომ, მე შევიჭერი რამდენიმე (მდედრობითი და მდედრობითი) ჯუმბერის კაბელი კონექტორში და მეორე წყვილი შევაერთე ბატარეის ტერმინალებს. ეს ქმნის საიმედო კავშირს და დროებით დენის გადამრთველს.

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

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

თუ თქვენ ჯერ არ გაქვთ arduino IDE დაინსტალირებული, გადადით ამ ბმულზე, რომ გადმოწეროთ. სტანდარტულად arduino პროგრამული უზრუნველყოფა არ შეიცავს დაფის განმარტებებს სხვადასხვა ESP32 დაფებისთვის. რათა მათ გადავიდნენ ამ ბმულზე და ჩამოტვირთონ ფაილები zip- ში. თქვენ უნდა მოხსნათ ისინი ამ ადგილას:

C:/მომხმარებლები // დოკუმენტები/Arduino/ტექნიკა/espserrif/ESP32

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

ახლა თუ დაიწყებთ arduino პროგრამულ უზრუნველყოფას და გადადით ინსტრუმენტები-> დაფებზე, ქვემოთ გადახვევისას უნდა ნახოთ სხვადასხვა ESP32 დაფები.

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

ახლა თქვენ შეგიძლიათ გადმოწეროთ და გახსნათ ამ საფეხურზე თანდართული კოდი (temperature-example.ino).

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

Დაბრუნების;

სად არის ტემპერატურა, რომელიც შეიცავს ტემპერატურას.

შეაერთეთ დაფა, შეარჩიეთ სწორი დაფა და პორტი ინსტრუმენტების ქვეშ და დააჭირეთ ატვირთვას.

თუ კოდი უარს ამბობს ატვირთვაზე, გათიშეთ სენსორი და დააკავშირეთ GPIO 0 მიწასთან. ატვირთვის შემდეგ კავშირების აღდგენა.

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

Android აპლიკაცია

ბოდიში iPhone მომხმარებლებისთვის (… ნამდვილად არა).

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

თუ თქვენ მიიღებთ შეცდომის შეტყობინებას "რეკლამა არ არის მხარდაჭერილი", დააწკაპუნეთ OK და იგნორირება გაუკეთეთ მას, მაგრამ თუ მიიღებთ შეტყობინებას, რომ "BLE არ არის მხარდაჭერილი", მაშინ თქვენს ტელეფონს არ აქვს Bluetooth 4.0 ან უფრო მაღალი და ვერ შეძლებს გაშვებას აპლიკაცია

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

შესაძლო შეცდომები:

  • -1000:: ეს ნიშნავს, რომ თქვენმა მოწყობილობამ ვერ იპოვა ESP. დარწმუნდით, რომ Bluetooth ჩართულია და სცადეთ გადატვირთოთ ESP.
  • SNA:: ეს ნიშნავს, რომ თქვენი ტელეფონი იღებს მონაცემებს ESP– დან, მაგრამ ESP– მა თავად ვერ იპოვა ტემპერატურის სენსორი GPIO 2. დარწმუნდით, რომ კავშირები დაცულია, ნახეთ იყენებთ თუ არა სწორი მნიშვნელობის რეზისტორს. ორმაგად შეამოწმეთ დაფის სქემა, რომ თქვენ ხართ დაკავშირებული GPIO 2 -თან და არა D2- ით მონიშნული პინი.

ნაბიჯი 2: ახსნა

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

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

ბიბლიოთეკები (ESP32– ისთვის), რომლებიც ამჟამად ჩვენთვის ხელმისაწვდომია, გვაძლევს საშუალებას შევქმნათ შუქურა, რომელსაც სხვები აღმოაჩენენ, მაგრამ ეს არის მისი მოცულობა. ჩვენ არ შეგვიძლია შევქმნათ სერვისები და არც რაიმე მოწყობილობა შეიძლება დაუკავშირდეს მას.

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

ble.begin (beaconMsg); // beaconMsg არის რეკლამირებული სახელი

ჩვენ ვიყენებთ SimpleBLE ბიბლიოთეკას, რომ შევქმნათ შუქურა მისი სახელწოდებით ESP ფორმატში. სადაც ‘ESP’ ყოველთვის უცვლელი რჩება სახელის დასაწყისში და შეიცვლება getValue () ფუნქციით დაბრუნებული უახლესი მონაცემებით ყოველ 100 მილიწამში.

float getValue () {დაბრუნების sensorValue;}

ანდროიდის აპლიკაცია ეძებს BLE მოწყობილობის სახელებს, დაწყებული "ESP" - ით, ერთხელ ნაპოვნი, ის ყოფს სახელს და მხოლოდ მონაცემებს აჩვენებს ბოლოდან.

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

ნაბიჯი 3: დასკვნა

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

დიდი მადლობა DFRobot.com– ს, რომ გამომიგზავნა ეს პროდუქტები:

  • ESP32 FireBeetle დაფა
  • FireBeetle Expantion Shield
  • DS18B20 ტემპერატურის სენსორი

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

თქვენ შეგიძლიათ ნახოთ პროექტის ვიდეო: YouTube

გირჩევთ: