รายการโครงงาน

01204114 Introduction to Computer Hardware Development

ภาคปลาย ปีการศึกษา 2566 หมู่ 1

กลุ่มที่ 1 : J3K
นภัสกร แซ่เนี้ยว
พงศภัค โชติกเดชาณรงค์
ชื่อโครงงาน: Xiaomark I
รายละเอียด:

Xiao-M1

Xiao-M1 is a thoughtfully designed Arduino project aimed at facilitating communication with deaf individuals. The working principle is converts voice to text or allows you to draw a picture to describe something, providing a helpful tool for more accessible and convenient communication with the deaf community.

Application

  • Chat application
  • Drawing application

List of hardware devices used

  • 2 x ESP32-S3 Devkit
  • 2 x ILI9341 2.4-inch screen LCD TFT with touch pen
  • 2 x INMP441
  • 2 x Active Buzzer

Libraries

Other tools

Developed by

  1. Napassakorn Saenieo @DrGMark7
  2. Phongsaphak Chotikadechanarong @reawphongsaphak

Introduction to Computer Hardware Development 01204114
Faculty of engineering Department of computer engineering Kasetsart University

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-14 21:27:57 โดย b6610505497
กลุ่มที่ 2 : The Gang
คริษฐ์ธร บำรุงพิพัฒนพร
นวพรรษ บัวเกิด
นิธิศรัฎฐ์ พุฒิภาพงศ์
ชนุตร์ ชาญสง่าเวช
ชื่อโครงงาน: Cryptocurrency Alert
รายละเอียด:

Cryptocurrency Alert Project

Cryptocurrency Alert Project เป็นแนวทางใหม่ในการแก้ปัญหาการนั่งนาน กระตุ้นให้ผู้ใช้ Bitcoin ออกกำลังกาย ลุกขึ้นยืน มีการเดินเพื่อคลายก้ามเนื้อ มีการเปลี่ยนพฤติกรรมการใช้ชีวิต ผ่านระบบแจ้งเตือนด้วยราคาของเหรียญสกุลเงินดิจิทัล

จัดทำโดย

  • คริษฐ์ธร บำรุงพิพัฒนพร 6610501998
  • นวพรรษ บัวเกิด 6610502111
  • นิธิศรัฎฐ์ พุฒิภาพงศ์ 6610502129
  • ชนุตร์ ชาญสง่าเวช 6610505322

หลักการทำงาน

สำหรับการทำงานหลักๆเราจะมีตัว ESP32-S3 ที่ใช้ในโปรเจ็คนี้ 2 บอร์ด โดยมีรายละเอียดดังนี้

