วงจรเตือนภัยสำหรับบ้านบน Arduino สัญญาณเตือนบ้านหรือใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหวและจอ LCD กับ Arduino

ในบทความที่แล้ว เราได้เรียนรู้วิธีการใช้โมดูล SIM800L GSM และทำการออกแบบที่เรียบง่ายสำหรับการควบคุมการโหลดจากระยะไกล วันนี้เราจะทำสิ่งที่น่าสนใจมากขึ้น ได้แก่ สัญญาณเตือนความปลอดภัย GSM บนโมดูล SIM800L จาก Aliexpress และ Arduino ซึ่งสามารถ ใช้เพื่อปกป้องอพาร์ทเมนต์ กระท่อม โรงรถ และวัตถุอื่นๆ และเมื่อถูกทริกเกอร์ มันจะแจ้งให้คุณทราบด้วยการโทรหรือข้อความ SMS

สิ่งที่เราต้องทำเพื่อปลุกระบบ GSM:

  • โมดูล GSM/GPRS SIM800L;
  • Arduino Nano, UNO หรือ Arduino อื่น ๆ
  • ตัวแปลง DC-DC แบบสเต็ปดาวน์;
  • แบตเตอรี่ 3.7V;
  • ตัวต้านทานสำหรับ 10 k - 7 ชิ้น;
  • พาวเวอร์ซัพพลาย.

วิธีสร้างสัญญาณกันขโมย GSM บนโมดูล SIM800L และ Arduino รายละเอียดงาน:

เราเชื่อมต่อโมดูล SIM800L, Arduino, เซ็นเซอร์ ฯลฯ ตามแผนภาพด้านล่าง ทุกอย่างประกอบอยู่บนเขียงหั่นขนมเพื่อให้คุณสามารถเปลี่ยนบางสิ่งบางอย่างได้ตลอดเวลา วางไว้ในกรณีที่เหมาะสม และนำสายไฟออกจากเคสเพื่อความปลอดภัย เซ็นเซอร์และไปยัง PSU เรายังใส่แบตเตอรี่ไว้ในเคสด้วย ดังนั้นเมื่อไฟฟ้าดับในบ้าน อุปกรณ์จะเข้าสู่โหมดสแตนด์อโลนที่ใช้พลังงานจากแบตเตอรี่ บนตัวแปลงบูสต์ เราตั้งค่าเอาต์พุตเป็น 4.2 โวลต์ ที่แรงดันไฟฟ้านี้ โมดูล GSM SIM ทำงานและชาร์จแบตเตอรี่แล้ว และแรงดันไฟฟ้านี้เพียงพอสำหรับ Arduino Nano ให้ทำงาน

สามารถต่อเซ็นเซอร์ 5 ตัวเข้ากับวงจรได้ เช่น สวิตช์กก ความชื้น ควัน เซ็นเซอร์ตรวจจับความเคลื่อนไหว ฯลฯ ซึ่งรองรับการทำงานของรีเลย์ เนื่องจากวงจรนี้ได้รับการกำหนดค่าให้ส่งสัญญาณเตือนสำหรับวงจรเปิดของเซ็นเซอร์ทั้งห้าตัว แต่หากต้องการ สามารถแปลงร่างเป็นไฟฟ้าลัดวงจรได้

เมื่อเซ็นเซอร์ตัวแรกถูกทริกเกอร์ จะมีการโทรออกไปยังหมายเลขที่ระบุ จากนั้นจึงวางสายและโทรออกไปยังหมายเลขที่สอง ซึ่งจะทำได้หากไม่มีหมายเลขแรกในขณะนี้ เมื่อมีการทริกเกอร์เซ็นเซอร์ความปลอดภัยอีก 4 ตัว ระบบจะส่งข้อความ SMS เท่านั้นซึ่งมีการเขียนหมายเลขหรือชื่อของโซนที่ถูกทริกเกอร์ และข้อความนี้จะถูกส่งไปยังหมายเลขโทรศัพท์สองหมายเลขด้วย

ในภาพสเก็ตช์ คุณสามารถป้อนหมายเลขโทรศัพท์และตั้งชื่อของคุณไปยังพื้นที่คุ้มครอง แทนคำว่า "Alarm! โซน1", "ตื่น! โซน2", "ตื่น! Zone3”… คุณสามารถเขียนชื่อของวัตถุที่คุณใส่เซ็นเซอร์เฉพาะ เช่น “Alarm! โอเค นาฬิกาปลุก! Dverj” และคนอื่น ๆ เขียนชื่อของโซนเป็นภาษาละตินเท่านั้น นอกจากนี้ในสเก็ตช์ เวลาโทรกลับหาเจ้าของถูกตั้งค่า นั่นคือ หลังจากกี่ชั่วโมงเพื่อแจ้งให้คุณทราบว่าทั้งระบบทำงานและทุกอย่างเป็นไปตามลำดับ โดยค่าเริ่มต้นจะตั้งค่าให้โทรกลับทุก 144 ชั่วโมง

เพียงเท่านี้ เราทำสัญญาณกันขโมย GSM แบบง่าย ๆ บนโมดูล SIM800L และ Arduino ร่างและวงจรสามารถปรับปรุงได้ ตัวอย่างเช่น โมดูล SIM800L รองรับความสามารถในการเชื่อมต่อลำโพงและไมโครโฟนเข้ากับมัน ซึ่งจะช่วยให้คุณฟังได้ ไปยังพื้นที่คุ้มครองรวมทั้งนำเสียงของคุณไปที่ลำโพง

ดาวน์โหลดสเก็ตช์สำหรับ Arduino

