สารบัญ:

RPi IoT Smart Light โดยใช้ Firebase: 4 ขั้นตอน (พร้อมรูปภาพ)
RPi IoT Smart Light โดยใช้ Firebase: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RPi IoT Smart Light โดยใช้ Firebase: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RPi IoT Smart Light โดยใช้ Firebase: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: IoT using Raspberry Pi and firebase and android 2024, พฤศจิกายน
Anonim
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase
RPi IoT Smart Light โดยใช้ Firebase

คู่มือนี้จะแสดงวิธีสร้างและตั้งค่าแอปเพื่อควบคุม Raspberry Pi ผ่าน Firebase (ฐานข้อมูลออนไลน์) จากนั้นพิมพ์ 3 มิติเคสสำหรับ Pi Zero W, Powerboost 1000C, แบตเตอรี่ และ Blinkt!

เพื่อให้สามารถทำตามได้ง่ายที่สุด ฉันแนะนำให้ทำความคุ้นเคยกับ Xcode และ Raspberry Pi

และถ้าคุณชอบสิ่งที่คุณเห็น ติดตามฉันบน Instagram และ Twitter (@Anders644PI) เพื่อติดตามสิ่งที่ฉันทำ

คุณจะต้องการ:

  • Raspberry Pi Zero W พร้อมอะแดปเตอร์และส่วนหัว GPIO

    (หรือ Pi Zero ธรรมดาที่มีดองเกิล WiFi)

  • PowerBoost 1,000 C
  • แบตเตอรี่ลิเธียมไอออน - 3.7v 2000mAh
  • กะพริบตา! (หรือ pHAT/HAT ใดๆ ที่: ไม่ได้ใช้พิน 5 แบบฟิสิคัล และ HAT ควรแบนที่ด้านล่าง)
  • การ์ด Micro SD ขนาด 8GB ขึ้นไป ที่มี Raspbian Stretch (พร้อมเดสก์ท็อป) อยู่
  • แป้นพิมพ์และเมาส์ (แต่คุณสามารถเชื่อมต่อผ่าน ssh ได้ ถ้าตอนนี้เป็นอย่างไรบ้าง)
  • การเชื่อมต่อกับจอภาพหรือทีวี (หรือ ssh!)
  • เศษสกรู
  • สายเล็ก
  • สวิตช์เล็กและปุ่มเล็ก
  • เครื่องพิมพ์ 3 มิติและหลอดด้าย PLA สีใดก็ได้ 1 หลอด และหลอด PLA โปร่งใส 1 หลอด (หรือคุณอาจใช้บริการ 3D เช่น 3D Hubs เพื่อพิมพ์ให้คุณ)

ขั้นตอนที่ 1: Firebase และ Xcode

Firebase และ Xcode
Firebase และ Xcode
Firebase และ Xcode
Firebase และ Xcode
Firebase และ Xcode
Firebase และ Xcode

อันดับแรก เราจะตั้งค่า Firebase กับแอพ เพื่อให้เราสามารถสื่อสารจากแอพไปยัง Pi

หากคุณสับสน คุณสามารถดูวิดีโอนี้

1. เปิด Xcode และสร้างโครงการ Xcode ใหม่ เลือกแอป Single View และเรียกมันว่า RPiAppControl และตรวจสอบให้แน่ใจว่าภาษานั้นเป็น Swift กด ถัดไป และบันทึก

2. คัดลอก Bundle Identifier ของคุณ เพราะเราต้องการสิ่งนั้นในภายหลัง

3. ใน Firebase เข้าสู่ระบบด้วยบัญชี Google ของคุณ แล้วคลิกไปที่คอนโซล

4. สร้างโครงการใหม่และเรียกมันว่า RPiAppControl

5. คลิก เพิ่ม Firebase ในแอป IOS ของคุณ วางใน Bundle Identifier แล้วกด Register App

6. ดาวน์โหลด GoogleService-Info.plist แล้วลากไปไว้ใน Xcode Project ของคุณ

7. กลับไปที่ Firebase กด Continue จากนั้นเปิดหน้าต่างเทอร์มินัลแล้วไปที่ตำแหน่งของโครงการ Xcode ของคุณ

8. เรียกใช้คำสั่งนี้:

Pod init

9. เปิด Podfile และภายใต้ use_frameworks!, เพิ่มบรรทัดนี้:

พ็อด 'Firebase/Core'

10. กลับไปที่ประเภทเทอร์มินัล: pod install และปิด Xcode

11. ใน Finder ให้ไปที่โปรเจ็กต์ Xcode ของคุณ แล้วเปิดไฟล์.xcworkspacefile ที่สร้างขึ้นใหม่

12. ในที่นี้ไปที่ AppDelegate.swift และภายใต้การนำเข้า UIKit ให้เพิ่มบรรทัดนี้:

นำเข้า Firebase

และในฟังก์ชันแอปพลิเคชัน ให้เพิ่มบรรทัดนี้:

FIRApp.configure()

13. กลับไปที่ Firebase คลิก Continue แล้วคลิก Finish

14. ไปที่ฐานข้อมูล ตามด้วยกฎ แล้วตั้งค่า ".read" และ ".write" ให้เป็นจริง กดเผยแพร่

15. กลับไปที่ Xcode เปิด Podfile และภายใต้บรรทัดแรกที่เราตั้งค่า เพิ่มสิ่งนี้:

พ็อด 'Firebase/ฐานข้อมูล'

16. กลับไปที่เทอร์มินัล รัน pod install อีกครั้ง

ขั้นตอนที่ 2: เสร็จสิ้น Xcode

จบ Xcode
จบ Xcode
จบ Xcode
จบ Xcode
จบ Xcode
จบ Xcode

ตอนนี้เราจะทำโค้ดและเลย์เอาต์ให้เสร็จใน Xcode

กำลังใช้ Xcode 9 และ Swift 4

รหัสสำหรับ ViewController1 ที่ด้านบนของ ViewController และภายใต้การนำเข้า UIKit ให้เพิ่มสิ่งนี้:

นำเข้า Firebase

นำเข้า FirebaseDatabase

2. ที่ด้านล่างของ ViewController และภายใต้ didReceiveMemoryWarning -function ให้คัดลอกวางฟังก์ชันนี้สำหรับแต่ละปุ่ม:

