สารบัญ:
- ขั้นตอนที่ 1: รายการส่วนประกอบ
- ขั้นตอนที่ 2: การเตรียมกล้อง
- ขั้นตอนที่ 3: การเตรียม Arduino M0-SD. ที่เข้ากันได้
- ขั้นตอนที่ 4: การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
- ขั้นตอนที่ 5: การประกอบฮาร์ดแวร์
- ขั้นตอนที่ 6: การตั้งค่าโบรกเกอร์ MQTT
- ขั้นตอนที่ 7: แอป MQTT Dash
- ขั้นตอนที่ 8: การเขียนโปรแกรมและการทำงาน
วีดีโอ: การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT: 8 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
สวัสดี.
วันนี้ผมจะมาพูดถึงวิธีการทำรีโมทคอนโทรลและระบบตรวจสอบที่สามารถใช้งานได้ เช่น เพื่อควบคุมประตูโรงรถ แสงสว่าง ระบบทำความร้อน การควบคุมแรงดัน อุณหภูมิ และพารามิเตอร์อื่น ๆ อีกมากมาย แต่คุณสมบัติหลักของระบบนี้คือ คุณสามารถรับภาพถ่ายจากวัตถุระยะไกลได้จากระยะไกล ก่อนที่คุณจะเริ่มเรื่อง ขอคำนำสั้นๆ เมื่อฉันต้องการสร้างระบบเฝ้าระวังภาพถ่ายโดยใช้บอร์ด Arduino M0-SD ที่เข้ากันได้ กล้อง VC0706 และ 3G/GPRS/GSM/GPS shield สำหรับ Arduino บอร์ดที่เข้ากันได้กับ Arduino M0-SD ได้รับการคัดเลือกจากเงื่อนไขที่ง่ายต่อการตั้งโปรแกรม (เช่นเดียวกับ Arduino UNO) แรงดันไฟฟ้าที่ใช้งานคือ 3.3V - สะดวกมากสำหรับการทำงานกับกล้อง VC0706 ROM จำนวนมาก และ RAM, UART หลายพอร์ต, พอร์ตเสมือนแยกต่างหากของ USB แต่ข้อดีหลักคือการมีตัวเชื่อมต่อ micro SD บนบอร์ดโดยตรง (สะดวกมากในการจัดเก็บข้อมูลจำนวนมากเช่นรูปภาพ)
3G/GPRS/GSM/GPS shield สำหรับ Arduino สะดวกมากสำหรับใช้กับบอร์ด Arduino M0-SD ที่เข้ากันได้ มีห้องสมุดหลายแห่งบนอินเทอร์เน็ตรวมถึงตัวอย่างมากมายสำหรับการทำงานกับเกราะนี้ อัตราการถ่ายโอนข้อมูล (3G) นั้นสูงกว่าโล่ GPRS ทั่วไปมาก (สะดวกเป็นพิเศษสำหรับการส่งภาพ) ความพร้อมใช้งานของโมดูล GPS เป็นข้อได้เปรียบเพิ่มเติม
ฉันเลือกอัตราค่าไฟฟ้าราคาถูกจากผู้ให้บริการเครือข่ายมือถือสำหรับการส่งข้อมูล (ภาพถ่าย) ทางอินเทอร์เน็ต แต่คำถามก็เกิดขึ้น: วิธีการถ่ายโอนข้อมูล? MMS? FTP? จะรับการแจ้งเตือนเกี่ยวกับการรับข้อมูล (ภาพถ่าย) ได้อย่างไร? ทำให้ผมตัดสินใจส่งข้อมูล (ภาพถ่าย) มาที่อีเมล์ และดูจดหมายผ่านแอพพลิเคชั่นที่ติดตั้งบนโทรศัพท์มือถือ ปรากฎว่าสะดวกมาก!:-) สามารถดูโครงการที่เสร็จแล้วได้ที่ลิงค์นี้
นอกจากนี้ยังมีโครงการที่คล้ายกันสำหรับ Arduino UNO โดยอ้างอิง
จากนั้นฉันก็ตัดสินใจขยายฟังก์ชันการทำงานของอุปกรณ์ ตัวอย่างเช่น เพิ่มความสามารถในการควบคุม LED (แม้ว่าในความเป็นจริงแล้ว ความเป็นไปได้นั้นกว้างกว่ามาก) อีเมลสำหรับสิ่งนี้ไม่เหมาะมาก ตัวเลือก SMS มีราคาแพงและไม่สบายใจ แล้วฉันก็ได้เรียนรู้เกี่ยวกับ MQTT ฉันจะไม่อธิบายว่าเขาคืออะไร ให้ฉันพูดว่า: นี่เป็นสิ่งที่เจ๋งจริงๆ!:-) ด้วยความช่วยเหลือของ MQTT คุณสามารถแลกเปลี่ยนข้อความไม่เพียง แต่ไฟล์ไบนารี (ภาพ) ในแอปพลิเคชันสำหรับโทรศัพท์ คุณสามารถสร้างอินเทอร์เฟซของคุณเองได้อย่างง่ายดาย
ฉันมองหาตัวอย่างการใช้งานโปรโตคอล MQTT สำหรับ 3G/GPRS/GSM/GPS shield (SIM5320) ของฉัน และขออภัย ไม่พบการใช้งานที่ฉันต้องการ แต่นั่นไม่ได้ทิ้งฉันไว้คนเดียว ฉันตัดสินใจที่จะใช้ฟังก์ชันที่จำเป็นอย่างอิสระ ด้วยเหตุนี้ ฉันจึงสามารถสร้างอุปกรณ์ที่ควบคุม (แสดงโดย LED สามดวง) ผ่าน MQTT จากแอปพลิเคชันที่ติดตั้งบนโทรศัพท์มือถือ และส่งรูปภาพไปยังโทรศัพท์ด้วยคำสั่งจากโทรศัพท์ (จะบอกความลับให้ฟังว่าไม่เคยเห็นตัวอย่างการส่งภาพผ่านนายหน้า MQTT มาก่อนและทำครั้งแรก และพอโอนภาพแรกได้ก็ดีใจมาก!:-)) และ ดังนั้นฉันจึงเสนอให้ไปที่ขั้นตอนแรก - รายการส่วนประกอบที่จำเป็น
ขั้นตอนที่ 1: รายการส่วนประกอบ
เราต้องการส่วนประกอบต่อไปนี้:
1) เข้ากันได้กับ Arduino M0-SD
2) TTL-กล้อง VC0706.
3) 3G/GPRS/GSM/GPS ชิลด์สำหรับ Arduino
4) ไฟ LED สีแดง สีเขียว สีเหลือง ตัวต้านทาน 3 ตัว (100-500 โอห์ม) สายไฟ ขั้วต่อมุมพินที่มีระยะพิทช์ 2.54 มม.
5) อะแดปเตอร์ไฟ AC-DC (6V 1A), เสาอากาศ 3G ฯลฯ
ขั้นตอนที่ 2: การเตรียมกล้อง
กล้องมีเอาต์พุต RS-232 สำหรับเชื่อมต่อโดยตรงกับพีซี จำเป็นต้องถอด MAX232 (ตัวแปลง RS-232) และปิดแผ่นสัมผัสระหว่างพินที่เกี่ยวข้อง 7-10 (TX), 8-9 (RX)
สายเคเบิลหกเส้นที่มากับกล้องจะต้องทำใหม่เล็กน้อย:
- ถอดสายไฟสองเส้นออกจากขั้วต่อ
- จัดเรียงสายไฟสีแดง (+ 5V) และสีดำ (GND) ตามที่แสดงในรูป
ปลายสายเปลือยจะต้องมีปลายบัดกรีเช่น "ตัวเมีย"
ขั้นตอนที่ 3: การเตรียม Arduino M0-SD. ที่เข้ากันได้
ดังที่ได้กล่าวไปแล้ว Arduino M0-SD ที่เข้ากันได้คือฮาร์ดแวร์และซอฟต์แวร์ที่เข้ากันได้กับ Arduino M0 ดั้งเดิม แต่ก็มีตัวเชื่อมต่อ microSD ในตัวสำหรับเชื่อมต่อการ์ดหน่วยความจำ
ในการเชื่อมต่อกล้องเข้ากับ Arduino M0-SD ที่เข้ากันได้บนบอร์ด จำเป็นต้องประสานตัวเชื่อมต่อเชิงมุมกับเทอร์มินัล TXD, RXD (ขั้วต่อ X6) ดังแสดงในรูป พอร์ตนี้ตรงกับ "ซีเรียล"
ต้องต่อสายสีขาว (Camera RX) และสีเหลือง (Camera TX) จากกล้องตามลำดับกับขั้วของ TXD และ RXD (ขั้วต่อ X6) ตามที่แสดงในรูป
ขั้นตอนที่ 4: การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
ก่อนติดตั้งซิมการ์ดในช่อง คุณต้องปิดใช้งานคำขอรหัส PIN จากนั้นติดตั้งซิมการ์ดลงในช่องที่ด้านล่างของบอร์ดดังแสดงในรูป ต้องติดตั้งจัมเปอร์สองตัวในตำแหน่ง RX-1 (D1), TX-0 (D0)
ขั้นตอนที่ 5: การประกอบฮาร์ดแวร์
การประกอบฮาร์ดแวร์ประกอบด้วยการดำเนินการง่ายๆ หลายประการ:
- ในการควบคุมไฟ LED ก่อนอื่นคุณต้องประสานการออกแบบ LED ขนาดเล็กและตัวต้านทานจำกัดกระแส (100-500 โอห์ม) ดังแสดงในรูป ให้ความสนใจกับขั้วของไฟ LED - ขั้วบวกจะต้องบัดกรีกับตัวต้านทาน (+) เพื่อลดการเปิดรับปรสิตของไฟ LED ฉันสร้างหน้าจอสีดำจากกระดาษแข็งธรรมดา
- เชื่อมต่อ LED และกล้องเข้ากับบอร์ด Arduino M0-SD ที่ใช้งานร่วมกันได้ดังแสดงในแผนภาพ แหล่งจ่ายไฟของกล้อง (สายสีแดง "+ 5V" และสายสีดำ "GND") ต้องนำมาจากขั้ว "+5V" และ "GND" จากช่องเสียบ คุณยังสามารถใช้ขั้วต่อมุมสำหรับสิ่งนี้
- หลังจากนั้น ต่อ 3G/GPRS/GSM/GPS shield เข้ากับบอร์ด Arduino M0-SD ที่เข้ากันได้ อย่าลืมเชื่อมต่อเสาอากาศ 3G
ขั้นตอนที่ 6: การตั้งค่าโบรกเกอร์ MQTT
ฉันเลือก www.cloudmqtt.com ที่สะดวกและชัดเจนมากในฐานะโบรกเกอร์ MQTT มันให้การทดสอบฟรี นอกจากนี้ยังสามารถรับและส่งข้อความโดยตรงบนเว็บไซต์
ขั้นตอนการตั้งค่ามีดังนี้:
- ลงทะเบียนออนไลน์
- กดปุ่ม "สร้างอินสแตนซ์ใหม่"
- ตั้งชื่อ เช่น "MqttCamera"
- กดปุ่ม "เลือกภูมิภาค" ตัวอย่างเช่น เลือก "US-East-1 (เวอร์จิเนียตอนเหนือ)"
- กดปุ่ม "ตรวจสอบ"
- กดปุ่ม "สร้างอินสแตนซ์". ดูข้อความ "สร้างอินสแตนซ์เรียบร้อยแล้ว"
- คลิก "MqttCamera"
- จดจำข้อมูล: เซิร์ฟเวอร์, ผู้ใช้, รหัสผ่าน, พอร์ต, คีย์ API (เราต้องการในขั้นตอนที่ 7 และ 8)
- จากนั้น คุณสามารถไปที่หน้าต่าง "WEBSOCKET UI" ซึ่งคุณสามารถทดสอบและแก้ไขข้อบกพร่อง ดูและส่งข้อความ (เราจะต้องใช้หน้าต่างนี้ในขั้นตอนต่อไป)
ขั้นตอนที่ 7: แอป MQTT Dash
ในการสร้างแผงควบคุมในโทรศัพท์มือถือ ฉันเลือกแอป MQTT Dash ที่ใช้งานง่ายและชัดเจน
ติดตั้งแอพ MQTT Dash บนโทรศัพท์ของคุณและทำการตั้งค่าต่อไปนี้:
- เปิดแอปพลิเคชัน
- ในหน้าต่าง MQTT dash คลิก (+) เพื่อเพิ่มแผงควบคุมใหม่
- ในหน้าต่างที่ปรากฏขึ้น ให้กรอกข้อมูลในช่องที่ต้องกรอก เช่น ชื่อ (เช่น MqttCamera), ที่อยู่, พอร์ต, ชื่อผู้ใช้, รหัสผ่านผู้ใช้ (รับข้อมูลจากขั้นตอนที่ 6)
- หลังจากกรอกข้อมูลในฟิลด์แล้ว ให้คลิกไอคอนดิสเก็ต (การดำเนินการ "บันทึก")
- ในหน้าต่างที่มีรายการแผงควบคุม ให้คลิกที่บรรทัดที่ปรากฏ " MqttCamera"
- ในหน้าต่างแผงควบคุมที่เปิดขึ้น ให้คลิกไอคอนลูกศรเพื่อโหลดเมตริก
- จากนั้นในหน้าต่างป๊อปอัป ให้คลิกที่ปุ่ม "สมัครและรอการวัด"
- บนคอมพิวเตอร์ส่วนบุคคล เปิดบัญชีในโบรกเกอร์ MQTT (ดูขั้นตอนก่อนหน้า) เปิดหน้าต่าง " WEBSOCKET UI " ตั้งค่าหัวข้อ "ตัวชี้วัด/การแลกเปลี่ยน" ในหน้าต่าง " ส่งข้อความ " และบันทึกข้อความจาก ไฟล์แนบ metrics.txt ในหน้าต่าง " ข้อความ " คลิกปุ่ม " ส่ง"
- รอ 10 วินาที ตรวจสอบให้แน่ใจว่าได้รับเมตริกในโทรศัพท์และอัปเดตแผงควบคุมแล้ว
จากนั้นคุณสามารถดำเนินการเขียนโปรแกรม Arduino M0-SD ที่เข้ากันได้
ขั้นตอนที่ 8: การเขียนโปรแกรมและการทำงาน
ก่อนเขียนโปรแกรม Arduino M0-SD ที่เข้ากันได้ คุณต้องติดตั้งไลบรารีที่จำเป็นทั้งหมดบนคอมพิวเตอร์ (pubsubclient-master, TinyGSM-master) ซึ่งฉันอ้างถึงด้านล่าง ไลบรารีเหล่านี้ได้รับการแก้ไขเล็กน้อยเพื่อทำงานร่วมกับบอร์ด Arduino M0-SD, กล้อง VC0706 และ 3G/GPRS/GSM/GPS SIM5320 shield
คุณต้องเชื่อมต่อสายเคเบิลและแหล่งจ่ายไฟ (6V 1A สำหรับจ่ายไฟ 3G/GPRS/GSM/GPS shield) กับ Arduino M0-SD ที่เข้ากันได้
เริ่ม Arduino IDE ใน Arduino IDE ต้องเลือก: Tools-> Board: Arduino M0 Pro (Native USB Port)
เปิดแบบร่าง MqttCamera.ino กรอกข้อมูลในฟิลด์: ชื่อผู้ใช้, รหัสผ่านผู้ใช้, คีย์ API, พอร์ต, เซิร์ฟเวอร์ (รับข้อมูลจากขั้นตอนที่ 6)
เปิดหน้าต่าง Serial Monitor
อัปโหลดภาพร่าง ฉันไม่ได้อธิบายรายละเอียดขั้นตอนการเขียนโปรแกรม (มีคำแนะนำเพียงพอบนอินเทอร์เน็ต)
หลังจากโหลดสำเร็จและประกอบอย่างเหมาะสม ข้อมูลต่อไปนี้ควรปรากฏในหน้าต่าง Serial Monitor:
VC0706 กล้อง + Arduino M0 + SIM5320 + MQTT
การเริ่มต้นกล้อง… เวอร์ชัน: ----------------- VC0703 1.00 Ctrl infr มี เซ็นเซอร์ที่ผู้ใช้กำหนด 525 ----------------- สำเร็จ ! กำลังเริ่มต้นโมเด็ม… โมเด็ม: AT+CGMM SIMCOM_SIM5320E กำลังรอเครือข่าย… ตกลง กำลังเชื่อมต่ออินเทอร์เน็ต ตกลง กำลังเชื่อมต่อกับ 3.83.68.228 ล้มเหลว กำลังเชื่อมต่อกับ 3.83.68.228 ตกลง Ping: 0
บรรทัด " Ping: XX " เป็นข้อความเป็นระยะจาก Arduino M0-SD ที่เข้ากันได้ไปยังเซิร์ฟเวอร์ แทนที่จะส่งข้อมูลนี้ คุณสามารถส่งการวัด ADC สถานะอินพุต และอื่นๆ ได้
ในแอป MQTT Dash ให้คลิกที่ไอคอนของหลอดไฟ (LED_YELLOW, LED_GREEN, LED_RED) - เปิด/ปิด ดูในหน้าต่างของจอภาพแบบอนุกรม - ควรมีข้อมูลเกี่ยวกับสิ่งนี้:
LED_YELLOW เปิด
LED_YELLOW_Off LED_GREEN เปิด LED_GREEN ปิด LED_RED เปิด LED_RED ปิด
คลิกที่ไอคอนกล้อง - ส่งคำสั่ง " SHOOT " และรอสักครู่ ข้อมูลต่อไปนี้ควรปรากฏในหน้าต่าง Serial Monitor:
เริ่มยิง!
ถ่ายแล้ว! สร้าง IMAGE332.jpg รอดึงภาพขนาด 3488 ไบต์ …เสร็จสิ้น! ใช้เวลา 1456 ms ส่งรูปภาพ (3488 ไบต์)…เสร็จสิ้น!
และหลังจากนั้นสักครู่ (5-10 วินาที) ในหน้าต่าง " VIEW IMAGE " ควรแสดงรูปภาพ
สำหรับการสาธิต ฉันสั่งกล้อง VC0706 ไปที่ LED เพื่อให้คุณดูสถานะได้หลังจากที่เปลี่ยนตามอำเภอใจ แต่ในการใช้งานจริงคุณสามารถนำกล้องไปที่ห้อง, ประตู, ถนน, ประตูรถ, รถยนต์ ฯลฯ ได้ (แน่นอนว่าคุณต้องคำนึงถึงข้อกำหนดของกฎหมายด้วย) ในการสาธิต ผมนำเสนอภาพหน้าจอหลายภาพจาก โทรศัพท์มือถือที่แสดงสถานะการติดตั้งและสถานะจริงของ LED
ฉันหวังว่าคำแนะนำของฉันจะน่าสนใจและมีประโยชน์สำหรับคุณ ฉันยินดีที่จะแสดงความคิดเห็นและความคิดเห็นของคุณ ในแผนการพัฒนาอุปกรณ์ของฉันและแบ่งปันนวัตกรรมใหม่กับคุณ ขอบคุณที่รับชม!
แนะนำ:
MQTT Mood Lights พร้อม ESP32: 4 ขั้นตอน (พร้อมรูปภาพ)
MQTT Mood Lights พร้อม ESP32: ฉันถูกล่อลวงมาเป็นเวลานานแล้วที่จะกระโดดขึ้นไปบนแถบ LED ดังนั้นฉันจึงวิ่งออกไปหยิบแถบ LED ขึ้นมาเพื่อเล่น ฉันลงเอยด้วยการสร้างแสงอารมณ์เหล่านี้ สามารถควบคุมได้ด้วย MQTT ทำให้สามารถเพิ่มสมาร์ทได้ทุกประเภท นี่คือ
เครื่องวัดอุณหภูมิสระว่ายน้ำ MQTT: 7 ขั้นตอน (พร้อมรูปภาพ)
ตัวตรวจสอบอุณหภูมิสระว่ายน้ำ MQTT: โปรเจ็กต์นี้เป็นโครงการร่วมกับโครงการ Home Automation อื่นๆ ของฉัน ตัวควบคุมไกเซอร์บันทึกข้อมูลอัจฉริยะ (Geyser Controller) บันทึกข้อมูลอัจฉริยะ และระบบควบคุมแสงสว่างในห้องอเนกประสงค์และเครื่องใช้ไฟฟ้า เป็นจอภาพติดริมสระที่วัดอุณหภูมิน้ำในสระ อากาศแวดล้อม
MQTT บนบอร์ด Armtronix: 3 ขั้นตอน
MQTT บนบอร์ด Armtronix: ในคำแนะนำนี้ เราต้องการแสดงให้คุณเห็นว่าคุณสามารถใช้ระบบที่ใช้ Linux (Debian หรือ Ubuntu) ได้อย่างไร และติดตั้ง Mosquitto (Mqtt Broker) บนนั้น แสดงวิธีใช้ไคลเอ็นต์ Mqtt บนโทรศัพท์ของคุณ ( Android)/ ระบบที่ใช้ Linux การส่งและ
เซ็นเซอร์ประตูและล็อคโรงเก็บของที่ใช้แบตเตอรี่ Solar, ESP8266, ESP-Now, MQTT: 4 ขั้นตอน (พร้อมรูปภาพ)
เซ็นเซอร์ประตูและตัวล็อคโรงเก็บของที่ใช้แบตเตอรี่ Solar, ESP8266, ESP-Now, MQTT: ในคำแนะนำนี้ ฉันจะแสดงให้คุณเห็นว่าฉันสร้างเซ็นเซอร์ที่ใช้พลังงานจากแบตเตอรี่เพื่อตรวจสอบสถานะประตูและล็อคของโรงรถจักรยานระยะไกลของฉันได้อย่างไร ฉันไม่มีไฟหลัก ดังนั้นฉันจึงใช้พลังงานจากแบตเตอรี่ แบตเตอรี่ถูกชาร์จโดยแผงโซลาร์เซลล์ขนาดเล็ก โมดูลนี้เ
การสื่อสารไร้สาย SmartHome: พื้นฐานขั้นสูงสุดของ MQTT: 3 ขั้นตอน
การสื่อสารไร้สาย SmartHome: พื้นฐานขั้นสูงของ MQTT: ข้อมูลพื้นฐาน MQTT: **ฉันกำลังจะทำซีรีส์ Home Automation ฉันจะทำตามขั้นตอนต่างๆ ที่ฉันทำเพื่อเรียนรู้ทุกสิ่งที่ฉันทำในอนาคต คำแนะนำนี้เป็นพื้นฐานในการตั้งค่า MQTT สำหรับใช้ใน Instructables ในอนาคตของฉัน อย่างไรก็ตาม