Mục lục:

Giới thiệu về ESP32: 10 bước
Giới thiệu về ESP32: 10 bước

Video: Giới thiệu về ESP32: 10 bước

Video: Giới thiệu về ESP32: 10 bước
Video: Lập trình ESP32 - Bài 001: Giới thiệu, hướng dẫn cài đặt công cụ 2024, Tháng mười một
Anonim
Image
Image
Các tính năng chính
Các tính năng chính

Trong bài viết này, chúng ta sẽ nói về ESP32, cái mà tôi coi là anh trai của ESP8266. Tôi thực sự thích vi điều khiển này vì nó có WiFi. Vì vậy, bạn có một ý tưởng, trước khi ESP tồn tại, nếu bạn cần Arduino để có WiFi, bạn sẽ phải chi từ 200 đến 300 đô la để mua bộ điều hợp Wifi. Bộ chuyển đổi cho cáp mạng không đắt như vậy, nhưng đối với WiFi, nó luôn đắt và vẫn đắt. Nhưng may mắn thay, Espressif Systems đã đưa ra ESP và đang giải quyết cuộc sống của chúng tôi.

Tôi thích ESP32 với định dạng này có cổng USB. Lược đồ NodeMCU này rất dễ thao tác vì nó không cần bất kỳ thiết bị điện tử nào. Chỉ cần cắm cáp, cấp nguồn cho thiết bị và lập trình. Nó hoạt động giống như Arduino.

Dù sao, hôm nay chúng ta sẽ nói về các khía cạnh chung của ESP32 và cách cấu hình Arduino IDE để lập trình nhiều thiết bị cùng loại hơn. Ngoài ra, chúng tôi sẽ tạo một chương trình tìm kiếm mạng và hiển thị mạng nào mạnh hơn.

Bước 1: Các tính năng chính

Chip tích hợp WiFi: chuẩn 802.11 B / G / N, hoạt động trong dải tần từ 2,4 đến 2,5 GHz

Phương thức hoạt động: Máy khách, Điểm truy cập, Trạm + Điểm truy cập

Bộ vi xử lý lõi kép Tensilica Xtensa 32-bit LX6

Đồng hồ có thể điều chỉnh từ 80MHz lên đến 240MHz

Điện áp hoạt động: 3,3 VDC

Nó có SRAM là 512KB

Tính năng ROM 448KB

Nó có bộ nhớ flash ngoài 32Mb (4 megabyte)

Dòng điện tối đa trên mỗi chân là 12mA (khuyến nghị sử dụng 6mA)

Nó có 36 GPIO

GPIO với các chức năng PWM / I2C và SPI

Nó có Bluetooth v4.2 BR / EDR và BLE (Bluetooth năng lượng thấp)

Bước 2: So sánh giữa ESP32, ESP8266 và Arduino R3

So sánh giữa ESP32, ESP8266 và Arduino R3
So sánh giữa ESP32, ESP8266 và Arduino R3

Bước 3: Các loại ESP32

Các loại ESP32
Các loại ESP32

ESP32 được sinh ra với rất nhiều anh chị em. Hôm nay tôi đang sử dụng loại đầu tiên từ bên trái, Espressif, nhưng có một số thương hiệu và loại, bao gồm cả màn hình Oled được tích hợp sẵn. Tuy nhiên, sự khác biệt là tất cả cùng một chip: Tensilica LX6, 2 Core.

Bước 4: WiFi NodeMCU-32S ESP-WROOM-32

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

Đây là sơ đồ của ESP mà chúng tôi đang sử dụng trong lắp ráp của mình. Nó là một con chip có rất nhiều sức hấp dẫn và sức mạnh. Chúng là một số chân bạn chọn cho dù chúng muốn hoạt động dưới dạng kỹ thuật số tương tự, kỹ thuật số tương tự hoặc thậm chí nếu chân đó hoạt động như kỹ thuật số.

Bước 5: Cấu hình Arduino IDE (Windows)

Cấu hình Arduino IDE (Windows)
Cấu hình Arduino IDE (Windows)
Cấu hình Arduino IDE (Windows)
Cấu hình Arduino IDE (Windows)

Dưới đây là cách định cấu hình Arduino IDE để chúng ta có thể biên dịch cho ESP32:

1. Tải xuống các tệp thông qua liên kết:

2. Giải nén tệp và sao chép nội dung vào đường dẫn sau:

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / phần cứng / espressif / esp32

Lưu ý: Nếu không có thư mục "espressif" và "esp32", chỉ cần tạo chúng bình thường.

3. Mở thư mục

C: / Users / [YOUR_USER_NAME] / Documents / Arduino / phần cứng / espressif / esp32 / tools

Chạy tệp "get.exe".

4. Sau khi "get.exe" kết thúc, cắm ESP32, đợi trình điều khiển được cài đặt (hoặc cài đặt thủ công).

Đã sẵn sàng, bây giờ chỉ cần chọn bảng ESP32 trong "công cụ >> bảng" và biên dịch mã của bạn.

Bước 6: Quét WiFi

Dưới đây là một ví dụ về cách tìm kiếm các mạng WiFi khả dụng gần ESP-32, cũng như cường độ tín hiệu của từng mạng đó. Với mỗi lần quét, chúng tôi cũng sẽ tìm ra mạng nào có cường độ tín hiệu tốt nhất.

Bước 7: Mã

Đầu tiên, hãy bao gồm thư viện "WiFi.h", nó sẽ cần thiết để cho phép chúng tôi làm việc với card mạng của thiết bị của chúng tôi.

#include "WiFi.h"

Đây là hai biến sẽ được sử dụng để lưu trữ SSID (tên) và cường độ tín hiệu của mạng.

Chuỗi mạngSSID = ""; int strengthSignal = -9999;

Bước 8: Thiết lập

Trong hàm setup (), chúng tôi sẽ xác định chế độ hoạt động WiFi của thiết bị của chúng tôi. Trong trường hợp này, vì mục tiêu là tìm kiếm các mạng có sẵn, chúng tôi sẽ định cấu hình thiết bị của mình hoạt động như một "trạm".

void setup () {// Khởi tạo Serial để đăng nhập Serial Monitor Serial.begin (115200);

// định cấu hình chế độ hoạt động của WiFi dưới dạng trạm WiFi.mode (WIFI_STA); // WIFI_STA là hằng số cho biết chế độ trạm

// ngắt kết nối khỏi điểm truy cập nếu nó đã được kết nối WiFi.disconnect (); chậm trễ (100);

// Serial.println ("Thiết lập xong");}

Bước 9: Vòng lặp

Trong hàm loop (), chúng ta sẽ tìm kiếm các mạng có sẵn và sau đó in nhật ký về các mạng được tìm thấy. Đối với mỗi mạng này, chúng tôi sẽ thực hiện so sánh để tìm ra mạng có cường độ tín hiệu cao nhất.

void loop () {// Serial.println ("bắt đầu quét"); // thực hiện quét các mạng có sẵn

int n = WiFi.scanNetworks ();

Serial.println ("Đã thực hiện quét");

// kiểm tra xem bạn đã tìm thấy mạng nào chưa if (n == 0) {Serial.println ("Không tìm thấy mạng"); } else {networkSSID = ""; Cường độ = -9999; Serial.print (n); Serial.println ("tìm thấy mạng / n"); for (int i = 0; i <n; ++ i) {// in trên màn hình nối tiếp từng mạng được tìm thấy Serial.print ("SSID:"); Serial.println (WiFi. SSID (i)); // tên mạng (ssid) Serial.print ("SIGNAL:"); Serial.print (WiFi. RSSI (i)); // cường độ tín hiệu 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 (strengthSignal)) {strongSignal = WiFi. RSSI (i); networkSSID = WiFi. SSID (i); Serial.print ("MẠNG CÓ NỀN TẢNG TÍN HIỆU TỐT NHẤT: ("); Serial.print (networkSSID); Serial.print (") - SIGNAL: ("); Serial.print (strengthSignal); Serial.println (")"); } trễ (10); }} Serial.println ("\ n ----------------------------------------- -------------------------------------------\n");

// khoảng thời gian 5 giây để thực hiện độ trễ quét mới (5000); }

"Nếu (abs (WiFi. RSSI (i))"

Lưu ý rằng trong câu lệnh trên chúng ta sử dụng hàm abs (), hàm này nhận giá trị tuyệt đối (tức là không âm) của một số. Trong trường hợp của chúng tôi, chúng tôi đã làm điều này để tìm giá trị nhỏ nhất trong số các giá trị so sánh, bởi vì cường độ tín hiệu được cho dưới dạng số âm và càng gần 0 thì tín hiệu càng tốt.

Bước 10: Tập tin

Tải xuống tất cả các tệp của tôi tại: www.fernandok.com

Đề xuất: