สารบัญ:

การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel: 4 ขั้นตอน (พร้อมรูปภาพ)
การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Realtime Event Notifications Using NodeMCU (Arduino), Google Firebase and Laravel 2024, มิถุนายน
Anonim
Image
Image
การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel
การแจ้งเตือนเหตุการณ์แบบเรียลไทม์โดยใช้ NodeMCU (Arduino), Google Firebase และ Laravel

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

อุปกรณ์นี้สามารถแจ้งเตือนคุณแบบเรียลไทม์เกี่ยวกับสิ่งที่คุณต้องการ

ขั้นตอนที่ 1: ต่อวงจร

ต่อวงจร
ต่อวงจร
ต่อวงจร
ต่อวงจร

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

เนื่องจากบอร์ด NodeMCU สามารถทำงานได้อย่างปลอดภัยจนถึงประมาณ 12mA ของกระแสไฟบนพิน ออดจึงเชื่อมต่อผ่านทรานซิสเตอร์ NPN ฉันใช้ 2N2222 เพราะฉันมีหลายตัววางอยู่รอบ ๆ แต่ฉันแน่ใจว่าหลักการจะเหมือนกันกับทรานซิสเตอร์ NPN อื่น ๆ

ในการต่อวงจร ให้ต่อตัวเก็บประจุของทรานซิสเตอร์กับพิน Vin บนบอร์ด ออดจะทำงานที่ 5V และเนื่องจากเราจะจ่ายไฟให้กับอุปกรณ์จาก USB พินนี้จะให้แรงดันไฟฟ้าก่อนตัวควบคุม 3.3V บนบอร์ด

ถัดไป เชื่อมต่อด้านบวกของออดกับอีซีแอลของทรานซิสเตอร์ และพินลบของออดกับพินกราวด์ใดๆ บนบอร์ด ฉันใช้พิน 2 แล้ว แต่คุณสามารถเชื่อมต่อได้ที่พิน 9, 25 หรือ 29

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

ขั้นตอนที่ 2: เตรียมเว็บแอป

เตรียมเว็บแอป
เตรียมเว็บแอป
เตรียมเว็บแอป
เตรียมเว็บแอป
เตรียมเว็บแอป
เตรียมเว็บแอป

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

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

แอปพลิเคชัน Laravel ใช้แพ็คเกจ “firebase-php” จาก Kreait และมีลิงก์อยู่ด้านล่าง ติดตั้งแพ็คเกจโดยเรียกใช้ "composer require kreait/firebase-php" เมื่อการติดตั้งเสร็จสิ้น เราต้องสร้างตัวควบคุมที่การดำเนินการจะเกิดขึ้น ฉันตั้งชื่อเมธอดนี้ว่า "อัปเดต" และฉันได้เชื่อมต่อมันในเส้นทางของการดำเนินการ POST

ในการดึงข้อมูลอินสแตนซ์ Firebase คุณต้องมีไฟล์ json ที่คุณต้องดาวน์โหลดจากคอนโซล Firebase วางไฟล์นี้ในรูทของโปรเจ็กต์ Laravel ของคุณและตั้งชื่อเป็น firebase.json เมื่อดึงข้อมูลอินสแตนซ์ firebase เราจำเป็นต้องจัดเตรียมพาธไปยังไฟล์นี้โดยใช้เมธอด withCredentials

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

สามารถทำได้เช่นเดียวกันกับ HTML และ JavaScript ธรรมดา โดยใช้ไลบรารี firebase ที่ให้มา ขั้นแรกเราต้องจัดเตรียมอาร์เรย์การกำหนดค่าด้วยการตั้งค่าที่เหมาะสมจากคอนโซล Firebase และเริ่มต้นแอป เมื่อเริ่มต้นแล้ว เราได้รับการอ้างอิงไปยังโหนดที่เราจัดเก็บจำนวนเหตุการณ์และแนบ Listener เพื่อดึงการเปลี่ยนแปลงค่าใดๆ

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

ขั้นตอนที่ 3: ตั้งโปรแกรมบอร์ด NodeMCU

ตั้งโปรแกรมบอร์ด NodeMCU
ตั้งโปรแกรมบอร์ด NodeMCU
ตั้งโปรแกรมบอร์ด NodeMCU
ตั้งโปรแกรมบอร์ด NodeMCU
ตั้งโปรแกรมบอร์ด NodeMCU
ตั้งโปรแกรมบอร์ด NodeMCU

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

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

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

ฟังก์ชันการตั้งค่ากำหนดพิน LED ในตัวและพิน D2 เป็นเอาต์พุต เริ่มการสื่อสารแบบอนุกรมเพื่อทราบว่าเกิดอะไรขึ้นและเชื่อมต่อกับเครือข่าย WiFi ที่ระบุ เมื่อสร้างการเชื่อมต่อแล้ว จะเริ่มการสื่อสารกับ Firebase และรับค่าล่าสุดที่เรารายงาน จากนั้นจะเริ่มฟังการเปลี่ยนแปลงในเส้นทางที่ระบุ

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

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

หลังจากส่งเสียงบี๊บ ค่าใหม่จะได้รับการอัปเดตสำหรับอุปกรณ์ที่ระบุและการสตรีมจะเริ่มต้นใหม่อีกครั้ง ขณะนี้มีปัญหาเปิดในไลบรารี arduino firebase ที่การสตรีมไม่ดำเนินต่อไปโดยอัตโนมัติหลังจากที่เราบันทึกค่าด้วยตนเอง ดังนั้นเราจึงจำเป็นต้องเริ่มต้นใหม่

ขั้นตอนที่ 4: สนุกกับอุปกรณ์ของคุณ

สนุกกับอุปกรณ์ของคุณ!
สนุกกับอุปกรณ์ของคุณ!

รหัสทั้งหมดที่ฉันใช้มีอยู่ในบัญชี GitHub ที่ลิงก์ด้านล่างพร้อมกับลิงก์ไปยังแผนผังของโครงการ

รหัสแหล่งที่มา

แผนผัง

โค้ดนี้สามารถนำมาใช้กับสถานการณ์และเหตุการณ์ต่างๆ ได้อย่างง่ายดาย และฉันแน่ใจว่าคุณจะสนุกกับการเล่นมันมาก

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

หากคุณชอบโครงการโปรดสมัครรับข้อมูลจากช่อง YouTube ของฉัน:

ลิ้มรสรหัส

แนะนำ: