ESP8266 NodeMCU có thể được sử dụng để làm các dự án đầu vào và đầu ra kỹ thuật số sử dụng IDE Arduino. Điều này cho phép bạn kết nối và điều khiển các thiết bị ngoại vi bằng cách sử dụng các chân GPIO trên NodeMCU.Đầu vào kỹ thuật số trên NodeMCU có thể được cấu hình để đọc tín hiệu từ các cảm biến và các thiết bị đầu vào khác. Đầu ra kỹ thuật số trên NodeMCU có thể được cấu hình để điều khiển các thiết bị đầu ra, chẳng hạn như đèn LED và bóng đèn.Việc lập trình các đầu vào và đầu ra kỹ thuật số trên ESP8266 NodeMCU sử dụng Arduino IDE khá đơn giản và có thể được thực hiện bằng cách sử dụng các thư viện và hàm có sẵn trong IDE.
Trang 1Đầu vào kỹ thuật số và đầu ra kỹ thuật số ESP8266
NodeMCU (Arduino IDE)
Trong hướng dẫn bắt đầu này, bạn sẽ học cách đọc đầu vào kỹ thuật số như công tắc
nút và điều khiển đầu ra kỹ thuật số như đèn LED bằng cách sử dụng bo mạch ESP8266
NodeMCU với Arduino IDE
điều kiện tiên quyết
Chúng tôi sẽ lập trình ESP8266 bằng Arduino IDE Vì vậy, hãy đảm bảo rằng bạn đã cài
đặt tiện ích bổ sung bảng ESP8266 trước khi tiếp tục:
Cài đặt Bảng ESP8266 trong Arduino IDE (Windows, Mac OS X, Linux)
Đầu ra kỹ thuật số điều khiển ESP8266 NodeMCU
Trước tiên, bạn cần đặt GPIO mà bạn muốn điều khiển làm OUTPUT Sử dụng hàm
pinMode() như sau: pinMode(GPIO, OUTPUT);
Để kiểm soát đầu ra kỹ thuật số, bạn chỉ cần sử dụng hàm digitalWrite() , hàm này chấp
nhận làm đối số, GPIO (số int) mà bạn đang đề cập đến và trạng thái, CAO hoặc THẤP
digitalWrite(GPIO, STATE);
Hãy xem Hướng dẫn tham khảo GPIO của ESP8266 để tìm hiểu GPIO nào phù hợp hơn
để sử dụng làm đầu ra
Trang 2ESP8266 NodeMCU Đọc đầu vào kỹ thuật số
Đầu tiên, đặt GPIO bạn muốn đọc là INPUT , sử dụng hàm pinMode() như sau:
pinMode(GPIO, INPUT);
Để đọc một đầu vào kỹ thuật số, chẳng hạn như một nút, bạn sử dụng hàm digitalRead()
, chấp nhận làm đối số, GPIO (số int) mà bạn đang đề cập đến digitalRead(GPIO);
Hãy xem Hướng dẫn tham khảo GPIO của ESP8266 để tìm hiểu GPIO nào phù hợp hơn
để sử dụng làm đầu vào
Ví dụ dự án
Để chỉ cho bạn cách sử dụng đầu vào kỹ thuật số và đầu ra kỹ thuật số, chúng tôi sẽ xây
dựng một ví dụ dự án đơn giản với nút bấm và đèn LED Chúng ta sẽ đọc trạng thái của
nút ấn và bật đèn LED tương ứng như minh họa trong hình dưới đây
Sơ đồ
Trước khi tiếp tục, bạn cần lắp ráp một mạch có đèn LED và nút bấm Chúng tôi sẽ kết
nối đèn LED với GPIO 5 (D1) và nút bấm với GPIO 4 (D2)
Bộ phận bắt buộc
Dưới đây là danh sách các bộ phận bạn cần để xây dựng mạch:
Trang 3ESP8266 (đọc Bảng dành cho nhà phát triển ESP8266 tốt nhất )
ĐÈN LED 5mm
điện trở 330
Ohm nút nhấn
điện trở 10k 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!
Mã số
Sao chép đoạn mã sau vào Arduino IDE của bạn
// Complete Instructions:
https://RandomNerdTutorials.com/esp8266-nodemcu-digital-inputsoutputs-arduino/
// set pin numbers
const int buttonPin = 4; // the number of the pushbutton pin
const int ledPin = 5; // the number of the LED pin
// variable for storing the pushbutton status
int buttonState = 0;
Trang 4void setup() {
// initialize the pushbutton pin as an input
pinMode(buttonPin, INPUT);
// initialize the LED pin as an output
pinMode(ledPin, OUTPUT);
}
void loop() {
// read the state of the pushbutton value
buttonState = digitalRead(buttonPin); //
check if the pushbutton is pressed // if
it is, the buttonState is HIGH if
(buttonState == HIGH) {
// turn LED on
digitalWrite(ledPin, HIGH);
} else { // turn LED off
digitalWrite(ledPin, LOW);
}
}
Xem mã thô
Cách thức hoạt động của mã
Trong hai dòng sau, bạn tạo các biến để gán chân:
const int buttonPin = 4;
const int ledPin = 5;
Nút được kết nối với GPIO 4 và đèn LED được kết nối với GPIO 5 Khi sử dụng Arduino
IDE với ESP8266, 4 tương ứng với GPIO 4 và 5 tương ứng với GPIO 5
Tiếp theo, bạn tạo một biến để giữ trạng thái của nút Theo mặc định, nó là 0 (không
được nhấn) int buttonState = 0;
Trong setup() , bạn khởi tạo nút là INPUT và đèn LED là OUTPUT Để làm được điều
đó, bạn sử dụng hàm pinMode() chấp nhận mã pin mà bạn đang đề cập đến và chế độ:
INPUT hoặc OUTPUT
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
Trong vòng lặp () là nơi bạn đọc trạng thái nút và đặt đèn LED tương ứng
Trong dòng tiếp theo, bạn đọc trạng thái của nút và lưu nó vào biến buttonState Như
chúng ta đã thấy trước đây, bạn sử dụng hàm digitalRead() buttonState =
digitalRead(buttonPin);
Trang 5Câu lệnh if sau đây, kiểm tra xem trạng thái nút có ở mức CAO hay không Nếu đúng
như vậy, nó sẽ bật đèn LED bằng cách sử dụng hàm digitalWrite() chấp nhận làm đối số
ledPin và trạng thái CAO
if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH); }
Nếu trạng thái nút không phải là CAO , bạn tắt đèn LED Chỉ cần đặt THẤP làm đối số
thứ hai trong hàm digitalWrite()
else {
digitalWrite(ledPin, LOW); }
Tải lên mã
Trước khi nhấp vào nút tải lên, hãy đi tới Công cụ > Bảng và chọn bảng bạn đang sử
dụng Trong trường hợp của tôi, đó là NodeMCU 1.0 (ESP-12 E Module) Nếu bạn
không biết kiểu máy ESP8266 của mình, bạn có thể chọn “Mô-đun ESP8266 chung”
Vào Tools > Port và chọn cổng COM mà ESP8266 được kết nối Sau đó, nhấn nút tải
lên và đợi thông báo “ Tải lên xong ”
trình diễn
Sau khi tải mã lên, hãy kiểm tra mạch của bạn Đèn LED của bạn sẽ sáng lên khi bạn
nhấn nút:
Trang 6Và tắt khi bạn phát hành nó:
kết thúc
Với hướng dẫn bắt đầu này, bạn đã học cách đọc đầu vào kỹ thuật số và điều khiển đầu
ra kỹ thuật số với ESP8266 bằng Arduino IDE