สารบัญ:

ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ: 6 ขั้นตอน
ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ: 6 ขั้นตอน

วีดีโอ: ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ: 6 ขั้นตอน

วีดีโอ: ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ: 6 ขั้นตอน
วีดีโอ: [[" [[''เอิ้นให้ลุกปลุกให้ตื่น +แว่นส่องธรรม'']] #พระอาจารย์สมภพ #ພຣະອາຈານສົມພົບໂຊຕິປັນໂຍ 2024, พฤศจิกายน
Anonim
ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ
ปลุกฉันให้ตื่น - นาฬิกาปลุกอัจฉริยะ

ปลุกฉันให้ตื่นเป็นนาฬิกาปลุกอัจฉริยะที่สามารถใช้เป็นไฟอัจฉริยะได้

แถบไฟ 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

แบ็กเอนด์ Raspberry Pi
แบ็กเอนด์ 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 ส่วนที่แตกต่างกัน:

  1. แผ่นด้านหน้ามีรูสำหรับลำโพงและผนังบางส่วนสำหรับจอแสดงผล 7 ส่วน
  2. วงแหวนรอบนอกสำหรับแถบไฟ LED ใน PETG แบบโปร่งใส
  3. ส่วนตรงกลาง
  4. แผ่นรองด้านหลังมีรูสำหรับ LCD และรูสำหรับสายเคเบิล

ในรุ่นดั้งเดิมนั้นไม่มีรูสำหรับจอแสดงผล 7 ส่วน แต่นี่เป็นสิ่งจำเป็นเพราะไม่เช่นนั้นแสงของจอแสดงผล 7 ส่วนจะไม่ส่องผ่าน

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

แนะนำ: