ESP32 projects for beginners, in the order to try them
Cơ bản
Hoặc xem mọi bài học.
- 503linh kiện trên bàn làm mạch
- 44bo mạch đang chạy
- 1.00xthời gian thực, trên mọi bo mạch
ESP32 là một bo mạch đầu tiên rất tốt: giá gần bằng một bản Arduino clone, có WiFi, và chạy cùng code Arduino. Trang này liệt kê các dự án cho người mới theo thứ tự học được nhiều nhất, và dự án nào cũng đã được lắp sẵn và đang chạy trong Mokxi, nên bạn có thể thử ngay trên trình duyệt trước khi mua bất kỳ linh kiện nào.
Mạch ở trên là dự án ba, một biến trở chỉnh độ sáng LED trên một ESP32 DevKit cổ điển. Nhấn Chạy và xoay núm: Serial Monitor in ra giá trị đọc thô và chu kỳ làm việc PWM. Ở giữa, nó đọc ra 1892, không phải 2048, và nó chạm 4095 sớm hơn một chút trước khi núm vặn hết cỡ. Vì sao như vậy là điều hữu ích nhất mà người mới có thể học về ADC của ESP32, và được giải thích bên dưới.
Trước khi bắt đầu: ba điểm khác biệt của ESP32
Nó chạy ở 3.3 V. Một chân GPIO xuất ra 3.3 V và không bao giờ được nhận 5 V. Cảm biến làm cho Uno thường chạy được ở 3.3 V, nhưng hãy kiểm tra, và đặt một mạch chia áp hoặc một mạch chuyển mức logic trên bất kỳ tín hiệu 5 V nào đi vào.
ADC của nó đọc từ 0 đến 4095, mười hai bit, không phải 0 đến 1023. Ở mức suy giảm mặc định, giá trị đọc không phải một đường thẳng: nó bão hòa ở khoảng 3.1 V, nên một núm vặn trên 3.3 V chạm 4095 sớm và đọc khoảng 1890 ở giữa. Đó đúng là những gì mạch ở trên in ra.
Số chân là số GPIO, và một số chân đặc biệt. Trên ESP32 cổ điển, GPIO 34 đến 39 chỉ là chân input, và một số chân quyết định cách chip khởi động. Mỗi trang bo mạch trong Mokxi đều liệt kê các chân của nó.
Dự án 1 đến 4: chân, PWM và ADC
1. Nháy một LED. Sketch đầu tiên trên bất kỳ bo mạch nào: pinMode, digitalWrite và delay. Trên ESP32-C3, LED nằm ở GPIO 8.
2. Một nút nhấn và một LED. Một nút nhấn nối từ một chân xuống GND với INPUT_PULLUP, làm LED sáng trong lúc giữ nút. Nó dạy về điện trở kéo lên mà không cần điện trở.
3. Núm vặn chỉnh độ sáng LED. Chính mạch ở trên: analogRead trên GPIO 32 và analogWrite trên GPIO 4. Nó dạy về ADC 12 bit và PWM.
4. Servo quét qua lại. Một SG90 trên một kênh PWM 50 Hz, quét từ đầu này sang đầu kia. Độ rộng xung chính là góc quay, và phần cứng LEDC của ESP32 giữ cho xung chạy liên tục trong khi lõi làm việc khác.
Dự án 5 đến 7: cảm biến và màn hình
5. Cầu vồng NeoPixel. Mười sáu LED WS2812B trên một chân dữ liệu của ESP32-C3, với một vòng màu chạy dọc theo chúng. Trên bo mạch thật, thư viện Adafruit NeoPixel lo phần định thời cho bạn.
6. Máy theo dõi nhiệt độ và độ ẩm. Một DHT22 trên một chân, đọc vài giây một lần và in ra Serial Monitor. Thêm một màn hình OLED SSD1306 qua I2C để hiển thị mà không cần máy tính.
7. Cảm biến phòng. Một DHT22, một cảm biến ánh sáng BH1750 và một cảm biến chuyển động PIR trên cùng một ESP32-C3, bản lắp mà nhiều người dùng Home Assistant bắt đầu. Mỗi giá trị đọc được in ra dưới dạng tin nhắn MQTT mà nó sẽ gửi.
Dự án 8 đến 10: WiFi
8. Kết nối WiFi. WiFi.begin(), chờ kết nối, in ra địa chỉ IP. Trong Mokxi, mạng được mô phỏng ngay trong trình duyệt, và không có gì rời khỏi máy tính của bạn trừ khi bạn đăng nhập và bật internet thật. Cố tình đổi sai mật khẩu thì kết nối thất bại sau năm giây, y như trên bo mạch thật.
9. Trang web bật tắt đèn. Một WebServer trên ESP32 phục vụ một trang có hai nút; nhấn một nút trong bảng Web là LED làm theo. Đây là dự án khiến hầu hết mọi người bỗng hiểu ra ESP32.
10. Lấy dữ liệu bằng HTTP. HTTPClient hỏi máy chủ để lấy JSON, và sketch tách ra các con số. Trong Mokxi, nó nói chuyện với một máy chủ giả lập mà bạn sửa được câu trả lời, và yêu cầu tới một website thật sẽ bị từ chối kèm một thông báo dễ hiểu, trừ khi bạn đăng nhập và bật internet thật.
Nên mua bo mạch ESP32 nào
Với bo mạch đầu tiên, hãy chọn ESP32 DevKit V1 (ESP32 cổ điển) hoặc ESP32-C3 SuperMini. DevKit có nhiều chân nhất và nhiều bài hướng dẫn nhất. SuperMini nhỏ, rẻ và có USB gốc. ESP32-S3 là lựa chọn cho camera, màn hình và cần nhiều bộ nhớ hơn. Cả ba, và nhiều bo khác nữa, đều chạy trong Mokxi, nên bạn có thể thử dự án trên từng bo trước khi chọn.
Nếu bạn đã có Arduino Uno, hãy làm hai dự án đầu tiên trên đó; chúng chỉ cần đổi số chân. Trang so sánh Uno, ESP32 và Pico đi sâu hơn.
Lỗi thường gặp của người mới
Nối 5 V vào một chân GPIO. ESP32 là chip 3.3 V, và 5 V trên một chân có thể làm hỏng nó.
Tưởng rằng analogRead là một đường thẳng từ 0 đến 3.3 V. Ở mức suy giảm mặc định, nó đọc khoảng 1890 ở giữa núm vặn và 4095 từ khoảng 3.1 V trở lên, như mạch ở trên cho thấy; hãy dùng analogReadMilliVolts() để đọc ra volt.
Dùng chân ADC2 khi đang bật WiFi. Trên ESP32 cổ điển, các chân ADC2 không đọc được khi WiFi đang chạy. Hãy dùng các chân ADC1 như GPIO 32 đến 39 cho mọi thứ analog trong một dự án có WiFi.
Chọn nhầm chân ảnh hưởng tới việc khởi động. Nếu bo mạch không khởi động khi gắn mạch của bạn vào, hãy chuyển linh kiện ra khỏi các chân strapping được liệt kê trên trang bo mạch.
Câu hỏi
Dự án ESP32 đầu tiên nào là tốt?
Nháy một LED, rồi một nút nhấn, rồi một núm vặn chỉnh độ sáng LED. Ba dự án đó dạy output số, input với điện trở kéo lên, ADC 12 bit và PWM. Sau đó, một trang web bật tắt đèn sẽ cho thấy WiFi dùng để làm gì.
Có thử được dự án ESP32 mà không cần bo mạch không?
Có. Mọi dự án trên trang này đều chạy trong Mokxi ngay trên trình duyệt, với code Arduino được biên dịch và chạy trên một ESP32 mô phỏng. Không cần tài khoản để mở và chạy chúng.
Dự án ESP32 có dùng Arduino IDE không?
Phần lớn bài hướng dẫn cho người mới đều dùng, sau khi cài gói bo mạch ESP32. Code trên trang này là code Arduino và nạp được từ Arduino IDE mà không cần sửa.
Vì sao analogRead trên ESP32 của mình chạm 4095 trước khi tới 3.3 V?
Ở mức suy giảm mặc định 11 dB, giá trị đọc thô của một ESP32 thật bão hòa ở khoảng 3.1 V và bị cong trên đường tới đó, nên điểm giữa của một núm vặn 3.3 V đọc khoảng 1890 chứ không phải 2048. Hãy dùng analogReadMilliVolts() để có giá trị đọc theo milivolt.
Tiếp tục nào
Lắp mạch này ngoài đời
Mở trình soạn thảo, đổi một giá trị và xem con số thay đổi theo. Không cần cài gì, không cần tài khoản.