สารบัญ:

R-PiAlerts: สร้างระบบรักษาความปลอดภัยบน WiFi ด้วย Raspberry Pis: 8 ขั้นตอน (พร้อมรูปภาพ)
R-PiAlerts: สร้างระบบรักษาความปลอดภัยบน WiFi ด้วย Raspberry Pis: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: R-PiAlerts: สร้างระบบรักษาความปลอดภัยบน WiFi ด้วย Raspberry Pis: 8 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: R-PiAlerts: สร้างระบบรักษาความปลอดภัยบน WiFi ด้วย Raspberry Pis: 8 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Linux Crash Course - Scheduling Tasks with Cron 2024, พฤศจิกายน
Anonim
Image
Image
R-PiAlerts: สร้างระบบรักษาความปลอดภัยแบบ WiFi ด้วย Raspberry Pis
R-PiAlerts: สร้างระบบรักษาความปลอดภัยแบบ WiFi ด้วย Raspberry Pis
R-PiAlerts: สร้างระบบรักษาความปลอดภัยแบบ WiFi ด้วย Raspberry Pis
R-PiAlerts: สร้างระบบรักษาความปลอดภัยแบบ WiFi ด้วย Raspberry Pis

ขณะทำงานที่โต๊ะทำงาน จู่ๆ คุณก็ได้ยินเสียงดังแว่วมาแต่ไกล มีใครเพิ่งกลับบ้านไหม รถของฉันจอดอยู่หน้าบ้านฉัน มีคนบุกรุกเข้ามาในรถของฉันหรือไม่? คุณไม่ต้องการให้คุณได้รับการแจ้งเตือนทางโทรศัพท์หรือที่โต๊ะทำงานเพื่อที่คุณจะได้ตัดสินใจว่าจะทำการตรวจสอบหรือไม่ ไม่ต้องถามแล้ว! R-PiAlerts มาแล้ว!

R-PiAlerts คืออะไร R-PiAlerts เป็นระบบรักษาความปลอดภัยที่ใช้ Raspberry Pi3 ซึ่งสร้างขึ้นจาก Cloud ของ Firebase หากตรวจพบการเคลื่อนไหว ระบบจะแจ้งให้ผู้ใช้ทราบว่าอาจมีการบุกรุกด้วยข้อความและจอแสดงผล LED ที่กะพริบ เมื่อผู้ใช้ได้รับการแจ้งเตือน เขาหรือเธอสามารถตรวจสอบได้ การเคลื่อนไหวที่ตรวจพบทั้งหมดจะถูกบันทึกลงในฐานข้อมูล Firebase นอกจากการดูบันทึกการเคลื่อนไหวบนเว็บเบราว์เซอร์แล้ว ผู้ใช้ยังสามารถเข้าถึงบันทึกการเคลื่อนไหวผ่านแอป iOS ฉันตัดสินใจสร้างสิ่งนี้เนื่องจากการบุกรุกที่เพิ่มขึ้นเมื่อเร็วๆ นี้ของทั้งรถยนต์และบ้านในพื้นที่ของฉัน

ทำไมต้องเป็น Pi3 ฉันต้องการสิ่งเล็กๆ ที่สามารถตรวจจับการเคลื่อนไหวและแบตเตอรี่หมดได้หากจำเป็น จากนั้นฉันสามารถซ่อนเครื่องไว้หลังประตูหรือในรถได้ หน่วยต้องสามารถส่งการแจ้งเตือนหรือการแจ้งเตือนให้ฉันด้วย Pi3 สามารถทำสิ่งเหล่านี้ได้ด้วย WiFi ในตัวและความสามารถในการใช้งานแบตเตอรี่แบบ USB เหตุผลอื่นๆ ว่าทำไมฉันถึงเลือก Pi3:

  • Pi มีราคาไม่แพงนัก
  • ง่ายต่อการปรับใช้และขยายขนาด
  • สามารถกำหนดค่าได้จากมุมมองของซอฟต์แวร์
  • ความสามารถในการใช้จอแสดงผลและเซ็นเซอร์ โครงการนี้จะใช้ SenseHat
  • ใช้งาน Headless (ไม่มีจอภาพ คีย์บอร์ด หรือเมาส์)

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

  • ตามหลักการแล้วผู้ใช้จะต้องมี Raspberry Pi 2 ตัวที่เชื่อมต่อกับฐานข้อมูล Firebase แต่ Pi ตัวเดียวก็ใช้งานได้เช่นกัน
  • การใช้ SenseHat Pi (Pi1) ตัวแรกจะตรวจจับการเคลื่อนไหวด้วยมาตรความเร่ง ในขณะที่ Pi ตัวที่สอง (Pi2) จะแสดงการแจ้งเตือนการเคลื่อนไหว
  • เมื่อ Pi1 ตรวจจับการเคลื่อนไหว ก็ทำ 3 อย่าง

    • บันทึกการเคลื่อนไหวไปยังฐานข้อมูล
    • สร้างรายการแจ้งเตือนบนฐานข้อมูลเพื่อให้ Pi2 แสดง
    • ส่งข้อความแจ้งให้ผู้ใช้ทราบการเคลื่อนไหว
  • เมื่อ Pi2 ตรวจพบการแจ้งเตือนให้แสดงจากฐานข้อมูล มีสองสิ่งเกิดขึ้น

    • จอแสดงผล LED ของ Pi2 จะแสดงการแจ้งเตือนอย่างต่อเนื่อง
    • ผู้ใช้สามารถล้างการแจ้งเตือนได้โดยกดปุ่ม Pi2 SenseHat การดำเนินการนี้จะล้างรายการแจ้งเตือนในฐานข้อมูลด้วย
  • ด้วยแอพ iOS ผู้ใช้สามารถ

    • เข้าถึงฐานข้อมูล อ่านและลบบันทึกการเคลื่อนไหว
    • ผู้ใช้สามารถส่ง Pi1 เพื่อแสดงข้อความบนจอแสดงผล LED ของ Pi1

การใช้งานจริง

  1. หากคุณจอดรถบนถนนของคุณภายในช่วง wifi แนบก้อนแบตเตอรี่เข้ากับ Pi1 (ดูรูป) ซ่อน Pi1 ในรถของคุณ วาง Pi2 ในที่ที่มองเห็นได้ง่าย เช่น ข้างโต๊ะทำงาน (ดูรูป)
  2. อีกวิธีหนึ่งคือการวาง Pi1 ไว้ในบ้านของคุณที่ข้างประตู Pi นั้นเล็กมากจนคนส่วนใหญ่ไม่สังเกตเห็นโดยเฉพาะอย่างยิ่งหากอยู่ด้านหลังบานพับ (ดูรูป) จากนั้นวาง Pi2 ของคุณไว้ที่โต๊ะทำงานของคุณ
  3. สุนัขเข้าไปในจุดในบ้านไม่ควร? วาง Pi1 ไว้ในบริเวณนั้น ตรวจสอบให้แน่ใจว่าคุณใส่ Pi ในกล่องที่แข็งแรงเพื่อให้สุนัขของคุณไม่เคี้ยวมัน

ตราบใดที่ Pis ของคุณอยู่ในช่วงสัญญาณ wifi พวกมันสามารถเตือนหรือแจ้งการเคลื่อนไหวให้คุณทราบ หากคุณไม่มี Pi ตัวที่สอง คุณสามารถใช้ Pi1 เพื่อตรวจจับการเคลื่อนไหวและรับการแจ้งเตือนทาง SMS ผ่านโทรศัพท์มือถือของคุณ

บิลวัสดุ

  • Raspberry Pi 3s สอง (2)s ที่ใช้ Raspbian (Raspberry Pi 2 จะทำงานกับดองเกิล wifi ด้วย)
  • สอง(2) SenseHats
  • อุปกรณ์ Mac และ iOS

ซอฟต์แวร์ที่จำเป็น

  • ไลบรารี Pyrebase (เชื่อมต่อกับ Firebase)
  • ไลบรารี SenseHat (สำหรับการเข้าถึงมาตรความเร่งและจอแสดงผล LED)
  • ห้องสมุด Twilio (สำหรับส่ง SMS)
  • Python 3 สร้างขึ้นด้วย Raspbian. ล่าสุด
  • Raspbian กับ IDLE
  • Xcode8 และ Cocoapods บน Mac. ของคุณ
  • ความเต็มใจที่จะเรียนรู้และสำรวจ

หมายเหตุด้านข้างนี่ไม่ใช่โซลูชันความปลอดภัยที่ใช้ Pi เท่านั้น หากคุณมีความคิด ข้อเสนอแนะ หรือเพียงแค่ต้องการปรับโครงสร้างโค้ดของฉันใหม่ โปรดแสดงความคิดเห็นด้านล่าง! =)

