สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การตั้งค่า Raspberry Pi
- ขั้นตอนที่ 2: เชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
- ขั้นตอนที่ 3: การออกแบบฐานข้อมูล
- ขั้นตอนที่ 4: การตั้งค่า Arduino
- ขั้นตอนที่ 5: แบ็กเอนด์ Raspberry Pi
- ขั้นตอนที่ 6: กรณี
วีดีโอ: ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
ปลุกฉันให้ตื่นเป็นนาฬิกาปลุกอัจฉริยะที่สามารถใช้เป็นไฟอัจฉริยะได้
แถบไฟ LED ในตัวจำลองแสงธรรมชาติที่เข้ามาในห้องของคุณ วิธีนี้จะช่วยให้คุณเริ่มต้นวันใหม่ได้อย่างสงบและเป็นธรรมชาติ
นาฬิกาปลุกยังมีส่วนแสดงผล 4*7 สำหรับอ่านเวลา, ลำโพงสำหรับการปลุกด้วยเพลงโปรดของคุณ, ปุ่มสัมผัส, ldr สำหรับปรับความสว่างของแถบไฟ LED และเซ็นเซอร์อุณหภูมิซึ่งคุณสามารถใช้เพื่อดู อุณหภูมิห้องของคุณ
เสบียง
รายการราคาที่แน่นอนที่ฉันจ่ายไปสามารถดูได้ที่นี่:
ไมโครคอนโทรลเลอร์และคอมพิวเตอร์:
Raspberry Pi 4I ใช้ raspberry pi 4 4GB อย่างไรก็ตาม raspberry pi รุ่น 3+ น่าจะใช้ได้
Arduino Uno
Arduino ใช้เพื่อควบคุมการแสดงนาฬิกาส่วน 4 * 7
เซนเซอร์:
- TMP36: เซ็นเซอร์อุณหภูมิ
- LDR: ตัวต้านทานที่ขึ้นกับแสง
แอคทูเอเตอร์:
- WS2801: แถบไฟ LED ที่สามารถระบุตำแหน่งได้
- จอ LCD: จอ LCD ขนาด 16*2
- จอแสดงผลนาฬิกาเซกเมนต์ 4*7
ไอซี:
- 74HC595: Shiftregister สำหรับจอแสดงผล LCD
- MCP3008: ตัวแปลงอนาล็อกเป็นดิจิตอล 8 บิต
- ตัวแปลงระดับลอจิก: ใช้เพื่อสื่อสารระหว่าง raspi และ arduino
อย่างอื่น:
- แอมพลิฟายเออร์ adafruit MAX9744 เพื่อเพิ่มพลังให้กับลำโพง
- ลำโพงตัวไหน ผมใช้ ลำโพงฟูลเรนจ์ Visaton 4Ohm 8Watt (ข้อ 2240)
- แหล่งจ่ายไฟ 9 โวลต์เพื่อจ่ายไฟให้กับเครื่องขยายเสียง
- แหล่งจ่ายไฟ 5 โวลต์สำหรับจ่ายไฟ LED Strip และส่วนประกอบอื่นๆ โปรดทราบว่าแต่ละ LED ในแถบไฟ LED สามารถดึง 60mA ได้ ดังนั้นตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟของคุณเพียงพอ
- ตัวต้านทาน 220Ohm สองสามตัว
- เขียงหั่นขนมขนาดเล็กสำหรับใส่ในกรณีของคุณ
เครื่องมือ:
- หัวแร้ง.
- บางอย่างที่จะทำให้เป็นกรณีนี้ (ฉันใช้เครื่องพิมพ์ 3 มิติที่มี PLA และ PETG และสติกเกอร์ไวนิลเพื่อให้ได้เอฟเฟกต์ไม้)
ขั้นตอนที่ 1: การตั้งค่า Raspberry Pi
raspberry pi เป็นตัวควบคุมไมโครหลักของเรา
raspberry pi ใช้งานเว็บเซิร์ฟเวอร์ในพื้นที่ ฐานข้อมูล ควบคุมแถบไฟ LED, ลำโพง, …
ส่วนที่ 1: การติดตั้ง Raspbian
ใช้บทช่วยสอนนี้เพื่อติดตั้ง raspbian:
ตรวจสอบให้แน่ใจว่าเปิดใช้งาน SSH แล้ว
ตอนที่ 2: การเชื่อมต่อ
ในการเชื่อมต่ออินเทอร์เน็ต คุณต้องเข้าถึงเทอร์มินัลของ raspberry pi ฉันแนะนำให้ใช้สีโป๊ว ในประเภทเทอร์มินัล:
wpa_passphrase "เครือข่ายของคุณ" "YourSSID" >> /etc/wpa_supplicant/wpa_supplicant.conf
"YourNetwork" คือชื่อเครือข่าย wifi ของคุณและ "YourSSID" คือรหัสผ่านของเครือข่าย
เมื่อคุณเพิ่มเครือข่ายแล้ว ให้ลองรีบูต Raspberry Pi
พิมพ์คำสั่ง 'ping 8.8.8.8' จะส่งแพ็กเก็ตไปยังเซิร์ฟเวอร์ของ Google หากคุณได้รับการตอบสนอง เครือข่ายของคุณได้รับการตั้งค่าและใช้งานได้!
ส่วนที่ 3: ติดตั้งโปรแกรมที่จำเป็น
เราจำเป็นต้องติดตั้งโปรแกรมพิเศษบางอย่างเพื่อให้โครงการนี้เริ่มทำงาน
ก่อนที่เราจะเริ่มต้นให้รัน 2 คำสั่งนี้เพื่อให้แน่ใจว่าทุกอย่างได้รับการอัปเกรดแล้ว
sudo apt อัปเดต
sudo apt อัพเกรด
อาจใช้เวลาสักครู่
Apache
sudo apt ติดตั้ง apache2 -y
sudo apt ติดตั้ง php libapache2-mod-php -y
MariaDB
sudo apt ติดตั้ง mariadb-server mariadb-client -y
sudo apt ติดตั้ง php-mysql -y
PHPMyAdmin
sudo apt ติดตั้ง phpmyadmin -y
Python pip
เราจำเป็นต้องติดตั้ง pip เพื่อเปิดใช้งานไลบรารี python บางตัว
pip3 ติดตั้ง mysql-connector-python
pip3 ติดตั้ง flask-socketio
pip3 ติดตั้ง flask-cors
pip3 ติดตั้ง gevent
pip3 ติดตั้ง gevent-websocket
ขั้นตอนที่ 2: เชื่อมต่ออุปกรณ์อิเล็กทรอนิกส์
ฉันได้เพิ่ม 2 รูปแบบ 1 เป็นแบบแผนเขียงหั่นขนมสำหรับการทดสอบ ฉันแนะนำให้สร้างโครงร่างแรกและพยายามทำให้โค้ดใช้งานได้
ฉันได้เพิ่มไฟล์ fritzing ด้านล่าง
ขั้นตอนที่ 3: การออกแบบฐานข้อมูล
นี่คือโครงร่างฐานข้อมูลที่ฉันทำ คำเป็นภาษาดัตช์ แต่ฉันจะอธิบายแต่ละตารางโดยละเอียด
ตารางที่ 1: tblMuziek
นี่เป็นตารางพื้นฐานที่ค่อนข้างสวย มันบันทึกชื่อศิลปิน ชื่อเพลง และชื่อไฟล์ของเพลง
ตารางที่ 2: tblLedstrip
ตารางนี้ติดตามสถานะปัจจุบันของแถบไฟ LED ซึ่งจะบันทึกสถานะของแถบไฟ LED เราต้องการสิ่งนี้สำหรับฟังก์ชันสมาร์ทไลท์
ตารางที่ 3: tblSensoren
ตารางนี้ติดตามเซ็นเซอร์ในการเตือนของเรา เราเก็บชื่อเซ็นเซอร์และช่องสัญญาณของ MCP3008 ไว้
ตารางที่ 4: tblMeting
ตารางนี้เก็บค่าของเซ็นเซอร์ของเราพร้อมกับเวลา
ตารางที่ 5: tblWekker
ตารางนี้เก็บรหัสผ่านและชื่อนาฬิกาปลุกของคุณ (เช่น ห้องนอน) ตารางนี้ไม่จำเป็น แต่ฉันเพิ่มเข้าไปเพราะฉันคิดว่าคุณจะมีนาฬิกาปลุกมากกว่า 1 ตัวในบ้านของคุณ
ตารางที่ 6: tblAlarm
นี่อาจเป็นตารางที่สำคัญที่สุด มันติดตามการปลุกที่คุณตั้งไว้และสิ่งที่ต้องทำของนาฬิกา มันสำคัญมากที่จะติดตาม 2 วันที่ วันที่ 1 ใช้สำหรับบันทึกว่าควรปลุกกี่โมง อีกเครื่องหนึ่งคอยติดตามครั้งสุดท้ายที่นาฬิกาปลุกดังขึ้น หากต้องการทราบว่าวันธรรมดาควรหยุดวันไหน ฉันใช้ varchar ที่มีตัวเลข 7 หลัก หลักแรกคือวันจันทร์ วันอังคารที่สอง … หากเป็น 1 ก็ควรดับ หากเป็น 0 ก็ไม่ควร ตัวอย่าง: 1111100 หมายความว่านาฬิกาปลุกนี้ควรปิดในวันจันทร์ วันอังคาร วันพุธ วันพฤหัสบดี และวันศุกร์
ขั้นตอนที่ 4: การตั้งค่า Arduino
ขั้นตอนนี้ง่ายมาก จะมีลิงก์ไปยัง GitHub ของฉันในขั้นตอนต่อไปซึ่งคุณสามารถดาวน์โหลดไฟล์ Arduino ได้
โปรแกรมทำอะไร?
โปรแกรมรอให้ข้อมูลอนุกรมมาจาก pi
ทันทีที่ได้รับข้อมูล มันจะแยกวิเคราะห์สตริงและส่งการยืนยันกลับไปยัง pi
สตริงจะเป็นดังนี้: '1201' ซึ่งหมายความว่ามันคือ 12:01 ฉันใช้จอแสดงผล 7segment ขั้วบวกทั่วไปซึ่งหมายความว่าตัวเลขควรสูงและ A, B, C, D, E, F, G และ DP ควรต่ำเพื่อเปิดใช้งาน หากคุณใช้แคโทดทั่วไป คุณควรเปลี่ยน HIGH เป็น LOW & LOW เป็น HIGH
นี่คือลิงค์ที่มีข้อมูลเพิ่มเติมเกี่ยวกับวิธีการทำงานของการแสดงเซกเมนต์ 7 ส่วน (ด้วยการใช้ห้องสมุด):
www.instructables.com/id/Using-a-4-digit-7…
นี่คือลิงค์เกี่ยวกับ 7 ส่วนที่แสดงโดยไม่ต้องใช้ไลบรารี:
create.arduino.cc/projecthub/SAnwandter1/p…
ขั้นตอนที่ 5: แบ็กเอนด์ Raspberry Pi
คุณสามารถดาวน์โหลดรหัสของฉันโดยใช้ Github (https://github.com/VanHevelNico/WakeMeUp)
วิธีการติดตั้งโปรแกรม:
แบ็กเอนด์เขียนด้วย python โดยใช้ flask คุณสามารถสร้างบริการที่เริ่มต้นโปรแกรมนี้ (app.py) ได้โดยอัตโนมัติ
คุณควรใส่โค้ดส่วนหน้าในไฟล์ html ของเซิร์ฟเวอร์ apache ที่เราดาวน์โหลดมาก่อนหน้านี้ (/var/html)
โปรแกรมทำงานอย่างไร?
เมื่อนาฬิกาปลุกเปิดอยู่ ให้ไปที่ที่อยู่ IP ของนาฬิกาของคุณ (จะแสดงบนจอ LCD)
ทันทีที่คุณไปที่ที่อยู่ IP นั้นในเบราว์เซอร์ของคุณ คอมพิวเตอร์ของคุณจะส่งคำขอ socket.io ไปยังแบ็กเอนด์โดยแจ้งว่าไคลเอนต์ได้เชื่อมต่อแล้ว เมื่อแบ็กเอนด์ได้รับสิ่งนี้ จะมีการเริ่มหัวข้อสองสามหัวข้อ ซึ่งฉันจะอธิบายด้านล่าง
ติดตั้ง
สิ่งนี้ทำให้วัตถุทั้งหมดที่จำเป็นเป็น intializes
GetTemp
สิ่งนี้จะอ่าน mcp3008 ช่อง 0 และแปลงข้อมูลไบนารีเป็นอุณหภูมิจริงและใส่ลงในฐานข้อมูลด้วยวันที่และชั่วโมงปัจจุบัน
GetTempGrafiek
ค่านี้จะรับค่าเซ็นเซอร์อุณหภูมิ 20 ค่าที่ผ่านมาและส่งไปยังส่วนหน้า
tijd_sturen
วิธีนี้จะรับเวลาปัจจุบันและตรวจสอบว่านาทีมีการเปลี่ยนแปลงหรือไม่ หากมีการเปลี่ยนแปลงโปรแกรมจะส่งเวลาใหม่ไปยัง Arduino โดยใช้การสื่อสารแบบอนุกรม
ตรวจสอบนาฬิกาปลุก
นี่เป็นวิธีที่สำคัญที่สุด จะได้รับการแจ้งเตือนทั้งหมดที่เปิดอยู่และตรวจสอบว่าต้องมีการเตือนใด ๆ ระหว่างตอนนี้และ 5 นาทีที่แล้วหรือไม่ (นี่เป็นบัฟเฟอร์เพื่อให้แน่ใจว่าการเตือนแต่ละครั้งจะทำงานเมื่อจำเป็น) หากต้องปิดเสียงปลุก เราจะเริ่มเพลง แถบไฟ LED … เราอ่านตัวต้านทานที่ไวต่อแรงกดอย่างต่อเนื่องและเมื่อค่าลดลงต่ำกว่า 1,000 (อ่านว่ากด fsr) เราเปิดการเตือนและอัปเดตการเตือนใน ฐานข้อมูล เราตั้งวันที่ปลุกเป็นครั้งสุดท้ายเป็นวันที่ปัจจุบัน
statusLight
วิธีนี้จะปล่อยค่าของแถบไฟ LED และเปิดแถบไฟ LED หากจำเป็น
lichtAanpassen
นี่เป็นวิธีพิเศษเพื่อให้แน่ใจว่าแถบไฟ LED และไฟเตือนไม่ขัดแย้งกัน
ขั้นตอนที่ 6: กรณี
ลิงค์ไปยังไฟล์ของฉันสามารถพบได้ที่นี่:
ฉันใช้เครื่องพิมพ์ 3 มิติเพื่อพิมพ์เคส มันถูกพิมพ์ใน 4 ส่วนที่แตกต่างกัน:
- แผ่นด้านหน้ามีรูสำหรับลำโพงและผนังบางส่วนสำหรับจอแสดงผล 7 ส่วน
- วงแหวนรอบนอกสำหรับแถบไฟ LED ใน PETG แบบโปร่งใส
- ส่วนตรงกลาง
- แผ่นรองด้านหลังมีรูสำหรับ LCD และรูสำหรับสายเคเบิล
ในรุ่นดั้งเดิมนั้นไม่มีรูสำหรับจอแสดงผล 7 ส่วน แต่นี่เป็นสิ่งจำเป็นเพราะไม่เช่นนั้นแสงของจอแสดงผล 7 ส่วนจะไม่ส่องผ่าน
อย่างที่คุณเห็นหลังจากใส่ส่วนประกอบทั้งหมดลงไป ฉันใช้สติกเกอร์ไวนิลที่มีรูปลักษณ์เป็นไม้เพื่อให้ผลลัพธ์ที่ได้ดูดีขึ้น การแสดงนาฬิกาส่องผ่านสติกเกอร์ซึ่งสร้างเอฟเฟกต์ที่ดูดีมาก
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง