ESP32 simulator, the classic one, on an Xtensa core
Mokxi mô phỏng DOIT ESP32 DevKit V1 ba mươi chân: một ESP32-WROOM-32 với lõi Xtensa LX6 ở 240 MHz, ma trận GPIO, IO_MUX, cả ba UART, nhóm timer 0, ADC1 và bộ điều khiển PWM LEDC, ở đúng địa chỉ thật. Một lõi chứ không phải hai, và không có sóng vô tuyến (WiFi ở đây là mô phỏng, và nói rõ như vậy), còn bản cam kết nói chính xác mỗi ranh giới nằm ở đâu.
- 10khu vực ngoại vi được mô phỏng
- 24dự án sẵn sàng để chạy
- Thời gian thựctrên máy của chính bạn
Những gì được mô phỏng
Lấy từ tài liệu cam kết của chính bo mạch và diễn đạt bằng lời đơn giản, kèm những gì còn thiếu ngay bên cạnh.
Được mô phỏng
- Lõi
- Xtensa LX6 với windowed ABI, sáu mươi bốn thanh ghi địa chỉ, các trình xử lý tràn và hụt cửa sổ, một lệnh mỗi chu kỳ ở 240 MHz
- Bộ nhớ
- 128 KB RAM lệnh ở 0x4008_0000 và 192 KB RAM dữ liệu ở 0x3FFB_0000, tách biệt đúng như cách ESP-IDF tách
- Ma trận GPIO và IO_MUX
- Bốn mươi chân với cách chia hai thanh ghi như thật, điện trở kéo và cho phép đầu vào cho từng pad, và GPIO 34 đến 39 bị từ chối làm đầu ra vì chip không có mạch điều khiển cho chúng
- UART0
- Chạy theo tốc độ baud đã cấu hình, nối với Serial Monitor
- UART1 và UART2
- Serial1 và Serial2 trên bất kỳ chân nào begin() chỉ định, qua ma trận GPIO: khung thật trên dây, từng bit một, ở tốc độ mà bộ chia thật sự cho ra, với bộ đệm nhận của driver lõi
- Nhóm timer 0
- Timer 0 ở nhịp một micro giây phía sau millis() và micros(); delay() cho lõi nghỉ trên CCOMPARE0 chứ không quay vòng chờ
- ADC1
- Mười hai bit trên tám kênh thật (GPIO 36, 37, 38, 39, 32, 33, 34 và 35) với bốn mức suy hao, và mức 11 dB theo đường cong của một linh kiện thật tới 4095 ở khoảng 3,1 V
- LEDC
- Nhóm tốc độ cao: bốn timer và tám kênh trên mọi chân có mạch điều khiển đầu ra, đứng sau analogWrite, ledcAttach và ledcWrite
- Ma trận ngắt
- Các nguồn của nó được định tuyến như phần cứng định tuyến, nên attachInterrupt là ba lần ghi chứ không phải một
- WiFi, mô phỏng
- WiFi.h, HTTPClient.h và WebServer.h trên một mạng viết bằng phần mềm: không có sóng vô tuyến, không có 802.11, và chỉ có internet thật khi bạn đăng nhập và bật nó lên
Không được mô phỏng
- Sóng vô tuyến dưới mọi hình thức. Mô hình không có 802.11 và không có sóng Bluetooth. WiFi và Bluetooth được mô phỏng thay thế (API Arduino chạy trên một mạng do chúng tôi dựng, chỉ ra internet thật khi bạn đăng nhập và bật lên, và một chiếc điện thoại trong ngăn Bluetooth của trình soạn thảo), và mọi trang nhắc tới chúng đều nói rõ như vậy.
- Lõi thứ hai. ESP32 thật có hai lõi LX6; mô hình này chạy lõi PRO, nên bất cứ thứ gì khởi chạy một task trên lõi 1 sẽ không chạy.
- FPU: một file nhị phân hard-float build ở nơi khác sẽ báo lỗi ngay lệnh float đầu tiên. Sketch build ở đây dùng soft float, nên tính toán số thực vẫn chạy.
- Cache, flash và PSRAM, RTC và ULP, deep sleep, ADC2, cảm biến chạm và cảm biến hall, I2C, SPI, I2S và RMT.
- Một số địa chỉ (thứ tự pad của IO_MUX, bố cục nhóm timer và LEDC, các offset SENS, số của ma trận ngắt và chỉ số tín hiệu ma trận GPIO mà LEDC dùng) là suy đoán của mô hình này chứ không phải thứ nó có thể bảo đảm. Mục 6 của bản cam kết nêu từng cái một.
Mở một mạch và nhấn Chạy
Mỗi ví dụ này mở ra trong trình soạn thảo đúng như hình vẽ ở đây.
Mọi dự án có sẵn trên ESP32 DevKit V1
Mỗi dự án có trang riêng với mạch đang chạy, code và danh sách linh kiện.
- ESP32 núm xoayCơ bản
- Nút nhấn và LED qua ESP-NOWTrung bình
- Máy đo điện năng PZEM-004T với ESP32Trung bình
- Vẽ cảm ứng ILI9488 với ESP32Trung bình
- Vẽ cảm ứng ST7796S với ESP32Trung bình
- Máy đo mức micro I2S với ESP32Trung bình
- Trình phát sóng sin I2S với ESP32Trung bình
- Hệ thống khẩn cấp giao thông ESP32 với RFIDTrung bình
- Máy chủ web thời tiết DHT22 với ESP32Trung bình
- Máy chủ web hai LED với ESP32Cơ bản
- Máy chủ web bất đồng bộ ESP32: BME280, thanh trượt và relayTrung bình
- Chuông cửa Telegram với cảm biến PIR trên ESP32Trung bình
- Đồng hồ NTP trên màn hình TM1637 với ESP32Cơ bản
- Đèn bàn Bluetooth serial với ESP32Cơ bản
- Đèn bàn BLE UART với ESP32Trung bình
- Nháy LED bằng MicroPython trên ESP32Cơ bản
- Ngắt nút nhấn bằng MicroPython trên ESP32Cơ bản
- Làm mờ dần bằng PWM với MicroPython trên ESP32Cơ bản
- DHT22 trên ESP32 với MicroPythonCơ bản
- OLED SSD1306 trên ESP32 với MicroPythonCơ bản
- Thời tiết qua WiFi bằng MicroPython trên ESP32Trung bình
- Máy phân tích phổ âm thanhNâng cao
- Đôi mắt animatronicNâng cao
- An ESP32 and an Arduino Uno talking over serialTrung bình
Các linh kiện nối với ESP32 DevKit V1, từng bước
Mỗi trang có sơ đồ nối dây với tên chân riêng của ESP32 DevKit V1, code, các lỗi thường gặp và mạch đang chạy.
- ESP32 DHT22
- ESP32 SSD1306 OLED
- ESP32 I2C LCD
- Servo với ESP32
- ESP32 HC-SR04
- NeoPixel với ESP32
- Nút nhấn với ESP32
- Biến trở với ESP32
- Buzzer với ESP32
- Relay với ESP32
- Cảm biến PIR với ESP32
- ESP32 MPU6050
- ESP32 BMP280
- ESP32 DS18B20
- Đầu thu hồng ngoại với ESP32
- Bàn phím với ESP32
- Màn hình TM1637 với ESP32
- Động cơ bước 28BYJ-48 với ESP32
- ESP32 RC522 RFID
- ESP32 LDR
- ESP32 BME280
- Joystick với ESP32
- Màn hình LED 7 đoạn với ESP32
- ESP32 DS3231 RTC
Các bài hướng dẫn dùng bo mạch này
Bài nào cũng kết thúc bằng một mạch đang chạy, trên chính bo mạch này.
- Sơ đồ chân ESP32 DevKit V1: mọi chân, và chân nào nên tránh
- analogRead trên ESP32: 12 bit, suy hao và ADC2
- Uno, ESP32 hay Pico: nên bắt đầu với cái nào
- Mười dự án ESP32 cho người mới, theo thứ tự
- Một ESP32 và một Arduino Uno trong cùng một mô phỏng
- Một yêu cầu HTTP GET: lấy thời tiết dạng JSON
- MicroPython trên ESP32: nháy LED, nút nhấn, PWM, DHT22, OLED và WiFi
Câu hỏi
Có miễn phí không?
Có. Mọi bo mạch và mọi linh kiện đều nằm trong gói miễn phí, không cần tài khoản.
Tôi có biên dịch được sketch của riêng mình cho nó không?
Được. Sửa sketch rồi nhấn Chạy: nó biên dịch ngay trong tab bằng clang cho Xtensa, và bảng biên dịch hiện từng bước. Không có gì được tải lên. Tính toán số thực chạy được: trình duyệt build bằng soft float, như mọi bo mạch khác ở đây.
Nó có mô phỏng WiFi hay Bluetooth không?
Cả hai, ở dạng mô phỏng, và nói rõ rằng chúng là mô phỏng. Bluetooth là một chiếc điện thoại trong ngăn Bluetooth của trình soạn thảo, không phải sóng vô tuyến. Sketch của bạn dùng các lệnh Arduino thật (WiFi.begin, WiFi.status, HTTPClient, WebServer), và bo mạch vào một mạng, tải một trang và phục vụ một trang. Bên dưới không có sóng vô tuyến và không có 802.11. Bốn địa chỉ tự đặt dưới .mokxi trả lời ngay trong tab này. Khi đã đăng nhập, bạn có thể bật Internet thật trong bảng Cloud, và các yêu cầu HTTP và HTTPS tới máy chủ thật đi ra qua cổng gateway của Mokxi.
Vì sao pinMode(34, OUTPUT) không hoạt động?
Vì trên chip thật nó cũng không hoạt động. GPIO 34 đến 39 có bộ đệm đầu vào và hoàn toàn không có mạch điều khiển đầu ra. Mokxi từ chối lệnh ghi giống như silicon, đếm nó, và đánh dấu một chấm hổ phách nhỏ trên bo mạch thay vì để bạn tưởng chân đang điều khiển thứ gì đó.
Vì sao biến trở của tôi đạt 4095 trước khi xoay hết hành trình?
Vì ở mức suy hao mặc định 11 dB, giá trị thô của ESP32 thật bão hòa ở khoảng 3,1 V, chưa tới đường nguồn 3,3 V, và cong dần trên đường tới đó: giữa biến trở đọc ra khoảng 1890 chứ không phải 2048. Mokxi mô phỏng đường cong đó, và ví dụ núm xoay in ra con số thô để nó không còn là điều bí ẩn.
Đây là bo mạch 30 chân hay 38 chân?
Bản DOIT DevKit V1 ba mươi chân. Espressif DevKitC 38 chân có hai hàng header cách nhau trọn một inch và đưa ra thêm sáu chân: số GPIO là của cùng một chip, còn vị trí thì không.
Nó có chạy cả hai lõi không?
Một. Lõi PRO chạy; không có APP CPU và không có FreeRTOS để chia việc giữa chúng, nên sketch dạng setup()/loop() thì ổn còn xTaskCreatePinnedToCore thì không.
Các bo mạch khác
Cái nào trong số này cũng chạy được ngay hôm nay, và cái nào cũng miễn phí.
Bạn muốn phần giới thiệu ngắn hơn? Xem trang trình mô phỏng ESP32 DevKit.
Một chip RISC-V 160 MHz, trên đúng bản đồ bộ nhớ thật.
Arduino cổ điển, với ATmega328P chạy 16 MHz.
Chip của Uno trên một bo mạch nhỏ cắm vừa breadboard.
Arduino cỡ lớn, có 54 chân digital và bốn cổng serial.
Một bo mạch hình dáng Uno mà chip của nó tự lo USB serial.
Một bo mạch RISC-V thứ hai, có 31 chân và WiFi mô phỏng.
ESP32-S3 240 MHz, có USB serial và một LED RGB.
ESP8266 80 MHz của NodeMCU, có WiFi mô phỏng.
Thử trên firmware của riêng bạn
Những gì bạn dựng ở đây chạy nguyên vẹn trên bo mạch trên bàn của bạn. Không cần cài đặt và không cần tài khoản.