func num1 (สถานะ: สตริง){

let ref = FIRDatabase.database().reference() ให้ post: [String: Any] = ["state": state] ref.child("num1").setValue(post) }อย่าลืมเปลี่ยน (number

3. ใน viewDidLoad -function ภายใต้ super.viewDidLoad() ให้แทรกบรรทัดนี้สำหรับแต่ละปุ่ม (สำหรับหลายปุ่ม เพียงเปลี่ยน (ตัวเลข) ดูภาพ…):

num1(สถานะ: "ปิด")

เลย์เอาต์ของ Main.storyboard และปุ่ม

1. ไปที่ Main.storyboard และใส่ปุ่มบางปุ่ม คุณสามารถจัดวางได้เหมือนที่ฉันทำหรือปรับแต่งตามที่คุณต้องการ

2. เชื่อมต่อปุ่มต่างๆ กับ ViewController แต่ละปุ่มต้องเชื่อมต่อสองครั้ง: ปุ่มหนึ่งเป็นการกระทำและ UIButton เรียกว่า num(number)Button และอีกปุ่มหนึ่งเป็น Outlet เริ่มต้นและเรียกมันว่า num(number)Color ดูภาพ…

3. จากนั้นสำหรับปุ่มทั้งหมด ให้วางในบรรทัดนี้ในแต่ละฟังก์ชัน:

ถ้า self.num1Color.backgroundColor == UIColor.lightGray { // ตั้งค่าสีพื้นหลังเป็น lightGray

num1(state: "ON") // ส่ง state: "ON" ไปยัง firebase self.num1Color.backgroundColor = UIColor(red:0.96, green:0.41, blue:0.26, alpha:1.0) // ตั้งค่าสีพื้นหลังเป็น สีแดง } อื่น { num1 (สถานะ: "ปิด") // ส่งสถานะ: "ปิด" ไปยัง firebase self.num1Color.backgroundColor = UIColor.lightGray // ตั้งค่าสีพื้นหลังเป็น lightGray }

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

สัมผัสการตกแต่ง (ไม่บังคับ)

1. ดาวน์โหลดรูปภาพด้านล่าง และแทรก LaunchScreen-image-j.webp

2. ไปที่ Assets.xcassets แล้ว AppIcon ที่นี่ วางใน AppIcon -size ที่สอดคล้องกัน

ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi

การติดตั้ง Raspberry Pi
การติดตั้ง Raspberry Pi

ตอนนี้เราต้องตั้งค่า Pi ด้วย Firebase เพื่อให้แอปสามารถสื่อสาร ส่ง Firebase ไปยัง Pi ได้

ฉันไม่ได้เขียนโค้ด แต่คุณสามารถหาโค้ดต้นฉบับได้ที่นี่

1. ในเทอร์มินัล ให้รันการอัปเดตตามปกติ:

sudo apt-get update && sudo apt-get dist-upgrade

2. จากนั้นเราจะนำเข้า pyrebase (Firebase):

sudo pip ติดตั้ง pyrebase

sudo pip3 ติดตั้ง pyrebase sudo pip3 ติดตั้ง -- อัปเกรด google-auth-oauthlib

3. ดาวน์โหลดไลบรารี Blinkt:

curl https://get.pimoroni.com/blinkt | ทุบตี

4. โคลนที่เก็บ GitHub ของฉัน:

โคลน git https://github.com/Anders644PI/RPiAppControl.gitcd RPiAppControl

5. แก้ไข AppRPiControl_Template.py:

nano RPiAppControl_Template.py

6. กรอก Firebase ApiKey และ projectId ของคุณ คุณสามารถค้นหาสิ่งเหล่านี้ได้โดยไปที่โครงการ Firebase แล้วคลิกเพิ่มแอปอื่น จากนั้นเพิ่ม Firebase ลงในเว็บแอปของคุณ

7. ปรับแต่งฟังก์ชันและบันทึกการเปลี่ยนแปลงของคุณโดยกด ctrl-o (ป้อน) และปิดด้วย ctrl-x

8. ตอนนี้เรียกใช้ด้วย:

sudo python3 RPiAppControl_Template.py

9. หากคุณใช้ Blinkt คุณสามารถลองใช้ตัวอย่าง เมื่อคุณกรอก Firebase ApiKey และ projectId ของคุณแล้ว:

ตัวอย่างซีดี

nano RPiAppControl_blinkt_demo.py

ตอนนี้เรียกใช้:

sudo python3 RPiAppControl_blinkt_demo.pyโปรดทราบว่าหลังจากที่คุณเรียกใช้สคริปต์ จะใช้เวลาประมาณหนึ่งนาทีเพื่อเตรียมพร้อม (อย่างน้อยใน Pi Zero) และสคริปต์จะต้องทำงานใน python 3

10. โบนัส: หากคุณต้องการให้สคริปต์ทำงานขณะบู๊ต คุณสามารถดูวิธีการได้ที่นี่

ปิดเครื่อง/ปุ่มเปิด/ปิด

เป็นตัวเลือกในการติดตั้งปุ่มเปิดปิด แต่ฉันแนะนำ ทำตามวิดีโอนี้เพื่อตั้งค่า

โปรดทราบว่าสิ่งนี้ใช้พินจริง 5 บน Pi ดังนั้น HAT บางตัวจะไม่ทำงาน

ขั้นตอนที่ 4: สิ่งที่แนบมา

แนะนำ: