สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
คู่มือนี้ช่วยให้คุณรับข้อมูลใดๆ จาก ESP8266 และควบคุมผ่าน python โดยไม่ต้องใช้คำสั่ง AT
สำหรับผู้เริ่มต้น คำแนะนำส่วนใหญ่เกี่ยวกับการใช้ ESP8266 นั้นยาก เพราะพวกเขาต้องการให้คุณแฟลช "AT COMMANDS" ลงในชิป ซึ่งก็คือ:
- ไม่จำเป็น
- การสูญเสียหน่วยความจำของ ESP
- ให้คุณควบคุมได้อย่างจำกัด
- ยากและท้าทาย
- และไม่เหมาะกับโมดูล ESP8266 ทั้งหมด
นั่นเป็นเหตุผลที่ฉันสร้างระบบสื่อสาร mDNS ที่เรียบง่าย ซึ่งควบคุมด้วยฟังก์ชันง่ายๆ 3 อย่างเท่านั้น นอกจากนี้ยังช่วยให้คุณควบคุมได้อย่างเต็มที่
ขั้นตอนที่ 1: ทฤษฎี
esp ของเราเชื่อมต่อกับ wifi ของเราและสร้างเซิร์ฟเวอร์ localhost และเริ่มรอคำขอ ทุกครั้งที่ python ของเราส่งคำขอไปยัง localhost นั้น esp จะรันโค้ดที่ต้องการแล้วส่งคืนผลลัพธ์เป็นคำขอ http ในที่สุด python จะอ่านข้อมูลที่ส่งคืนเป็นคำขอ http และคว้าตัวแปรนั้นจากมัน ด้วยสิ่งนี้ esp สามารถส่งคืนสตริง ข้อมูล และอาร์เรย์ รหัส Python จะเข้าใจประเภทข้อมูลของพวกเขา
ขั้นตอนที่ 2: การเตรียมห้องสมุดที่จำเป็น
ก่อนอื่น คุณต้องดาวน์โหลดไลบรารีการ์ด ESP8266 ไปยัง arduino ide หากคุณไม่ทราบวิธี นี่คือคำแนะนำ
หลังจากนั้น คุณต้องดาวน์โหลด micro library ของฉันจากที่นี่
หลังจากที่คุณดาวน์โหลด ในโฟลเดอร์ไลบรารีจะมีไฟล์ชื่อ "ESP_MICRO.h" ให้คัดลอกไปยังโฟลเดอร์การเข้ารหัสของโครงการ Arduino ปัจจุบัน ใช่ อย่าคัดลอกไปยังไลบรารีของ Arduino มันเป็นห้องสมุดขนาดเล็ก ดังนั้นคุณจะคัดลอกไปยังโฟลเดอร์ของโครงการ Arduino ปัจจุบันของคุณ
ตอนนี้ ความต้องการของเราเป็นที่พอใจแล้ว เราสามารถเริ่มเขียนโค้ดได้เลย
ขั้นตอนที่ 3: การเขียนรหัสคำขออย่างง่าย
เมื่อคุณเปิด project.ino คุณจะเห็นสองแท็บบน arduino ide หนึ่งคือโปรเจ็กต์ของคุณ อีกอันคือ "ESP_MICRO.h" ไมโครไลบรารีของเรา
ตอนนี้คุณมี 5 ฟังก์ชันใน ESP_MICRO.h ในโค้ดหลักของคุณแล้ว (ฟังก์ชันจะอธิบายไว้ในบรรทัดแรกของ ESP_MICRO.h)
นี่คือโค้ดเพิ่มตัวแปรอย่างง่าย
รหัส Arduino:
/* การทดสอบ F5 สำหรับ ESP2PY
* เขียนโดย Junicchi * https://github.com/KebabLord/esp_to_python * มันเพียงเพิ่มขึ้นและส่งคืนตัวแปรทุกครั้งที่มีการร้องขอ python */ #include "ESP_MICRO.h" // รวม micro library int testvariable = 0; การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); // การเริ่มต้นพอร์ตอนุกรมเพื่อดูรายละเอียด start("USERNAME", "PASSWORD"); // EnAIt จะเชื่อมต่อกับ wifi ของคุณด้วยรายละเอียดที่กำหนด } void loop(){ waitUntilNewReq(); //รอจนกว่าคำขอใหม่จาก python จะมาถึง /* เพิ่มดัชนีเมื่อมีคำขอใหม่เข้ามา*/ testvariable += 1; returnThisInt(ตัวแปรทดสอบ); // คืนค่าข้อมูลไปที่ python }
ขั้นตอนที่ 4: กำลังอัปโหลด
การเขียนโปรแกรม Nodemcu ESP8266 เพียงแค่เสียบ usb และอัปโหลดภาพร่างจาก Arduino
แต่การเขียนโปรแกรม ESP8266-1 นั้นยากกว่า มีสองวิธีในการเขียนโปรแกรม
การเขียนโปรแกรม ESP ผ่าน Arduino
หากคุณพอใจกับจัมเปอร์ คุณสามารถตั้งโปรแกรมผ่าน Arduino ด้วยวงจรนี้ได้ แต่ในระยะยาวมันคือความเจ็บปวด เลยแนะนำวิธีอื่น
ตั้งโปรแกรมด้วยโปรแกรมเมอร์ ESP
มันง่ายกว่าและเร็วกว่ามาก เพียง 1 ดอลลาร์ ซื้อหนึ่งอันและใช้โปรแกรมเมอร์ usb
การเรียนรู้ที่อยู่ IP ของ ESP
ขณะที่กำลังอัปโหลดรหัส ให้เปิดพอร์ตอนุกรม คุณจะเห็นรายละเอียดที่พิมพ์ออกมาเมื่อการอัปโหลดเสร็จสิ้น เรียนรู้ IP ของ esp และสังเกตว่า จำไว้ว่า IP ของ ESP ในพื้นที่; การเปลี่ยนแปลงโดย wifi เป็น wifi ไม่ใช่เซสชันต่อเซสชัน ดังนั้นเมื่อคุณปิดและเปิดในภายหลังจะไม่มีการเปลี่ยนแปลง
ขั้นตอนที่ 5: การอ่านและ Python
ใน esp_to_python/library จะมี "EXAMPLE_PYTHON_READER.py"
แก้ไขเปลี่ยนบรรทัดที่ 5 ด้วยที่อยู่ IP ของโมดูล esp ที่พิมพ์บนพอร์ตอนุกรมและเรียกใช้สคริปต์หลาม ในโครงการนี้ ฉันใช้ python เพื่อส่งและอ่านคำขอ แต่คุณยังสามารถดูข้อมูลดิบด้วยเบราว์เซอร์ในขณะที่วาง IP ของ ESP บนเบราว์เซอร์ได้ หรือคุณสามารถสร้างแอปพลิเคชันเพื่ออ่านหรือใช้ภาษาอื่นได้ การควบคุมโมดูลบน python ยังอธิบายไว้ในโปรเจ็กต์ "ledControl" ในโฟลเดอร์ตัวอย่าง
ขั้นตอนที่ 6: เสร็จสิ้น
ฟังก์ชันและรหัสทั้งหมดได้อธิบายไว้ใน ESP_MICRO.h และในไฟล์ README.md
หากโปรเจ็กต์นี้ช่วยคุณได้ คุณสามารถติดดาวโปรเจ็กต์ดั้งเดิมบน github ได้