Computer >> Hướng Dẫn Máy Tính >  >> Kết Nối Mạng >> WiFi

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành

Bởi Denis Nuțiu

Gần đây, tôi đã mua NodeMCU từ AliExpress với giá khoảng 4 USD. Lý do tôi làm điều này là để tìm hiểu xem tất cả những điều ồn ào về ESP8266 là gì.

NodeMCU là một nền tảng IoT nguồn mở. Nó bao gồm chương trình cơ sở 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.

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Nguồn:Bảng dữ liệu ESP8266

So với Arduino UNO, ESP8266 của tôi hoàn toàn vượt trội khi nói đến sức mạnh CPU và giá cả.

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 truy cập trang web Espressif về 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 gói, ESP8266 đánh hơi chúng rồi kết nối với WiFi của bạn. Tính năng này được gọi là SmartConfig và được Texas Instruments phát minh.

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ụ về Cấu hình thông minh từ SDK Espressif RTOS.

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

  • Một chiếc máy tính hiện đại.
  • Bo mạch NodeMCU có ESP12-E
  • VirtualBox (https://www.virtualbox.org/wiki/Downloads)
  • Máy chủ Ubuntu LTS (https://www.ubuntu.com/download/server)

Định cấu hình VirtualBox để phát triển

  1. Tải xuống VirtualBox và cài đặt Ubuntu Server. Việc này có thể dễ thực hiện nhưng nếu bạn không biết cách, hãy tìm trên Google hoặc xem hướng dẫn từng bước bằng hình ảnh này. Cài đặ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 ổ đĩa và có kích thước tối thiểu là 50 GB. Điều này sẽ giúp bạn đỡ đau đầu hơn sau này.)
  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:

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Nhấp chuột phải vào máy rồi chọn Cài đặt -> Mạng

Để định 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.4 Nếu bạn có thể ping Google thì bạn đã sẵn sàng!

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

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

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Bật chuyển tiếp cổng:Cài đặt -> Mạng -> Cổng Forw arding

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

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành FIG1:ssh -p 2020 denis@localhost

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

  1. 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.

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Thêm USB:Cài đặt -> Cổng -> USB

Nếu bạn đã đạt đến điểm này và mọi thứ đều ổn, 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 dòng tweet tại https://twitter.com/metonymyqt

Biên dịch SDK và flash 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
  1. Tạo một thư mục mới và điều hướng vào đó:mkdir Development && cd Development

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

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

  1. Chạy thực hiện: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. Trên máy của bạn, quá trình này có thể mất nhiều hoặc ít, nhưng trước khi 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 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 ở khu vực của bạn.

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Lệnh ping thành công:$ ping Medium.com

Nếu ping của bạn thành công, bạn có thể thu nhỏ các 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. Hãy quay lại sau khoảng 40 phút (nhưng hãy đảm bảo máy tính của bạn không chuyển sang chế độ ngủ).

Sau khi SDK được xây dựng thành công, bạn sẽ thấy thông báo yêu cầu bạn đặt nội dung nào đó 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 ~/.profile tập tin. 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!

  1. 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.

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành _esptool.py chipid

  1. Bản sao ESP8266_RTOS_SDK
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
  1. 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
  1. 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 bởi vì NodeMCU có kích thước flash là 32Mbit và điều này có nghĩa là 4MB. _Bạn cũng có thể chọn SPITỐC ĐỘ 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!!!
  1. Chớp sáng 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 nhấp nháy.

  1. Sử dụng ứng dụng điện thoại

  2. Ứng dụng Android

  3. Ứng dụng iPhone

Bắt đầu với FreeRTOS trên NodeMCU ESP8266 – Hướng dẫn thực hành Ảnh chụp màn hình từ thiết bị Android của tôi

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 và nhấn xác nhận. Sau vài giây, ESP8266 sẽ kết nối với AP của bạn. Thế thôi. Chúc mừng bạn đã đi đến cuối cùng!

Nếu bạn muốn phát triển hơn nữa 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, vui lòng xem các ví dụ khác có trong thư mục SDK.

Cảm ơn bạn rất nhiều vì đã dành thời gian đọc nó. 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

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu