สารบัญ:

การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT: 8 ขั้นตอน
การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT: 8 ขั้นตอน

วีดีโอ: การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT: 8 ขั้นตอน

วีดีโอ: การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT: 8 ขั้นตอน
วีดีโอ: กิจกรรม Executive Talk the Series By TSP EP.2 - NECTEC New Vision New Technology Transfer 2024, พฤศจิกายน
Anonim
การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT
การควบคุมระยะไกลและการเฝ้าระวังภาพถ่ายผ่าน MQTT

สวัสดี.

วันนี้ผมจะมาพูดถึงวิธีการทำรีโมทคอนโทรลและระบบตรวจสอบที่สามารถใช้งานได้ เช่น เพื่อควบคุมประตูโรงรถ แสงสว่าง ระบบทำความร้อน การควบคุมแรงดัน อุณหภูมิ และพารามิเตอร์อื่น ๆ อีกมากมาย แต่คุณสมบัติหลักของระบบนี้คือ คุณสามารถรับภาพถ่ายจากวัตถุระยะไกลได้จากระยะไกล ก่อนที่คุณจะเริ่มเรื่อง ขอคำนำสั้นๆ เมื่อฉันต้องการสร้างระบบเฝ้าระวังภาพถ่ายโดยใช้บอร์ด 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-SD. ที่เข้ากันได้
การเตรียม Arduino M0-SD. ที่เข้ากันได้
การเตรียม Arduino M0-SD. ที่เข้ากันได้
การเตรียม Arduino M0-SD. ที่เข้ากันได้
การเตรียม 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

การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
การเตรียม 3G/GPRS/GSM/GPS Shield SIM5320
การเตรียม 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

การตั้งค่าโบรกเกอร์ MQTT
การตั้งค่าโบรกเกอร์ MQTT
การตั้งค่าโบรกเกอร์ MQTT
การตั้งค่าโบรกเกอร์ MQTT
การตั้งค่าโบรกเกอร์ MQTT
การตั้งค่าโบรกเกอร์ MQTT

ฉันเลือก www.cloudmqtt.com ที่สะดวกและชัดเจนมากในฐานะโบรกเกอร์ MQTT มันให้การทดสอบฟรี นอกจากนี้ยังสามารถรับและส่งข้อความโดยตรงบนเว็บไซต์

ขั้นตอนการตั้งค่ามีดังนี้:

  1. ลงทะเบียนออนไลน์
  2. กดปุ่ม "สร้างอินสแตนซ์ใหม่"
  3. ตั้งชื่อ เช่น "MqttCamera"
  4. กดปุ่ม "เลือกภูมิภาค" ตัวอย่างเช่น เลือก "US-East-1 (เวอร์จิเนียตอนเหนือ)"
  5. กดปุ่ม "ตรวจสอบ"
  6. กดปุ่ม "สร้างอินสแตนซ์". ดูข้อความ "สร้างอินสแตนซ์เรียบร้อยแล้ว"
  7. คลิก "MqttCamera"
  8. จดจำข้อมูล: เซิร์ฟเวอร์, ผู้ใช้, รหัสผ่าน, พอร์ต, คีย์ API (เราต้องการในขั้นตอนที่ 7 และ 8)
  9. จากนั้น คุณสามารถไปที่หน้าต่าง "WEBSOCKET UI" ซึ่งคุณสามารถทดสอบและแก้ไขข้อบกพร่อง ดูและส่งข้อความ (เราจะต้องใช้หน้าต่างนี้ในขั้นตอนต่อไป)

ขั้นตอนที่ 7: แอป MQTT Dash

MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App
MQTT Dash App

ในการสร้างแผงควบคุมในโทรศัพท์มือถือ ฉันเลือกแอป MQTT Dash ที่ใช้งานง่ายและชัดเจน

ติดตั้งแอพ MQTT Dash บนโทรศัพท์ของคุณและทำการตั้งค่าต่อไปนี้:

  1. เปิดแอปพลิเคชัน
  2. ในหน้าต่าง MQTT dash คลิก (+) เพื่อเพิ่มแผงควบคุมใหม่
  3. ในหน้าต่างที่ปรากฏขึ้น ให้กรอกข้อมูลในช่องที่ต้องกรอก เช่น ชื่อ (เช่น MqttCamera), ที่อยู่, พอร์ต, ชื่อผู้ใช้, รหัสผ่านผู้ใช้ (รับข้อมูลจากขั้นตอนที่ 6)
  4. หลังจากกรอกข้อมูลในฟิลด์แล้ว ให้คลิกไอคอนดิสเก็ต (การดำเนินการ "บันทึก")
  5. ในหน้าต่างที่มีรายการแผงควบคุม ให้คลิกที่บรรทัดที่ปรากฏ " MqttCamera"
  6. ในหน้าต่างแผงควบคุมที่เปิดขึ้น ให้คลิกไอคอนลูกศรเพื่อโหลดเมตริก
  7. จากนั้นในหน้าต่างป๊อปอัป ให้คลิกที่ปุ่ม "สมัครและรอการวัด"
  8. บนคอมพิวเตอร์ส่วนบุคคล เปิดบัญชีในโบรกเกอร์ MQTT (ดูขั้นตอนก่อนหน้า) เปิดหน้าต่าง " WEBSOCKET UI " ตั้งค่าหัวข้อ "ตัวชี้วัด/การแลกเปลี่ยน" ในหน้าต่าง " ส่งข้อความ " และบันทึกข้อความจาก ไฟล์แนบ metrics.txt ในหน้าต่าง " ข้อความ " คลิกปุ่ม " ส่ง"
  9. รอ 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

ฉันหวังว่าคำแนะนำของฉันจะน่าสนใจและมีประโยชน์สำหรับคุณ ฉันยินดีที่จะแสดงความคิดเห็นและความคิดเห็นของคุณ ในแผนการพัฒนาอุปกรณ์ของฉันและแบ่งปันนวัตกรรมใหม่กับคุณ ขอบคุณที่รับชม!

แนะนำ: