สารบัญ:

บทนำสู่ ESP32: 10 ขั้นตอน
บทนำสู่ ESP32: 10 ขั้นตอน

วีดีโอ: บทนำสู่ ESP32: 10 ขั้นตอน

วีดีโอ: บทนำสู่ ESP32: 10 ขั้นตอน
วีดีโอ: สอน เขียนโปรแกรม ภาษาซี Arduino | ESP32 โปรเจค เขียน MIT App inveter ส่งข้อมูลผ่าน bluetooth #EP10 2024, พฤศจิกายน
Anonim
Image
Image
คุณสมบัติหลัก
คุณสมบัติหลัก

ในบทความนี้เราจะพูดถึง ESP32 ซึ่งฉันคิดว่าเป็นพี่ชายของ ESP8266 ฉันชอบไมโครคอนโทรลเลอร์ตัวนี้มากเพราะมี WiFi เพื่อให้คุณมีความคิด ก่อนที่ ESP จะเกิดขึ้น หากคุณต้องการ Arduino เพื่อให้มี WiFi คุณจะต้องใช้เงินระหว่าง $ 200 ถึง $ 300 เพื่อซื้ออแด็ปเตอร์ Wifi อแด็ปเตอร์สำหรับสายเคเบิลเครือข่ายนั้นไม่แพงนัก แต่สำหรับ WiFi นั้นมีมาโดยตลอดและยังมีราคาแพงอยู่ แต่โชคดีที่ Espressif Systems ได้เปิดตัว ESP และกำลังแก้ไขชีวิตของเรา

ฉันชอบ ESP32 ด้วยรูปแบบนี้ที่มีพอร์ต USB โครงร่าง NodeMCU นี้จัดการได้ง่ายเพราะไม่ต้องการอุปกรณ์อิเล็กทรอนิกส์ใดๆ เพียงเสียบสายเคเบิล จ่ายไฟให้อุปกรณ์ และตั้งโปรแกรม มันทำงานเหมือนกับ Arduino

อย่างไรก็ตาม วันนี้เราจะมาพูดถึงลักษณะทั่วไปของ ESP32 และวิธีกำหนดค่า Arduino IDE เพื่อตั้งโปรแกรมอุปกรณ์ประเภทนี้เพิ่มเติม นอกจากนี้ เราจะสร้างโปรแกรมที่ค้นหาเครือข่ายและแสดงว่าเครือข่ายใดมีประสิทธิภาพมากกว่า

ขั้นตอนที่ 1: คุณสมบัติที่สำคัญ

ชิปพร้อม WiFi ในตัว: มาตรฐาน 802.11 B / G / N ทำงานในช่วง 2.4 ถึง 2.5GHz

โหมดการทำงาน: Client, Access Point, Station + Access Point

ไมโครโปรเซสเซอร์ดูอัลคอร์ Tensilica Xtensa 32 บิต LX6

นาฬิกาที่ปรับได้จาก 80MHz ถึง 240MHz

แรงดันไฟฟ้าที่ใช้งาน: 3.3 VDC

มี SRAM 512KB

คุณสมบัติ 448KB ROM

มีหน่วยความจำแฟลชภายนอก 32Mb (4 เมกะไบต์)

กระแสไฟสูงสุดต่อพินคือ 12mA (แนะนำให้ใช้ 6mA)

มี 36 GPIO

GPIO พร้อมฟังก์ชัน PWM / I2C และ SPI

มีบลูทูธ v4.2 BR / EDR และ BLE (บลูทูธพลังงานต่ำ)

ขั้นตอนที่ 2: เปรียบเทียบระหว่าง ESP32, ESP8266 และ Arduino R3

เปรียบเทียบระหว่าง ESP32, ESP8266 และ Arduino R3
เปรียบเทียบระหว่าง ESP32, ESP8266 และ Arduino R3

ขั้นตอนที่ 3: ประเภทของ ESP32

ประเภทของ ESP32
ประเภทของ ESP32

ESP32 เกิดมาพร้อมกับพี่น้องมากมาย วันนี้ผมใช้ตัวแรกจากซ้ายมือ Espressif แต่มีหลายยี่ห้อและหลายประเภท รวมทั้ง Oled display ในตัวด้วย อย่างไรก็ตาม ความแตกต่างนั้นเป็นชิปตัวเดียวกันทั้งหมด: 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. Unzip ไฟล์และคัดลอกเนื้อหาไปยังเส้นทางต่อไปนี้:

C: / ผู้ใช้ / [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"

ต่อไปนี้คือตัวแปร 2 ตัวที่จะใช้ในการจัดเก็บ SSID (ชื่อ) ของเครือข่ายและความแรงของสัญญาณ

เครือข่ายสตริงSSID = ""; int strengthSignal = -9999;

ขั้นตอนที่ 8: ตั้งค่า

ในฟังก์ชันการตั้งค่า () เราจะกำหนดโหมดพฤติกรรม WiFi ของอุปกรณ์ของเรา ในกรณีนี้ เนื่องจากเป้าหมายคือการค้นหาเครือข่ายที่พร้อมใช้งาน เราจะกำหนดค่าอุปกรณ์ของเราให้ทำงานเป็น "สถานี"

การตั้งค่าเป็นโมฆะ () { // เริ่มต้น Serial เพื่อเข้าสู่ระบบ Serial Monitor Serial.begin (115200);

// การกำหนดค่าโหมดการทำงานของ WiFi เป็นสถานี WiFi.mode(WIFI_STA); //WIFI_STA เป็นค่าคงที่ที่ระบุโหมดสถานี

// ยกเลิกการเชื่อมต่อจากจุดเชื่อมต่อ หากเชื่อมต่อ WiFi.disconnect(); ล่าช้า (100);

// Serial.println("ตั้งค่าเสร็จแล้ว");}

ขั้นตอนที่ 9: วนซ้ำ

ในฟังก์ชันลูป () เราจะค้นหาเครือข่ายที่มีอยู่ จากนั้นพิมพ์บันทึกในเครือข่ายที่พบ สำหรับแต่ละเครือข่ายเหล่านี้ เราจะทำการเปรียบเทียบเพื่อค้นหาเครือข่ายที่มีความแรงของสัญญาณสูงสุด

วงเป็นโมฆะ () { // Serial.println ("เริ่มสแกน"); // ทำการสแกนเครือข่ายที่มีอยู่

int n = WiFi.scanNetworks();

Serial.println("ดำเนินการสแกน");

// ตรวจสอบว่าคุณพบเครือข่ายใด ๆ หาก (n == 0) { Serial.println ("ไม่พบเครือข่าย"); } อื่น ๆ { networkSSID = ""; ความแรงของสัญญาณ= -9999; Serial.print(n); Serial.println(" พบเครือข่าย\n"); สำหรับ (int i = 0; i <n; ++i) {//print on serial monitor แต่ละเครือข่ายที่พบ Serial.print ("SSID: "); Serial.println (WiFi. SSID (i)); //ชื่อเครือข่าย (ssid) Serial.print ("สัญญาณ: "); Serial.print(WiFi. RSSI(ผม)); //ความแรงของสัญญาณ Serial.print("\t\tCHANNEL: "); Serial.print ((int) WiFi.channel (i)); Serial.print("\t\tMAC: "); Serial.print(WiFi. BSSIDstr(i)); Serial.println("\n\n"); ถ้า (abs (WiFi. RSSI (i)) < abs (strengthSignal)) { strengthSignal = WiFi. RSSI (i); เครือข่ายSSID = WiFi. SSID(i); Serial.print("เครือข่ายที่มีสัญญาณที่ดีที่สุด: ("); Serial.print(networkSSID); Serial.print(") - SIGNAL: ("); Serial.print(strengthSignal); Serial.println(")"); } ล่าช้า(10); } } Serial.println("\n----------------------------------------- -------------------------------------------\NS");

// ช่วงเวลา 5 วินาทีเพื่อทำการหน่วงเวลาการสแกนใหม่ (5000); }

"ถ้า (abs (WiFi. RSSI (i))"

โปรดทราบว่าในคำสั่งด้านบนเราใช้ abs () ฟังก์ชันนี้ใช้ค่าสัมบูรณ์ (เช่น ไม่ใช่ค่าลบ) ของตัวเลข ในกรณีของเรา เราทำสิ่งนี้เพื่อค้นหาค่าที่น้อยที่สุดในการเปรียบเทียบ เนื่องจากความเข้มของสัญญาณถูกกำหนดเป็นจำนวนลบ และยิ่งเข้าใกล้ศูนย์มากเท่าใด สัญญาณก็จะยิ่งดีขึ้น

ขั้นตอนที่ 10: ไฟล์

ดาวน์โหลดไฟล์ทั้งหมดของฉันใน: www.fernandok.com

แนะนำ: