Cách bắt đầu với FreeRTOS và ESP8266

Gần đây, tôi đã mua một NodeMCU từ AliExpress với giá khoảng 4 đô la. Lý do tôi làm điều này là để tìm hiểu tất cả những gì rắc rối đang xảy ra với ESP8266.

NodeMCU là một nền tảng IoT mã nguồn mở. Nó bao gồm phần sụn chạy trên SoC Wi-Fi ESP8266 của Espressif Systems và phần cứng dựa trên mô-đun ESP-12.

So với Arduino UNO, ESP8266 của tôi hoàn toàn đánh bật nó ra khỏi công viên khi nói đến sức mạnh và giá cả của CPU.

ESP8266 nhanh hơn 500% và rẻ hơn 82% so với Arduino. ESP8266 cũng có kết nối WiFi.

Tôi đã rất ngạc nhiên khi tôi truy cập trang web Espressif cho ESP8266. Có rất nhiều tài liệu và tài nguyên mà bạn có thể sử dụng. Ví dụ: có một ứng dụng Android yêu cầu ESP8266 kết nối với WiFi của bạn. Ứng dụng sẽ gửi SSID và mật khẩu dưới dạng các gói, ESP8266 đánh hơi chúng và sau đó nó kết nối với WiFi của bạn. Nó được gọi là SmartConfig và được phát minh bởi Texas Instruments.

Trong bài viết này, tôi sẽ hướng dẫn bạn thiết lập và chạy ví dụ Cấu hình thông minh từ Espressif RTOS SDK.

Đây là những thứ bạn cần:

  • Một máy tính hiện đại.
  • Một bảng NodeMCU với ESP12-E
  • VirtualBox (//www.virtualbox.org/wiki/Downloads)
  • Ubuntu Server LTS (//www.ubuntu.com/download/server)

Cấu hình VirtualBox để phát triển

  1. Tải xuống VirtualBox và cài đặt Ubuntu Server. Điều này sẽ dễ thực hiện, nhưng nếu bạn không biết cách, hãy Google hoặc xem hướng dẫn từng bước bằng hình ảnh này. Cài đặt một hệ điều hành là một kỹ năng tốt cần có. (Mẹo: Khi VirtualBox nhắc bạn chọn đĩa, hãy phân bổ động và có kích thước ít nhất là 50GB. Điều này sẽ giúp bạn đỡ đau đầu hơn.)
  2. Đảm bảo rằng bạn có thể truy cập Internet từ bên trong máy ảo và định cấu hình máy chủ DNS:

Để cấu hình máy chủ DNS, hãy xem ví dụ này.

Ví dụ: dns-nameservers 8.8.8.8 8.8.4.4Nếu bạn có thể ping Google, thì bạn đã sẵn sàng!

3. (Tùy chọn) Cài đặt OpenSSH và máy chủ Samba. Điều này sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều.

4. (Tùy chọn) Bật chuyển tiếp cổng. Để SSH trực tiếp vào máy ảo của bạn, bạn cần bật chuyển tiếp cổng. Ví dụ: để ánh xạ cổng 2222 trên máy chủ của bạn với cổng 22 trên máy ảo của bạn .

Nếu bạn đã bật chuyển tiếp cổng, bây giờ bạn có thể SSH vào máy ảo của mình từ Máy chủ của bạn như trong hình bên dưới.

Lưu ý: Nếu bạn đang sử dụng Windows, bạn cần Putty để SSH vào máy ảo.

5. Cắm NodeMCU của bạn và thực hiện lệnh sau:

tail -f /var/log/kern.log

Điều này sẽ cho bạn biết rằng thiết bị đã được xác định là / dev / ttyUSB0. Nếu không có gì xảy ra, thì bạn cần thêm USB vào máy ảo. Sau khi thêm USB, hãy rút phích cắm và cắm lại thiết bị của bạn.

Nếu bạn đã đạt đến điểm này và mọi thứ đang hoạt động, xin chúc mừng ! Bây giờ bạn đã sẵn sàng để biên dịch SDK và chạy ví dụ SmartConfig. Bạn thậm chí có thể gửi cho tôi một tweet tại //twitter.com/metonymyqt

Biên dịch SDK và nhấp nháy bảng

  1. Cài đặt các gói cần thiết (như bên dưới). Thông tin này cũng có sẵn trên readme.md của SDK.
sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial sed git unzip bash help2man wget bzip2 libtool-bin

2. Tạo một thư mục mới và điều hướng vào đó: mkdir Development && cd Development

3. Sao chép SDK mở: //github.com/pfalcon/esp-open-sdk

git clone --recursive //github.com/pfalcon/esp-open-sdk.git

3. Chạy make: make

Cảnh báo: Bước này sẽ mất một lúc để hoàn thành nên hãy kiên nhẫn. Trên máy ảo của tôi, nó hoàn thành sau 50 phút. Đối với bạn, nó có thể mất nhiều hơn hoặc ít hơn, nhưng trước khi bạn chạy, hãy đảm bảo rằng bạn đã kết nối với internetDNS được định cấu hình đúng cách . Cách tốt nhất để kiểm tra điều này là thực hiện ping tới Google hoặc một số trang web khác nếu Google bị chặn trong khu vực của bạn.

Nếu ping thành công, bạn có thể thu nhỏ cửa sổ và xem một tập của chương trình truyền hình yêu thích của mình. Quay lại sau khoảng 40 phút (nhưng đảm bảo máy tính của bạn không chuyển sang chế độ ngủ).

Sau khi SDK đã được tạo thành công, bạn sẽ thấy một thông báo yêu cầu bạn đặt thứ gì đó vào đường dẫn của mình. Để làm như vậy, hãy thực hiện như sau:

echo 'export PATH=/home/denis/Development/esp-open-sdk/xtensa-lx106-elf/bin:$PATH' >> ~/.profile

Lệnh sẽ nối chuỗi vào tệp ~ / .profile . Bây giờ hãy chạy lệnh sau:

xtensa-lx106-elf-gcc --version

Nếu lệnh thực thi thành công, thì bạn đã sẵn sàng!

4. Kiểm tra bảng của bạn

Cắm NodeMCU của bạn và chạy lsusb để xác minh rằng thiết bị của bạn đã được kết nối. Sau đó, chạy esptool.py chip_id . Bây giờ bạn sẽ thấy id chip của bo mạch.

5. Sao chép ESP8266_RTOS_SDK

git clone //github.com/espressif/ESP8266_RTOS_SDK.git

6. Xuất đường dẫn SDK và đường dẫn SDK / BIN bằng các lệnh bên dưới.

echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile

7. Biên dịch ví dụ SmartConfig

cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh

Bây giờ hãy chấp nhận các giá trị mặc định cho đến khi bạn được yêu cầu SPI_SIZE_MAP. Đây là nơi bạn chọn 4 vì NodeMCU có kích thước flash là 32Mbit và điều này được chuyển thành 4MB. Bạn cũng có thể chọn SPI_SPEED 3 = 80Mhz

Bạn sẽ thấy một cái gì đó như thế này:

!!!SDK_PATH: /home/denis/Development/ESP8266_RTOS_SDKBIN_PATH: /home/denis/Development/ESP8266_RTOS_SDK/bin
No boot needed.Generate eagle.flash.bin and eagle.irom0text.bin successully in BIN_PATHeagle.flash.bin — — — →0x00000eagle.irom0text.bin — →0x20000!!!

8. Flash bảng

cd $BIN_PATH
esptool.py erase_flash
esptool.py write_flash 0x00000 $BIN_PATH/eagle.flash.bin 0x20000 $BIN_PATH/eagle.irom0text.bin 0x3FC000 $BIN_PATH/esp_init_data_default.bin

Bây giờ, nếu bạn đặt lại bảng, bạn sẽ không thấy đèn LED nào nhấp nháy.

9. Sử dụng Ứng dụng Điện thoại

  • Ứng dụng Android
  • Ứng dụng iPhone

Mở Ứng dụng, đảm bảo rằng bạn đã kết nối với AP WiFi, nhập mật khẩu của bạn và nhấn xác nhận. Sau một vài giây, ESP8266 sẽ kết nối với AP của bạn. Đó là nó. Xin chúc mừng vì đã đến cuối!

Nếu bạn muốn phát triển thêm bằng cách sử dụng ESP8266-RTOS-SDK, vui lòng truy cập các trang web chính thức. Bạn sẽ tìm thấy rất nhiều tài nguyên và tài liệu ở đó. Ngoài ra, hãy xem các ví dụ khác được tìm thấy trong thư mục SDK.

Cảm ơn bạn rất nhiều cho thời gian của bạn đọc này. Nếu bạn muốn liên hệ với tôi, bạn có thể làm như vậy trên Twitter: MetonymyQT

Tài nguyên

  • Tổng quan về ESP8266
  • Tài nguyên ESP8266
  • Trang web FreeRTOS