ขั้นตอนที่ 1: ตั้งค่าบัญชี Firebase และ Twilio

ตั้งค่าบัญชี Firebase และ Twilio
ตั้งค่าบัญชี Firebase และ Twilio
ตั้งค่าบัญชี Firebase และ Twilio
ตั้งค่าบัญชี Firebase และ Twilio

ก่อนอื่น ก่อนที่เราจะเล่นซอกับ Pis ของเรา เราต้องตั้งค่า Firebase และ Twilio Firebase เป็นบริการแบ็กเอนด์ของ Google Firebase มีคุณสมบัติดังกล่าว เช่น ฐานข้อมูล การส่งข้อความบนคลาวด์ การตรวจสอบสิทธิ์ พื้นที่เก็บข้อมูล ฯลฯ สำหรับโปรเจ็กต์นี้ เราจะต้องใช้ฐานข้อมูลเรียลไทม์และการตรวจสอบสิทธิ์ของ Firebase เท่านั้น จำเป็นต้องมีการตรวจสอบสิทธิ์เพื่ออ่านและเขียนไปยังฐานข้อมูล Firebase ของคุณ ในการตั้งค่า Firebase:

  1. ลงทะเบียนสำหรับบัญชี Firebase ฟรี
  2. ไปที่คอนโซล สร้างโครงการใหม่และตั้งชื่อ
  3. ใต้เมนูด้านซ้าย คลิกที่ "ภาพรวม"
  4. คลิก "เพิ่ม Firebase ลงในเว็บแอปของคุณ" คัดลอก APIKey และ projectid ของคุณ (ไม่ใช่ url) รหัสโครงการอยู่ใน URL ต่างๆ เช่น ฐานข้อมูล:
  5. ใต้เมนูด้านซ้าย ให้คลิกที่ "การตรวจสอบสิทธิ์" ไปที่ "วิธีการลงชื่อเข้าใช้" และเปิดใช้งาน "อีเมล/รหัสผ่าน"
  6. ภายใต้ "ผู้ใช้" สร้างบัญชีผู้ใช้ใหม่ด้วยอีเมล/รหัสผ่านที่คุณเลือก คุณจะใช้ข้อมูลประจำตัวนี้เพื่อเข้าสู่ฐานข้อมูล
  7. ใต้เมนูด้านซ้าย ไปที่ "ฐานข้อมูล"
  8. นี่คือฐานข้อมูลของคุณ มันว่างเปล่าในขณะนี้ เมื่อกรอกแล้วจะอยู่ในรูปแบบ JSON URL ควรเหมือนกับที่คุณเห็นก่อนหน้านี้

Twilio ช่วยให้นักพัฒนาสามารถส่งข้อความถึงลูกค้าได้ เราจะใช้เพื่อส่ง SMS ไปยังโทรศัพท์ของคุณเมื่อ Pi ตรวจพบการเคลื่อนไหว Twilio จะให้หมายเลขโทรศัพท์แก่คุณเพื่อส่ง SMS ในการตั้งค่า Twilio:

  1. ลงทะเบียนสำหรับบัญชีฟรีที่เว็บไซต์ของ Twilio
  2. คัดลอกบัญชีSID ของคุณและ authToken
  3. คลิกที่ "ข้อ จำกัด การทดลองใช้" และเลือก "รับหมายเลขโทรศัพท์ Twilio แรกของคุณ"
  4. คัดลอกหมายเลขโทรศัพท์ใหม่ของคุณ

ขั้นตอนที่ 2: ตั้งค่า Pis ของคุณ

ตั้งค่า Pis ของคุณ
ตั้งค่า Pis ของคุณ
ตั้งค่า Pis ของคุณ
ตั้งค่า Pis ของคุณ

ก่อนที่เราจะเริ่มต้นเขียนโปรแกรม Pis ได้ เราต้องตั้งค่าบางอย่างก่อน ตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบรหัสผ่านสำหรับ Pis ของคุณ ขั้นแรกเราจะเชื่อมต่อบอร์ด SenseHat กับ Pis ต่อไป เราจะติดตั้งไลบรารี SenseHat, Twilio และ Pyrebase ที่จำเป็น ฐานข้อมูลเรียลไทม์ของ Firebase ออกแบบมาสำหรับอุปกรณ์เคลื่อนที่หรือเว็บไซต์ อย่างไรก็ตาม เราสามารถอ่านและเขียนฐานข้อมูลบนคลาวด์ผ่าน Rest API ด้วยไลบรารีตัวช่วย เช่น Pyrebase

เชื่อมต่อ SenseHat ตรวจสอบให้แน่ใจว่า SenseHats เชื่อมต่อกับ Pis ของคุณ หากคุณมีกรณีผิดปกติ คุณอาจต้องถอด Pi ออกก่อนที่จะเชื่อมต่อ SenseHat

การติดตั้งไลบรารี การติดตั้งไลบรารีทั้งหมดจะทำใน Terminal

  • เริ่มต้น Pis ของคุณหากคุณยังไม่ได้ทำ
  • เมื่อเปิดเครื่อง คุณจะได้ไฟ LED สีรุ้งบน SenseHat ของคุณ! (ดูรูป)
  • ไปที่เทอร์มินัลและอัพเดต/ dist-upgrade พิมพ์:

    • sudo apt-get update
    • sudo apt-get dist-upgrade
  • หลังจากอัปเกรดเสร็จแล้ว ให้พิมพ์ข้อความต่อไปนี้เพื่อติดตั้งไลบรารี SenseHat:

    sudo apt-get ติดตั้ง sense-hat

  • ในการติดตั้ง Pyrebase ให้พิมพ์:

    sudo pip ติดตั้ง pyrebase

  • สุดท้าย ติดตั้ง Twilio

    sudo pip ติดตั้ง twilio

ขั้นตอนที่ 3: สคริปต์ Python สำหรับ Pi1

ดังที่เราได้กล่าวไว้ก่อนหน้านี้ Pi1 จะเป็น Pi ที่จะใช้ตรวจจับการเคลื่อนไหว ค่าของมาตรความเร่งของ SenseHat จะถูกใช้เพื่อกำหนดการเคลื่อนไหว ดังนั้นรหัสสำหรับ Pi1 จะอยู่ที่การเข้าถึงค่าแรง g ของมาตรความเร่งและบันทึกการเคลื่อนไหวที่ตรวจพบไปยังฐานข้อมูล Firebase นี่คือภาพรวมของโฟลว์กระบวนการ:

  • หาก Pi1 ตรวจพบการเคลื่อนไหว ระบบจะเพิ่มรายการย่อย "การแจ้งเตือน" ใน Firebase DB
  • Pi1 จะอัปเดตลูก "notifypi2" ด้วยข้อความแจ้งเตือนเกี่ยวกับการเคลื่อนไหว
  • Pi2 จากนั้นอ่าน "notifypi2" และแสดงการแจ้งเตือนบนจอแสดงผล LED matrix

ฉันได้รวมสคริปต์ Pi1 Python ไว้ให้คุณติดตามแล้ว ความคิดเห็นในสคริปต์อธิบายว่าโค้ดกำลังทำอะไรอยู่

หมายเหตุและข้อมูลเชิงลึกเพิ่มเติมสำหรับสคริปต์ Pi1

  • สำหรับการตั้งค่า Firebase และ Twilio กรอกคีย์ API, ID, รหัสผ่าน ฯลฯ ที่เหมาะสมที่คุณคัดลอกมาจากขั้นตอนก่อนหน้านี้
  • เกี่ยวกับการพิสูจน์ตัวตนของ Firebase สำหรับการรักษาความปลอดภัยเพิ่มเติม คุณสามารถขอข้อมูลจากผู้ใช้แทนการเข้ารหัสข้อมูลรับรองเหล่านี้แบบตายตัว ทุกครั้งที่เราเขียนหรืออ่านจากฐานข้อมูล เราจะต้องรวม

    ผู้ใช้['idtoken'] กับ th

    รับ (), ดัน (), ตั้งค่า () วิธีการ

  • จำเป็นต้องมีอุณหภูมิของ CPU เพื่อให้เราสามารถเข้าไปแทรกแซงในกรณีที่ Pi มีความร้อนสูงเกินไปในรถยนต์หรือในสภาพแวดล้อมที่ปิด
  • นอกจากนี้เรายังใช้ค่าสัมบูรณ์ของแรง G เนื่องจากเราไม่จำเป็นต้องรู้ค่าลบ เราแค่ต้องรู้ว่ามีกองกำลัง G หรือไม่
  • ถ้าคำสั่งจะตรวจสอบค่าของมาตรความเร่ง หากแรง G มากกว่า 1 ในทิศทางใดๆ Pi1 จะบันทึกเวลาการเคลื่อนไหวและแสดงเครื่องหมายอัศเจรีย์บนจอแสดงผล LED ของตัวเอง นอกจากนี้ยังจะอัปเดตลูก "notifypi2" เมื่ออัปเดต "notifypi2" แล้ว Pi2 จะอ่านและแสดง "!!!" บนจอแสดงผล LED เพื่อแจ้งให้ผู้ใช้ทราบถึงการเคลื่อนไหว/การบุกรุกที่อาจเกิดขึ้น Pi1 จะส่ง SMS แจ้งการเคลื่อนไหวให้กับผู้ใช้
  • เมื่อใช้วิธี push() Firebase จะสร้างรายการย่อยโดยอัตโนมัติด้วยรายการใหม่ สิ่งนี้จำเป็นเพื่อให้ข้อมูลการเคลื่อนไหวที่บันทึกไว้จะไม่ซ้ำกัน วิธี set() จะเขียนทับข้อมูลก่อนหน้า
  • จำเป็นต้องวนซ้ำ 10 วินาทีเพื่อตรวจสอบฐานข้อมูล ดังนั้น Pi ของคุณจะไม่ขอข้อมูลจาก Firebase ซ้ำๆ หากคุณส่งสแปม Firebase อย่างต่อเนื่อง Google จะออกจากระบบภายใน 10 นาที
  • Firebase จะไล่ผู้ใช้ออกทุกๆ 60 นาทีหากโทเค็นไม่ได้รับการรีเฟรช ฉันตั้งค่าการรีเฟรชเป็น 1800 วินาที (30 นาที)

ขั้นตอนที่ 4: สคริปต์ Python สำหรับ Pi2

สคริปต์ Python สำหรับ Pi2
สคริปต์ Python สำหรับ Pi2

หากคุณดูที่ภาพถ่าย นั่นคือ Pi2 แสดงการแจ้งเตือนการเคลื่อนไหวที่เป็นไปได้

สคริปต์ของ Pi2 ค่อนข้างจะเหมือนกับ Pi1 ทุกประการ ยกเว้นว่าสคริปต์ตรวจไม่พบการเคลื่อนไหว Pi2 แสดงหรือรีเซ็ตข้อความแจ้งเตือนจากลูก "notifypi2" เท่านั้น เนื่องจากนั่นเป็นข้อแตกต่างเพียงอย่างเดียว ฉันจะอธิบายด้านล่าง

  • ทุกๆ 10 วินาที Pi2 จะทำเครื่องหมาย "notifypi2" เพื่อแสดง หากมีข้อความแจ้งเตือนให้แสดง Pi2 จะแสดงข้อความอย่างต่อเนื่องเพื่อให้ผู้ใช้เห็น
  • เฉพาะการแทรกแซงของผู้ใช้ในการกดปุ่มจอยสติ๊กเท่านั้นที่จะล้างข้อความและรีเซ็ตทางฝั่งฐานข้อมูล

ขั้นตอนที่ 5: ทดสอบ Pis

Image
Image
ทดสอบ Pis
ทดสอบ Pis

ได้เวลาทดสอบ Pis แล้ว

  • เรียกใช้สคริปต์สำหรับ Pis ตามลำดับ
  • เข้าสู่ระบบ Firebase และไปที่ส่วนฐานข้อมูลโครงการของคุณ
  • เขย่า Pi1 ของคุณ คุณจะเห็นเครื่องหมายอัศเจรีย์สีแดงบนจอแสดงผล LED Pi1 คุณควรได้รับข้อความ SMS ด้วย
  • ตรวจสอบฐานข้อมูล รายการแจ้งเตือนควรเริ่มปรากฏขึ้น ควรอัปเดต "notifypi2" ด้วย
  • ลองดูที่ Pi2 คุณควรเลื่อน "!!!" ด้วย หากต้องการล้างข้อความแจ้งเตือนนี้ เพียงกดที่จอยสติ๊ก ควรรีเซ็ต "notifypi2" ตรวจสอบ Firebase ของคุณเพื่อยืนยัน
  • หากคุณพบว่า Pi1 ไวต่อการเคลื่อนไหวมากเกินไป ให้เพิ่มขีดจำกัดให้มากกว่า 1G ในสคริปต์ Pi1

หากทุกอย่างเป็นไปด้วยดี สคริปต์ของคุณจะไม่ขัดข้อง ตอนนี้คุณมีระบบแจ้งเตือนการทำงานแล้ว เมื่อ Pi1 ตรวจพบการเคลื่อนไหวหรือการสั่นสะเทือน คุณจะได้รับการแจ้งเตือนข้อความ SMS และการแจ้งเตือนภาพ LED บน Pi2

ขั้นตอนที่ 6: การสร้าง R-PiAlerts IOS App

การสร้าง R-PiAlerts IOS App
การสร้าง R-PiAlerts IOS App

ถึงเวลาสร้างแอป iOS แล้ว! แอพจะค่อนข้างง่าย มันจะมี LoginViewController และ ItemsTableViewController ItemsTableViewController จะแสดงการแจ้งเตือนจากลูก "การแจ้งเตือน" ท่านสามารถลบรายการฐานข้อมูลออกจากแอพได้ เพื่อช่วยให้คุณหายปวดหัวได้ หากคุณวางแผนที่จะดูบทแนะนำออนไลน์สำหรับ Firebase อย่าลืมมองหาบทแนะนำที่ลงวันที่หลังเดือนมีนาคม 2016 เนื่องจากมีการเปลี่ยนแปลงครั้งใหญ่ในปีที่แล้วในช่วงเวลานั้น สิ่งใดก่อนเดือนมีนาคม 2559 จะเป็นมรดก ฉันสนใจไฟล์ Swift หรือไม่ โปรดตรวจสอบความคิดเห็นในโค้ด หากคุณต้องการคำแนะนำโดยละเอียดเกี่ยวกับวิธีสร้างแอป Firebase ที่อ่านฐานข้อมูล โปรดดูบทช่วยสอนของ Ray Wunderlich

ตั้งค่าภาพรวมโครงการ iOS ของคุณ

  • สร้างโครงการ iOS มุมมองเดียวใน Xcode
  • คัดลอกตัวระบุบันเดิล
  • ไปที่โปรเจ็กต์ Firebase บนเว็บไซต์และสร้างไฟล์ info.plist ด้วยตัวระบุบันเดิล
  • เพิ่มไฟล์ GoogleService-info.plist ในโครงการของคุณ info.plist นี้ใช้ได้เฉพาะกับโปรเจ็กต์ Firebase ที่คุณสร้างขึ้นเท่านั้น
  • ปิด Xcode และติดตั้ง Firebase ผ่าน Cocoapods ตรวจสอบให้แน่ใจว่าได้ติดตั้ง Auth และฐานข้อมูล
  • รีสตาร์ท Xcode จากนั้นกำหนดค่า AppDelegate.swift สำหรับ Firebase ใช้โค้ดแค่ 2 บรรทัด

    นำเข้า Firebase NS

    FIRApp.configure(). หรือ Firebase มีฟีเจอร์การคงอยู่ซึ่งใช้โค้ดเพียง 1 บรรทัด

    FIRDatabase.database().persistenceEnabled = true

  • รายละเอียดขั้นตอนการติดตั้งสามารถพบได้บนเว็บไซต์ของ Firebase

วิธีที่แอปโต้ตอบกับฐานข้อมูล Firebase:

  • แอปจะต้องตรวจสอบสิทธิ์ผู้ใช้
  • เมื่อตรวจสอบสิทธิ์แล้ว แอปจะถ่ายภาพสแนปชอตของฐานข้อมูล Firebase และจัดเก็บเป็นวัตถุ "รายการ"
  • วัตถุดังกล่าวจะเติมอาร์เรย์ อาร์เรย์ดังกล่าวจะถูกใช้เพื่อเติมมุมมองตาราง
  • ผู้สังเกตการณ์จะคอยดูการเปลี่ยนแปลงในฐานข้อมูล Firebase และสร้างสแนปชอต
  • เมื่อตรวจพบการเปลี่ยนแปลง อาร์เรย์จะถูกต่อท้ายจากสแนปชอตใหม่
  • Tableview จะถูกโหลดใหม่เพื่อแสดงการเปลี่ยนแปลง

