Բովանդակություն:

ESP32- ի ներածություն. 10 քայլ
ESP32- ի ներածություն. 10 քայլ

Video: ESP32- ի ներածություն. 10 քայլ

Video: ESP32- ի ներածություն. 10 քայլ
Video: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, Նոյեմբեր
Anonim
Image
Image
ԿԱՐԵՎՈՐ մասեր
ԿԱՐԵՎՈՐ մասեր

Այս հոդվածում մենք խոսելու ենք ESP32- ի մասին, որը ես համարում եմ ESP8266- ի ավագ եղբայրը: Ինձ շատ դուր է գալիս այս միկրոկառավարիչը, քանի որ այն ունի WiFi: Ուղղակի գաղափար ունենալու համար, նախքան ESP- ի առկայությունը, եթե ձեզ անհրաժեշտ էր Arduino ՝ WiFi ունենալու համար, Wifi ադապտեր գնելու համար պետք է ծախսեիք $ 200 -ից $ 300 -ի միջև: Networkանցային մալուխի ադապտերն այդքան էլ թանկ չէ, բայց WiFi- ի համար այն միշտ եղել է և դեռ թանկ է: Բայց բարեբախտաբար, Espressif Systems- ը գործարկել է ESP- ը և լուծում է մեր կյանքը:

Ինձ դուր է գալիս այս ձևաչափով ESP32- ը, որն ունի USB պորտ: Այս NodeMCU սխեման հեշտ է շահարկել, քանի որ այն էլեկտրոնիկայի կարիք չունի: Պարզապես միացրեք մալուխը, միացրեք սարքը և ծրագրավորեք այն: Այն աշխատում է այնպես, ինչպես Arduino- ն:

Ինչևէ, այսօր մենք կխոսենք ESP32- ի ընդհանուր ասպեկտների և այն մասին, թե ինչպես կարգավորել Arduino IDE- ն `ավելի շատ տեսակի սարքեր ծրագրավորելու համար: Նաև մենք պատրաստելու ենք ծրագիր, որը որոնում է ցանցերը և ցույց է տալիս, թե որն է ավելի հզոր:

Քայլ 1: Հիմնական հնարավորությունները

Ներկառուցված WiFi- ով չիպ `ստանդարտ 802.11 B / G / N, աշխատում է 2.4-ից 2.5 ԳՀց միջակայքում

Գործողության եղանակները ՝ հաճախորդ, մուտքի կետ, կայան + մուտքի կետ

Երկակի միջուկային միկրոպրոցեսոր Tensilica Xtensa 32-բիթանոց LX6

Կարգավորելի ժամացույց ՝ 80 ՄՀց -ից մինչև 240 ՄՀց

Աշխատանքային լարումը `3.3 VDC

Այն ունի 512 ԿԲ SRAM

Առանձնահատկություններ 448KB ROM

Այն ունի 32 Մբ (4 ՄԲ) արտաքին ֆլեշ հիշողություն

Առավելագույն հոսանքը մեկ կապում `12 մԱ (խորհուրդ է տրվում օգտագործել 6 մԱ)

Այն ունի 36 GPIO

GPIO ՝ PWM / I2C և SPI գործառույթներով

Այն ունի Bluetooth v4.2 BR / EDR և BLE (Bluetooth ցածր էներգիա)

Քայլ 2. Համեմատություն ESP32- ի, ESP8266- ի և Arduino R3- ի միջև

ESP32- ի, ESP8266- ի և Arduino R3- ի միջև համեմատություն
ESP32- ի, ESP8266- ի և Arduino R3- ի միջև համեմատություն

Քայլ 3. ESP32- ի տեսակները

ESP32- ի տեսակները
ESP32- ի տեսակները

ESP32- ը ծնվել է շատ քույր ու եղբայրների հետ: Այսօր ես օգտագործում եմ ձախից առաջինը ՝ Espressif- ը, բայց կան մի քանի ապրանքանիշեր և տեսակներ, ներառյալ ներկառուցված Oled էկրանը: Այնուամենայնիվ, տարբերությունները բոլորը նույն չիպն են `Tensilica LX6, 2 Core:

Քայլ 4. WiFi NodeMCU-32S ESP-WROOM-32

WiFi NodeMCU-32S ESP-WROOM-32
WiFi NodeMCU-32S ESP-WROOM-32

Սա ESP- ի դիագրամն է, որը մենք օգտագործում ենք մեր հավաքում: Դա չիպ է, որն ունի շատ գրավիչ և ուժ: Նրանք մի քանի կապում են, որոնք դուք ընտրում եք ՝ արդյոք նրանք ցանկանում են աշխատել որպես թվային անալոգային, անալոգային թվային, կամ նույնիսկ եթե դա աշխատում է որպես թվային:

Քայլ 5: Arduino IDE- ի կազմաձևում (Windows)

Arduino IDE (Windows) կազմաձևում
Arduino IDE (Windows) կազմաձևում
Arduino IDE (Windows) կազմաձևում
Arduino IDE (Windows) կազմաձևում

Ահա թե ինչպես կարելի է կարգավորել Arduino IDE- ն, որպեսզի կարողանանք կազմել ESP32- ի համար.

1. Ներբեռնեք ֆայլերը հղման միջոցով ՝

2. Բացեք ֆայլը և պատճենեք բովանդակությունը հետևյալ ճանապարհին.

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32

Նշում. Եթե «espressif» և «esp32» գրացուցակներ չկան, պարզապես ստեղծեք դրանք նորմալ ռեժիմով:

3. Բացեք գրացուցակը

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / hardware / espressif / esp32 / tools

Գործարկեք «get.exe» ֆայլը:

4. «get.exe» - ի ավարտից հետո միացրեք ESP32- ը, սպասեք վարորդների տեղադրմանը (կամ տեղադրեք ձեռքով):

Պատրաստ է, հիմա պարզապես ընտրեք ESP32 տախտակը «գործիքներ >> տախտակում և կազմեք ձեր կոդը:

Քայլ 6: WiFi սկան

Ահա մի օրինակ, թե ինչպես կարելի է փնտրել մատչելի WiFi ցանցեր ESP-32- ի մոտակայքում, ինչպես նաև դրանցից յուրաքանչյուրի ազդանշանի ուժգնությունը: Յուրաքանչյուր սկանավորման ընթացքում մենք նաև կպարզենք, թե որ ցանցն ունի ազդանշանի լավագույն ուժը:

Քայլ 7: Կոդ

Նախ ներառենք «WiFi.h» գրադարանը, անհրաժեշտ կլինի մեզ թույլ տալ աշխատել մեր սարքի ցանցային քարտով:

#ներառել «WiFi.h»

Ահա երկու փոփոխական, որոնք կօգտագործվեն ցանցի SSID (անունը) և ազդանշանի ուժը պահելու համար:

Լարային ցանց SSID = ""; int powerSignal = -9999;

Քայլ 8: Կարգավորում

Setup () գործառույթում մենք կսահմանենք մեր սարքի WiFi վարքի ռեժիմը: Այս դեպքում, քանի որ նպատակը մատչելի ցանցերի որոնումն է, մենք կկարգավորենք մեր սարքի աշխատանքը որպես «կայան»:

void setup () {// Initialize Serial ՝ մուտք գործելու համար Serial Monitor Serial.begin (115200);

// WiFi ռեժիմի կարգավորում որպես կայան WiFi.mode (WIFI_STA); // WIFI_STA- ն կայանի ռեժիմը նշող հաստատուն է

// անջատել մուտքի կետից, եթե այն արդեն միացված է WiFi.disconnect (); ուշացում (100);

// Serial.println («Կարգավորումն ավարտված է»);}

Քայլ 9: Օղակ

Loop () գործառույթում մենք կփնտրենք առկա ցանցերը, այնուհետև կտպագրենք տեղեկամատյանը գտնված ցանցերում: Այս ցանցերից յուրաքանչյուրի համար մենք համեմատություն կանենք `գտնելու ազդանշանի ամենաբարձր ուժը:

void loop () {// Serial.println («սկան սկիզբ»); // իրականացնում է առկա ցանցերի սկանավորում

int n = WiFi.scanNetworks ();

Serial.println («Սկան կատարված է»);

// ստուգեք, արդյոք գտե՞լ եք որևէ ցանց, եթե (n == 0) {Serial.println ("networkանց չի գտնվել"); } else {networkSSID = ""; powerSignal = -9999; Serial.print (n); Serial.println ("ցանցերը գտնվեցին / n"); for (int i = 0; i <n; ++ i) {// տպել սերիական մոնիտորի վրա գտած յուրաքանչյուր ցանց `գտած Serial.print (" SSID: "); Serial.println (WiFi. SSID (i)); // ցանցի անունը (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // ազդանշանի ուժը Serial.print ("\ t / tCHANNEL:"); Serial.print ((int) WiFi.channel (i)); Serial.print ("\ t / tMAC:"); Serial.print (WiFi. BSSIDstr (i)); Serial.println ("\ n / n"); if (abs (WiFi. RSSI (i)) <abs (powerSignal)) {powerSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print («NԱՆWԱԳՈՐՎԱ ԼԱՎԱԳՈՅՆ ՍԻԳՆԱԼԻ ՀԵՏ: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (powerSignal); Serial.println (")"); } ուշացում (10); }} Serial.println ("\ n ----------------------------------------- ---------------------------------------------- / n »);

// 5 վայրկյան ընդմիջում ՝ սկանավորման նոր հետաձգում կատարելու համար (5000); }

"Եթե (abs (WiFi. RSSI (i))"

Նկատի ունեցեք, որ վերը նշված հայտարարության մեջ մենք օգտագործում ենք abs (), այս գործառույթը վերցնում է թվի բացարձակ արժեքը (այսինքն `ոչ բացասական): Մեր դեպքում մենք դա արեցինք համեմատության մեջ եղած արժեքներից ամենափոքրը գտնելու համար, քանի որ ազդանշանի ինտենսիվությունը տրվում է որպես բացասական թիվ և որքան մոտ է զրոին, այնքան ավելի լավ է ազդանշանը:

Քայլ 10: Ֆայլեր

Ներբեռնեք իմ բոլոր ֆայլերը ՝ www.fernandok.com

Խորհուրդ ենք տալիս: