สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โปรเจ็กต์นี้อธิบายวิธีตั้งค่าอุปกรณ์ Arduino/Genuino MKR1000 สองตัวเป็นเซิร์ฟเวอร์และไคลเอนต์
ไคลเอนต์ MKR1000 จะเชื่อมต่อกับ wifi ในพื้นที่ของคุณและฟังอินพุตสองอินพุตที่เชื่อมต่อกับไคลเอนต์ทางกายภาพ อันหนึ่งจากปุ่มและอีกอันจากเซ็นเซอร์การสั่นสะเทือน
เมื่อตรวจจับอินพุต MKR ไคลเอ็นต์จะส่งคำขอ GET ไปยังเซิร์ฟเวอร์ MKR เมื่อได้รับคำขอ GET เซิร์ฟเวอร์ MKR จะได้รับการตั้งค่าให้เปิด/ปิด LED ในตัว (เรียกโดยปุ่มไคลเอนต์) และหรี่ไฟ LED ที่ต่ออยู่ให้จางลง (กระตุ้นโดยเซ็นเซอร์การสั่นสะเทือน)
ขั้นตอนที่ 1: การสร้างเซิร์ฟเวอร์บน MKR
ตั้งค่า MKR และเขียงหั่นขนมตามภาพ
LED สีแดงเชื่อมต่อผ่านตัวต้านทาน 1K Ohm กับ Pin #5 บน MKR นี่คือพินดิจิตอลที่มีการปรับความกว้างพัลส์ (PWM) ซึ่งช่วยให้เราตั้งค่าตัวแปรสำหรับความสว่างของ LED สีแดง อีกด้านหนึ่งของ LED เชื่อมต่อกับกราวด์
LED อีกดวงที่ใช้ในโปรเจ็กต์นี้คือไฟ LED ออนบอร์ดบน MKR มีเครื่องหมาย "L" และเป็น LED สีเขียวอยู่ใกล้ขา VCC
ตอนนี้ดาวน์โหลด (หรือเพียงแค่คัดลอก) รหัสสำหรับเซิร์ฟเวอร์ MKR จากที่นี่:
github.com/TonyCanning/MKR1000-IoT - ชื่อร่าง Arduino คือ "MKRServerLED.ino"
แก้ไขเพื่อรวมข้อมูลรับรองเครือข่าย wifi ของคุณและอัปโหลดไปยัง MKR1000 ของคุณ
เมื่ออัปโหลดแล้ว ให้เปิดจอภาพอนุกรมของคุณ (ดูภาพสำหรับคำอธิบายของผลลัพธ์) ในขั้นแรกจะแสดงให้คุณเห็นมากกว่าที่อยู่ IP ของเซิร์ฟเวอร์เล็กน้อย จดที่อยู่นี้เนื่องจากคุณจะต้องรวมไว้ในรหัสลูกค้าด้วย
ณ จุดนี้ เซิร์ฟเวอร์เริ่มทำงาน - เราจะตั้งค่า MKR1000 อีกเครื่องหนึ่งเป็นไคลเอนต์สำหรับเซิร์ฟเวอร์นี้ อย่างไรก็ตาม เนื่องจากเป็นเซิร์ฟเวอร์ คุณจะเชื่อมต่อได้จากอุปกรณ์ใดๆ ในเครือข่ายของคุณโดยพิมพ์ที่อยู่ https://192.168.*.* ที่ให้ไว้ในเบราว์เซอร์ใดก็ได้
ลองใช้ดูและสังเกตว่าหน้าที่ให้มามีที่อยู่ที่คลิกได้เพื่อเปลี่ยนสถานะของไฟ LED บนเซิร์ฟเวอร์ MKR10000 ของคุณ นอกจากนี้ โปรดทราบว่ารายละเอียดการตรวจสอบแบบอนุกรมจะอัปเดตเพื่อรับทราบคำขอ GET เหล่านี้ที่ได้รับจากเซิร์ฟเวอร์
หมายเหตุ: มีไลบรารี่ที่คุณอาจต้องติดตั้ง ฉันค่อนข้างแน่ใจว่าคุณจะต้องติดตั้งไลบรารี Wifi101 เป็นอย่างน้อย หลังจากซ่อมแซมเป็นเวลานานฉันไม่แน่ใจว่าคุณต้องการหรือไม่ต้องการอะไรจากการติดตั้งใหม่ โปรดดูข้อมูลที่มีอยู่มากมายเกี่ยวกับการติดตั้งไลบรารี่หรือปัญหาอื่นๆ ที่คุณอาจมีเกี่ยวกับการเชื่อมต่อ/การอัปโหลด ฯลฯ
ขั้นตอนที่ 2: การสร้างไคลเอนต์เพื่อส่งคำขอไปยังเซิร์ฟเวอร์
อีกครั้งตั้งค่าเขียงหั่นขนมตามที่แสดงในภาพ
ในกรณีนี้ ปุ่มเชื่อมต่อกับพิน 9 และเซ็นเซอร์การสั่นสะเทือนเชื่อมต่อกับพิน 8 พินของบ็อตเป็นพินดิจิทัลเนื่องจากสถานะของอินพุตทั้งสองนี้เป็นไบนารี
เมื่อเสร็จแล้ว คุณสามารถดาวน์โหลด (หรือคัดลอกและวาง) รหัสลูกค้าได้จากที่นี่:
github.com/TonyCanning/MKR1000-IoT - ชื่อไฟล์คือ "MKRClientGET.ino"
ณ จุดนี้ ฉันแนะนำให้ถอดปลั๊กเซิร์ฟเวอร์ MKR ออกจากพีซีของคุณ เนื่องจากคุณจะไม่เห็นความแตกต่างในการตั้งชื่อเมื่อคุณเลือกพอร์ต COM
แก้ไขรหัสเพื่อให้ข้อมูลรับรองเครือข่าย wifi และที่อยู่ IP ของเซิร์ฟเวอร์ MKR ตรวจสอบให้แน่ใจว่าคุณค้นหาแต่ละอินสแตนซ์ของ "192" และเปลี่ยนเป็นที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ อัปโหลดรหัสไปยังไคลเอ็นต์ MKR และเปิดจอภาพแบบอนุกรม
ดูภาพเอาต์พุตของจอภาพอนุกรมและลองกดปุ่มและเรียกเซ็นเซอร์การสั่นสะเทือน
ขั้นตอนที่ 3: ทดสอบเลย
คุณควรจะทำ….
ณ จุดนี้ คุณสามารถให้พลังงานแก่ MKR1000 แต่ละตัวได้ (ไม่ว่าคุณจะเลือกทำเช่นนั้นอย่างไร) ให้เวลาพวกเขาประมาณ 10 วินาทีแล้วลองทริกเกอร์อินพุตของไคลเอ็นต์เพื่อดูเอาต์พุตบนเซิร์ฟเวอร์ MKR
ขั้นตอนที่ 4: การแก้ไขปัญหา
ก่อนเข้าสู่การแก้ไขปัญหา - ตรวจสอบพื้นฐาน คุณให้อำนาจแก่ MKR ทั้งสองหรือไม่? คุณแน่ใจหรือไม่ว่ารหัสเซิร์ฟเวอร์อยู่บนเซิร์ฟเวอร์ MKR และรหัสไคลเอนต์สำหรับไคลเอนต์ MKR
ปัญหาและแนวทางแก้ไขที่เป็นไปได้:
1. C:\Users\tony\Documents\Arduino\MKRClientGET\MKRClientGET.ino:11:18: ข้อผิดพลาดร้ายแรง: 1234.h: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว #include
^
การรวบรวมสิ้นสุดลง
นี่เป็นปัญหาของไลบรารีที่คุณยังไม่ได้ติดตั้ง ตามที่ระบุไว้ในขั้นตอนก่อนหน้านี้มีข้อมูลมากมายเกี่ยวกับเรื่องนี้
2. เซิร์ฟเวอร์หรือไคลเอนต์ไม่ได้ทำการเชื่อมต่อกับ wifi ของคุณ เป็นไปได้ว่าคุณไม่ได้ให้ข้อมูลรับรอง wifi ของคุณ
3. Client Serial Monitor แสดงการเปลี่ยนแปลงสถานะ แต่ไม่มีปฏิกิริยาบนเซิร์ฟเวอร์ อาจเกิดจากการไม่ระบุที่อยู่ IP ของเซิร์ฟเวอร์ในรหัสไคลเอ็นต์ของคุณ
4. ปุ่มไม่แสดงสถานะการเปลี่ยนแปลงในมอนิเตอร์แบบอนุกรม ตรวจสอบรายชื่อเขียงหั่นขนมของคุณ