โครงร่างทั่วไปเกี่ยวกับวิธีการสร้างแอป

  • ดูภาพเกี่ยวกับการวางแอปในตัวสร้างอินเทอร์เฟซของ Xcode
  • สร้าง ViewController ในตัวสร้างอินเทอร์เฟซและชี้คลาสที่กำหนดเองไปที่ LoginViewController.swift
  • เพิ่มฟิลด์ข้อความสำหรับอีเมลและรหัสผ่าน อย่าลืมเปิด "Secure Text Entry" สำหรับช่องรหัสผ่าน เพิ่มปุ่มเข้าสู่ระบบ
  • เชื่อมโยงฟิลด์ข้อความและปุ่มกับ LoginViewController.swift LoginViewController.swift จะจัดการการตรวจสอบสิทธิ์
  • เพิ่มตัวควบคุมการนำทางในตัวสร้างอินเทอร์เฟซ สร้างภาคต่อจาก LoginViewController ไปยัง Navigation Controller ตรวจสอบให้แน่ใจว่าได้ระบุตัวระบุภาคต่อ
  • ตั้งค่าคลาสแบบกำหนดเองของ tableview ใหม่ที่มาพร้อมกับตัวควบคุมการนำทางให้ชี้ ItemsTableViewController.swift ฉันยังมี 2 ปุ่มบน ItemsTableViewController: ออกจากระบบและปุ่มเพิ่ม เชื่อมโยงปุ่มกับ ItemsTableViewController.swift
  • เกี่ยวกับรหัส LoginViewController.swift ผู้ใช้จะป้อนข้อมูลรับรองการเข้าสู่ระบบและ Firebase จะส่งคืนผู้ใช้ หากมีผู้ใช้อยู่ ผู้ใช้จะดำเนินการต่อเนื่องกับตัวระบุ (ดูรหัสที่แนบมา)
  • เพิ่มคลาส Item.swift (ดูรหัสที่แนบมา)
  • เกี่ยวกับรหัส ItemsTableViewController เป็นรหัส tableview มาตรฐานที่ค่อนข้างดี จะมีผู้สังเกตการณ์เพื่อตรวจสอบการเปลี่ยนแปลงในฐานข้อมูลของคุณที่บันทึกเป็นสแน็ปช็อตเป็นวัตถุรายการ จากนั้นวัตถุ Item จะผนวกอาร์เรย์เพื่อเติมมุมมองตาราง ปุ่มเพิ่มจะตั้งค่ารายการในฐานข้อมูล Firebase เพื่อให้ Pi1 อ่านและแสดง สำหรับการหัวเราะคิกคักฉันก็เพิ่มรหัสด้วย (ดูรหัสที่แนบมา)

ขั้นตอนที่ 7: ทดสอบแอป

ทดสอบแอพ
ทดสอบแอพ
ทดสอบแอพ
ทดสอบแอพ
ทดสอบแอพ
ทดสอบแอพ

เรียกใช้แอพของคุณ

  • เข้าสู่ระบบและเขย่า Pi1 ของคุณ คุณควรเริ่มเห็นการแจ้งเตือนใหม่ปรากฏขึ้น
  • แตะปุ่มเพิ่มและดู Pi1 ของคุณแสดงข้อความของคุณ
  • ปัดไปทางซ้าย ดูรายการ "การแจ้งเตือน" ถูกลบ
  • ได้รับการแจ้งเตือนมากเกินไปอย่างรวดเร็วอย่างต่อเนื่อง? ปรับเกณฑ์มาตรความเร่งหรือเพิ่มเวลาพักเครื่องในสคริปต์ Pi1

ขั้นตอนที่ 8: สรุป

บทสรุป
บทสรุป
บทสรุป
บทสรุป

สุดยอด! ตอนนี้เรามี Pis ที่สามารถตรวจจับการเคลื่อนไหวและส่งการแจ้งเตือนการเคลื่อนไหวให้คุณ ยิ่งไปกว่านั้น คุณสามารถจัดการบันทึกข้อความแจ้งเตือนด้วยอุปกรณ์ iOS ของคุณได้! ถึงเวลาปรับใช้ Pis วาง Pi1 ไว้ข้างประตูของคุณและ Pi2 รอบๆ พื้นที่ทำงานของคุณ ครั้งหน้ามีคนเข้ามา เช็คสถานการณ์ได้! หรือดีกว่านั้น พยายามซ่อน Pi ในรถของคุณด้วยแบตเตอรี่ กระแทกประตูสองสามครั้ง ดูว่าเกิดอะไรขึ้น!

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

แนะนำ: