ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino
IDE, MicroPython và Lua
Cả ESP8266-12E và ESP8266-07 đều có một chân ADC dễ tiếp cận. Điều này có nghĩa
là các bo mạch ESP8266 đó có thể đọc tín hiệu tương tự. Trong hướng dẫn này, chúng
tôi sẽ chỉ cho bạn cách sử dụng chức năng đọc tương tự với ESP8266 bằng phần mềm
Arduino IDE, MicroPython hoặc Lua.
Ví dụ, chúng tơi sẽ chỉ cho bạn cách đọc các giá trị tương tự từ chiết áp. Bài đăng này
được chia thành ba phần:
1. ESP8266 Đọc tương tự với Arduino IDE
2. ESP8266 Đọc tương tự với MicroPython
3. ESP8266 Đọc tương tự với Lua/NodeMCU
Thông số kỹ thuật ADC ESP8266
Khi đề cập đến chân ADC ESP8266, bạn sẽ thường nghe thấy các thuật ngữ khác nhau
này thay thế cho nhau:
ADC (Bộ chuyển đổi tương tự sang số)
TOUT
Pin6
A0
Chân tương tự 0
Tất cả các thuật ngữ này đề cập đến cùng một chân trong ESP8266 được đánh dấu
trong phần tiếp theo.
/>
1/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Độ phân giải ADC ESP8266
Chân ADC có độ phân giải 10 bit, nghĩa là bạn sẽ nhận được các giá trị từ 0 đến 1023.
Dải điện áp đầu vào ESP8266
Dải điện áp đầu vào chân ADC của ESP8266 là từ 0 đến 1V nếu bạn đang sử dụng chip
trần. Tuy nhiên, hầu hết các bo mạch phát triển ESP8266 đều có bộ chia điện áp bên
trong, vì vậy phạm vi đầu vào là 0 đến 3,3V. Vì vậy, tóm lại:
ADC Dải điện áp trong các bo mạch phát triển ESP8266: 0 đến 3.3V (ví dụ:
ESP8266 12-E NodeMCU Kit , WeMos D1 Mini , …)
ADC Dải điện áp trong chip ESP8266: 0 đến 1V (ví dụ: chip ESP-07 , chip ESP12E ,…)
Chân tương tự ESP8266
Với bộ công cụ 12-E NodeMCU của ESP8266 và các bo mạch phát triển ESP8266 khác,
việc truy cập A0 rất dễ dàng, bạn chỉ cần kết nối dây nhảy với chân (xem hình bên dưới).
Nếu bạn đang sử dụng chip ESP8266, chẳng hạn như ESP8266-07, bạn cần hàn dây
vào chân đó.
/>
2/13
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
14:32 05/04/2023
ESP-07
Bộ phận bắt buộc
Để chỉ cho bạn cách sử dụng chức năng đọc tương tự với ESP8266, chúng tôi sẽ đọc
các giá trị từ chiết áp. Để làm được điều đó, bạn cần nối một chiết áp vào bảng của
mình.
Đây là phần cứng mà bạn cần để hồn thành hướng dẫn này:
Khuyến nghị: Bộ cơng cụ NodeMCU ESP8266-12E (đọc bảng so sánh bảng phát
triển ESP8266 )
Thay thế: 1x chip ESP8266-07 hoặc 1x chip ESP8266-12E + Bộ lập trình FTDI
Điện trở 100 Ohm (cần thiết nếu bạn đang sử dụng chip trần)
Điện trở 220 Ohm (cần thiết nếu bạn đang sử dụng chip
trần) Chiết áp 1k Ohm bánh mì dây nhảy
Bạn có thể sử dụng các liên kết trước hoặc truy cập trực tiếp vào
MakerAdvisor.com/tools để tìm tất cả các bộ phận cho dự án của mình với giá tốt nhất!
Sơ đồ
Nếu bạn đang sử dụng bảng phát triển ESP8266, hãy làm theo sơ đồ tiếp theo.
/>
3/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Nếu bạn đang sử dụng chip ESP8266 với dải điện áp đầu vào từ 0V đến 1V, bạn cần
đảm bảo rằng điện áp đầu vào trên chân A0 khơng vượt q 1V. Vì vậy, bạn cần một
mạch chia điện áp, như hình bên dưới.
Chúng tơi đang sử dụng điện trở 100 Ohm và 220 Ohm, do đó Vout là 1V.
/>
4/13
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
14:32 05/04/2023
Đề nghị đọc: Tham khảo sơ đồ chân ESP8266: Bạn nên sử dụng chân GPIO nào?
1. Đọc tương tự ESP8266 với Arduino IDE
Phần này cho thấy cách đọc các giá trị tương tự với ESP8266 bằng Arduino IDE.
Cài đặt ESP8266 trong Arduino IDE
Để tải mã lên ESP8266 của bạn, trước tiên bạn cần cài đặt tiện ích bổ sung ESP8266,
nếu bạn chưa cài đặt. Thực hiện theo các hướng dẫn tiếp theo:
Cài đặt Bảng ESP8266 trong Arduino IDE
Mã số
Sao chép đoạn mã sau vào Arduino IDE của bạn.
/*********
Rui Santos
Complete project details at
*********/ const int analogInPin = A0; // ESP8266 Analog
Pin ADC0 = A0 int sensorValue = 0;
// value read from the
pot
void setup() {
// initialize serial communication at 115200
Serial.begin(115200);
}
void loop() {
// read the analog in value
sensorValue = analogRead(analogInPin);
// print the readings in the Serial Monitor
Serial.print("sensor = ");
Serial.print(sensorValue);
delay(1000);
}
Xem mã thô
/>
5/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Đoạn mã bắt đầu bằng cách khai báo chân analog ESP8266 trong biến analogInPin :
const int analogInPin = A0;
// ESP8266 Analog Pin ADC0 = A0
lưu trữ trên biến sensorValue : int
sensorValue = 0;
Giá trị chiết áp sẽ được
// value read from the pot
Trong setup() , hãy khởi tạo Serial Monitor cho mục đích gỡ lỗi:
void setup() {
// initialize serial communication at 115200
Serial.begin(115200);
}
Trong loop() , chúng ta đọc giá trị analog bằng cách sử dụng hàm analogRead() và
chuyển analogInPin làm đối số. Giá trị được lưu trên biến sensorValue : sensorValue
= analogRead(analogInPin);
Cuối cùng, các bài đọc được hiển thị trên Màn hình nối tiếp, để bạn có thể thực sự thấy
điều gì đang diễn ra.
Serial.print(sensorValue);
Tải lên mã
Tải mã trước đó lên ESP8266. Hãy chắc chắn rằng bạn đã chọn đúng bo mạch và cổng
COM. Vào Tools > Board và chọn model ESP8266 bạn đang sử dụng. Trong trường
hợp của chúng tôi, chúng tôi đang sử dụng Bộ công cụ NodeMCU 12-E ESP8266.
/>
6/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Vào Tools > Port và chọn cổng COM mà ESP8266 được kết nối.
/>
7/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Nhấn nút tải lên Arduino IDE.
Lưu ý: nếu bạn đang sử dụng chip ESP-07 hoặc ESP-12E, bạn cần có một lập trình viên
FTDI để tải mã lên.
trình diễn
Sau khi tải mã lên, hãy mở Màn hình nối tiếp ở tốc độ truyền 115200. Các giá trị đọc
tương tự sẽ được hiển thị.
/>
8/13
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
14:32 05/04/2023
Xoay chiết áp và xem các giá trị tăng hoặc giảm.
2. Đọc tương tự ESP8266 với MicroPython
Phần này cho thấy cách đọc các giá trị tương tự với ESP8266 bằng phần sụn
MicroPython.
Để làm theo hướng dẫn này, bạn cần cài đặt chương trình cơ sở MicroPython trong bo
mạch ESP8266 của mình. Bạn cũng cần một IDE để viết và tải mã lên bảng của mình.
Chúng tôi khuyên bạn nên sử dụng Thonny IDE hoặc uPyCraft IDE:
Thonny IDE:
uPyCraft IDE:
Cài đặt uPyCraft IDE ( Windows , Mac OS X , Linux )
Flash/Tải chương trình cơ sở MicroPython lên ESP32 và ESP8266
Script – Đọc Analog ESP82266
Tập lệnh sau cho ESP8266 đọc các giá trị tương tự từ chân A0.
# Complete project details at
/>
9/13
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
14:32 05/04/2023
from machine import Pin, ADC
from time import sleep pot =
ADC(0)
while True:
pot_value = pot.read()
print(pot_value)
sleep(0.1)
Xem mã thô
Cách thức hoạt động của mã
Để đọc các đầu vào tương tự, hãy nhập lớp ADC ngồi lớp Pin từ mơ-đun máy . Chúng
tôi cũng nhập phương thức ngủ .
from machine import Pin, ADC
from time import sleep
Sau đó, tạo một đối tượng ADC có tên là pot trên chân A0.
pot = ADC(0)
Trong vịng lặp, đọc giá trị pot và lưu nó vào biến pot_value . Để đọc giá trị từ pot, hãy sử
dụng phương thức read() trên đối tượng pot . pot_value
= pot.read()
Sau đó, in pot_value
. print(pot_value)
Cuối cùng, thêm độ trễ 100 ms.
sleep(0.1)
Tóm tắt:
Để đọc một giá trị tương tự, bạn sử dụng lớp ADC ;
Để tạo một đối tượng ADC , chỉ cần gọi ADC(0) .
Để đọc giá trị tương tự, hãy sử dụng phương thức read() trên đối tượng ADC .
trình diễn
Sau khi tải mã lên bảng ESP8266 bằng Thonny IDE hoặc uPyCraft IDE , hãy xoay chiết
áp.
Kiểm tra vỏ của MicroPython IDE của bạn để đọc các giá trị từ chiết áp.
/>
10/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
3. ESP8266 Đọc Analog với Lua/NodeMCU
Phần này cho biết cách sử dụng phần sụn NodeMCU để đọc các giá trị tương tự với
ESP8266.
Nhấp nháy ESP8266 với phần sụn Lua/NodeMCU
Trước tiên, bạn phải flash các ESP của mình bằng NodeMCU firmare .
Tơi khun bạn nên sử dụng ESPlorer IDE , một chương trình được tạo bởi 4refr0nt để
gửi lệnh tới ESP8266 của bạn.
Thực hiện theo các hướng dẫn sau để tải xuống và cài đặt ESPlorer IDE:
1. Nhấn vào đây để tải xuống ESPlorer
2. Giải nén thư mục đó
3. Chuyển đến thư mục chính
4. Chạy ESPlorer.jar
5. Mở ESPlorer
Kiểm tra Chân ADC (A0)
/>
11/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Để gửi lệnh với ESPlorer IDE, bạn cần thiết lập giao tiếp nối tiếp với ESP của mình, hãy
làm theo các hướng dẫn sau:
1. Kết nối lập trình viên ESP-12E hoặc FTDI với máy tính của bạn
2. Đặt giá trị xấu là 9600
3. Chọn cổng lập trình viên ESP-12E hoặc FTDI của bạn (ví dụ: COM3)
4. Nhấn Mở/Đóng
Sau đó gõ lệnh sau:
print(adc.read(0))
Bấm vào nút “ Gửi ” như hình bên dưới.
/>
12/13
14:32 05/04/2023
ESP8266 ADC – Đọc các giá trị tương tự với Arduino IDE, MicroPython và Lua
Nó sẽ trả về một giá trị trong khoảng từ 0 đến 1024. Xoay chiết áp của bạn và gửi lệnh
print(adc.read(0)) thêm vài lần nữa để nhận giá trị chiết áp.
Khi chiết áp của bạn ở gần 0V, nó sẽ in 0 và khi đạt 3,3V, nó sẽ in 1024.
kết thúc
Trong hướng dẫn này, chúng tôi đã chỉ cho bạn cách đọc các giá trị analog bằng cách sử
dụng chân analog ESP8266 (A0). Một điều quan trọng cần lưu ý là phạm vi đầu vào
tương tự của ESP8266 là 0-1V nếu bạn đang sử dụng chip trần hoặc 0-3,3V nếu bạn
đang sử dụng bảng mạch phát triển.
/>
13/13