Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> WiFi

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ

โดย เดนิส นูทิอู

เมื่อเร็วๆ นี้ ฉันซื้อ NodeMCU จาก AliExpress ในราคาประมาณ 4 ดอลลาร์ เหตุผลที่ฉันทำสิ่งนี้คือเพื่อค้นหาว่าปัญหาทั้งหมดเกี่ยวกับ ESP8266 คืออะไร

NodeMCU เป็นแพลตฟอร์ม IoT แบบโอเพ่นซอร์ส ประกอบด้วยเฟิร์มแวร์ที่ทำงานบน ESP8266 Wi-Fi SoC จาก Espressif Systems และฮาร์ดแวร์ที่ใช้โมดูล ESP-12

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ แหล่งที่มา:เอกสารข้อมูล ESP8266

เมื่อเปรียบเทียบกับ Arduino UNO แล้ว ESP8266 ของฉันทำได้น่าทึ่งมากเมื่อพูดถึงพลังและราคาของ CPU

ESP8266 เร็วขึ้น 500% และราคาถูกกว่า Arduino ถึง 82% ESP8266 มีการเชื่อมต่อ WiFi ด้วย

ฉันประหลาดใจมากเมื่อเยี่ยมชมเว็บไซต์ Espressif สำหรับ ESP8266 มีเอกสารและทรัพยากรมากมายที่คุณสามารถใช้ได้ ตัวอย่างเช่น มีแอปพลิเคชัน Android ที่บอกให้ ESP8266 ของคุณเชื่อมต่อกับ WiFi ของคุณ แอปจะส่ง SSID และรหัสผ่านเป็นแพ็กเก็ต จากนั้น ESP8266 จะดมกลิ่น จากนั้นจะเชื่อมต่อกับ WiFi ของคุณ สิ่งนี้เรียกว่า SmartConfig และคิดค้นโดย Texas Instruments

ในบทความนี้ ฉันจะแนะนำให้คุณตั้งค่าและเรียกใช้ตัวอย่าง Smart Config จาก Espressif RTOS SDK

นี่คือสิ่งที่คุณต้องการ:

  • คอมพิวเตอร์สมัยใหม่
  • บอร์ด NodeMCU พร้อม ESP12-E
  • VirtualBox (https://www.virtualbox.org/wiki/Downloads)
  • เซิร์ฟเวอร์ Ubuntu LTS (https://www.ubuntu.com/download/server)

การกำหนดค่า VirtualBox สำหรับการพัฒนา

  1. ดาวน์โหลด VirtualBox และติดตั้งเซิร์ฟเวอร์ Ubuntu สิ่งนี้ควรจะทำได้ง่าย แต่หากคุณไม่รู้วิธี ให้ลองใช้ Google หรือดูคำแนะนำทีละขั้นตอนแบบกราฟิกนี้ การติดตั้งระบบปฏิบัติการถือเป็นทักษะที่ดี (เคล็ดลับ:เมื่อ VirtualBox แจ้งให้คุณเลือกดิสก์ ให้ทำการจัดสรรแบบไดนามิกและมีขนาดอย่างน้อย 50GB ซึ่งจะช่วยให้คุณไม่ต้องปวดหัวอีกต่อไป)
  2. ตรวจสอบให้แน่ใจว่าคุณสามารถเข้าถึงอินเทอร์เน็ตจากภายในเครื่องเสมือนและกำหนดค่าเซิร์ฟเวอร์ DNS:

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ คลิกขวาที่เครื่อง จากนั้นไปที่การตั้งค่า -> เครือข่าย

หากต้องการกำหนดค่าเซิร์ฟเวอร์ DNS โปรดดูตัวอย่างนี้

ตัวอย่าง:09 หากคุณสามารถ Ping Google ได้ คุณก็พร้อมแล้ว!

  1. (ไม่บังคับ) ติดตั้งเซิร์ฟเวอร์ OpenSSH และ Samba สิ่งนี้จะทำให้ชีวิตของคุณง่ายขึ้นมาก

  2. (ไม่บังคับ) เปิดใช้งานการส่งต่อพอร์ต หากต้องการ SSH เข้าสู่เครื่องเสมือนของคุณโดยตรง คุณต้องเปิดใช้งานการส่งต่อพอร์ต ตัวอย่างเช่น หากต้องการแมป พอร์ต 2222 บนเครื่องโฮสต์ของคุณ ไปยัง พอร์ต 22 ของเครื่องเสมือนของคุณ .

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ เปิดใช้งานการส่งต่อพอร์ต:การตั้งค่า -> เครือข่าย -> การส่งต่อพอร์ต กระตือรือร้น

หากคุณได้เปิดใช้งานการส่งต่อพอร์ต ตอนนี้คุณสามารถ SSH ไปยังเครื่องเสมือนของคุณจากเครื่องโฮสต์ของคุณได้ดังภาพด้านล่าง

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ FIG1:ssh -p 2020 denis@localhost

หมายเหตุ:หากคุณใช้ Windows คุณต้องมี สีโป๊ว เพื่อ SSH เข้าสู่เครื่องเสมือน

  1. เสียบ NodeMCU ของคุณแล้วดำเนินการคำสั่งต่อไปนี้:

12

สิ่งนี้ควรเปิดเผยให้คุณทราบว่าอุปกรณ์ได้รับการระบุเป็น /dev/ttyUSB0 หากไม่มีอะไรเกิดขึ้น คุณจะต้องเพิ่ม USB ลงในเครื่องเสมือน หลังจากเพิ่ม USB แล้ว ให้ถอดปลั๊กและเสียบอุปกรณ์ของคุณอีกครั้ง

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ การเพิ่ม USB:การตั้งค่า -> พอร์ต -> USB

หากคุณมาถึงจุดนี้และทุกอย่างทำงานได้ดี ขอแสดงความยินดี ! ตอนนี้คุณพร้อมที่จะคอมไพล์ SDK และรันตัวอย่าง SmartConfig แล้ว คุณยังสามารถทวีตให้ฉันได้ที่ https://twitter.com/metonymyqt

รวบรวม SDK และแฟลชบอร์ด

  1. ติดตั้งแพ็คเกจที่จำเป็น (ตามด้านล่าง) ข้อมูลนี้มีอยู่ใน readme.md ของ 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. สร้างโฟลเดอร์ใหม่และไปที่โฟลเดอร์นั้น:28

  2. โคลน Open SDK:https://github.com/pfalcon/esp-open-sdk

32

  1. เรียกใช้การสร้าง:49

คำเตือน:ขั้นตอนนี้จะใช้เวลาสักครู่จึงจะเสร็จสิ้น ดังนั้นโปรดอดใจรอ บนเครื่องเสมือนของฉัน มันเสร็จสิ้นหลังจากผ่านไป 50 นาที อาจใช้เวลามากหรือน้อยกว่าสำหรับคุณ แต่ก่อนที่คุณจะเรียกใช้ ตรวจสอบให้แน่ใจว่าคุณ เชื่อมต่ออินเทอร์เน็ต และ DNS ได้รับการกำหนดค่าอย่างถูกต้อง . วิธีที่ดีที่สุดในการตรวจสอบนี้คือส่ง Ping ไปยัง Google หรือไซต์อื่น ๆ หาก Google ถูกบล็อกในภูมิภาคของคุณ

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ คำสั่ง ping ที่สำเร็จ:$ ping medium.com

หาก Ping ของคุณสำเร็จ คุณสามารถย่อหน้าต่างและดูตอนของรายการทีวีที่คุณชื่นชอบได้ กลับมาอีกครั้งหลังจากผ่านไปประมาณ 40 นาที (แต่ให้แน่ใจว่าคอมพิวเตอร์ของคุณไม่เข้าสู่โหมดสลีป)

หลังจากที่สร้าง SDK สำเร็จแล้ว คุณจะเห็นข้อความแจ้งให้คุณวางบางอย่างในเส้นทางของคุณ โดยดำเนินการดังต่อไปนี้:

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

คำสั่งจะเพิ่มสตริงต่อท้าย ~/.profile ไฟล์. ตอนนี้โปรดรันคำสั่งต่อไปนี้:

50

หากคำสั่งดำเนินการสำเร็จ คุณก็พร้อมแล้ว!

  1. ทดสอบบอร์ดของคุณ

เสียบ NodeMCU ของคุณแล้วรัน lsusb เพื่อตรวจสอบว่าอุปกรณ์ของคุณเชื่อมต่ออยู่ หลังจากนั้น ให้รัน esptool.py chip_id . ตอนนี้คุณควรเห็นรหัสชิปของบอร์ดแล้ว

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ _esptool.py ชิปid

  1. โคลน ESP8266_RTOS_SDK
git clone https://github.com/espressif/ESP8266_RTOS_SDK.git
  1. ส่งออกเส้นทาง SDK และเส้นทาง SDK/BIN โดยใช้คำสั่งด้านล่าง
echo 'export SDK_PATH=/home/denis/Development/ESP8266_RTOS_SDK' >> ~/.profile
echo 'export BIN_PATH=/home/denis/Development/ESP8266_RTOS_SDK/bin' >> ~/.profile
  1. รวบรวมตัวอย่าง SmartConfig
cd /home/denis/Development/ESP8266_RTOS_SDK/examples/smart_config/
chmod +x ./gen_misc.sh
./gen_misc.sh

ตอนนี้ยอมรับค่าเริ่มต้นจนกว่าคุณจะถามถึง SPI_SIZE_MAP นี่คือที่ที่คุณเลือก 4 เนื่องจาก NodeMCU มีขนาดแฟลช 32Mbit และแปลเป็น 4MB _คุณสามารถเลือก SPISPEED 3=80Mhz ได้ด้วย

คุณจะเห็นสิ่งนี้:

!!!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. แฟลชบอร์ด
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

ตอนนี้ หากคุณรีเซ็ตบอร์ด คุณจะไม่เห็นไฟ LED กะพริบ

  1. ใช้แอปพลิเคชันโทรศัพท์

  2. แอปพลิเคชัน Android

  3. แอปพลิเคชัน iPhone

เริ่มต้นใช้งาน FreeRTOS บน ESP8266 NodeMCU – คู่มือปฏิบัติ ภาพหน้าจอจากอุปกรณ์ Android ของฉัน

เปิดแอปพลิเคชัน ตรวจสอบให้แน่ใจว่าคุณเชื่อมต่อกับ WiFi AP แล้ว ป้อนรหัสผ่านของคุณ แล้วกดยืนยัน หลังจากนั้นไม่กี่วินาที ESP8266 ควรเชื่อมต่อกับ AP ของคุณ แค่นั้นแหละ. ขอแสดงความยินดีที่มาถึงจุดสิ้นสุดแล้ว!

หากคุณต้องการพัฒนาเพิ่มเติมโดยใช้ ESP8266-RTOS-SDK โปรดเยี่ยมชมเว็บไซต์อย่างเป็นทางการ คุณจะพบแหล่งข้อมูลและเอกสารมากมายที่นั่น นอกจากนี้ โปรดดูตัวอย่างอื่นๆ ที่พบในโฟลเดอร์ SDK

ขอบคุณมากที่สละเวลาอ่านข้อความนี้ หากคุณต้องการติดต่อฉัน คุณสามารถทำได้บน Twitter:MetonymyQT

ทรัพยากร

  • ภาพรวม ESP8266
  • ทรัพยากร ESP8266
  • เว็บไซต์ FreeRTOS

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น


No