สำหรับบอร์ดที่หนึ่ง (ESP32-S3 #1)

  • การทำงานรวมถึงการเรียกใช้ API จาก CoinMarketCap และการส่งค่าราคาเหรียญไปที่ ${prefix/price} โดยมีเนื้อหาคือ ${coin},${value} และจะส่งเข้าไปที่ MQTT Broker
  • ทุกๆ 1 ชั่วโมงจะทำการส่ง MQTT ไปที่ ${prefix}/ring เพื่อให้ตัว ESP32-S3 #2 ทำการเล่นเสียงแจ้งเตือน จะเเบ่งเป็นสองเสียง เสียงที่หนึ่งเหมือนเหรียญขึ้น
  • ทุกๆ 2 ชั่วโมงจะทำการส่ง MQTT ไปที่ ${prefix}/ring เพื่อให้ตัว ESP32-S3 #2 ทำการเล่นเสียงแจ้งเตือน ให้คนได้มีการลุกขึ้นมาจากที่นั่งเพื่อไปกดปุ่มเพื่อหยุดการแจ้งเตือนของบอร์ดที่สอง โดยจะมีการตรวจจับการเคลื่องไหวด้วย pir sensor เพื่อตรวจสอบว่าผู้ใช้นั้งอยู่หน้าคอมอยู่หรือไม่ถ้าไม่ระบบจะทำการรีเซตเวลาเเจ้งเตือนทำให้ไม่เเจ้งเตือนเวลาผู้ใช้ทำธุระอย่างอื่นอยู่

SEQUENCEDIAGRAM1 PCB1

สำหรับบอร์ดที่สอง (ESP32-S3 #2)

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

SEQUENCEDIAGRAM2 PCB2

Dashboard

กราฟแสดงเวลาที่ใช้ในการเดินมากดปุ่มจากการแจ้งเตือนของบอร์ดที่ 2 โดยการทำงานของ Dashboard (NextJS) จะรับค่าจาก API ที่มาจากทาง Node-RED โดย Node-RED จะรับค่าจาก MQTT ที่ topic ${prefix}/Time2press โดยมีเนื้อหาคือ [time_n1, time_n2, ...]

Dashboard

วิธีการติดตั้ง

  1. นำไฟล์ในโฟลเดอร์ ./src/module อัปโหลดเข้าไปในบอร์ด ESP32-S3 ทั้งสองบอร์ด
  2. นำไฟล์ ./src/Node-RED.json ไป Import ใน Node-RED
  3. นำไฟล์ ./src/apps/dashboard ไปใช้งานโดยการรันคำสั่ง cd ./src/apps/dashboard && npm install จากนั้นก็อปปี้ .env.example ไปเป็น .env และตั้งค่า NEXT_PUBLIC_API_URL ให้เป็น URL ของ Node-RED ที่ใช้งาน ยกตัวอย่างเช่น https://iot.cpe.ku.ac.th/red/b6610502129/test/hello.txt เมื่อเสร็จสิ้นให้รันคำสั่ง npm run start
  4. จากนั้นเราจะมาเริ่มรันตัว ESP32-S3 โดยจะต้องตั้งค่าใน ./src/module/config.py ก่อน​ซึ่งก็จะมีค่าของ MQTT, TOPIC_PREFIX, COINMARKETCAP_API_KEY จากนั้นเราจะแบ่งเป็นรันคำสั่งของสองบอร์ดซึ่งก็คือ ./src/esp32-s3-01.py และ ./src/esp32-s3-02.py

รายการอุปกรณ์

  • Board ESP32-S3 x2: บอร์ดที่ใช้สำหรับการรันคำสั่งต่างๆ
  • Grove - Speaker: ใช้สำหรับเล่นเสียงแจ้งเตือนเมื่อราคาเหรียญตกลงต่ำกว่าค่าที่ตั้งไว้ Grove - Speaker
  • OLED Display: ใช้แสดงราคาเหรียญและข้อมูลอื่นๆ บนจอ OLED Display
  • Push Button 4-Pin: ใช้เพื่อเลือกเหรียญที่ต้องการแสดงบนจอและตั้งค่าการแจ้งเตือน Push Button 4-Pin
  • LED 3mm (Red, Green, Yellow): ใช้เป็นตัวบ่งชี้สถานะการทำงาน, สถานะการเชื่อมต่อ, และการแจ้งเตือน
  • HC-SR501 PIR Motion Sensor: ใช้สำหรับการตรวจสอบการเคลื่อนไหว เพื่อที่จะตรวจสอบว่ามีคนนั่งอยู่บนโต๊ะหรือไม่ HC-SR501 PIR Motion Sensor

ข้อมูลอ้างอิง

Youtube: Youtube Demo

Dashboard: Dashboard

MMLParser: MMLParser

Github: Source

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 09:16:52 โดย b6610502111
กลุ่มที่ 3 : Cat of the Cosmos
ณภัทร พรรณเชษฐ์
กณิศ มหพล
ณัฏฐ์ สายดาราสมุทร
ธนภัทร กาญจนรุจิวุฒิ
ชื่อโครงงาน: Posture Fixing Chair with BJ♠️
รายละเอียด:

ที่มาเเละความสำคัญ

โปรเจคนี้เริ่มต้นมาจากการมองเห็นถึงปัญหา Office Syndrome เราจึงมีแนวคิดว่าอยากสร้าง Product ที่ให้ User ได้ลุกออกจากเก้าอี้และนั่งอย่างถูกสุขลักษณะ และทำให้สนุกไปกับ Product ของเราโดยทีมของเราจึงได้เลือกที่จะทำเกม Blackjack ที่จะเก็บ Coin สำหรับการเล่นผ่านการนั่ง โดยCoin จะเพิ่มหรือลดจะขึ้นอยู่กับรูปเเบบการนั่ง เเละนำ Coin ที่ได้ลุกจากเก้าอี้ทำงานของตัวเองมาลงเล่น Blackjack กับเจ้ามือในโซนที่กำหนดไว้

แนวคิดและหลักการ

เเนวคิดนี้เกิดจากการนำเอาปัญหาเรื่อง Office Syndrome กับเกม Blackjack มารวมกัน โดยโปรเจคนี้จะใช้ micro controller ESP32S3 ในบอกรูปแบบการนั่ง เเละ เวลาในการนั่งทำงาน เเละค่าอื่นๆ เเละยังใช้ในการเล่น Blackjack อีกด้วย โดยจะใช้บอร์ด 3 บอร์ดในการเล่น

บอร์ด 1(Countdown Board)(Player)

บอก User ID, Posture, Countdown Time, Break Time, Coin โดย ค่า Time, Coin เเละ Posture จะบอกทุกๆ 1 นาที

  • วิธีการใช้งาน เริ่มต้นกดปุ่มบนบอร์ดเพื่อเริ่มจับเวลา Countdown Time(เวลานั่งทำงาน) เเละเมื่อถึงเวลาที่กำหนดบอร์ดจะ เล่นเพลงเพื่อเตือนว่าควรลุกได้เเล้ว เเละหลังจากลุกก็กดปุ่มอีกครั้งเพื่อเปลี่ยนเป็นจับเวลา Break Time(เวลาพัก) เมื่อครบเวลาที่กำหนดก็จะมีเสียงเตือนเช่นกัน

Node red Countdown :

MindMap

บอร์ด 2(Blackjack Board)(Dealer)

บอก Player card, User ID, Coin, Round(จำนวนตาที่เล่น) (Dealer Card สามารถดูได้ผ่าน Node red) (เครื่องเล่นจะตั้งอยู่ในโซนที่กำหนด)

  • วิธีใช้งาน เริ่มต้นใส่ User ID เเละ Password เพื่อ Login เเละสามารถเริ่มเล่นเกมได้เลย โดย 1 เกม จะเล่น 5 ตา ฝ่ายไหนชนะ 3/5 ก่อนชนะ ในการเล่น 1 เกม ถ้าชนะจะได้ + 6 Coin ถ้าเเพ้หรือเสมอ จะไม่เสีย เเต่เมื่อจบเกม จะสามารถเลือกว่าจะ เล่นต่อ / พอเเค่นี้ โดยถ้าเล่นต่อจะเสีย - 3 Coin ถ้าพอเเค่นี้ก็สามารถไปทำอย่างอื่นจนหมดเวลา Break Time

Node red Blackjack :

MindMap MindMap

บอร์ด 3(Accelerometer Board)

ทำหน้าที่ในการวัด Posture การนั่งของ User เเละ คำนวณ Coin จาก Posture การนั่ง เเละเป็นตัวทำหน้าที่รับส่ง Coin ไปยังบอร์ดต่างๆอีกด้วย โดยการเพิ่มลดของ Coin เเบ่งออกเป็น 4 เเบบ

  • นั่งหลังตรง + 0.01 Coin/seconds

  • นั่งหลังงอ + 0.005 Coin/seconds

  • นั่งพิง หรือ เอนไปข้างหลัง +0.01 Coin/seconds

  • นั่งเกินเวลา - 0.5 Coin/minutes

ส่งข้อมูลระหว่างบอร์ดผ่าน Node red

System :

MindMap

Node red Dash Board:

MindMap MindMap

อุปกรณ์ที่ต้องใช้

  • Board ESP32S3 : 3
  • Accelerometer ADXL345 : 1
  • Matrix 4x4 Keypad : 1
  • Buzzer : 1
  • OLED Display : 2
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-13 22:42:26 โดย b6610505403
กลุ่มที่ 4 : SCR
ธนาธิป จินดามณี
ปฐมพงศ์ บวรเจริญพันธุ์
พลกฤต วงศ์รักษ์
สุประวีณ์ ตัญญาสิทธิ์
ชื่อโครงงาน: Smart Clothes Rack
รายละเอียด:

ที่มา:

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

อุปกรณ์ที่ใช้:

- LDR
- PVC pipe
- Micro Switch
- 3V 2 Relay Module
- DC 6V 1:220 Gear Motor
- Raindrops Sensor Module
- DHT11 Digital Temperature and Humidity Sensor

หลักการทำงาน:

-ESP32 ด้านนอกที่มี Raindrops sensor, LDR, DHT11 จะทำหน้าที่เพียงอ่านค่า analog read จากเซนเซอร์ และ Publish ไปยัง MQTT ให้ NODE-RED Subscribe อีกที

-ESP32 ที่ราวตาก เมื่อเริ่มต้นทำงานจะทำการเก็บผ้า เซต status เป็น 0 (ก็คือ collected) และ publish ค่า automation และ status ไปยัง MQTT ให้ NODE-RED ก่อน จากนั้นก็ให้ผู้ใช้ เลือกเปิดหรือปิดระบบอัติโนมัติ โดยเริ่มต้นจะเป็น off อยู่ ถ้าระบบอัติโนมัติเปิดอยู่ NODE-RED จะทำการ Publish คำสั่งที่คำนวณและเช็คเงื่อนไขเรียบร้อย เป็นระยะๆ แล้ว ESP32 ที่ราวจะรับคำสั่งมาเช็คเงื่อนไขอีกที ส่วนถ้าระบบอัตโนมัติปิดอยู่เราจะสามารถกดปุิมที่ NODE-RED Dashboard ได้เพื่อ Publish คำสั่ง แล้ว ESP32 ที่ราวก็จะรับคำสั่งมาเช็คเงื่อนไขอีกที โดยเงื่อนไขที่ว่าคือ status กับคำสั่งต้องไม่ซ้ำกัน เช่นหากคำสั่งเป็น Collect. Status ณ ขณะนั้นต้องเป็น Hanging เพื่อป้องกันไม่ให้มอเตอร์หมุนจนเส้นเอ็นขาด

alt text alt text

Node-RED Flow

alt text

-ในส่วนของ NODE-RED Flow จะทำการรับค่าต่างๆ ที่วัดจาก sensors ของ ESP32 ด้านนอก ผ่าน MQTT เพื่อนำมาปรับค่าให้เข้าใจง่ายและแสดงผลเป็น Guage และ Text ใน Dashboard จากนั้นนำไปเช็คเงื่อนไข โดยเมื่อ Raindrops Level >= 40 หรือ Light Level <= 40 NODE-RED จะทำการสร้างตัวแปร Flow.command ขึ้นมาและเก็บค่า 0 ซึ่งหมายถึงเก็บผ้า ส่วนถ้า Raindrops Level < 40 และ Light Level > 40 Flow.command จะเป็น 1 แทน โดยถ้าเปิดระบบอัตโนมัติไว้อยู่ NODE-RED จะ Publish ค่านี้ในหัวข้อ command เป็นระยะ แต่ถ้าระบบอัติโนมัติปิดอยู่ NOED-RED ยังคงเช็คเงื่อนไขและสร้าง Flow.command อยู่เรื่อยๆ เพียงแต่จะไม่ Publish ออกไป

DashBoard & Control System

alt text

-ในส่วนของ NODE-RED Dashboard จะมี 2 แท็บ แท็บแรก Status ทำหน้าที่แสดงผลค่าจาก Sensor ต่างๆ เช่น Raindrops Level จาก Raindrops sensor, Light Level จาก LDR, Temperature & Humidity จาก DHT11 และสถานะของราวตากว่ากำลังตากอยู่หรือเก็บแล้ว ส่วนแท็บ Control เราสามารถเปิดปิดระบบอัติโนมัติได้ โดยถ้าเปิดอยู่เราจะไม่สามารถควบคุมเองได้ ราวจะทำตามคำสั่งจาก Flow.command เท่านั้น แต่ถ้าระบบอัติโนมัติปิดอยู่เราจะสามารถควบคุมเองได้ แต่ราวก็จะเพิกเฉยต่อ Flow.command ทั้งนี้เพื่อป้องกันไม่ให้ Flow.command กับคำสั่งจากปุ่มตีกัน

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 19:02:17 โดย b6610505411
กลุ่มที่ 5 : ไม่ได้เป็นหมอแต่เป็นห่วง
กฤติวิทย์ คำประดำ
พชรมน ปุตระเศรณี
เพ็ญพิชชา จำรัสพันธุ์
ศุภธิชารัตน์ เฉลิมขวัญมงคล
ชื่อโครงงาน: miniNURSE เครื่องแจ้งเตือนและบันทึกประวัติการรับประทานยา/ประวัติสุขภาพ
รายละเอียด:

miniNURSE -`♡´-

Nowadays we are entering an aging society. Many elderly people who are having health issues stay at home independently, often without the supervision of their families or caregivers. They usually face some unwanted situations such as forgetting to take a medicine or neglecting to record their blood pressure result for the doctor visits. Thus, we, ไม่ได้เป็นหมอแต่เป็นห่วง (not a doctor by name, but a healer by heart), have integrated these problems into our hardware development project called miniNURSE.

miniNURSE is a multi-purpose scheduler device. Currently, there are 3 functions:

1) Medicine reminder: enables users to schedule a time for medicine intake via Node-RED dashboard from anywhere. When it's time, the buzzer will buzz the loop of frequencies as music. It will not stop unless the medicine is taken out (detected with LDR sensor inside the opaque medicine box) PS: We will assume that if the medicine is taken out, it will be later consumed.

2) Miscellaneous reminder: similar to medicine reminder, but the buzzer will not loop

3) Blood pressure monitor: when the user finishes checking their blood pressure, the equipped camera nearby will capture the screen's result and send it to Line via Line notify.

Although this project originated from the needs of older people, anyone can use miniNURSE. For example:

  • Schedule the time to take a break from work to prevent overloading or office syndrome

  • Schedule the time to go for a walk with your lovely pets

  • Schedule any random time to enjoy the music from the buzzer

  • etc.

Our goal is to universally enhance everyone's quality of life.

Hardware specification

ESP32-S3-DEVKITC-1 (2x)

1st Board: Notification board

  • MH-FMD Passive Buzzer (1x)

    • Buzzes notification frequencies -> music!
  • OLED (1x)

    • Displays details inputted data from Node-RED
  • LDR sensor (1x)

    • Measures light intensity inside the medicine box

2nd Board: Distance detector board

  • HC-SR04 Ultrasonic sensor (1x)
    • Measures distance from the user's arm

ESP32-camera module (1x)

  • Captures blood pressure result's screen

Libraries used

C / C++

  • Notification board
    • Arduino.h Arduino's core header file
    • Adafruit_GFX.h provides graphics functions
    • Adafruit_SSD1306.h controls SSD1306 OLED
    • Wire.h allows ESP32S3 to communicate with other devices via I2C
    • WiFi.h connects the ESP32S3 with WiFi
    • WiFiUdp.h provides UDP Interface for WiFi.h
    • NTPClient.h retrives the time from an NTP server
    • PubSubClient.h establishes connection with mqtt
    • ArduinoJson.h parses and generates JSON data
  • ESP-Camera
    • TridentTD_LineNotify sends picture via Line Notify
    • esp_camera drives the esp32 camera

Python

  • Ultrasonic board
    • HCSR04 supports HC-SR04 Ultrasonic distance sensor
    • time includes time related fuctions

Functionality of the program

Scheduler

The users themselves or their caregivers input their data and desired time (24-hour format) to the Node-RED form (one schedule at a time). The data is store on the server directory ./data/ in a text file and can be access by http request. Then it will be displayed on the UI table unless the clear table button is clicked. Every time there is a new input, the file is overwritten.

We use timestamp to read the file and send JSON data to the ESP32 via MQTT. Currently, the timestamp is triggered every 1 minute to ensure that the program will be scheduled only one time in one minute. The JSON data is then parsed and displayed on OLED screen.

For the medicine scheduler, When it's time, the buzzer will continuously play the music while the LDR sensor detects the light level inside the medicine box. Unless the light level is more than 60%, the buzzer will not stop playing. Meanwhile, the misc scheduler does not require any action to stop the music.

Blood Pressure Monitor

The ultrasonic sensor is placed around 25cm away from the wall. If the user places the arm next to the blood pressure device, the sensor will detect changes in distance and start the 1 minute countdown (the average time of ) before the ESP32-camera captures the result. The MQTT is then sent from the ultrasonic board to the camera board. Finally, the picture will be notified on line.

Line Notify bot can be invited to any chat or group. Therefore, more than one Line account can view it.

Node-RED Dashboard (user input)

Data that must be filled into the form

  • Medicine scheduler (FirstBox): Medicine name, Amount, Hour, Minute and Details

OR - Misc scheduler (SecondBox): Activity, Hour and Minute

Node-RED Flow

Screenshot 2024-03-15 055221 Screenshot 2024-03-14 104124

Innovated by ไม่ได้เป็นหมอแต่เป็นห่วง (CPE37, KU83)

  • 6610501963 KRITTIWIT KAMPRADAM

  • 6610502153 PACHARAMON PUTRASRENI

  • 6610505527 PENPITCHA JUMRUSPUN

  • 6610505586 SUPATHICHARAT CHALERMKWANMONGKOL

This project is under the 01204114 Introduction to Hardware Development Course, 2/2023.

Department of Computer Engineering, Faculty of Engineering, Kasetsart University

Github Repository

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 20:36:26 โดย b6610502153
กลุ่มที่ 6 : 4ยอดกุมาร
กฤษกร สุทธิรักษ์
ไทยเงิน ปินตา
ปริญญา อบอุ่น
ชานน ลีดี
ชื่อโครงงาน: The privlazy Door
รายละเอียด:

ที่มาและแนวคิดการออกแบบ

โครงงานนี้เริ่มต้นมาจากปัญหาของเด็กหอที่อยู่หอกับเพื่อนๆแล้วต้องคอยลุกไปเปิดประตูให้เพื่อนเพราะล็อคห้องไว้(ไม่ล็อคก็กลัวอันตราย) ทางกลุ่มเราจึงคิดค้นระบบล็อคประตูที่มีความปลอดภัย ประกอบด้วย3ฟังก์ชัน คือ 1.ใส่รหัส 2.แตะคีย์การ์ด 3.กดปลดล็อคผ่านสมาร์ทโฟน หากเราจะปลดล็อคประตูผ่านสมาร์ทโฟน แล้วกลัวว่าคนที่เคาะประตูนั้นไม่ใช่เพื่อนของเรา เรามีระบบกล้องจับภาพคนเคาะประตูที่สามารถดูได้ผ่านสมาร์ทโฟนแบบRealtime

รายการอุปกรณ์ที่ใช้

  1. Board ESP32 S3 devmodule (2)
  2. ESP32 camera module (1)
  3. ITEAD PN532 NFC RFID module set (1)
  4. 4x3 Matrix Keypad Module
  5. OLED (1)
  6. SG90 Micro Servo (1)

หลักการทำงาน

Logo Title Text 1

libraries

Python

  • face_recognition
  • requests
  • time
  • machine
  • hashlib
  • ssd1306
  • network
  • servo
  • umqtt.simple

C

  • esp_camera
  • camera_pins
  • WiFi
  • PubSubClient
  • Wire
  • PN532_I2C
  • PN532
  • NfcAdapter

Node-red

Flow

Dashboard

Logo Title Text 1

Source code : Link

จัดทำโดย 4 ยอดกุมาร

นาย ชานน ลีดี 6610505349
นาย กฤษกร สุทธิรักษ์ 6610501971
นาย ปริญญา อบอุ่น 6610502145
นาย ไทยเงิน ปินตา 6610502030

โครงการนี้เป็นส่วนหนึ่งของวิชา 01204114 Introduction to Hardware Development ภาคเรียนที่ 2/2023
ภาควิชาวิศวกรรมคอมพิวเตอร์ คณะวิศวกรรมศาสตร์ มหาวิทยาลัยเกษตรศาสตร์

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-14 21:42:17 โดย b6610502145
กลุ่มที่ 7 : เริ่ด
พิจักษณ์ ลิ้มล้ำเลิศกุล
กิรณา รักประกอบกิจ
บุณยาพร บุญทับ
สรัล สังข์วร
ชื่อโครงงาน: ไดโนเจ๋า!
รายละเอียด:

ความเป็นมาและความสำคัญ

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

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

แนวคิดการออกแบบ

การสร้างเกมที่มีผู้เล่น 2 คน ผ่านอุปกรณ์ PCB_ESP32S3 โดยมีเป้าหมายในการป้องกันออฟฟิศซินโดรมและลดความเครียดของผู้ใช้งาน มีต้นแบบเกมจาก dino chrome ซึ่งเป็นเกมที่มีชื่อเสียง ทำให้ผู้เล่นสามารถเข้าใจกฎกติกาได้อย่างง่ายดาย

ผู้เล่นจำนวน 2 คน

  • ผู้เล่นคนที่แรก จะมีปุ่ม2ปุ่มอยู่บนบอร์ดโดยแบ่งออกเป็น2ฟังก์ชัน
    1. เพื่อกดเลือก(ปุ่มซ้าย)และยืนยัน(ปุ่มขวา) ชอยส์และสีตัวละครก่อนเริ่มเกม
    2. เพื่อสร้างสิ่งกีดขวางที่จะเกิดขึ้นระหว่างการเล่นเกม โดยจะมีให้เลือก2ประภทคือนก(ปุ่มซ้าย)และต้นกระบองเพชร(ปุ่มขวา)
  • ผู้เล่นคนที่สอง จะเป็นผู้เล่นที่บังคับไดโนเสาร์ให้กระโดดข้ามสิ่งกีดขวางโดยใช้ความเข้มของแสงในการบังคับ เมื่อมีความเข้มของแสงต่ำคือการบังคับให้กระโดด และเมื่อมีความเข้มของแสงมากคือการบังคับให้ย่อ

อุปกรณ์ที่ต้องใช้

  • PCB_ESP32S3 จำนวน 2 บอร์ด
    • บอร์ดที่ 1 ประกอบด้วย oled*1, switch*2
    • บอร์ดที่ 2 ประกอบด้วย oled*1, ldr*1, Buzzer*1
  • แลปท็อป 1 เครื่อง
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-14 23:40:17 โดย b6610505284
กลุ่มที่ 8 : คนสวย
ธนัญญา ทิพย์พรหม
เปรมมิกา เนียมเปรม
วริษฐา ภิรมย์เกียรติ์
วิมพ์วิภา เสงี่ยมวงศ์
ชื่อโครงงาน: ISEEU
รายละเอียด:

ที่มา

จากการสังเกตและได้ยินเสียงเพื่อน หรือแม้แต่ตัวเราเองที่บ่นว่าปวดหลัง ปวดคอ ปวดตา และด้วยสาขาวิชาที่เราไม่อาจหลีกเลี่ยงการทำงานหน้าจอคอมพิวเตอร์ได้ ทำให้คิดค้นโปรเจคนี้ขึ้นมา เพื่อหลีกเลี่ยงอาการ office syndrome ที่ทำให้เกิดความผิดปกติของระบบในร่างกาย ซึ่งพบเจอกันโดยทั่วไปในสังคม

รายการอุปกรณ์ที่ใช้

  • board PCB_ESP32S3 2 บอร์ด
  • ultrasonic sensor 2 ตัว
  • buzzer module 1 ตัว
  • ไฟ LED สีเขียวและสีแดง สีละ 1 ตัว

หลักการทำงาน

  • จับที่นั่ง: ESP32 ตัวแรกทำการวัดเซนเซอร์ ว่ามีผู้ใช้นั่งอยู่หรือไม่ โดยกำหนดค่าเริ่มต้นไว้ที่ 50 cm ถ้าน้อยกว่า 50 cm แสดงว่ามีคนนั่งอยู่ ถ้ามากกว่า 50 cm แสดงว่าไม่มีคนนั่งอยู่
  • จับเวลา: จะเริ่มจับเวลาตั้งแต่ผู้ใช้เริ่มนั่งเก้าอี้ เมื่อครบ 45 นาที จะมีเสียงแจ้งเตือนให้ผู้ใช้ลุกยืดเส้นยืดสายเป็นเวลา 5 นาที หากผู้ใช้กลับมานั่งก่อนเวลาที่กำหนด ก็จะมีเสียงแจ้งเตือนเพื่อให้ลุกออกไป
  • วัดระยะกับหน้าจอ: ESP32 ตัวที่สอง จะทำการวัดเซนเซอร์ระหว่างหน้าจอคอมพิวเตอร์กับหน้าของผู้ใช้ ถ้าระยะที่วัดได้มีค่าน้อยกว่า 30 cm ไฟจะขึ้นเป็นสีแดง ถ้าระยะที่วัด มีค่ามากกว่า 30 cm ไฟจะขึ้นเป็นสีเขียว
  • เงื่อนไขการทำงาน: เมื่อเซนเซอร์จับที่นั่งได้ว่ามีผู้ใช้นั่งอยู่จะส่งไปยังเซนเซอร์จับระยะให้เริ่มทำงานพร้อมกับจับเวลาขณะมีผู้ใช้นั่งอยู่ด้วย
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 08:27:17 โดย b6610505551
กลุ่มที่ 9 : พิซซ่าหน้ากระเพราพริกเกลือ
กฤชณัท ธนพิพัฒนศิริ
ชยกร ศรุตยาพร
ณัฐรพี บัวแก้ว
ปิติภูมิ ยิ่งวงศ์วิวัฒน์
ชื่อโครงงาน: Monster Brawler
รายละเอียด:

👾 Monster Brawler

🌱 ที่มา

  • จากปัญหา Office Syndrome ที่ส่งผลกระทบต่อเด็กวิศวกรรมคอมพิวเตอร์เป็นอย่างมาก โดยเฉพาะปัญหาปวดมือและแขน กลุ่มของพวกเราจึงได้ออกแบบเกมต่อย Monster ที่พัฒนาจากบอร์ด ESP32-S3-DevKitC-1 และเซนเซอร์ตัววัดความเร่ง ที่จะทำให้คุณได้ออกกำลังกายแขนและหลังในเวลาเดียวกันได้

💡 แนวคิดและการทำงานของอุปกรณ์

MindMap

การทำงานแบ่งเป็นสามส่วนหลักๆ ดังนี้

  • ตัวส่งข้อมูลจากมือทั้งสองข้าง เป็นถุงมือที่ติดกับ Microcontroller และ Accelerometer มีหน้าที่วัดความเร่งในการต่อย แล้วแปลงจากความเร่งเป็น Damage ที่จะทำต่อ Monster จากนั้น Publish ข้อมูลให้ Broker

  • ตัวรับข้อมูลและแสดงคอมโบ เป็น Microcontroller ที่ทำหน้าดำเนินการเกม โดยการรับข้อมูล Damage และตั้งค่าต่าง ๆ ของเกมจาก Broker มาลดเลือดของ Monster จากนั้น Publish ต่อเพื่อไปแสดงผลบนหน้าจอ Dashboard และต่อกับจอ OLED 2 ตัวที่จะแสดงข้อมูลต่างกัน โดยจอ OLED ทางซ้ายจะแสดง Damage ที่ต้องใช้มือข้างซ้ายต่อย ส่วนจอ OLED ทางขวาจะแสดง Damage ที่ต้องใช้มือข้างขวาต่อย สุดท้ายแล้วจะทำการ Publish ข้อมูลเกม (เช่น เลือด Monster หลังโดนต่อย, Combo, ระดับของผู้เล่น)

  • Node-Red & Dashboard ทำหน้าที่แสดง Interface ของเกม โดย Subscribe Damage, เลือด, ระดับของผู้เล่น ฯลฯ) ของ Monster เพื่อนำไปแสดงผล และยังมีการ Publish การตั้งค่าของเกมต่าง ๆ ไปที่ Broker (เช่น เปลี่ยนด่านที่เล่น, ตัวคูณ Damage เพื่อปรับความยากง่าย)


ภาพของ Flow จาก Node Red

node-red

🎮 รายละเอียดของเกม

ภาพตัวอย่างจาก Dashboard

Dashboard

  • เกมของเราเป็นเกมต่อย Monster ที่จะต่อย Monster ไปเรื่อย ๆ เมื่อชนะตัวปัจจุบันก็จะมีตัวใหม่ที่เลือดเยอะกว่าโผล่มาเพิ่มความท้าทาย โดยตัวเกมมีทั้งหมด 5 ด่าน แต่ละด่านจะมี Monster ขนาดเล็ก 4 ตัวและ Boss 1 ตัว
    • ด่านสุดท้ายมี Boss ที่ใหญ่ที่สุด เป็นอาจารย์ปริศนาสองท่านเพื่อเพิ่มความท้าทายขั้นสูงสุด
  • หน้าต่างตรงกลางจะมีข้อมูลต่าง ๆ ที่ชี้เฉพาะของ Monster ตัวนั้น:
    • ฉายา พร้อมรูปภาพประกอบ
    • เลือดปัจจุบัน และเลือดที่มากที่สุด (HP, VIT) รวมถึงหลอดแสดงสัดส่วนของเลือดเพื่อความสะดวกในการมอง
    • ค่าพลังป้องกัน (DEF)
    • โอกาสในการหลบ Damage ของผู้ใช้ (%MISS)
    • โอกาสในการหลบแล้วฟื้นฟูเลือดของ Monster กลับมา (%HEAL)
  • และทางซ้ายมือมีสถิติและความคืบหน้าของผู้เล่นที่จะเพิ่มได้จากการชนะสะสมมาเรื่อย ๆ รวมถึงการตั้งค่าต่าง ๆ ภายในเกม:
    • Mode การเกิด Monster เช่น แบบสุ่ม เพื่อความท้าทายใหม่ ๆ, แบบฝึกซ้อม, แบบเล่นไม่มีวันจบ ฯลฯ
    • Damage Multiplier เพิ่มปรับระดับความยากง่ายในการเล่น
    • การเปิด / ปิดความสามารถพิเศษบางอย่างของ Boss และ Monster ระดับสูงอื่น ๆ
  • สุดท้ายแล้ว ทางขวามือจะมีข้ามไปส่วนต่าง ๆ ภายในเกม:
    • การเพิ่ม / ลดระดับ
    • การข้าม / กลับไป Monster ตัวปัจจุบัน
    • Reset เกม

🔌 อุปกรณ์

  • Microcontroller (ESP32-S3-DevKitC-1) 3 ea. (Acceleration (Publish only) 2 ea. + Game Processing (Publish + Subscribe) 1 ea.)
  • Accelerometer (GY-291 ADXL345) 2 ea.
  • OLED (SSD1306) 2 ea.
  • Exercise Gloves 1 ea.
  • Power Bank 2 ea.

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 07:46:32 โดย b6610505331
กลุ่มที่ 10 : Kim and friends
ภคิณ สิญารัชคุณ
สิรภัทร ปันมูล
ชื่อโครงงาน: แปลรหัสมอส
รายละเอียด:

ที่มา

  • เราต้องการให้คนตาบอดหรือผู้ป่วยที่อาจจะพูดได้ยากสื่อสารผ่านการแชทคุยกันได้แต่เนื่องจากไม่สามารถใช้อักษรเบรลล์ในการส่งข้อความได้และบอร์ดเราไม่สามารถพิมข้อความได้เราจึงเลือกใช้รหัสมอร์สในการสื่อสารแทน แต่ฝั่งรับสารอาจจะเข้าใจได้ยากเราจึงได้ทำการเปลี่ยนรหัสมอร์สเป็นภาษาที่ต้องการจะสื่อสารได้ และถ้าผู้ป่วยต้องการจะขอความช่วยเหลืออะไรเราก็จะมีระบบ quick chat ที่สามารถสื่อสารได้รวดเร็วและจะไปแจ้งเตื่อนที่ไลน์ของญาติหรือพยาบาลได้

แนวคิด

  • โดยการทำงานจะแบ่งออกเป็น 2 ส่วนหลัก คือ ฝั่งหน้าจอ OLED และ server โดยบอร์ดที่ 1 นั้นจะทำหน้าที่รับและแปลงสัญาณรหัสมอสจากผู้ใช้นั้นเป็นข้อความจากนั้นส่งไปยัง server เพื่อแสดงข้อความไปยังหน้า DashBroad จากน้ันใช้ api จาก google translate เพื่อแปลงภาษาเป็นภาษาที่เราต้องการได้ ส่วน esp อีกบอร์ดนึงเราจะทำเป็นระบบ quick chat เพื่อใช้สำหรับผู้ป่วยที่อยากจะสื่อสารแต่ว่าไม่สามารถพูดได้ โดยจะแบ่งออกเป็น 2 ส่วนคือ quick chat กับ selective mode โดย quick chat จะเตรียมประโยคง่ายที่ผู้ป่วยสามารถเลือกได้ ส่วน selective mode ผู้ป่วยสามารถประกอบประโยคเองได้ อีกทั้งผู้ป่วยสามารถสอบถาม gemini ได้อีกด้วย

อุปกรณ์

  • ESP32-S3 Devkit 2 ตัว :

               บอร์ดตัวที่ 1 ใช้ในการส่งและรับข้อมูลจากรหัสมอร์สไปยังระบบ IOT ผ่าน MQTT broker

               บอร์ดตัวที่ 2 ใช้ไหนการส่งข้อมูลไปยังระบบ IOT ผ่าน MQTT broker

  • LDR 2 ตัว: ใช้ในการตัดตัวอักษร
  • OLED Display: ใช้ในการแสดงผล
  • Switch: ใช้ในการสร้างรหัสมอร์ส
  • Active Buzzer: ใช้ในการส่งเสียง
  • PS2 XY Joystick: ใช้ในการควบคุมระบบ

หลักการทำงาน

โครงงานของเราจะแบ่งออกเป็น 3 ส่วนใหญ่ คือ

  • การสื่อสารผ่านการใช้รหัสมอส
  • ระบบ Quick chat และประกอบรูปประโยคอย่างง่าย
  • ระบบเปลี่ยนอริยบทสำหรับผู้ที่มีภาวะ Office syndrome (OFSD)

ส่วนที่ 1 การสื่อสารผ่านรหัสมอส

  • เนื่องจากเราต้องการให้ผู้ป่วยที่มีาวะตาบอดนั้นสามารถสื่อสารกับผู้อื่นได้ เราจึงได้นำรหัสมอสเข้าเป็นตัวช่วยในการสื่อสารผ่านการพิมโดยใช้สวิตช์และ LDR หากกดสวิตช์แล้วปล่อยจะเป็น . แต่ถ้ากดค้างไว้แล้วปล่อยจะเป็น - นั้นเอง หากเราต้องการที่จะจบตัวอักษรนั้นๆ ให้เราใช้มือในการบังแสงที่ LDR เพื่อตัดเป็นตัวอักษรนั้นๆ ส่วนการส่งข้อความและลบข้อความนั้นสามารถทำได้ตามรูปภาพด้านล่างนี้เลย


  • โดยหลักการทำงานหลังจากที่พิมรหัสที่บอร์ดแล้วกดส่งออก บอร์ดที่ 1 จะทำการแปลงข้อความจากรหัสมอสแล้วส่งไปยัง MQTT Broker จากนั้นจะส่งข้อความที่ได้ไปแปลงที่ translator ซึ่งเป็น api แปลภาษาของ google ก่อนนำไปแสดงผลบนหน้า Dashboard ที่ผู้ใช้งานคนอื่นจะเห็น และ line notificaiton ผ่าน api ของ ไลน์เพื่อให้ผู้อื่นที่อยากจะบอกได้ทราบข้อมูลด้วยเช่นกัน อีกทั้งข้อความทั้งหมดที่พิมไปนั้นจะถูกเก็บบันทึกไว้เป็นไฟล์ text สำหรับเป็น log ข้อความที่ใช้ในระหว่างสนทนากัน



  • ทางฝั่งผู้ใช้สื่อสารผ่าน dashboard นั้นสามารถพิมสื่อสารได้ด้วยภาษาของตัวเองเนื่องจากเรามี translator ที่ช่วยแปลก่อนจะส่งไปแปลงเป็นรหัสมอสอยู่ ดังนั้นนี้จึงเป็นหนึ่งในข้อดีที่เราได้เล็งเห็นถึงโครงงานของเรา โดยข้อความจะถูกไปเก็บรวมไฟล์เดียวกันกับฝั่งที่พิมรหัสมอสเพื่อให้เกิดเป็น log file ระบบ chat ขึ้นมา จากนั้นจะประโยคไปยังบอร์ดที่ 1 เพื่อ แปลงข้อความธรรมดาเป็นรหัสมอสก่อนส่งเสียงออกทาง buzzer เพื่อแจ้งข้อความให้ผู้ที่มีภาซะตาบอดทราบ

ส่วนที่ 2 ระบบ Quick chat และการประกอบประโยคเอง

  • เนื่องจากเราได้เล็งเห็นถึงปัญหาผู้ป่วยที่นอนติดเตียงและอยากจะสื่อสารแต่ไม่สามารถสื่อสารได้ เราจึงได้คิดค้นระบบ quick chat ขึ้นมา ซึ่งใน บอร์ดที่ 2 นั้นเราสามารถเลือกโหมดผ่านการกดสวิตชืหรือ joystick ก็ได้และใช้ LDR หรือ สวิตช์บน joystick ในการเข้าสู่โหมดนั้นๆ โดยในระบบ quick chat จะประกอบไปด้วยคำง่ายๆที่ผู้ป่วยสามารถส่งไปได้เลย เช่น love you, Hungry, Help me!! และ Toilet เป็นต้น หรือจะเป็นอีกโหมดนึงที่ผู้ป่วยสามารถประกอบประโยคเองได้ผ่านการเลือกประธานและกริยาง่าย เช่น I,You,We,They,He,She และ It เป็นต้น โดยข้อความาทาง quick chat และการประกอบคำนั้นจะเป็นวิธีการเดียวกันกับการส่งรหัสมอสในส่วนแรกเลย


ส่วนที่ 3 ระบบเปลี่ยนอริยบทสำหรับผู้ที่มีภาวะ Office syndrome (OFSD)

  • เนื่องจากเราอยากให้โครงงานของเราสามารถบรรเทาอาการ office syndome ได้จากการเปลี่ยนอริบทไปทำอย่างอื่น แต่ยังคงคอนเซ็ปที่ว่าจะต้องเกี่ยวข้องกับหัวข้อโครงงานของเรา เราจึงได้คิดค้นเกมที่เราจะต้องลุกเดินไปแก้รหัสมอสที่สุ่มขึ้นมาสลับกันไประหว่างบอรืดที่ 1 และ บอร์ดที่ 2 โดยเราสามารถเลือกตั้งเวลาที่เล่นได้ว่าจะให้ห่างกันทุกๆกี่นาที หากเราไม่แก้รหัสหรือถอดรหัสไม่สำเร็จ buzzer ที่ติดอยู่กับบอร์ดจะไม่หยุดร้องจนกว่าเราจะแก้รหัสสำเร็จ โดยรหัสจะถูกสุ่มใหม่ในทุกๆครั้งและเราจะไม่รู้ว่ารหัสนั้นคืออะไรและมีความยาวเท่าไหร่จนกว่าเราจะลุกไปถอดรหัสนั้นเอง อีกทั้งเรายังได้เพิ่มระบบสำหรับการตั้งเวลาและวันที่ไว้ในวันที่เราต้องการสมาธิและไม่อยากถูกรบกวนจากโหมดนี้อีกด้วย



  • โดยหลักการทำงานเมื่อครบเวลาที่จะต้องเล่นเกม dash board จะส่ง message ไปยังบอร์ดที่ 2 เพื่อเริ่มการสุ่มรหัสและส่งรหัสไปยังบอร์ดที่ 1 หลังจากนั้นรหัสตัวแรกจะปรากฎที่บอร์ดที่ 2 และ buzzer จะเปิดทำงาน หากเราแก้ได้สำเร็จ บอร์ดที่ 2 จะอัพ state เพื่อบอกบอร์ดที่ 1 ว่าตอนนี้อยู่ตัวที่เท่าไหร่และสั่งให้ buzzer ไปทำงานที่บอร์ดที่ 1 แทน หลังจากนั้นจะสลับไปเรื่อยๆจนกว่าจะครบทุกตัว สุดท้ายบอร์ดที่ 2 จะส่ง message ให้เริ่มจับเวลาใหม่อีกครั้ง

Github : CVMC

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-14 21:19:27 โดย b6610502226
กลุ่มที่ 11 : นิวตันแอนด์เฟรน
ธนากร สรอุบล
ธาดา วิยาภรณ์
ดนัยพัชร เพ็งกุล
ธยศ ขันทะยศ
ชื่อโครงงาน: มีระบบ POS ของตัวเองด้วยงบ 700 บาท
รายละเอียด:

ระบบ POS ด้วยงบ 700 บาท

ที่มาและแนวคิดการออกแบบ

  • สำหรับใครที่เปิดร้านอาหารหรือร้านขายของ อาจเจอเรื่องที่ทำให้ปวดหัวได้มาก แต่เราจะสามารถลดภาระลงได้ถ้าเรามีระบบจัดการเงินอย่าง POS ในงบเพียงแค่ 700 บาท ที่สามารถจัดการเรื่องการเงิน เรื่องภายในร้านได้ สามารถรับเงินผ่านระบบออนไลน์ได้ ทำให้ลดภาระไปได้อีกมาก

อุปกรณ์ที่ใช้

  • ESP32-S3 Devkit 2 ตัว (ตัวที่ 1 สำหรับเชื่อมกับจอ ,ตัวที่ 2 สำหรับเชื่อมกับ RFID READER เพื่อสแกนบัตร)
  • RFID READER 1 ตัว เพื่ออ่านบัตร
  • SSD1306 OLED 1 ตัว เพื่อแสดง QR CODE

หลักการทำงาน

  • alt text
  • การจ่ายเงินด้วย QR

    • เมื่อ user เลือกรายการสินค้าผ่านหน้า website และ คลิกจ่ายเงินด้วย QR ระบบจะส่ง source ID ไปยัง OMISE และทำการ generate QR CODE ของรายการนั้น และส่งกลับไปยัง server จากนั้น server จะส่ง QR ไปแสดงบน esp32-oled โดยมีการแปลงเป็น base64
    • การเช็คสถานะการชำระเงิน omise จะส่ง webhook มาที่ server และสร้างข้อมูลลง firebase database เมื่อสถานะการชำระเงินเปลี่ยนแปลง และหน้า web จะสร้าง api เข้าไปเช็คสถานะบน database ทุกๆ 5 วินาที เมื่อสถานะเป็น successful จะแสดงให้ user เห็นว่าลูกค้าชำระเงินเรียบร้อย
  • การจ่ายด้วย Credit card

    • เมื่อ user เลือกการจ่ายเงินด้วย Credit card ผ่านหน้า website ระบบจะส่งข้อมูลไปยัง server และ ส่งข้อมูลต่อไปยัง esp32 ให้รับหมายเลข token ของ card ด้วย rfid และทำการ createCharge ไปยัง omise เพื่อทำการหักเงินในบัตร เมื่อหักเงินบัตรเสร็จสิ้น omise จะส่ง response กลับมาเป็น status successful และแจ้งให้ user ทราบผ่านหน้า website

Website

Dashbord

  • alt text

Product

  • alt text
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 08:52:22 โดย b6610502081
กลุ่มที่ 12 : ขอคิดก่อนฮัฟ
จิรพัฒน์ ศรีทวี
ธรรมพัฒน์ รัตนตรัยภพ
ชื่อโครงงาน: WarnGuard
รายละเอียด:

ที่มาและแนวคิด

  • กลุ่มเรามองเห็นถึงปัญหาการนั่งทำงานที่ยาวนานเป็นสาเหตุหลักของอาการ Office syndrome เราจึงออกแบบอุปกรณ์ที่จะกระตุ้นให้ผู้ใช้มีการลุกจากที่นั้งเพื่อแก้ puzzle ที่ random จากชุดอุปกรณ์ที่เราออกแบบไว้

มีบทลงโทษตั้งแต่ระดับเบาจนถึงระดับที่หนัก

(เน้นเป็นบทลงโทษที่เน้นให้ผู้ใช้งานต้องกระทำบางอย่างเพื่อให้ระบบทำงานต่อไปได้)

หลักการและการออกแบบ

  • เราได้ออกแบบ PCB ที่มีขนาดพอดีและมีลูกเล่นที่หลากหลายเพื่อใช้แก้ puzzlesหลายรูปแบบได้พร้อมยังมีช่องสำหรับต่อ GPIO นอกเพื่อสั่งการอุปกรณ์อย่างอื่นเพิ่มเติมได้

กำหนดให้

  • A คือบอร์ดที่จะอยู่ที่ผู้ใช้ “ตัวแก้ puzzle”
  • B คือบอร์ดที่จะวางไกลผู้ใช้ “ตัวสร้าง puzzle”

  • Board A จะ random เวลามา (45-60 นาที) หากถึงเวลาที่กำหนดก็จะแจ้งเตือนเสียงผ่าน buzzer เพื่อให้ผู้ใช้รู้ว่าต้องลุกไปแก้ puzzles จากนั่นจะส่ง Payload MQTT สั่งให้ Board B ทำการสุ่ม passcode และให้ส่งกลับมา จากนั้นสุ่มคะแนนขั้นต่ำที่ผู้เล่นต้องเล่นให้ถึงจะชนะหลังจากผ่านแล้วจะขึ้น passcode ที่จอ Board B OLED แล้วมาใส่ที่ Board A เพื่อจบการทำงานสำหรับครั้งนั้น ระบบก็จะจับเวลาใหม่ในรอบถัดไป สามารถดูค่า Status ต่างๆและการกำหนดค่า การหยุดพัก หรือปิดเสียงได้ผ่านทาง DashBoard

image info image info

รายการอุปกรณ์ที่ใช้

  • PCB WarnGuard v.1 (2x)
  • Esp32-S3-DEVKITS (2x)
  • OLED 128x96 (2x)
  • Buzzer (2x)
  • Numpad I/O (1x)
  • Switch (12x)
  • led R/G/B (2x)
  • RTC Module (1x)

รูปภาพ PCB

image info


รูปภาพ MQTT image info


Github | WarnGuard

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 03:38:59 โดย b6610502005
กลุ่มที่ 13 : ประตูมีกลอน คนนอนมีปืน ( Locked Door & Snore Gun )
จารุกิตติ์ ผลวัฒนานุวงศ์
ภีมพัฒน์ ทองมี
อธิภู พิมพิศาล
อลงกต วิมลสุข
ชื่อโครงงาน: INFRARED TARGET TREK
รายละเอียด:

ที่มา

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

หลักการทำงาน

แบ่งเป็น 3 ส่วนคือ

  • ส่วนที่เป็นปืน โดยมี ESP3-S3 อยู่ในปืนและมี ir tansmitter อยู่ปลายปืนโดยมีหน้าที่ในการปล่อยสัญญาณ ir ออกไปเมื่อกดปุ่มโดยสัญญาณที่ปล่อยออกมานั้นจะเป็นสัญญาณที่ถูกตั้งไว้เพื่อให้ตอบสนองกับเป้าเราได้เท่านั้น มีปุ่มรีโหลดอยู่ด้านบนที่จะถูกกดเมื่อชัก ปุ่ม start อยู่ด้านล่างของปืนและมีจอ oled ที่จะบอกจำนวนกระสุน เวลาขณะที่เหลืออยู่ในขณะนั้น และเวลาที่ countdown อยู่ซึ่งเมื่อปืนได้รับข้อมูลว่าถูกยิงมาแล้วก็จะทำการ publish คะแนนไปที่ broker เพื่อขึ้นบน dashboard

  • ส่วนที่เป็นเป้ายิง จะมี ir receiver และไฟ LED ติดไว้ที่เป้าโดยเชื่อมกับบอร์ด ESP32-S3 ซึ่งเริ่มมาบอร์ดที่ถูกสุ่มจะเปิด led เขียวขึ้น และ ir receiver ก็จะเริมทำงาน เมื่อได้รับสัญญาณจากปืนก็จะทำให้ไฟ led ดับลง ซึ่งถึงแม้ว่าจะได้รับสัญญาณ ir จากแหล่งอื่นๆเช่น รีโมตคอนโทรลต่างๆ led ก็จะไม่ดับลงเนื่องจากเราได้ตั้งให้ led ตอบสนองต่อสัญญาณ ir ของปืนเท่านั้น จากนั้นก็จะสุ่มเป้าที่เหลือมาหนึ่งเป้าแล้ว publish ข้อมูลว่าถูกยิงและข้อมูลเป้าต่อไปที่ไฟจะติดไปที่ broker และถ้าเป้ายิงไม่ได้รับสัญญาณที่ถูกต้องภายใน 5 วินาที ก็จะสุ่มเป้าที่เหลือมาหนึ่งเป้าแล้ว publish ข้อมูลเป้าต่อไปที่ไฟจะติดไปที่ broker เช่นกัน

  • ส่วนที่เป็น Dashboard เป็นส่วนที่ทำหน้าที่ใน publish การตั้งค่าต่างๆภายในเกมไปที่ broker เช่น การเปิดเกม ปิดเกม ตั้งค่าเวลา Office syndrome เป็นต้น และยังเป็นส่วนที่แสดงข้อมูลคะแนนที่เล่นอยู่ในขณะนั้นและ high score อีกด้วย

ตัวอย่าง Dashboard

วิธีเล่น

  • โหมดปกติ เริ่มจากการกด play บน dashboard จากนั้น oled บนปืนก็จะขึ้นข้อความให้รอเริ่มเล่น จากนั้นให้กดปุ่มที่ใต้ปืนเพื่อเริ่มเกม เมื่อเริ่มเกมแล้วก็ยิงเป้าที่ไฟ led สีเขียวติดเมื่อยิงโดนไฟก็จะดับลงแล้วจะได้ 1 คะแนน เล่นไปเรื่อยๆจนครบเวลา 1 นาทีเกมก็จะจบลง ซึ่งสามารถไปเช็คคะแนนที่ทำได้บน dashboard ถ้าหากอยากเล่นอีกครั้งก็ให้กดปุ่มที่ใต้ปืนก็จะสามารถเล่นอีกครั้งได้
  • โหมด office syndrome ก็เล่นเหมือนโหมดปกติแต่จะต้องเลือกเวลาบน dashbaord แล้วกดเปิดก่อนกด play เมื่อกด play แล้วจอ oled ก็จะนับเวลาถอยหลังตามที่เราเลือกไว้ เมื่อครบเวลา buzzer ก็จะดังเตือนให้เรามาเล่น ซึ่งการเล่นก็เหมือนเล่นปกติทุกอย่าง แต่ถ้าหากภายใน 1 นาทีไม่สามารถเล่นได้ถึง 13 คะแนนได้ buzzer ก็จะดังขึ้นอีกครั้งเพื่อให้เราเล่นใหม่ แต่ถ้าเล่นถึง 13 แล้วคะแนนก็สามารถกดปุ่มที่ใต้ปืนเพื่อจับเวลาต่อได้

รายการอุปกรณ์ที่ใช้

  • ESP32-S3 x 4
  • IR Transmitter x 1
  • IR Receiver x 3
  • buzzer x 2
  • Yellow LED x3
  • Green LED x 3
  • OLED x 1
  • button switch x 3
  • 18650 battery shield x 4
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 07:21:54 โดย b6610505306
กลุ่มที่ 14 : Dying boys
กษิดิศ บุญนำ
สิโรฒม์ วีระกุล
นิธิโรจน์ รัตนเรืองมาศ
พงศ์สิน อรุณกิจเจริญ
ชื่อโครงงาน: โปรแกรมเสริมพลัง
รายละเอียด:

ที่มาและแนวคิดการออกแบบ

  • เนื่องจากที่คนในกลุ่มทุกคนล้วนพบเจอกับปัญหา Office Syndrome ไม่ทางใดก็ทางหนี่ง แล้วทางเราก็ได้ลองแก้ปัญหาด้วยการพยายามปรับท่านั่งและระยะเวลาการทำงาน แต่ก็ไม่สามารถทำได้จริงเนื่องจากเราไม่สามารถเปลี่ยนพฤติกรรมที่ทำมาเป็นเวลานาน ๆ ได้ ต่อมาเราได้ไปเรียนวิชา Weight Training for Health แล้วได้ไปเรียนรู้วิธีการออกกำลังกายแบบ Circuit Traning ที่ซึ่งใช้เวลาทำไม่นาน เพียงแค่ 30 นาทีก็เพียงพอแล้ว เราจึงตัดสินใจ เปลี่ยนจากการนั่งอยู่หน้าโต๊ะคอม แล้วไปทำอย่างอื่นที่จะช่วยลดอาการ Office Syndrome และยังช่วยพัฒนาระบบไหลเวียนโลหิต กับความแข็งแรงของกล้ามเนื้อของเราให้ดียิ่งขึ้นได้อีกด้วย

หลักการออกกำลังกายแบบ Circuit Traning

  • Circuit Traning เป็นการออกกำลังกายแบบครบวงจรที่ช่วยให้เราออกกำลังกายได้หลายสัดส่วนในคราวเดียว เป็นการออกกำลังกายที่รวมเอาหลาย ๆ ท่า โดยฝึกต่อเนื่องกันแต่ใช้ระยะเวลาในการพักน้อยและพักสั้นๆ จึงช่วยกระตุ้นให้หัวใจเต้นอย่างต่อเนื่อง เป็นการเพิ่มการเผาผลาญและการใช้พลังงานให้มากขึ้น ประโยชน์ที่ได้เทียบเท่ากับการออกกำลังกายแบบคาร์ดิโอที่เป็นการกระตุ้นให้ร่างกายมีการเผาผลาญพลังงานและใช้ไขมันมาใช้เป็นพลังงานมากขึ้น ช่วยในการลดน้ำหนักพร้อมกับเป็นการบริหารกล้ามเนื้อหลาย ๆ มัดไปพร้อมกัน

หลักการทำงาน + วิธีการใช้งาน

  • บอร์ดตัวที่ 1 – เครื่องวัดชีพจร : เมื่อนำนิ้วไปวางบน Max30102 ทุกครั้งที่จับการเต้นของหัวใจได้ Buzzer จะดังขึ้น และขึ้นอัตราการเต้นของหัวใจบน I2C_OLED_0.96”

  • บอร์ดตัวที่ 2 – เครื่องบอกท่าออกกำลังกาย : เมื่อเริ่มการทำงาน จะบอกชื่อท่าผ่านลำโพง และแสดงชื่อท่าบน I2C_OLED_0.96” เมื่อถึงเวลาที่ต้องทำท่าต่อไปจะมีเสียงออกมาบอกท่า เมื่อครบก็จะมีเสียงบอกให้หยุด และบอกท่าถัดไปวนไปเรื่อย ๆ โดย LED จะมีหน้าที่บอกประเภทของท่า โดย LED_RED เป็นท่าส่วนบน LED_YELLOW เป็นท่าส่วนกลาง LED_GREEN เป็นท่าส่วนล่าง

Node-RED

  • ส่วนที่ 1 : แสดงท่าการออกกำลังกาย และเวลาในการออกกำลังกาย
  • ส่วนที่ 2 : แสดงอัตราการเต้นของหัวใจ และกราฟอัตราการเต้นของหัวใจ
  • ส่วนที่ 3 : แสดงภาพท่าการออกกำลังกายต่างๆ

อุปกรณ์ที่ต้องใช้

บอร์ดตัวที่ 1 – เครื่องวัดชีพจร :

  • ESP32-S3-DevKitC-1
  • Max30102 (Heart-Rate monitor module)
  • Buzzer
  • I2C_OLED_0.96”

บอร์ดตัวที่ 2 – เครื่องบอกท่าออกกำลังกาย :

  • ESP32-S3-DevKitC-1
  • Max98357a (Digital to Analog conversions module)
  • Speaker 8 Ω 0.25 watt
  • LED_RED
  • LED_YELLOW
  • LED_GREEN
  • I2C_OLED_0.96”
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 00:11:40 โดย b6610505501
กลุ่มที่ 15 : ภัยพิบัติ
สุขุม เดชา
กวิน ชุนงาม
ก้องภพ ไพเราะ
ณรัณ วงศ์วุฒิสาโรช
ชื่อโครงงาน: MUSSER
รายละเอียด:

ที่มาและแนวคิดการออกแบบ


ที่มา

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

แนวคิดการออกแบบอุปกรณ์

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

รายการอุปกรณ์


  • MAX30102 Oximeter and Heart Rate Sensor Module
  • HC-SR04 Distance measuring Transducer Sensor
  • Passive Buzzer module active Low 3.3-5V for Arduino
  • OLED panel

การติดตั้งอุปกรณ์

บอร์ดที่ 1

  • sensor วัดระยะ(HC-SR04)
  • ลำโพง(Buzzer)
  • OLED(I2C_OLED_0.96)

บอร์ดที่ 2

  • sensor heart rate(Max30102)
  • OLED(I2C_OLED_0.96)

หลักการทำงาน


การใช้งาน บอร์ดตัวที่ 1

ใช้นับรอบการวิดพื้นโดยวัดจากระยะทางของ sensor วัดระยะ มีจอ OLED บอกจำนวนรอบในการดันพื้น

  • รอรับสถานะว่า บอร์ด2 ทำการวัดอัตราการเต้นของหัวใจหรือยัง

    alt text

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

    alt text

  • ทำการนับรอบวิดพื้นของผู้ใช้งาน

    alt text

การใช้งาน บอร์ดตัวที่ 2

ใช้สำหรับแสดงความคืบหน้า, จำนวนครั้งวิดพื้นทั้งหมด, ระดับกล้ามของผู้ใช้งานและวัดอัตราการเต้นของหัวใจโดนมีหน้าจอ 3 รูปแบบเปลี่ยนรูปแบบโดยการกด switch บนบอร์ด

  • รูปแบบที่ 1 : แสดงจำนวนครั้งที่วิดพื้นสะสมทั้งหมดและระดับกล้ามของผู้ใช้งาน

    alt text
  • รูปแบบที่ 2 : แสดงระดับของกล้ามทั้งหมดที่ผู้ใช้งานจะเป็นได้และต้องดันพื้นอีกกี่ครั้งเพื่อเพิ่มระดับ

    alt text

  • รูปแบบที่ 3 : เตรียมสำหรับการวัดอัตราการเต้นของหัวใจสำหรับผู้ใช้งาน

    alt text

การสื่อสารระหว่างบอร์ดและdashboard

alt text

บอร์ด1

  • รอรับค่าจากการ subscribe topic: b6610505241/hr/initial ว่า บอร์ด2 ทำการวัดอัตราการเต้นของหัวใจหรือยัง
  • ทำการ publish จำนวนครั้งที่วิดพื้นผ่าน topic: b6610505241/count/session

บอร์ด 2

  • publish ค่าอัตราการเต้นของหัวใจก่อนออกกำลังกายผ่าน topic: b6610505241/hr/initial
  • publish ค่าอัตราการเต้นของหัวใจหลังออกกำลังกายผ่าน topic: b6610505241/hr/final
  • subscribe topic: b6610505241/count/session สำหรับการรับจำนวนครั้งวิดพื้นมาเก็บไว้
  • publish topic: b6610505241/count/all สำหรับการส่งจำนวนครั้งวิดพื้นทั้งหมดไปยัง DashBoard

Dash Board

  • subscribe topic: b6610505241/hr/initial และ topic: b6610505241/hr/final สำหรับนำอัตราการเต้นของหัวใจไปแสดงบนกราฟ
  • subscribe topic: b6610505241/count/session สำหรับแสดงจำนวนครั้งที่วิดพื้นได้ล่าสุดและแสดงกราฟจำนวนครั้งที่วิดพื้นได้ในครั้งก่อนๆ
  • subscribe topic: b6610505241/count/all สำหรับแสดงจำนวนครั้งที่วิดพื้นสะสมทั้งหมด

alt text

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 13:53:15 โดย b6610502242
กลุ่มที่ 16 : SEMICOLON
พุฒิพงศ์ รอดบ่วง
รชตะ ธรรมเจริญสถิต
ชื่อโครงงาน: ELEVATE-AI (Electronic Live Encouragement Via AI Text Enhancement)
รายละเอียด:

ELEVATE-AI

Electronic Live Encouragement Via AI Text Enhancement

ที่มาและแนวคิดการออกแบบ

ในยุคปัจจุบันที่เทคโนโลยีและการทำงานออฟฟิศเป็นส่วนหนึ่งของชีวิตประจำวัน ปัญหาสุขภาพที่เรียกว่า Office Syndrome ก็ได้กลายเป็นประเด็นที่ได้รับความสนใจมากขึ้น การนั่งทำงานเป็นเวลานานในสถานที่ทำงานเป็นสาเหตุหนึ่งที่ทำให้ผู้คนมีความเสี่ยงต่อ Office Syndrome ซึ่งอาการเหล่านี้สามารถทำให้เกิดความไม่สบายและมีผลต่อสุขภาพได้ เช่น ปวดหลัง ปวดคอ เป็นต้น และยังส่งผลต่อประสิทธิภาพและความเหนื่อยล้าในการทำงานอีกด้วย

หนึ่งในวิธีป้องกันอาการของ Office Syndrome คือ การลุกจากโต๊ะทำงานเพื่อขยับร่างกายเป็นช่วง ๆ แต่การจับเวลาด้วยตัวเองนั้นเป็นเรื่องที่ไม่สะดวกและมักถูกละเลยในหลายๆ ครั้งเนื่องจากความสนใจที่อยู่กับงาน เราจึงได้คิดค้นโปรเจกต์นี้ขึ้นมาเพื่อเตือนให้ผู้คนลุกขึ้นและขยับร่างกายอย่างสม่ำเสมอ โดยใช้ ESP32-S3 ร่วมกับเซ็นเซอร์ Ultrasonic เพื่อทำการจับเวลาอัตโนมัติเมื่อผู้ใช้เริ่มนั่งที่โต๊ะทำงานโดยไม่ต้องมีการจับเวลาด้วยตัวเอง และแจ้งเตือนผ่านแอปพลิเคชัน Discord เมื่อครบเวลาที่กำหนด

นอกจากการแก้ไขปัญหาออฟฟิศซินโดรมด้วยการเตือนให้ลุกขึ้นเคลื่อนไหวแล้ว การจัดสภาพแวดล้อมในที่ทำงานให้เหมาะสมก็มีบทบาทสำคัญในการเพิ่มประสิทธิภาพและลดความเหนื่อยล้าในการทำงานเช่นกัน ปัจจัยเหล่านี้รวมถึงปริมาณแสงที่เหมาะสม, อุณหภูมิ ความชื้น และปริมาณ CO2 ในอากาศ ซึ่งล้วนมีผลต่อสุขภาพ สมาธิ และประสิทธิภาพในการทำงาน เราจึงต้องการที่จะวัดค่าต่าง ๆ เหล่านี้มาแสดงผลให้กับผู้ใช้ เพื่อให้สามารถปรับปรุงสภาพแวดล้อมได้ตามต้องการ นอกจากนี้ ผู้ใช้ยังสามารถให้ปัญญาประดิษฐ์ (AI) นำข้อมูลมาวิเคราะห์เพื่อประเมินและแนะนำการปรับปรุงสภาพแวดล้อมในที่ทำงานให้เหมาะสมยิ่งขึ้น

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


ฟังก์ชันการทำงาน

ฟังก์ชันหลัก

  • แสดงและวิเคราะห์ข้อมูลสภาพแวดล้อมในการทำงาน : แสดงผลข้อมูลของอุณหภูมิ ความชื้นในอากาศ ปริมาณแสง UV Index และปริมาณ CO2 ในอากาศผ่านหน้าจอ OLED และ Node-RED Dashboard และนำข้อมูลที่ได้ไปวิเคราะห์โดยใช้ AI ผ่าน Gemini API จากนั้นนำผลการวิเคราห์และข้อแนะนำเกี่ยวกับสภาพแวดล้อมในการทำงานกลับมาแสดงผลให้กับผู้ใช้

Node-RED Dashboard


all-flow


  • แจ้งเตือนให้ลุกจากโต๊ะ : เมื่อผู้ใช้นั่งที่โต๊ะทำงาน อุปกรณ์นี้จะเริ่มจับเวลาโดยอัตโนมัติ เมื่อครบเวลาที่กำหนดระบบจะแจ้งเตือนผู้ใช้ผ่าน Discord และหน้าจอ OLED เพื่อให้ผู้ใช้ลุกขึ้นขยับร่างกาย หลังจากที่ลุกขึ้น ระบบก็จะส่งข้อความชมเชยที่ลุกขยับร่างกายและให้กำลังใจให้แก่ผู้ใช้ และเมื่อผู้ใช้กลับมานั่ง ระบบก็จะส่งข้อความต้อนรับและสรุปข้อมูลสภาพแวดล้อมการทำงานให้กับผู้ใช้ ซึ่งโดยการส่งข้อความทั้งหมดผ่าน Discord จะใช้ AI ช่วยในการทำ Text Enchantment ผ่าน Gemini API

discord UI


ฟังก์ชันเสริม

  • เชื่อมต่อ WiFi และ MQTT broker ใหม่โดยอัติโนมัติเมื่อการเชื่อมต่อขาดหาย

  • ไฟ LED แสดงสถานะการตรวจจับการนั่งของผู้ใช้

  • Standby Mode บน Sensors Board


วิธีใช้งาน

Sensors Board

  • ต่อ Micro USB เข้ากับ ESP32-S3 เพื่อเริ่มการทำงานโดยอัติโนมัติ

  • สามารถกดสวิตช์เพื่อสลับระหว่าง Active Mode และ Standby Mode

  • ไฟ LED แสดงสถานะของบอร์ดดังนี้

LED Color สถานะ
Green Active Mode
Yellow Standby Mode
Red ไม่สามารถเชื่อมต่อ WiFi หรือ MQTT broker ได้

Screen Board

  • ต่อ Micro USB เข้ากับ ESP32-S3 เพื่อเริ่มการทำงาน

  • หน้าจอจะเข้าสู่หน้าตั้งค่า ให้ผู้ใช้วางบอร์ดไว้ในระยะที่เซนเซอร์สามารถตรวจจับการนั่งของผู้ใช้ได้ โดยหน้าจอจะขึ้นว่า Detected จากนั้นกดสวิตช์เพื่อยืนยัน

  • เมื่อตั้งค่าแล้วผู้ใช้สามารถกดสวิตช์เพื่อดูข้อมูลสภาพแวดล้อมการทำงานต่าง ๆ และผลวิเคราะห์สภาพแวดล้อมได้

  • เมื่อครบเวลาที่กำหนดบอร์ดจะแจ้งเตือนโดยการแสดงผลบนหน้าจอว่า "Stand up!" และกระพริบไฟ LED ทั้งสามดวงโดยผู้ใช้สามารถลุกขึ้นและกลับมานั่งได้เลย

  • ไฟ LED แสดงสถานะของบอร์ดดังนี้

LED Color สถานะ
Green ตรวจพบผู้ใช้
Yellow ไม่พบผู้ใช้
Red ไม่สามารถเชื่อมต่อ WiFi หรือ MQTT broker ได้


อุปกรณ์ที่ใช้

1.Sensors

2.OLED Display I2C IIC 0.96″ SSD1306 128x64px

3.บอร์ด ESP32-S3 2 ตัว


หลักการทำงาน

ESP32-S3 ทั้ง 2 ตัวจะรับและส่งข้อมูลกันผ่าน MQTT broker โดย

  • ตัวที่ 1 (Sensors Board) อ่านค่าจากเซ็นเซอร์ 3 ตัว ได้แก่
    • DHT11 เซ็นเซอร์วัดอุณหภูมิและความชื้น
    • LTR390 เซ็นเซอร์วัด UV และความสว่าง
    • MQ-135 และเซ็นเซอร์วัดปริมาณ CO2 ในอากาศ
    จากนั้นส่งข้อมูลในรูปแบบ JSON เข้าใปในระบบ

  • ตัวที่ 2 (Screen Board) จะดึงข้อมูลจากระบบและนำมาแสดงผลบนหน้าจอ OLED เมื่อครบเวลาที่กำหนดจะทำการแจ้งเตือนผ่านหน้าจอพร้อมกับกระพริบไฟ LED เพื่อให้ผู้ใช้ลุกขึ้น นอกจากนี้จะมี HC-SR04 Ultrasonic sensor เพื่อตรวจจับว่านั่งอยู่ที่โต๊ะทำงานหรือไม่ และส่งข้อมูลที่ได้ในรูปแบบ JSON กลับเข้าไปที่ระบบ


Node-RED จะทำหน้าที่ในการแสดงผลค่าต่างๆ เชื่อมต่อกับ API จัดการและประมวลผลข้อมูลทั้งหมดที่ได้รับเพื่อลดภาระการทำงานของ ESP32-S3 ซึ่งสามารถแบ่งหน้าที่ได้ดังนี้

  • รับข้อมูลในรูปแบบ JSON จาก ESP32-S3 ทั้งสองตัว ทำการแยกข้อมูลออกจากกันเพื่อให้ง่ายต่อการนำไปใช้งานใน ESP32-S3 และรวมข้อมูล JSON ให้เป็น Object เดียวเพื่อนำไปใช้ในวิเคราะห์ของ AI

  • ส่งผลลัพท์การวิเคราห์ที่ได้จาก AI กลับเข้าไปในระบบเพื่อให้แสดงบนจอ OLED ของ ESP32-S3 ตัวที่ 2

  • ส่งข้อมูลเวลาปัจจุบันให้กับ ESP32-S3

  • แสดงผลขอมูลจากค่าของเซ็นเซอร์ต่าง ๆ ที่ดึงลงมาจาก sever ลงบน Dashboard และส่งค่าเหล่านี้ไปให้ AI วิเคราะห์ผ่าน Gemini API และนำกลับมาแสดงผล

  • เมื่อครบเวลาที่ตั้งไว้ AI จะส่งข้อความแจ้งเตือนผ่าน Discord ให้ผู้ใช้ลุกขึ้นเพื่อขยับร่างกาย ซึ่งผู้ใช้สามารถลุกได้เลยโดย Ultrasonic sensor จะตรวจจับการลุกโดยอัตโนมัติ และเมื่อกลับมานั่งก็จะเริ่มจับเวลาใหม่อีกครั้ง หากต้องการตั้งค่าระยะในการนั่งใหม่อีกครั้ง สามารถกดปุ่ม reset ที่บอร์ดได้

all-flow



all-flow



Source Code

Github : RJTPP/ELEVATE-AI

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-14 22:15:06 โดย b6610502218
กลุ่มที่ 17 : Lamphong A Siang Dang Tae Lamphang A Rao Eng
นภัสนันท์ ดามะพร
ก้องภพ ติรัตนะประคม
จุลินทร์ เศรษฐ์สถาวร
นคเรศ เมืองภักดี
ชื่อโครงงาน: Music Assistant
รายละเอียด:

UTILITY OF PROJECT

In our daily lives, we're surrounded by various sounds—from conversations to car noises, and music is among them. For musicians, sound clarity is crucial; clear separation reduces distortion and enhances performance. Without it, music rehearsals lack effectiveness. Hence, this project aims to aid in sound separation, facilitating smoother, more efficient music practice. Additionally, it merges knowledge from two subjects: hardware and music.


EQUIPMENTS

  • 2 x Breadboard
  • 2 x ESP32-S3-DevKitC-1 (ESP32-S3 (1/2))
  • 2 x 10K Ohm Resistor
  • 1 x INMP441
  • 1 x MH-FMD Passive Piezo Buzzer (Buzzer)
  • 1 x OLED Display IIC 0.96″ SSD1306 128x64 pixels (OLED)
  • 1 x 5 mm Yellow LED (LED)

WORKING MECHANISM

For a simple explanation, we will divide this into 3 parts – hardware, software and firmware.

[ HARDWARE ]

There are 2 breadboards which one is used as an input board and another, an output board.

First board: INPUT

  • ESP32-S3 (1) – used for running the firmwares.
  • INMP441 – used for sound-waves input for MODE 1.

Second board: OUTPUT

  • ESP32-S3 (2) – used for running the firmwares.
  • Buzzer – used for any sound display to the user.
  • LED – used for checking whether the buzzer is working or not, however, it is not required.
  • OLED – used for various displays inside the modes to the screen.

[ SOFTWARE ]

For the software, we use the IoT system to communicate and receive or publish data values which the protocol used is the Message Queuing Telemetry Transport or MQTT by connecting the MQTT broker to iot.cpe.ku.ac.th and adjust the data route in the Node-RED of the KU server.

Node-RED

Node-RED has a major duty to control values received and published from and to the MQTT broker. The user interface will be the Node-RED Dashboard which the user can input values and view the outputs there. Here is an example our flow and dashboard inside MODE 1:

GROUP17_Node-RED GROUP17_Node-RED

OVERALL

[ FIRMWARE ]

For the firmware, we will describe the main functions of each files and libraries, including the Arduino in ESP32-S3 (1) and Micropython in ESP32-S3 (2).

Arduino Files

  • FFT.ino – keep all the Arduino libraries

Arduino Libraries

  • driver/i2s.h – communicate with INMP441
  • WiFi.h – Wifi connection
  • PubSubClient.h – MQTT communication [Source]
  • arduinoFFT.h – perform FFT process [Source]
  • config.h – Wifi, MQTT, Topics configuration

Micropython Files

  • MAIN.py – running loop and starting up the device.
  • MUSIC.py – keep all functions related to sound e.g. playmusic, set_note.
  • OLED.py – keep all functions related to OLED display.
  • CONNECT.py – keep all functions related to connecting Wifi and MQTT.
  • TOPIC.py – calling other functions, receiving values and publish values to MQTT broker.

Micropython Libraries

  • time.pyi – checking time used and time delay
  • machine.pyi – setting Pins, PWM, etc.
  • ssd1306.pyi – OLED configuration
  • math.pyi – drawing on OLED calculation

FUNCTIONS

In this project, we have divided the system into 4 modes. Before utilising each mode, please ensure that you have selected the mode from the Node-RED Dashboard, otherwise, it will not work.

MODE 1: Note Detector (Tuner)

This mode helps you to detect the input sound to the specified notes. Each note will have their own standard frequency.

  • Input : Sound waveform directed to INMP441
  • Output : Detected note on Node-RED Dashboard and OLED.
  • Restrictions : User might experience a high tolerance on waveforms that are not sine wave and the sound waveform must not exceed 4,000 Hz.

MODE 2: Note Display

This mode simulates the specific sound of the note from user’s input.

  • Input : Note desired to be heard on Node-RED Dashboard.
  • Output : Sound on buzzer and the input note on OLED.
  • Restrictions : The input note must be in the range of G2 to B8.

MODE 3: Metronome

This mode displays the BPM. The abbreviation “BPM” stands for “Beats per minute” which means the amount of sound or beats you will hear in 1 minute. For example, 80 BPM means in 1 minute, you will hear 80 beats or you will hear a beat in about 0.75 seconds.

  • Input : BPM desired on the Node-RED Dashboard.
  • Output : Sound on buzzer and the input BPM on OLED.

MODE 4: Sing a song

In this mode, there will be built-in songs that you can play on the buzzer.

  • Input : Select the desired song on the Node-RED Dashboard.
  • Output : Song display on the buzzer.

MADE BY

  • 6610502102 – Napatsanan Damaporn (Nan)
  • 6610505250 – Kongphop Tirattanaprakom (First)
  • 6610505314 – Jurin Setsataworn (Korn)
  • 6610505438 – Nakharet Mueangphakdee (Keng)

Department of Computer Engineering,
Faculty of Engineering, Kasetsart University


This project is part of the course 01204114 Introduction to Computer Hardware Development for the second semester of the academic year 2023.

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-15 08:52:18 โดย b6610505314
กลุ่มที่ 18 : นอน 15 ชั่วโมง
มูฮัมหมัดฮานีฟ เพ็งมูซอ
ก้องสกุล พันธุ์ยาง
ไข่มุกข์ ธานะกิจ
ภากร ตันติวัฒนากุล
ชื่อโครงงาน: เก้าอี้แก้เคล็ด
รายละเอียด:

ที่มา

  • เนื่องจากในยุคปัจจุบัน ผู้คนได้ใช้เวลากับการนั่งทำงานนานมากขึ้น อาจส่งผลทำให้เกิดปัญหาทางสุขภาพได้ ทางคณะผู้จัดทำจึงมีความสนใจที่จะแก้ปัญหาเหล่านี้ด้วย "เก้าอี้แก้เคล็ด" สุดเจ๋งแจ๋วและไฮเท็ค

แนวคิดและการออกแบบ

  • ทางคณะผู้จัดทำได้ใช้ Board 2 ตัวคือ ESP32S3 ทั้งคู่
  • โดย Board ตัวแรก ทำหน้าที่รับค่า Capacity ไฟฟ้า ผ่าน Touch sensor ที่หุ้มแผ่น Aluminum เพื่อดูว่า ผู้ใช้งานได้นั่งเก้าอี้หรือไม่ หากนั่งจะเริ่มทำการจับเวลา เมื่อครบเวลากำหนดจะส่งสัญญาณเป็นเสียงดัง "ตี๊ดดดดดดดดดดดดดด"
  • หากต้องการหยุดเสียง จะมีโจทย์คณิตศาสตร์ขึ้นในจอ OLED ใน Board ที่ 2 ซึ่งผู้ใช้งาน จะต้องแก้โจทย์ผ่านเว็บ IoT Dashboard โดยมีแสง LED 3 สีสว่างขึ้นมา เมื่อผู้ใช้งานแก้โจทย์ได้ 1 ข้อ แสง 1 สี จะดับลง ต้องทำให้แสงดับทั้งหมด เสียงจึงจะหยุดดัง

alt text

อุปกรณ์ที่ใช้

  • สายไฟ ประมาณ 1 เมตร
  • Aluminum foil ขนาด 25 ตารางฟุต
  • LED สีแดง, เหลือง, เขียว อย่างละ 1 ตัว
  • ESP32S3 DevKitC-1 2 ตัว
  • Resistor 220Ω 3 ตัว
  • Battery 2 ตัว
  • Buzzer 2 ตัว
  • OLED 1 ตัว
ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-13 16:50:59 โดย b6610505276
กลุ่มที่ 19 : สุดจะตรึง กับ ino
ทศพร ลีฬพงษ์
ธนพรรธน์ หวังเพ็ชรงาม
วรุตม์ มาศสุวรรณ
ชื่อโครงงาน: เครื่องกระตุ้นการดื่มนำ เพื่อสุขภาพชีวิตที่ดีขึ้น
รายละเอียด:

ที่มา:

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


แนวคิดการออกแบบ:

มีการใช้ esp32 2 เครื่อง โดย ตัวแรกจะมีการใช้ IR sensor เพื่อตรวจว่ามีวัตถุเข้ามาใกล้ ที่กดนํ้าแล้วหรือไม่ จากนั้น sensor Ultrasonic Module จะเข้ามาทำงานในส่วนของการตรวจระดับความสูงของนํ้า โดยมีตำแหน่งในการวางของ ultrasonic sensor วางอยู่ด้านบนของภาชนะ ซึ่งจะมีการส่ง คลื่น ultra sonic wave ลงบนผิวนํ้า เพื่อใช้ในการวัดระยะของนํ้าและคำนวณปริมาตรของนํ้าในช่วงเวลาปัจจุบัน จากนั้น servo-moter จะทำงานและดึงให้นํ้าไหลออำจากภาชนะใส่นํ้า และเมื่อนำวัตุออกจากนะยะของ IR sensor แล้ว จะส่ง ข้อมูลไปยัง MQTT broker และแสดงปริมาณนํ้าที่เรากด และระดับนํ้าปัจจุบัน ลงใน NodeRed

alt text

esp32 ตัวที่สองประกอบกับBuzzerเอาไว้ทำหน้าที่แจ้งเตือนให้มาดื่มน้ำเป็นช่วงเวลา โดนต้องระบุข้อมูลอยากเพศและอายุและจะให้คำแนะนำปริมาณการดื่มน้ำต่อวัน การแจ้งเตือนต้องกดบอกเป้าหมายการดื่มน้ำใน1วันและกดปุ่มstart เพื่อเริ่มทำภารกิจ esp32ตัวนี่จะมีไลบรารี่บอกเวลาตอนเชื่อมต่อกับอินเตอร์เน็ตและจะหาช่วงเวลาที่ใกล้ที่สุด(เวลาชมเต็มหรือครึ่วชม)เพื่อนับถอยหลังให้เริ่มดื่มน้ำ1แก้วแล้วจากนั้นระบบจะนับถอยหลังทีละ1ชมเพื่อแจ้งเตือนต่อๆไป(การแจ้งเตือนจะมีเสียงออดดังเวลา10s, ดัง2s ช่วงเวลากินข้าวเช้า, เที่ยงและเย็นจนถึง6นาฬิกาเช้าวันถัดไป)จนจบภารกิจ(เวลาการทำภารกิจมีแค่ในช่วงเวลาของวันๆนั้น)


ตัวอย่าง ของ NodeRed:

alt text alt text


อุปกรณ์ที่ใช้:

  • ESP32-S3 x 2
  • sensor Ultrasonic Module x 1
  • buzzer SFM-27 x1
  • servo moter sg90s x1
  • small bucket (3.5L) x1
  • IR sensor module x1
  • Power supply 12V x1
  • model convert voltage to 5V breadboard x1

Github

ภาพถ่าย:
คลิปวีดีโอ:
ปรับปรุงล่าสุด 2024-03-13 21:10:59 โดย b6610505560