สวัสดีผู้อ่านที่รัก! บทความของวันนี้เกี่ยวกับการสร้างระบบรักษาความปลอดภัยภายในบ้านแบบง่ายๆ โดยใช้ส่วนประกอบที่พร้อมใช้งาน อุปกรณ์ขนาดเล็กและราคาถูกนี้จะช่วยปกป้องบ้านของคุณจากการบุกรุกโดยใช้ Arduino เซ็นเซอร์ตรวจจับความเคลื่อนไหว จอแสดงผล และลำโพง อุปกรณ์สามารถใช้พลังงานจากแบตเตอรี่หรือพอร์ต USB บนคอมพิวเตอร์

เริ่มกันเลย!

มันทำงานอย่างไร?

ร่างกายเลือดอุ่นจะแผ่รังสีในช่วงอินฟราเรดซึ่งมองไม่เห็นด้วยตามนุษย์ แต่สามารถตรวจจับได้โดยใช้เซ็นเซอร์ เซ็นเซอร์ดังกล่าวทำจากวัสดุที่สามารถโพลาไรซ์ได้เองเมื่อสัมผัสกับความร้อน ซึ่งทำให้สามารถตรวจจับลักษณะของแหล่งความร้อนภายในระยะของเซ็นเซอร์ได้

สำหรับช่วงที่กว้างขึ้น จะใช้เลนส์ Fresnel ซึ่งรวบรวมรังสีอินฟราเรดจากทิศทางต่างๆ และมุ่งความสนใจไปที่ตัวเซ็นเซอร์เอง

รูปภาพแสดงให้เห็นว่าเลนส์บิดเบือนรังสีที่ตกลงมาอย่างไร

เป็นที่น่าสังเกตว่าหุ่นยนต์ที่ไม่มีชิ้นส่วนที่ให้ความร้อนเป็นพิเศษและชิ้นส่วนเลือดเย็นจะปล่อยรังสีน้อยมากในช่วงอินฟราเรด ดังนั้นเซ็นเซอร์อาจไม่ทำงานหากพนักงานหรือสัตว์เลื้อยคลานของ Boston Dynamics ตัดสินใจที่จะอยู่รายล้อมคุณ

เมื่อมีการเปลี่ยนแปลงระดับการแผ่รังสี IR ในช่วงการทำงาน Arduino จะดำเนินการนี้ หลังจากนั้นสถานะจะปรากฏบน LCD ไฟ LED จะกะพริบและลำโพงจะส่งเสียงบี๊บ

เราต้องการอะไร?

  1. (หรือค่าธรรมเนียมอื่นๆ)
  2. (16 ตัวอักษรสองบรรทัด)
  3. ขั้วต่อหนึ่งตัวสำหรับเชื่อมต่อเม็ดมะยมกับ Arduino
  4. (ถึงแม้จะใช้ลำโพงธรรมดาก็ได้)
  5. สาย USB - การเขียนโปรแกรมเท่านั้น ( ประมาณ ทรานส์:มันมาพร้อมกับ Arduinos ของเราเสมอ!)
  6. คอมพิวเตอร์ (อีกครั้งเพียงแค่เขียนและดาวน์โหลดโปรแกรม)

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

เราเชื่อมต่อ!

การเชื่อมต่อเซ็นเซอร์ตรวจจับความเคลื่อนไหวทำได้ง่ายมาก:

  1. เราเชื่อมต่อพิน Vcc กับ Arduino 5V
  2. เชื่อมต่อพิน Gnd กับ GND ของ Arduino
  3. Pin OUT ต่อกับขาดิจิตอลหมายเลข 7 จาก Arduino

ตอนนี้เรามาติด LED และลำโพงกัน มันง่ายเหมือนที่นี่:

  1. เราเชื่อมต่อขาสั้น (ลบ) ของ LED กับพื้น
  2. เราเชื่อมต่อขายาว (บวก) ของ LED กับเอาต์พุตหมายเลข 13 ของ Arduino
  3. สายลำโพงสีแดงออก #10
  4. ลวดสีดำลงกราวด์

และตอนนี้ส่วนที่ยากที่สุดคือการเชื่อมต่อจอแสดงผล LCD 1602 กับ Arduino จอแสดงผลไม่มี I2C ดังนั้นจึงต้องใช้เอาต์พุต Arduino จำนวนมาก แต่ผลลัพธ์จะคุ้มค่า แผนภาพแสดงด้านล่าง:

เราต้องการเพียงส่วนหนึ่งของวงจรเท่านั้น (เราจะไม่ปรับคอนทราสต์ด้วยโพเทนชิออมิเตอร์) ดังนั้น คุณต้องทำสิ่งต่อไปนี้เท่านั้น:

ตอนนี้คุณรู้วิธีเชื่อมต่อจอแสดงผล 1602 กับ Arduino UNO R3 แล้ว (เหมือนกับรุ่น Arduino ทุกรุ่นตั้งแต่ Mini ถึง Mega)

การเขียนโปรแกรม

ได้เวลาย้ายไปเขียนโปรแกรมแล้ว ด้านล่างนี้คือรหัสที่คุณต้องกรอก และหากคุณประกอบทุกอย่างถูกต้อง อุปกรณ์ก็พร้อม!

#รวม int ledPin = 13; // LED พิน int อินพุตพิน = 7; // ปักหมุดที่เซ็นเซอร์ตรวจจับความเคลื่อนไหว Out เชื่อมต่ออยู่ int pirState = LOW; // สถานะปัจจุบัน (ไม่พบสิ่งใดในตอนเริ่มต้น) int val = 0; // ตัวแปรสำหรับอ่านสถานะของอินพุตดิจิตอล int pinSpeaker = 10; // พินที่ลำโพงเชื่อมต่ออยู่ ต้องใช้ PWM พิน LiquidCrystal LCD (12, 11, 5, 4, 3, 2); // เริ่มต้นการตั้งค่าโมฆะของจอแสดงผล LCD () ( // กำหนดทิศทางของการถ่ายโอนข้อมูลบนพินดิจิตอล pinMode (ledPin, OUTPUT); pinMode (inputPin, INPUT); pinMode (pinSpeaker, OUTPUT); // เริ่มการดีบักข้อมูลเอาต์พุตผ่าน พอร์ตอนุกรม Serial .begin(9600); // เริ่มเอาต์พุตไปยังจอ LCD lcd.begin(16, 2); // ตั้งค่าดัชนีบนจอแสดงผลเพื่อเริ่มเอาต์พุตจาก // (2 ตัวอักษร, 0 บรรทัด) จอแอลซีดี setCursor(2 , 0) ; // ส่งออกไปยังจอแสดงผล LCD lcd.print ("PIR Motion"); // ย้ายอีกครั้ง lcd.setCursor(5, 1); // เอาต์พุต lcd.print ("เซนเซอร์"); // หยุดชั่วคราวเพื่ออ่าน , สิ่งที่พิมพ์ล่าช้า (5000); // การล้างข้อมูล lcd.clear (); // เหมือนกับ lcd.setCursor(0, 0); lcd.print("กำลังประมวลผลข้อมูล"); ล่าช้า (3000); lcd.clear (); lcd.setCursor(3, 0); lcd.print("กำลังรอ"); lcd.setCursor(3, 1); lcd.print("Motion...."); ) void loop() ( // อ่านค่าการอ่านของเซ็นเซอร์ = digitalRead(inputPin); if (val == HIGH) ( // หากมีการเคลื่อนไหว ให้เปิดไฟ LED แล้วเปิดขึ้น ไซเรน digitalWrite (ledPin, สูง); เพลย์โทน (300, 300); ล่าช้า (150); // หากไม่มีการเคลื่อนไหวมาถึงจุดนี้ ให้พิมพ์ข้อความ // ที่ตรวจพบ // โค้ดด้านล่างจำเป็นสำหรับการเขียนเฉพาะการเปลี่ยนแปลงสถานะ และไม่พิมพ์ค่าทุกครั้งหาก (pirState == LOW) ( Serial.println ( "ตรวจพบการเคลื่อนไหว!"); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Motion Detected!"); pirState = HIGH; ) ) อื่น ๆ ( // หากการเคลื่อนไหวสิ้นสุด digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH)( // เรารายงานว่าการเคลื่อนไหวเกิดขึ้น แต่ได้สิ้นสุดแล้ว Serial.println( "การเคลื่อนไหวสิ้นสุดลง!"); lcd.clear() ; lcd.setCursor(3, 0); lcd.print("กำลังรอ"); lcd.setCursor(3, 1); lcd.print("Motion... ."); pirState = LOW; ) ) ) / / ฟังก์ชันการเล่นเสียง Duration (duration) - เป็นมิลลิวินาที, Freq (ความถี่) - ใน Hz void playTone (ระยะเวลานาน, ความถี่ int) ( duration *= 1000; int period = (1.0 / freq) * 100000; long elapsed_time = 0; while (elapsed_time< duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } }

สัญญาณกันขโมยแบบง่ายสำหรับบ้านบน Arduino Uno เป็นหัวข้อของบทวิจารณ์นี้ แม้ว่าไมโครคอนโทรลเลอร์ของตระกูลนี้เดิมตั้งใจไว้สำหรับการสอนนักเรียน แต่ก็ค่อนข้างเป็นไปได้ที่จะสร้างโปรเจ็กต์ที่มีประโยชน์จริงๆ บน Arduino สัญญาณเตือนภัยสำหรับบ้านหรือสวนจะสามารถเตือนเจ้าของเกี่ยวกับเหตุฉุกเฉินและส่งข้อความจากเซ็นเซอร์ไปยังสมาร์ทโฟน

Arduino นาฬิกาปลุกที่บ้าน

พิจารณาวิธีสร้างสัญญาณเตือนสำหรับบ้าน แปลงสวนชานเมือง หรือโรงรถบน Arduino Uno หรือ Nano ในโครงการ เราใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว เซ็นเซอร์น้ำ และอุณหภูมิ - นี่คือชุดเซ็นเซอร์พื้นฐานสำหรับระบบเตือนที่ง่ายที่สุด คุณจะรู้เรื่องท่อประปาแตก อุณหภูมิในบ้านลดลง หรือการบุกรุกของคนแปลกหน้าในห้องได้ทุกที่ทุกเวลา

เซ็นเซอร์ Arduino สำหรับสัญญาณกันขโมย

ในโครงการนี้ เราใช้สมาร์ทโฟนเครื่องเก่าในการส่งข้อมูลทางอินเทอร์เน็ต ดังนั้น ณ ที่ตั้งทรัพย์สินของคุณ จะต้องมีสัญญาณ GPRS และผู้ให้บริการโทรศัพท์มือถือรายใดก็ได้มีอัตราค่าไฟฟ้าที่ง่ายที่สุดในการเชื่อมต่อกับอินเทอร์เน็ต หากไม่เป็นไปตามเงื่อนไข ระบบรักษาความปลอดภัยก็มีเสียงไซเรนซึ่งสามารถขู่โจรได้

โปรเจ็กต์ใช้เซ็นเซอร์ที่ง่ายที่สุด ได้แก่ เซ็นเซอร์อุณหภูมิ DHT11 เซ็นเซอร์ตรวจจับการรั่วไหลของน้ำ DIY และเซ็นเซอร์ตรวจจับความเคลื่อนไหว หากคุณตัดสินใจที่จะสร้างระบบสัญญาณเตือนที่มีความซับซ้อนมากขึ้น เราขอแนะนำให้คุณดูโครงการสัญญาณเตือนไฟไหม้หรือสัญญาณเตือนบน GSM คุณจะต้องติดตั้งแอปพลิเคชันบนสมาร์ทโฟนของคุณและลงทะเบียนบัญชี Twitter สองบัญชี

วิธีสร้างนาฬิกาปลุก Arduino

สำหรับโครงการนี้เราต้องการ:

  • บอร์ด Arduino Uno / Arduino Nano / Arduino Mega;
  • สมาร์ทโฟนพร้อมอินเทอร์เน็ต
  • เซ็นเซอร์อุณหภูมิและความชื้น DHT11;
  • เซ็นเซอร์การรั่วไหลของน้ำ (เซ็นเซอร์น้ำ);
  • เซ็นเซอร์ตรวจจับความเคลื่อนไหวและปุ่ม (สวิตช์);
  • ไฟ LED, ตัวต้านทาน, สายไฟ ฯลฯ


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

ภาพร่างสัญญาณกันขโมยบน Arduino Uno / Nano

#รวม // กำลังเชื่อมต่อไลบรารี SoftwareSerial.hซอฟต์แวร์Serial mySerial(2, 3); // ระบุพิน rx และ tx ตามลำดับ#รวม // เชื่อมต่อไลบรารี่สำหรับเซ็นเซอร์ DHT dht(16, DHT11); // บอกพอร์ตที่เซ็นเซอร์จะเปิด int tmp; #define PIR 5 // พอร์ตสำหรับเชื่อมต่อเซ็นเซอร์ตรวจจับความเคลื่อนไหว int pir; #define KNP 7 // พอร์ตสำหรับเชื่อมต่อสวิตช์ int knp; #define WTR 19 // พอร์ตสำหรับต่อเซ็นเซอร์น้ำ intwtr; #define LED 11 // พอร์ตสำหรับเชื่อมต่อ LEDs#กำหนด BUZ 9 // พอร์ตสำหรับเชื่อมต่อลำโพงเพียโซ // สตริงสำหรับระบุข้อมูลที่ได้รับบนสมาร์ทโฟนสตริง stringT = สตริง ("*" ); สตริง stringP = สตริง ("^" ); สตริง stringW = สตริง ("-" ); สตริง stringH = สตริง ("#" ); // ตัวแปรสำหรับตัวนับ การนับลูป ฯลฯการเคลื่อนไหวยาวที่ไม่ได้ลงนาม ชั่วโมงที่ยาวนานที่ไม่ได้ลงนาม ไบต์ m, s1, s2, s3, c = 10; การตั้งค่าเป็นโมฆะ () ( mySerial.begin (9600); Serial.begin (9600); dht.begin (); pinMode (PIR, INPUT); analogWrite (PIR, ต่ำ); pinMode (KNP, INPUT); analogWrite (KNP, ต่ำ ); pinMode(WTR, INPUT ); analogWrite(WTR, ต่ำ ); // ทดสอบไฟ LED และออดเมื่อเปิดเครื่องโหมดพิน (BUZ, OUTPUT); โหมดพิน (LED, เอาต์พุต); analogWrite (ไฟ LED, 255); โทน (BUZ, 100); ล่าช้า (1000); analogWrite (ไฟ LED, 0); ไม่มีโทน (BUZ); ล่าช้า (1000); ) วงเป็นโมฆะ () ( tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); // เริ่มเคาน์เตอร์ชั่วโมง = มิลลิวินาที (); // 360,000 มิลลิวินาทีคือ 1 ชั่วโมง 10800000 คือ 3 ชั่วโมง // หากผ่านไป 3 ชั่วโมง เราจะส่งข้อมูลไปยังสมาร์ทโฟน // หากจำเป็น ให้ใส่ค่าของคุณเองแทน 10800000ถ้า (มิลลิวินาที () - ชั่วโมง > 10800000) ( mySerial.println(tmp+stringT); mySerial.println(stringH); // ส่งสัญญาณว่าผ่านไป 3 ชั่วโมง } // เรานับรอบ ทุก ๆ สิบรอบที่เราส่งข้อมูลไปยังสมาร์ทโฟนค--; Serial.print(c); อนุกรม .println(" - วนซ้ำ" ); Serial.println(""); ล่าช้า (1000); ไม่มีโทน (BUZ); ถ้า (c > 10) ( c = 10; ) ถ้า (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // ส่งค่าอุณหภูมิ mySerial.println (pir + stringP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(wtr+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ // เซ็นเซอร์ตรวจจับความเคลื่อนไหวทำงานและปุ่มปิดอยู่ - เปิดไฟ if (pir == HIGH && knp == LOW ) ( analogWrite (LED, 255); ) // เซ็นเซอร์ตรวจจับความเคลื่อนไหวถูกปิดใช้งานและปุ่มปิดอยู่ - ปิดไฟถ้า (pir == LOW && knp == LOW ) ( motion = millis (); while (pir == LOW ) ( tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print(c); Serial .println(" - loop" ); Serial .println("" ); delay(1000); noTone(BUZ); if(c > 10 ) (c = 10; ) ถ้า (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // ส่งค่าอุณหภูมิ mySerial.println (pir + stringP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(wtr+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ // แสดงข้อมูลทั้งหมดจากเซ็นเซอร์บนมอนิเตอร์หมายเลขพอร์ต Serial.print("TMP = "); Serial.println(tmp); Serial.print ("PIR = "); Serial.println (pir); Serial.print("KNP="); Serial.println(knp); Serial.print("WTR="); Serial.println(wtr); Serial.println(""); ) // ช่วงเวลาปิดไฟในหน่วยมิลลิวินาที if (มิลลิวินาที() - การเคลื่อนไหว > 5000) ( analogWrite (LED, 0); break ; ) if (pir == HIGH ) ( analogWrite (LED, 255); break ; ) ) ) // เซ็นเซอร์ตรวจจับความเคลื่อนไหวเปิดใช้งานและปุ่มเปิดอยู่ - การเริ่มจับเวลาถ้า (pir == สูง && knp == สูง ) ( การเคลื่อนไหว = มิลลิวินาที (); ล่าช้า (1000); analogWrite (LED, 255); Serial.println ( "เซ็นเซอร์ทำงาน"); Serial.println(""); ล่าช้า (1000); ในขณะที่ (knp == สูง) ( tmp = dht.readTemperature (); pir = digitalRead (PIR); knp = digitalRead (KNP); wtr = analogRead (WTR); c--; Serial .print (c); Serial println (" - วนซ้ำ" ); Serial .println ("" ); ล่าช้า (1000); noTone (BUZ); if (c > 10) ( c = 10; ) if (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // ส่งค่าอุณหภูมิ mySerial.println (pir + stringP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(wtr+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ // แสดงข้อมูลทั้งหมดจากเซ็นเซอร์บนหมายเลขพอร์ต monitor Serial.print("TMP = "); Serial.println(tmp); Serial.print ("PIR = "); Serial.println (pir); Serial.print("KNP="); Serial.println(knp); Serial.print("WTR="); Serial.println(wtr); Serial.println(""); ) // หากปิดใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว - การส่งข้อความไปยังบลูทูธถ้า (knp == LOW ) ( Serial .println ( "สัญญาณเตือนปิดการใช้งาน"); Serial.println(""); ล่าช้า (1000); ) // หากผ่านไปมากกว่า 10 วินาที - ส่งข้อความไปที่ BLUETOOTHถ้า (มิลลิวินาที () - การเคลื่อนไหว > 10000 && s1 != 1) ( m = 1; goto message1; ) ล่าช้า (1000); ) ) // หากมีน้ำรั่ว - ส่งข้อความไปยังบลูทูธ if (wtr > 500 && s2 != 2) ( m = 2; goto message2; ) if (wtr > 500) ( tone (BUZ, 400); ) if (wtr<= 500) { noTone (BUZ); } // หากอุณหภูมิลดลง - ส่งข้อความไปยัง BLUETOOTHถ้า (tmp< 20 && s3 != 3) { m = 3; goto message3; } if (tmp < 20) { tone (BUZ, 200); } if (tmp >= 20) ( noTone (BUZ); ) message1: ในขณะที่ (m == 1) ( Serial .println ( "ส่งสัญญาณเตือนไปที่บลูทูธแล้ว" // ส่งค่าอุณหภูมิ mySerial.println(1+สตริงP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(wtr+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ s1 = 1; ม. = 0; หยุดพัก ; ) message2: ในขณะที่ (m == 2) ( Serial .println ( "สัญญาณเตือนน้ำรั่วถูกส่งไปยังบลูทูธ"); Serial.println(""); ล่าช้า (1000); mySerial.println(tmp+สตริงT); // ส่งค่าอุณหภูมิ mySerial.println (pir + stringP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(500+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ s2 = 2; ม. = 0; หยุดพัก ; ) message3: ในขณะที่ (m == 3) ( Serial .println ( "ส่งสัญญาณอุณหภูมิไปที่บลูทูธ"); Serial.println(""); ล่าช้า (1000); mySerial.println(20+สตริงT); // ส่งค่าอุณหภูมิ mySerial.println (pir + stringP); // ส่งการมีอยู่ของการเคลื่อนไหวในบ้าน mySerial.println(wtr+สตริงW); // ส่งข้อมูลจากเซ็นเซอร์น้ำ s3 = 3; ม. = 0; หยุดพัก ; ) )

คำอธิบายสำหรับรหัส:

เมื่อมองแวบแรก โครงร่างอาจดูซับซ้อน แต่ก็ไม่เป็นเช่นนั้น สามารถประกอบสัญญาณเตือนบนบอร์ดใดก็ได้ รวมถึง Arduino Uno คุณสามารถใช้แถบ LED แทน LED ได้ แต่ในขณะเดียวกัน แหล่งจ่ายไฟสำหรับบอร์ดจะต้องเป็น 12 โวลต์ และเชื่อมต่อแถบ LED ไม่ใช่กับ 5V แต่เชื่อมต่อกับพิน Vin Arduino คุณสามารถใช้ที่ชาร์จโทรศัพท์ขนาด 5 โวลต์แบบธรรมดาเพื่อจ่ายไฟให้กับวงจรได้เมื่อใช้ไฟ LED

การติดตั้งแอพพลิเคชั่นบนสมาร์ทโฟนสำหรับการเตือน

ในการติดตั้งแอปพลิเคชัน ให้ดาวน์โหลดไฟล์ home_twit.apk ไปยังโทรศัพท์ของคุณผ่านสาย USB ค้นหาในหน่วยความจำของโทรศัพท์แล้วคลิก "ติดตั้ง" โทรศัพท์นี้ต้องอยู่ในโซน Bluetooth ของสัญญาณ Arduino เสมอ เมื่อติดตั้งแล้ว ให้เปิดแอปแล้วคลิกปุ่ม "การตั้งค่า" ที่นี่คุณจะต้องระบุอุณหภูมิต่ำสุดและสูงสุดที่จะส่งข้อความ

และตอนนี้สิ่งที่ยากที่สุดคือการตั้งค่าบัญชี Twitter ระบุในการตั้งค่าการเข้าสู่ระบบของผู้ใช้บน Twitter ซึ่งคุณจะส่งข้อความถึง คุณต้องเข้าสู่ระบบด้วย คีย์ APIและ รหัสลับ APIในนามของผู้ที่จะได้รับข้อความ นวัตกรรมล่าสุดเกิดจากการต่อสู้กับสแปมและการรวบรวมข้อมูลเกี่ยวกับผู้ใช้บนโซเชียลเน็ตเวิร์ก วิธีรับคีย์ API และความลับของ API - อ่านบทวิจารณ์นี้

บนโทรศัพท์ที่จะอยู่กับคุณเสมอและจะได้รับข้อความ คุณจะต้องติดตั้งแอปพลิเคชัน Twitter อย่างเป็นทางการจาก PlayMarket และเข้าสู่ระบบด้วยข้อมูลเข้าสู่ระบบที่จำเป็น ด้วยเหตุนี้แอปพลิเคชั่น signalizaciya.apk จากโทรศัพท์ในบ้านจะรวบรวมข้อมูลจากเซ็นเซอร์ Arduino และส่งเป็นข้อความส่วนตัวผ่าน Twitter ไปยังผู้ใช้ที่คุณติดตั้งแอปพลิเคชั่น Twitter เข้าสู่ระบบ

หากคุณมีปัญหาใด ๆ กับการตั้งค่าการเตือนบน Arduino - เขียนคำถามของคุณในความคิดเห็นเพื่อทบทวนนี้

Good day 🙂 วันนี้เราจะมาพูดถึงเรื่องการส่งสัญญาณ ตลาดบริการเต็มไปด้วยบริษัท องค์กรที่ติดตั้งและบำรุงรักษาระบบรักษาความปลอดภัย บริษัทเหล่านี้เสนอระบบเตือนภัยให้เลือกมากมายแก่ผู้ซื้อ อย่างไรก็ตามค่าใช้จ่ายของพวกเขาอยู่ไกลจากราคาถูก แต่แล้วคนที่ไม่มีเงินส่วนตัวมากจนสามารถใช้กับสัญญาณกันขโมยล่ะ? ฉันคิดว่าข้อสรุปแนะนำตัวเอง - ทำเตือน ของพวกเขา มือ. บทความนี้เป็นตัวอย่างเกี่ยวกับวิธีการสร้างระบบรักษาความปลอดภัยด้วยรหัสของคุณเองโดยใช้บอร์ด Arduino uno และเซ็นเซอร์แม่เหล็กบางตัว

ระบบสามารถปิดใช้งานได้โดยการป้อนรหัสผ่านจากแป้นพิมพ์และกดปุ่ม ' * '. หากคุณต้องการเปลี่ยนรหัสผ่านปัจจุบัน คุณสามารถทำได้โดยกดปุ่ม ‘ บี' และหากคุณต้องการข้ามหรือยกเลิกการดำเนินการ คุณสามารถทำได้โดยกดปุ่ม ‘#’. ระบบมีเสียงกริ่งสำหรับเล่นเสียงต่างๆ เมื่อดำเนินการบางอย่าง

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

วิดีโอของอุปกรณ์

งานฝีมือทำขึ้นเพื่อวัตถุประสงค์ในการให้ข้อมูล/การศึกษา หากคุณต้องการใช้งานที่บ้าน คุณจะต้องปรับเปลี่ยน ใส่ชุดควบคุมในกล่องโลหะและยึดสายไฟจากความเสียหายที่อาจเกิดขึ้น

มาเริ่มกันเลย!

ขั้นตอนที่ 1: สิ่งที่เราต้องการ

  • บอร์ด Arduino uno;
  • จอแสดงผล LCD ความคมชัดสูง 16 × 2;
  • แป้นพิมพ์ 4×4;
  • 10 ~ 20kΩโพเทนชิออมิเตอร์;
  • เซ็นเซอร์แม่เหล็ก 3 ตัว (เป็นสวิตช์กก)
  • 3 ขั้วสกรู 2 ขา;
  • HC-SR04 เซ็นเซอร์อัลตราโซนิก;

หากคุณต้องการสร้างระบบโดยไม่ต้องใช้ Arduino คุณจะต้องมีสิ่งต่อไปนี้ด้วย:

  • ส่วนหัว DIP สำหรับ atmega328 + ไมโครคอนโทรลเลอร์ atmega328;
  • เครื่องสะท้อนควอทซ์ 16MHz;
  • 2 ชิ้น เซรามิก 22pF 2 ชิ้น ตัวเก็บประจุด้วยไฟฟ้า 0.22uF;
  • 1 พีซี ตัวต้านทาน 10kΩ;
  • ปลั๊กไฟ (แจ็คไฟ DC);
  • กระดานขนมปัง;
  • แหล่งจ่ายไฟ 5V;

และกล่องเดียวก็แพ็คได้หมด!

เครื่องมือ:

  • สิ่งที่สามารถตัดผ่านกล่องพลาสติก
  • ปืนกาวร้อน
  • สว่าน/ไขควง.

ขั้นตอนที่ 2: แผนภาพการเตือน

รูปแบบการเชื่อมต่อค่อนข้างง่าย

ชี้แจงเล็กน้อย:

จอแอลซีดีความคมชัดสูง:

  • Pin1 - Vdd ถึง GND
  • Pin2 - Vss ถึง 5V;
  • Pin3 - Vo (ไปยังเอาต์พุตกลางของโพเทนชิออมิเตอร์);
  • Pin4 - RS ถึง Arduino pin 8;
  • Pin5 - RW ถึง GND
  • Pin6 - EN ถึง Arduino pin 7;
  • Pin11 - D4 ถึง Arduino pin 6;
  • Pin12 - D5 ถึง Arduino pin 5;
  • Pin13 - D6 ถึง Arduino พิน 4;
  • Pin14 - D7 ถึง Arduino pin 3;
  • Pin15 - Vee (ไปทางขวาหรือซ้ายของโพเทนชิออมิเตอร์)

คีย์บอร์ด 4×4:

จากซ้ายไปขวา:

  • พิน Arduino Pin1 ถึง A5;
  • พิน Arduino Pin2 ถึง A4;
  • Pin3 ถึง Arduino พิน A3;
  • Pin4 ถึง Arduino พิน A2;
  • Pin5 ถึง Arduino pin 13;
  • Pin6 ถึง Arduino พิน 12;
  • Pin7 ถึง Arduino พิน 11;
  • Pin8 ถึง Arduino พิน 10

ขั้นตอนที่ 3: เฟิร์มแวร์

ขั้นตอนแสดงโค้ดที่บิวท์อินใช้ !

ดาวน์โหลดปลั๊กอิน codebender คลิกที่ปุ่ม "เรียกใช้" ใน Arduino และแฟลชบอร์ดของคุณด้วยโปรแกรมนี้ นั่นคือทั้งหมดที่ คุณเพิ่งตั้งโปรแกรม Arduino! หากคุณต้องการเปลี่ยนแปลงโค้ด ให้คลิกปุ่ม "แก้ไข"

หมายเหตุ: หากคุณไม่ได้ใช้ Codebender IDE เพื่อตั้งโปรแกรมบอร์ด Arduino คุณจะต้องติดตั้งไลบรารีเพิ่มเติมใน Arduino IDE

ขั้นตอนที่ 4: สร้างบอร์ดควบคุมของคุณเอง

เมื่อคุณสร้างและทดสอบโครงการ Arduino uno ใหม่ของคุณสำเร็จแล้ว คุณสามารถเริ่มสร้างบอร์ดของคุณเองได้

เคล็ดลับบางประการสำหรับการดำเนินการที่ประสบความสำเร็จมากขึ้น:

  • ต้องเชื่อมต่อตัวต้านทาน10kΩระหว่างพิน 1 (รีเซ็ต) และพิน 7 (Vcc) ของไมโครคอนโทรลเลอร์ Atmega328
  • คริสตัล 16MHz ควรเชื่อมต่อกับพิน 9 และ 10 ที่มีป้ายกำกับ XTAL1 และ XTAL2
  • เชื่อมต่อเรโซเนเตอร์แต่ละตัวนำไปสู่ตัวเก็บประจุ 22pF เชื่อมต่อตัวนำอิสระของตัวเก็บประจุเข้ากับพิน 8 (GND) ของไมโครคอนโทรลเลอร์
  • อย่าลืมเชื่อมต่อสายไฟที่สองของ ATmega328 กับแหล่งจ่ายไฟ พิน 20-Vcc และ 22-GND
  • คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับหมุดของไมโครคอนโทรลเลอร์ได้ในภาพที่สอง
  • หากคุณวางแผนที่จะใช้แหล่งจ่ายไฟที่มีแรงดันไฟฟ้าสูงกว่า 6V คุณต้องใช้ตัวควบคุมเชิงเส้น LM7805 และตัวเก็บประจุแบบอิเล็กโทรไลต์ 0.22uF สองตัว ซึ่งควรติดตั้งที่อินพุตและเอาต์พุตของตัวควบคุม มันเป็นสิ่งสำคัญ! ห้ามใช้เกิน 6V กับบอร์ด!!! มิฉะนั้น คุณจะเบิร์นไมโครคอนโทรลเลอร์ Atmega และจอ LCD ของคุณ

ขั้นตอนที่ 5: วางวงจรในเคส

ผู้เขียนต้องการทำแบบโฮมเมดเพื่อให้ราคาถูกและไร้สาย
ผลิตภัณฑ์โฮมเมดนี้ใช้เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR และข้อมูลจะถูกส่งโดยใช้โมดูล RF

ผู้เขียนต้องการใช้โมดูลอินฟราเรด แต่เนื่องจากมีช่วงที่จำกัดและสามารถทำงานได้ เท่านั้นระยะสายตาไปยังเครื่องรับ ดังนั้นเขาจึงเลือกใช้โมดูล RF ที่สามารถบรรลุช่วงประมาณ 100 เมตร


เพื่อให้ผู้เข้าชมดูนาฬิกาปลุกได้สะดวกยิ่งขึ้น ฉันจึงตัดสินใจแบ่งบทความออกเป็น 5 ขั้นตอน:
ขั้นตอนที่ 1: การสร้างเครื่องส่ง
ขั้นตอนที่ 2: สร้างเครื่องรับ
ขั้นตอนที่ 3: การติดตั้งซอฟต์แวร์
ขั้นตอนที่ 4: การทดสอบโมดูลที่ประกอบ
ขั้นตอนที่ 5: การประกอบเคสและติดตั้งโมดูลเข้าไป

สิ่งที่ผู้เขียนต้องการคือ:
- 2 บอร์ด ARDUINO UNO / ARDUINO MINI / ARDUINO NANO สำหรับเครื่องรับและเครื่องส่ง;
- โมดูลตัวรับส่งสัญญาณ RF (433 MHZ);
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว PIR;
- แบตเตอรี่ 9V (2 ชิ้น) และขั้วต่อ
- ออด;
- ไดโอดเปล่งแสง;
- ตัวต้านทานที่มีความต้านทาน 220 โอห์ม
- กระดานขนมปัง;
- จัมเปอร์ / สายไฟ / จัมเปอร์;
- แผงวงจร;
- ขั้วต่อพินอินเทอร์บอร์ด
- สวิตช์;
- กรณีสำหรับเครื่องรับและเครื่องส่ง;
- กระดาษสี
- เทปติด;
- มีดผ่าตัดแบบตั้งประเภท;
- ปืนกาวร้อน
- หัวแร้ง;
- ก้ามปู / เครื่องมือสำหรับถอดฉนวน
- กรรไกรตัดโลหะ


ขั้นตอนที่ 1
มาเริ่มสร้างเครื่องส่งกัน
ด้านล่างเป็นแผนภาพของเซ็นเซอร์ตรวจจับความเคลื่อนไหว


ตัวส่งสัญญาณเองประกอบด้วย:
- เซ็นเซอร์ตรวจจับความเคลื่อนไหว;
- บอร์ด Arduino;
- โมดูลส่งสัญญาณ


ตัวเซ็นเซอร์เองมีสามเอาต์พุต:
- วีซีซี;
- จีเอ็นดี;
- ออก.

หลังจากนั้นฉันตรวจสอบการทำงานของเซ็นเซอร์


ความสนใจ!!!
ก่อนอัปโหลดเฟิร์มแวร์ ผู้เขียนต้องแน่ใจว่าบอร์ดปัจจุบันและพอร์ตอนุกรมได้รับการตั้งค่าอย่างถูกต้องในการตั้งค่า Arduino IDE จากนั้นฉันก็อัปโหลดภาพร่าง:

ต่อมา เนื่องจากเซ็นเซอร์ตรวจจับความเคลื่อนไหวตรวจจับการเคลื่อนไหวด้านหน้า LED จะสว่างขึ้น และคุณยังสามารถเห็นข้อความที่เกี่ยวข้องในจอภาพได้อีกด้วย


ตามแผนภาพด้านล่าง


เครื่องส่งมี 3 เอาต์พุต (VCC, GND และ Data) ให้เชื่อมต่อ:
- VCC > เอาต์พุต 5V บนบอร์ด;
- GND > GND ;
- ข้อมูล > 12 เอาต์พุตบนบอร์ด

ระยะที่ 2


ตัวรับเองประกอบด้วย:
- โมดูลรับสัญญาณ RF;
- บอร์ด Arduino
- Buzzer (ลำโพง)

ไดอะแกรมผู้รับ:


เครื่องรับ เช่น เครื่องส่ง มี 3 เอาต์พุต (VCC, GND และข้อมูล) เราเชื่อมต่อ:
- VCC > เอาต์พุต 5V บนบอร์ด;
- GND > GND ;
- ข้อมูล > 12 เอาต์พุตบนบอร์ด


ขั้นตอนที่ 3
ผู้เขียนเลือกไฟล์ไลบรารีเป็นพื้นฐานสำหรับเฟิร์มแวร์ทั้งหมด ฉันดาวน์โหลดที่เขา และวางไว้ในโฟลเดอร์ห้องสมุด Arduino

ซอฟต์แวร์ส่งสัญญาณ
ก่อนอัปโหลดรหัสเฟิร์มแวร์ไปยังบอร์ด ผู้เขียนตั้งค่าพารามิเตอร์ IDE ต่อไปนี้:
- บอร์ด -> Arduino Nano (หรือบอร์ดใดก็ตามที่คุณใช้อยู่)
- พอร์ตอนุกรม ->


หลังจากตั้งค่าพารามิเตอร์แล้ว ผู้เขียนดาวน์โหลดไฟล์เฟิร์มแวร์ Wireless_tx และอัปโหลดไปยังบอร์ด:

ซอฟต์แวร์ตัวรับ
ผู้เขียนทำซ้ำขั้นตอนเดียวกันสำหรับกระดานรับ:
- บอร์ด -> Arduino UNO (หรือบอร์ดใดก็ตามที่คุณใช้อยู่)
- พอร์ตอนุกรม -> COM XX (ตรวจสอบพอร์ต com ที่บอร์ดของคุณเชื่อมต่ออยู่)



หลังจากที่ผู้เขียนตั้งค่าพารามิเตอร์แล้ว เขาดาวน์โหลดไฟล์ wireless_rx และอัปโหลดไปยังบอร์ด:


หลังจากใช้โปรแกรมที่สามารถดาวน์โหลดได้ ผู้เขียนสร้างเสียงสำหรับออด

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


ขั้นตอนที่ 5
การประกอบขั้นสุดท้ายของเครื่องส่งสัญญาณ
ขั้นแรก ผู้เขียนตัดลีดที่ยื่นออกมาจากเครื่องรับ ตัวส่งสัญญาณ บอร์ด Arduino ฯลฯ


หลังจากนั้น ฉันเชื่อมต่อบอร์ด Arduino กับเซ็นเซอร์ตรวจจับความเคลื่อนไหวและเครื่องส่งสัญญาณ RF โดยใช้จัมเปอร์


ต่อจากนั้น ผู้เขียนก็เริ่มทำเคสสำหรับเครื่องส่ง

ขั้นแรก เขาตัดออก: รูสำหรับสวิตช์ เช่นเดียวกับรูกลมสำหรับเซ็นเซอร์ตรวจจับความเคลื่อนไหว หลังจากนั้นเขาจึงติดกาวเข้ากับเคส




จากนั้นผู้เขียนพับกระดาษสีหนึ่งแผ่นแล้วติดภาพบนปกด้านหน้าเพื่อซ่อนชิ้นส่วนภายในของผลิตภัณฑ์โฮมเมด


หลังจากนั้นผู้เขียนก็เริ่มใส่ไส้อิเล็กทรอนิกส์เข้าไปในเคสโดยใช้เทปกาวสองหน้า



การประกอบเครื่องรับขั้นสุดท้าย
ผู้เขียนตัดสินใจเชื่อมต่อบอร์ด Arduino กับแผงวงจรด้วยแถบยาง และติดตั้งเครื่องรับ RF ด้วย


ถัดไป ผู้เขียนตัดสองรูบนตัวอีกข้างหนึ่ง รูหนึ่งสำหรับออด อีกรูสำหรับสวิตช์


และแท่ง

มีอะไรให้อ่านอีกบ้าง