Мазмуну:

ESP32ге киришүү: 10 кадам
ESP32ге киришүү: 10 кадам

Video: ESP32ге киришүү: 10 кадам

Video: ESP32ге киришүү: 10 кадам
Video: Сайт тузуу 11 кадам 2024, Ноябрь
Anonim
Image
Image
Негизги өзгөчөлүктөр
Негизги өзгөчөлүктөр

Бул макалада биз ESP8266дын агасы деп эсептеген ESP32 жөнүндө сөз кылмакчыбыз. Мага бул микроконтроллер абдан жагат, анткени анда WiFi бар. ESP бар болгонго чейин, сизде бир идея бар, эгер сизге WiFi болушу үчүн Arduino керек болсо, Wifi адаптерин сатып алуу үчүн 200 доллардан 300 долларга чейин сарптоого туура келет. Тармак кабелинин адаптери анча кымбат эмес, бирок WiFi үчүн дайыма кымбат болгон жана дагы эле кымбат. Бирок, бактыга жараша, Espressif Systems ESPти ишке киргизип, жашообузду чечүүдө.

Мага USB порту бар ушул форматтагы ESP32 жагат. Бул 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

Бул 512KB SRAMге ээ

448KB ROM өзгөчөлүктөрү

Тышкы флэш эси 32 Мб (4 мегабайт)

Пинге максималдуу ток 12мА (6мА колдонуу сунушталат)

Анда 36 GPIO бар

PWM / I2C жана SPI функциялары бар GPIO

Бул Bluetooth v4.2 BR / EDR жана BLE (Bluetooth Low Energy)

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: / Колдонуучулар / [YOUR_USER_NAME] / Документтер / Arduino / аппараттык / espressif / esp32

Эскертүү: "espressif" жана "esp32" каталогдору жок болсо, аларды кадимкидей түзүңүз.

3. Каталогду ачыңыз

C: / Колдонуучулар / [YOUR_USER_NAME] / Документтер / Arduino / аппараттык / espressif / esp32 / куралдар

"Get.exe" файлын иштетиңиз.

4. "get.exe" аяктагандан кийин, ESP32'ди сайыңыз, драйверлердин орнотулушун күтүңүз (же кол менен орнотуңуз).

Даяр, эми жөн эле "куралдар >> тактасынан" ESP32 тактасын тандап, кодуңузду түзүңүз.

6 -кадам: WiFi издөө

Бул жерде ESP-32ге жакын жеткиликтүү WiFi түйүндөрүн кантип издөөнүн мисалы, жана алардын ар биринин сигналынын күчү. Ар бир сканерлөө менен, биз дагы кайсы тармак сигналдын күчтүүрөөк экенин билебиз.

7 -кадам: Код

Биринчиден, "WiFi.h" китепканасын киргизели, биздин түзмөктүн тармак картасы менен иштөөгө уруксат берүү керек болот.

#кош "WiFi.h"

Бул жерде тармактын SSID (аты) жана сигналдын күчүн сактоо үчүн колдонула турган эки өзгөрмө бар.

String networkSSID = ""; int forceSignal = -9999;

8 -кадам: Орнотуу

Setup () функциясында, биз түзмөгүбүздүн WiFi жүрүш режимин аныктайбыз. Бул учурда, максат жеткиликтүү тармактарды издөө болгондуктан, биз түзмөгүбүздү "станция" катары иштей турган кылып конфигурациялайбыз.

void setup () {// 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 ("Тармак табылган жок") кандайдыр бир тармакты тапканыңызды текшериңиз; } else {networkSSID = ""; forceSignal = -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 (forceSignal)) {forceSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("ЭҢ МЫКТЫ СИГНАЛ ТАБЫЛГАН ЖЕЛИ: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (forceSignal); Serial.println (")"); } кечиктирүү (10); }} Serial.println ("\ n ----------------------------------------- ------------------------------------------- / n ");

// 5 секунддук интервал жаңы сканерлөөнү кечиктирүү үчүн (5000); }

"Эгерде (abs (WiFi. RSSI (i))"

Белгилей кетчү нерсе, биз abs () колдонобуз, бул функция абсолюттук маанини (б.а. терс эмес) алат. Биздин учурда биз муну салыштыруунун эң кичине маанисин табуу үчүн жасадык, анткени сигналдын интенсивдүүлүгү терс сан катары берилет жана нөлгө жакын болгон сайын сигнал жакшы болот.

10 -кадам: Файлдар

Менин бардык файлдарымды www.fernandok.com сайтынан жүктөп алыңыз

Сунушталууда: