ที่มาและความสำคัญ
สัตว์เลี้ยงของเราต้องการอาหารเพื่อสร้างพลังงานและเพื่อพัฒนาการของมัน โดยสัตว์แต่ละชนิดก็ต่างมีข้อจำกัดของอาหารที่รับประทานที่แตกต่างกัน ดังนั้นสัตว์เลี้ยงแต่ละตัวจึงไม่สามารถรับประทานอาหารประเภทเดียวกันหรือปริมาณที่เท่ากันได้ ซึ่งเป็นปัญหาสำหรับผู้เลี้ยงที่มีสัตว์เลี้ยงหลายตัวภายในบ้าน พวกเราจึงมีแนวคิดที่จะประดิษฐ์อุปกรณ์เครื่องให้อาหารสัตว์อัตโนมัติที่สามารถแยกแยะชนิดของสัตว์เลี้ยงได้โดยจำแนกจากสีของเครื่องแต่งกายที่สัตว์เลี้ยงของเราสวมใส่อยู่ รวมถึงระบบแจ้งเตือนปริมาณอาหารภายในถังเก็บอาหาร และยังสามารถปรับปริมาณอาหารได้ตามต้องการ อีกทั้งยังมีระบบป้องกันการให้อาหารเกินความจำเป็น โดยการกำหนดระยะเวลาที่จะให้อาหารในครั้งถัดไปจากการให้อาหารครั้งก่อนหน้าได้
ฟีเจอร์ที่สำคัญ
แนวคิดและหลักการ
เครื่องให้อาหารสัตว์เลี้ยง ประกอบด้วย Microcontroller NodeMCU ESP-WROOM-32S ทั้งหมด 5 ตัว โดยแต่ละตัวทำหน้าที่ที่แตกต่างกัน ดังนี้
บอร์ดที่ 1 สำหรับการ configuration ค่า parameter ต่างๆ
บอร์ดที่ 2 สำหรับวัดระดับ ปริมาณอาหารภายในถังเก็บอาหาร
บอร์ดที่ 3 สำหรับตรวจจับสัตว์เลี้ยง และสีเครื่องแต่งกายของสัตว์เลี้ยง
บอร์ดที่ 4 สำหรับควบคุมบานเปิดปิดจานอาหารเพื่อป้องกันการกินอาหารที่มากเกินไป
บอร์ดที่ 5 สำหรับควบคุมบานเปิดปิดอาหารที่ออกมาจากถังเก็บอาหาร
อุปกรณ์ที่ใช้
Development Tools
Source Code : github.com/tawanchaiii/Embedded_Foodfeeder
สรุป Feature ทั้งหมด
1. Farm Management System เป็นระบบที่สามารถให้เจ้าของไร่สามารถจะจัดการได้ว่าให้แปลงไหนปลูกพืชชนิดอะไรและสามารถใส่ได้ว่าใครเป็นคนรับผิดชอบแปลงนั้นๆ โดยสามารถที่จะควบคุมได้ผ่าน Front-end โดยมี feature ย่อยๆดังนี้
2. Automatic Watering System เป็นระบบที่จะคอยรดน้ำให้กับพืชในแต่ละแปลงแบบอัตโนมัติ โดยค่าความชื้นที่เหมาะสมจะขึ้นอยู่กับว่าในแปลงนั้นปลูกอะไร โดยในฐานข้อมูลจะเก็บข้อมูลว่า พืชชนิดไหนจะเหมาะกับความชื้นในระดับใด
3. Weather Report เป็นระบบจะแสดงผลบนหน้าเว็บว่าสภาพอากาศในบริเวณแปลงนามีสภาพอากาศเป็นอย่างไร เช่น อุณหภูมิ (celsius), ความชี้นในอากาศ และ ปริมาณนำ้ฝน (เนื่องจากว่าการทดสอบจริงจะต้องไปทดสอบในสถานการณ์จริงซึ่งอาจจะทำให้ Hardware พังได้จึงไม่สามารถ Demo ให้ดูได้)
4. Plant Status Per Field Report เป็นระบบที่จะอ่านค่าความชื้นในดินในแต่ละแปลงและนำมาแสดงผลในหน้าเว็บ
5. Farm Status Report เป็นระบบที่จะคอยตรวจจับสถานะฟาร์มต่างๆเช่น ตรวจสอบควัน, ตรวจสอบเปลวไฟ โดยถ้าเกิดสามารถตรวจจับอย่างใดอย่างนึง และระบบก็จะตรวจสอบด้วยว่าปริมาณน้ำในถังที่จะใช้ในการรดนำ้ต้นไม้เหลือเท่าไหร่
6. LCD Weather Report จะเป็นการแสดงผลสภาพอากาศบริเวณรอบๆฟาร์ม โดยจะแสดงผลบนจะ LCD
7. Automatic Gate เป็นระบบเปิดปิดเข้าประตูฟาร์มอัตโนมัติ โดยจะใช้ระบบเปิดประตูแบบไร้สัมผัสและมีระบบคอยควบคุมการปิดไม้กั้นเพื่อความปลอดภัยของคนใช้งาน
1. Automatic Watering System
โดยระบบรดน้ำต้นไม้จะใช้อุปกรณ์ Hardware
Automatic Watering System
2. Plant Status Per Field Report
โดยระบบแสดงสถานะในแต่ละแปลงจะใช้อุปกรณ์ Hardware
Moisture Per Field Report
3. Weather Report and Farm Status Report
โดยเป็นระบบที่จะรายงานสภาพอากาศและสถานะบริเวณรอบๆฟาร์ม โดยจะใช้อุปกรณ์ Hardware
Weather Report
Farm Status Report
4. LCD Weather Report
จะเป็นการรายงานสภาพอากาศบนจอ LCD โดยจะใช้อุปกรณ์ Hardware
5.Automatic Gate เป็นบอร์ดที่จะควบคุมการเปิดปิดประตูโดยมี Hardware
โดยเราจะใช้ระบบไร้สัมผัสในการเปิดประตูโดยจะใช้ servo มาเป็นที่เปิดไม้กั้น ซึ่งสามารถเอามือมา hover รอบ sensor ได้โดยจะใช้ Ultrasonic ในการตรวจสอบว่ามีมือมาบังอยู่หรือไม่ และจะใช้ Mini PIR Motion sensor เพื่อตรวจสอบว่าเป็นมือคนจริงๆหรือไม่เพื่อป้องกันการมีวัตถุมาวางขวาง Ultrasonic โดยประตูจะถูกเปิดค้างอย่างน้อย 5 วินาที และการปิดประตูจะมีการตรวจสอบว่ามีวัตถุหรือคนขวางประตูอยู่หรือไม่ โดยจะใช้ Laser Emitter และ LDR ในการข่วยตรวจสอบโดยจะตั้งให้ Laser Emitter ส่องตรงไปหา LDR ถ้ามีวัตถุหรือคนขวางอยู่ LDR จะอ่านค่าได้น้อยจะทำให้ประตูยังเปิดค้างไว้อยู่ แต่ถ้าไม่มีวัตถุมาขวาง LDR จะอ่านค่าจาก Laser ได้ตรงและประตูจะปิดทันที
กลุ่มพวกเราได้เลือกที่จะใช้ MQTT ของ Eclipse Mosquitto เพื่อลด latency โดยจะทำการ host ไว้บน computer เลย
ทุกบอร์ดที่ใช้จะมี ESP32 (NodeMCU) สำหรับการสื่อสารระหว่างบอร์ดแบบไร้สาย (Wireless) โดยใช้ ESP-NOW โดยบอร์ดจะมี 3 ประเภท คือ บอร์ดกลางสำหรับการสุ่มเลข , บอร์ดกลางสำหรับแสดงสถานะผู้เล่น , บอร์ดผู้เล่น 3 บอร์ด โดยใช้ ArduinoIDE ในการพัฒนา
บอร์ดกลางสำหรับการสุ่มเลข
อุปกรณ์ที่ใช้ในส่วนของ Hardware
7-Segment Board Schematic
บอร์ดกลางสำหรับแสดงสถานะผู้เล่น
อุปกรณ์ที่ใช้ในส่วนของ Hardware
Status Board Schematic
บอร์ดผู้เล่น 3 บอร์ด (3 ผู้เล่น)
Player Schematic
ในปัจจุบัน มีข่าวเกี่ยวกับผู้ป่วยติดเตียงที่ไม่ได้รับการดูแลอย่างเต็มที่จำนวนมาก อันเนื่องมาจากหลายปัจจัย เช่น ปัจจัยด้านการบริหารเวลา บุคคลในครอบครัวส่วนใหญ่ไม่มีเวลาดูแล เพราะต้องใช้เวลาในการทำงานหาเลี้ยงครอบครัว หรือปัญหาด้านการดูแล ที่มีความยากลำบาก เนื่องจากในบางครั้ง ผู้ดูแลอาจต้องใช้เวลาในการทำกิจกรรมอื่นๆ ด้วย ทำให้ผู้ป่วยติดเตียงไม่ได้รับการดูแลอย่างเต็มที่เท่าที่ควร เราเลยคิดค้นระบบ Home Care for Bedridden Patients เหมาะสำหรับครอบครัวที่ต้องการดูแลผู้ป่วยติดเตียงที่บ้าน โดยระบบจะมีสิ่งอำนวยความสะดวกต่างๆ มากมายให้ทั้งผู้ป่วย และผู้ดูแลใช้ ระบบนี้จะทำให้การบริหารเวลาของผู้ดูแลทำได้ง่ายมากขึ้น ลดความกังวลกับสิ่งที่อาจจะเกิดขึ้นกับผู้ป่วยได้ในระดับหนึ่ง อีกทั้งผู้ป่วยยังได้มีเวลาส่วนตัวในการทำกิจกรรมที่อยากทำอีกด้วย
esp_now.h
Micropiano 1 บอร์ด จะมีไฟ LED สีม่วงและปุ่มกดอย่างละ 8 อันสำหรับเล่นโน้ตดนตรี โดยเรียงโน้ตจาก C3 ไปจนถึง C4 เรียงจากซ้ายไปขวา ตามลำดับ และมีปุ่มกด 3 อันสำหรับเลือกเพลง 3 เพลง โดยมีวิธีการเล่น 2 วิธี คือ
ส่งข้อมูลสถานะการเล่นไปยังบอร์ดของผู้ดูแล โดยใช้ Library esp_now.h
esp_now.h
จากนั้นนำค่าสถานะที่ได้ มาแสดงผลที่บอร์ดส่วนของผู้ดูแลด้วย โดยผลลัพธ์ที่แสดง มีดังนี้esp_now.h
จากนั้นใช้ Library HTTPClient.h
และ ArduinoJson.h
ในการส่งข้อมูลสถานะทั้งหมดไปยัง ServerWire.h
, WiFi.h
, esp_now.h
, DebouncedSwitch.h
, HTTPClient.h
, ArduinoJson.h
✨ Source Code ทั้งหมด สามารถดูได้ที่ → github.com/TuaMumEmbeded
🎬 Video Presentation สามารถดูได้ที่ → youtu.be/Lt0JppcsTvc
smachmole project เกิดจากการที่พวกเรากลุ่ม "จาพนมดงรัก" ชื่นชอบการเล่นเกมตีตัวตุ่นที่อยู่ในห้างสรรพสินค้าสมัยก่อน ซึ่งเป็นที่นิยมมากในหมู่เด็กๆในยุคนั้น แต่ ณ ปัจจุบัน โซนตู้เกมส์ในห้างสรรพสินค้านั้นได้ถูกยกเลิกไปเกือบหมดแล้วทำให้เกมส์ตีตัวตุ่นที่พวกเราชื่นชอบได้หายไป จึงเป็นแรงบันดาลใจให้เกิด smachmole project ขึ้น
โดยพวกเราได้นำอุปกรณ์ที่มีในชั้นเรียนมาประยุกต์และปรับใช้เพื่อสร้างเป็นเกมส์ตีตัวตุ่นในฉบับของพวกเรา!!!
เริ่มเล่นโดยกดปุ่ม start แล้วให้ผู้เล่น 1 คน จากแต่ละฝั่งเริ่มกดปุ่มตามที่ไฟขึ้น โดยจะมีผู้เล่นอีก 1 คนจากแต่ละฝั่งเล่นเกมเป่ายิ้งฉุบ โดยเลือกกดปุ่ม1ใน3ปุ่มเพื่อเลือกว่าจะออกอะไรแล้วผู้ชนะจะไปลดแต้มของอีกฝั่ง เกมจะจบภายใน30วิหลังกด start
โดยเราได้ดีไซน์ให้มี main board (ESP32) ในการรันโปรแกรมหลักๆโดยที่จะมี start board และ mole board เป็นบอร์ดเสริมในการส่งข้อมูลเพื่อให้ main board สามารถรันโปรแกรมได้
มีต้นเเบบมาจาก 1 ในเกมส์ของ มังงะญี่ปุ่นเรื่อง Alice in Borderland โดยเป็นเกมที่ผู้เล่นจะส่งเลข 0-100 เเละนำเลขมาหาค่าเฉลี่ยเเละคูณด้วย 0.8 ผู้ชนะจะเู้ป็นผู้ที่เลือกเลขใกล้เคียงที่สุด โดยผู้เล่นคนอื่นจะ -1 คะเเนน เมื่อคะเเนนลบถึง 10 ผู้เล่นก็จะเเพ้เกม เเละจะมีกฎพิเศษเพิ่มทุกครั้งเมื่อผู้เล่นถึงจำนวน 4 ,3 เเละ 2
"ตู้รับซื้อขยะอัจฉริยะกว่าคนทำ" เป็นตู้รับซื้อขยะที่สามารถแยกประเภทขยะพลาสติกกับโลหะได้ จากนั้นจะทำการจ่ายเงินให้ผู้ใช้ตามจำนวนขยะที่มีการใส่ลงมา รวมถึงมีระบบสะสมยอดเงินผ่านเบอร์โทรศัพท์ ในกรณีที่ตู้มีจำนวนเหรียญไม่เพียงพอต่อการจ่าย และมีระบบที่ช่วยแจ้งเตือนผู้ดูแลผ่านไลน์ ในกรณีที่เหรียญในตู้หมดหรือขยะเต็มถัง เพื่อให้ตู้อยู่ในสถานะที่พร้อมให้บริการอยู่เสมอ นอกจากนี้ผู้ใช้เองก็สามารถเช็คปริมาณขยะได้ผ่านหน้าจอ OLED ที่ตัวถังด้วย
ได้รับแรงบันดาลใจมาจากเครื่อง Vending machine ในห้างสรรพสินค้า ผนวกกับได้อ่านเกี่ยวกับโครงงานถังขยะอัจฉริยะ จึงได้ไอเดียว่าถ้ามีถังขยะที่นอกจากแยกขยะได้แล้ว ยังสามารถให้เงินแก่ผู้แยก เสมือนร้านขายของเก่าขนาดย่อมสาขาใกล้บ้าน นอกจากจะอำนวยความสะดวกแก่คนแยกขยะแล้ว ยังส่งเสริมการแยกขยะและการออมด้วย
โดยบอร์ดทั้งหมดนั้นจะส่งข้อมูลกันผ่าน ESP-Now ยกเว้นบอร์ด LineNotify ที่ต้องมีการเชื่อม Wifi จึงจะรับข้อมูลทั้งหมดผ่าน UART ที่เชื่อมต่อกับบอร์ด TrashStatus
Board 1: DetectMatal
ทำหน้าที่ในการคัดกรองขยะว่าเป็นโลหะหรือไม่ด้วย inductive proximity sensor แล้วทำการแยกโดยใช้ servo ในการหมุนให้ขยะลงไปในถังที่ถูกต้อง
Board 2: Display
เป็นส่วนที่มีการติดต่อกับผู้ใช้ โดยแบ่งเป็นส่วนการแสดงผลด้วย OLED และการใช้ปุ่มควบคุมตัวเลือกและการทำงานของตู้ โดยจะเริ่มการทำงานจากการเลือก 2 ฟังก์ชันหลัก คือการทำการใส่ขยะใหม่ หรือการรับยอดเงินที่ตู้ติดค้างไว้
Board 3: ChangeCoin
ประกอบด้วยอุปกรณ์
ทำหน้าที่ในการจ่ายเหรียญ โดยคำนวณจากยอดเงินที่ต้องจ่ายและจำนวนของเหรียญแต่ละประเภทที่เหลืออยู่
Board 4: DebtDB
Board 4 DeptDB
ทำหน้าที่เก็บยอดหนี้ที่ตู้ค้างชำระผู้ใช้ โดยใช้เบอร์โทรศัพท์ในการระบุตัวตน เก็บร่วมกับข้อมูลยอดหนี้ นอกจากนี้ยังทำหน้าที่ในการควบคุม keypad และแสดงผลหมายเลขที่ผู้ใช้กรอกผ่านทางจอ OLED
Board 5: TrashStatus
ประกอบด้วยอุปกรณ์
ทำหน้าที่ตรวจสอบปริมาณขยะ และส่งต่อข้อมูลอื่น ๆ ให้บอร์ด LineNotify
บอร์ด 6 : LineNotify
ประกอบด้วยอุปกรณ์
ทำหน้าที่ส่งข้อมูลไปแจ้งเตือนในกลุ่มของผู้ดูแล ผ่าน LineNotify * รอรับข้อมูลจากบอร์ด TrashStatus ที่เชื่อมต่อข้อมูลกับบอร์ดอื่น ๆ ผ่าน UART * เชื่อมต่อ WiFi และแจ้งเตือนผ่าน Line Notify ในกรณีที่ถังขยะไหนเต็ม ถังขยะไหนมีการเคลียร์ขยะแล้ว กรณีเหรียญหมดและกรณีมีการเติมเหรียญแล้ว
ในส่วนของบอร์ด DetectMetal และ บอร์ด Display นั้นจะใช้ Arduino IDE ในการพัฒนา ส่วนบอร์ดที่เหลือนั้น ใช้การพัฒนาโดย PlatformIO ในรูปแบบของ VSCode Extension (ปัจจัยจากความถนัดของผู้พัฒนาแต่ละบอร์ด)
ศึกษาข้อมูลเพิ่มเติมได้ที่ --> https://github.com/Smarter-Trash
เป็นเกมกระดานเขาวงกต 2 ผู้เล่น โดยที่ในเขาวงกตจะมีไอเทมให้เก็บเพื่อเพิ่มค่า status ผู้เล่นควบคุมโดยการทอดลูกเต๋า สุ่มก้าวเดินในบอร์ดไปเรื่อยโดยผลัด turn กัน เมื่อตัวละครของทั้งสองผู้เล่นมาเผชิญหน้ากัน ก็จะให้ต่อสู้กันโดยผลัดกันทอดเต๋าซึ่งจะมีผลต่อความเสียหายที่สร้างได้จนฝ่ายใดฝ่ายหนึ่งเลือดเหลือน้อยกว่าหรือเท่ากับ 0 ก็จะเป็นผู้แพ้ อีกฝ่ายก็จะเป็นผู้ชนะ
เนื่องจากในยุคปัจจุบันเป็นยุคที่เต็มไปด้วยโซเชียลเน็ตเวิร์ก ซึ่งอาจส่งผลให้เกิดปัญหาการติดเกมภายในเด็กจนส่งผลกระทบต่อการพัฒนาการ ทางผู้จัดทำโครงงานได้เล็งเห็นถึงความสำคัญของปัญหานี้ จึงได้จัดทำบอร์ดเกมแนว Turn-based ซึ่งมีการส่งเสริมให้เกิดการคิด ฝึกการใช้ทักษะและไหวพริบ และยังช่วยเพิ่มปฏิสัมพันธ์ระหว่างผู้เล่นด้วยกันเองซึ่งเป็นการพัฒนาทักษะการเข้าสังคม
ใช้ WirelessProtocol ESP-NOW ในการสื่อสาร
- เปลี่ยนเทิร์น
เมื่อผู้เล่นทอดลูกเต๋าครบ GameEngine จะส่งค่าสถานะที่บอกให้เปลี่ยน Turn ไปให้ผู้เล่น
- เข้าโหมดต่อสู้
เมื่อเปลี่ยนจากโหมดปกติไปเป็นโหมดต่อสู้ GameEngine จะส่งค่าสถานะที่บอกว่าเป็นโหมดต่อสู้ไปให้ผู้เล่น
- จบเกม
เมื่อมีผู้เล่นคนใดคนหนึ่ง HP น้อยกว่าหรือเท่ากับ 0 GameEngine จะส่งค่าสถานะที่บอกว่าจบเกมไปให้
- PlayerControllerBoard 🡆 GameEngineBoard
- ทุกครั้งที่เดิน 1 ก้าวเสร็จ
เมื่อผู้เล่นเคลื่อนที่ PlayerController จะส่งตำแหน่ง ค่าสถานะการชนกำแพง(หากชน) และจำนวนคครั้งในการเดินที่เหลือไปให้ GameEngine
- หลังทอดเต๋า
หลังจากผู้เล่นทอดเต๋า PlayerController จะส่งค่าลูกเต๋าไปให้ GameEngine
- GameEngineBoard 🡆 DisplayBoard
- เริ่มเกม
เมื่อเริ่มเกม GameEngine จะส่งชนิดItem ของแต่ละตำแหน่งกับ Turn ของผู้เล่นไปให้
- เก็บไอเทม
เมื่อ GameEngine พบว่ามีผู้เล่นเก็บItem GameEngine จะทำการส่งตำแหน่ง Item ที่ถูกเก็บไปให้
- game over cause wallhit
ส่งค่าสถานะการจบเกมไปให้
- เข้าโหมดต่อสู้
เมื่อเข้าโหมดต่อสู้ GameEngine จะส่งค่าสถานะที่บอกว่าเป็นโหมดต่อสู้ไปให้
- เปลี่ยนเทิร์น
เมื่อมีการเปลี่ยนTurn GameEngine จะส่งค่าTurn ของผู้เล่นไปให้
- PlayerControllerBoard 🡆 PlayerBoard
- เกิดการเปลี่ยนแปลง HP
PlayerController จะส่งค่า HP ปัจจุบันไปให้
- หลังจากทอดเต๋าต่อสู้
PlayerController จะส่งค่าสถานะการโจมตีไปให้
นาฬิกาปลุกสำหรับคนไม่ยอมตื่น ให้ user เล่นเกมถึงจะแก้นาฬิกาปลุกได้ 3 เกม ได้เเก่
สามารถตั้งเวลาปลุกผ่านเว็บได้ เมื่อเล่นเกมครบจะปิดนาฬิกาได้
เนื่องจากผู้จัดทำได้เล็งเห็นว่าปัญหาเรื่องการตื่นสายหรือนาฬิกาปลุกแล้วชอบเลื่อนเวลา ทางผู้จัดทำเลยสนใจจะทำโครงงานเพื่อแก้ปัญหาเหล่านี้โดยทางผู้จัดทำได้พัฒนานาฬิกาปลุกที่ต้องเล่นเกมให้ผ่านทั้งหมด นาฬิกาถึงจะหยุดเตือน
ทำหน้าที่แสดงเวลาปัจจุบันและแจ้งเตือนเมื่อถึงเวลาที่ตั้งแจ้งเตือนผ่านเว็บไซต์เอาไว้
ประกอบไปด้วย
ทำหน้าที่เป็นเกม โดยบังคับให้Userเล่นจนผ่าน เพื่อไปยังด่านถัดไปหรือปิดนาฬิกาปลุก
ประกอบไปด้วย
ทำหน้าที่เป็นเกม โดยบังคับให้Userเล่นจนผ่าน เพื่อไปยังด่านถัดไปหรือปิดนาฬิกาปลุก
ประกอบไปด้วย
ทำหน้าที่เป็นเกม โดยบังคับให้Userเล่นจนผ่าน เพื่อไปยังด่านถัดไปหรือปิดนาฬิกาปลุก
ประกอบไปด้วย
ทำหน้าที่เป็นตัวแจ้งเตือนสถานะเกมส์ว่าเล่นจบหรือยังโดยเริ่มแรกเมือนาฬิกาปลุกดัง ไฟแจ้งเตือน 3 ดวง จะติดขึ้น แล้วหลังจากนั้นเมือเล่นแต่ละเกมส์จบไฟจะค่อยๆดับไปทีละดวง และเมือเล่นจนครบ 3 เกมส์ไฟจะดับหมดและ นาฬิกาปลุกจะปิดลง
Medicine Cabinet เป็นระบบจัดยาอัตโนมัติที่เช็คปริมาณยาและสั่งยาตามต้องการได้ โดยภายในตู้จะทำการเก็บยาเอาไว้ในรูปแบบแถวเรียงลงมา (stack) และแบ่งออกเป็น column ตามประเภทของยาแต่ละชนิด โดยจะมีระบบหน้าจอแสดงปริมาณยาที่คงเหลือในตู้ยา และมีการจัดทำระบบ web application สำหรับใช้ฟีเจอร์ต่าง ๆ เช่น ฟีเจอร์ในการเลือกชนิดยาที่ต้องการได้ เป็นต้น
เนื่องจากทางผู้จัดทำเล็งเห็นว่าการจัดการยาของผู้ป่วยเป็นเรื่องยากสำหรับผู้ป่วยบางกลุ่ม และในปัจจุบันมีเทคโนโลยีและอุปกรณ์หลายประเภทที่สามารถถูกนำมาประยุกต์ใช้ ทำให้การบริหารจัดการเรื่องนี้ง่ายขึ้น ทางผู้จัดทำจึงมีความสนใจที่จะนำความรู้จากวิชาระบบฝังตัว (Embedded System) มาใช้ในการสร้างโมเดลตู้ยาจำลองเพื่อช่วยแก้ปัญหา pain point ต่าง ๆ ในการบริหารจัดการยาสำหรับผู้ป่วย หรือ เภสัชกร
เป็นระบบที่ทำการควบคุมการจ่ายยาจากผ่านทางหน้าเว็บไซต์โดยที่หน้าเว็บไซต์จะมีส่วนที่ชื่อ Order ซึ่งเป็น form ให้ผู้ใช้สามารถใส่ตัวเลขสำหรับจำนวนขวดยาที่ต้องการให้ถูกจ่ายออกไปได้ตามที่ต้องการ (และหากไม่ต้องการยาชนิดใด ๆ ก็ไม่จำเป็นต้องใส่ 0 เพราะระบบจะใส่ 0 ให้เองโดยอัตโนมัติในช่องนั้น ๆ) และเมื่อกด Add ก็จะทำให้คำสั่งจ่ายยาปรากฎด้านล่าง (ในส่วน Order List) พร้อมกับส่งคำสั่งไปที่ backend ให้ทำการควบคุมการเปิด-ปิดตู้ยาต่อไป สุดท้ายหากทำการจ่ายยาครบทั้งหมด คำสั่งจ่ายใน Order List จะหายไปทันที
นอกจากนี้แล้วบนหน้าเว็บไซต์ในส่วนบนสุดก็จะมีการแสดงสถานะของตู้ยา (slot) แต่ละตู้ว่าในตู้หรือ slot นั้นมีปริมาณขวดยาอยู่มากน้อยเพียงใด
บนบอร์ดจะมี Numpad เพื่อให้ผู้ใช้งานกดเลขตู้ยาที่ต้องการ เมื่อกดเลขตู้แล้วบอร์ดจะทำการส่ง mqtt ไปให้กับ backend เพื่อให้ backend จัดการสั่งยาจากตู้ที่ผู้ใช้งานกด โดยจะได้ยาจากตู้ยานั้น ๆ 1 ขวดต่อการกด numpad 1 ครั้ง เช่น กดปุ่มหมายเลข 2 จะได้ขวดยาจากตู้หมายเลข 2 จำนวน 1 ขวด
บอร์ดจะรับข้อมูลสถานะของตู้ยาจาก backend และมีจอ LCD แสดงสถานะของตู้ยาแต่ละตู้ โดยสถานะของตู้ยามีอยู่ 4 สถานะ
❗หมายเหตุ: ที่สถานะ empty บอกถึงปริมาณขวดยาในตู้ยามีประมาณ 0-9% เนื่องจากผู้จัดทำไม่ต้องการให้ตู้ยาไม่มีขวดยาเหลืออยู่ในตู้เลย
บนบอร์ดจะมี LDR sensor, solenoid และ micro servo เพื่อใช้ควบคุมการจ่ายยา โดยที่
หลักการทำงาน คือ LDR sensor ส่งข้อมูลให้บอร์ดจากนั้นบอร์ดประมวลผลแล้วส่งให้ backend เมื่อได้รับคำสั่งจาก backend ให้ส่งยาบอร์ดจะสั่งให้ micro servo ทำงานก่อน (เปิดไม้กั้น) จากนั้นให้ solenoid ดันขวดยาออกมา ในระหว่างนี้ solenoid จะทำการกั้นขวดยาขวดถัดไปไม่ให้ตกลงมา หลังจากนั้นให้ micro servo ทำงาน (ปิดไม้กั้น) แล้วให้ solenoid กลับไปตำแหน่งเดิม
บนบอร์ดจะมี Infrared sensor (Avoidance) โดยตัว sensor จะอยู่ที่ปลายพื้นเอียงเพื่อใช้ตรวจจับขวดยาที่กลิ้งผ่านมาเพื่อเป็นการตรวจสอบว่าจำนวนขวดยาที่กลิ้งผ่านไปทั้งหมดตรงตามกับ order ที่สั่งไว้หรือไม่ โดยการกลิ้งผ่าน sensor 1 ครั้งจะลดจำนวนขวดยาใน order 1 ขวด
ArduinoJson.h
ESP32Servo.h
Keypad.h
LiquidCrystal_I2C.h
PubSubClient.h
string.h
WiFi.h
Wire.h
รวบรวมโค้ดทั้งหมดที่มีการใช้งานใน: Github
รายละเอียด💨
บ้านอัจฉริยะที่มาพร้อมกับระบบที่จะทำให้ผู้อยู่อาศัยใช้ชีวิตได้อย่างสะดวกสบายมากขึ้น ภายในบ้านประกอบไปด้วยหน้าต่างที่สามารถตรวจจับค่าแสงของภายนอก และทำการเปิดปิดม่านได้อัตโนมัติ ระบบตรวจจับและสัญญาณป้องกันควัน พร้อมระบบดูดควันออกเมื่อปริมาณมากเกินเกณฑ์ หลอดไฟอัจฉริยะที่จะทำการเปิดปิดได้อัตโนมัติเมื่อมีผู้พักอาศัยเดินเข้ามาในห้อง เครื่องปรับอากาศอัจฉริยะที่สามารถเปิดปิด และปรับค่าความแรงได้ตามอุณหภูมิ และจอLEDที่แสดงสถานะของเครื่องใช้ไฟฟ้าภายในบ้าน รวมถึงมีการส่งข้อมูลไปทางFront-endเพื่อให้ผู้ใช้สามารถเข้าถึงจากที่ใดก็ได้
ที่มาของโครงงาน💨
โครงงานนี้เกิดขึ้นมาจากสมาชิกที่มีความต้องการจะทำให้การใช้ชีวิตภายในบ้านสะดวกสบายมากยิ่งขึ้น และเนื่องจากเทคโนโลยีในปัจจุบันที่มีการก้าวกระโดดอย่างรวดเร็ว เราจึงคิดจะนำเทคโนโลยีสมัยใหม่เหล่านี้มาดัดแปลงเป็นบ้านอัจฉริยะ
อุปกรณ์ทั้งหมด💨
เครื่องมือที่ใช้ในการพัฒนา💨
ลักษณะการทำงาน💨
เป็นแบบจำจองบ้านผ่านการทำงานโดยอัตโนมัติผ่านโมดูลต่างๆ - Smart Curtain: จะใช้LDRในการวัดความสว่างของแสงไฟและใช้Servo ในการช่วยเปิดปิดผ้าม่าน - Auto Fan: จะใช้ DHT 22 ในการวัดอุณหภูมิภายในห้อง และใช้พัดลมที่ปรับความเร็วได้ตามอุณหภูมิโดยอุณหภูมิที่พัดลมจะปรับความเร็วในช่วงที่กำหนดไว้เท่านั้น - Smart Light: จะใช้ PIR ในการตรวจจับการเคลื่อนไหวของคนที่อยู่ภายในห้องแต่ละห้อง เมื่อเจอLEDก็จะทำงาน - Smoke Detector: MQ-2 Smoke Gas Sensor ในการตรวจจับควันโดยรอบหากพบควันจะมีเสียงแจ้งเตือนโดย Active Buzzer Module - Display: จะใช้จอ LEDในการแสดงข้อมูลในส่วนของ Room 1, Room 2, Room 3 คอยแสดงสถานะ LED แสดงค่าควันโดยรอบ แสดงสถานะผ้าม่านที่เปิดปิด และค่าอุณหภูมิห้อง อีกทั้งยังแสดงค่าทั้งหมดนี้ขึ้นไปทาง Front end
การทำงาน💨
Board1 แสดงค่าบนจอLED เกี่ยวกับสถานะของเครื่องใช้ไฟฟ้าอัจฉริยะ อุปกรณ์ภายในบอร์ด: ESP32 (NodeMCU-32S) 1 เครื่อง OLED I2C 1 ชิ้น
Board2 ใช้สัญญาณInfraredเพื่อตรวจสอบคนเข้าออกจากห้อง และทำการเปิดปิดไฟภายในห้องอัตโนมัติ อุปกรณ์ภายในบอร์ด: ESP32 (NodeMCU-32S) 1 เครื่อง MICRO PIR 3 ชิ้น LED DIODE 3 ชิ้น
Board3 ทำการตรวจวัดอุณหภูมิภายในห้อง เพื่อปรับความแรงของเครื่องปรับอากาศ และเปิดปิดโดยอัตโนมัติ อุปกรณ์ภายในบอร์ด: ESP32 (NodeMCU-32S) 1 เครื่อง DHT22 1 ชิ้น Fan Module DC Motor PWM Speed Control 1 ชิ้น
Board4 ระบบภายในห้องครัว โดยจะทำการตรวจวัดควันไฟภายในห้อง จากนั้นทำการระบายควันออกด้วยพัดลม พร้อมด้วยระบบแจ้งเตือนภัยเมื่อมีปริมาณควันมากเกินเกณฑ์ อุปกรณ์ภายในบอร์ด: ESP32 (NodeMCU-32S) 1 เครื่อง Passive buzzer 1 ชิ้น Fan Module DC Motor 1 ชิ้น MQ-2 Smoke Gas Sensor 1 ชิ้น
Board5 ระบบตรวจวัดปริมาณแสง(แดด)ที่ส่องเข้ามาในห้อง และทำการเปิดปิดม่านอัตโนมัติ อุปกรณ์ภายในบอร์ด: ESP32 (NodeMCU-32S) 1 เครื่อง LIGHTSENSER 1 ชิ้น Servo 1 ชิ้น
การใช้บริการในสำนักหอสมุดของมหาวิทยาลัยเกษตรศาสตร์ มีการจองห้องอ่านหนังสือส่วนตัว เพื่อให้พื้นที่ให้แก่นิสิตที่มาอ่านหนังสือกันเป็นกลุ่ม โดยทางพวกเราก็เคยได้ใช้บริการนี้มาแล้ว พวกเราจึงมีแนวคิดที่จะพัฒนาห้องสมุดส่วนตัวให้ล้ำหน้า และปลอดภัยกว่าเดิม
Alert ระบบของบรรณารักษ์ เป็นระบบที่จะคอยรับแจ้งเตือนจากส่วนอื่นๆ เพื่อมาแสดงผลบนหน้าจอที่โต๊ะของบรรณารักษ์ และมีปุ่มให้สำหรับบรรณารักษ์ใช้แจ้งเตือนไปที่ห้องต่างๆ
Gas detection เป็นระบบที่สามรถตรวจจับแก๊สและควันได้และเมื่อแก๊สหรือควันเกินกว่าค่าที่กำหนดไว้จะทำให้ buzzer ส่งเสียง และ หลอดไฟที่อยู่ในห้องติด เพื่อแจ้งผู้ใช้งาน
Sound detection เป็นระบบที่สามรถตรวจจับเสียงได้และเมื่อเสียงเกินกว่าค่าที่กำหนดไว้จะทำให้ buzzer ส่งเสียง และ หลอดไฟที่อยู่ในห้องติด เพื่อแจ้งผู้ใช้งาน
Automatic door คือระบบประตูเปิด-ปิดอัตโนมัติ จะทำงานเมื่อผู้ใช้ทำการกดรหัสผ่านทางปุ่มกด โดยรหัสจะเป็นเลข 4 หลัก ที่จะถูกสุ่มขึ้นมาโดยรหัสที่สุ่มมาจะถูกส่งไปให้กับทางบรรณารักษ์ให้รับทราบ หากผู้ใช้กดผิดจะแจ้งผู้ใช้ว่าไม่ให้เข้า ผ่านทางจอที่ติดอยู่ หากกดถูกประตูก็จะเปิดออกเป็นเวลา 5 วินาทีจึงจะปิดลง นอกจากนี้คนที่อยู่ด้านในสามารถที่จะกดปุ่มเปิดประตูได้ โดยประตูจะเปิดเป็นเวลา 5 วินาทีเช่นเดียวกัน แต่ผู้ใช้ก็สามารถที่จะกดปิดก่อน 5 วินาทีได้
Human detection เป็นระบบนับจำนวนคนอยู่ภายในห้อง เดิมแล้วห้องสมุดจำกัดจำนวนคนที่สามารถเข้าไปใช้บริการได้ แต่ไม่มีระบบนับจำนวนคน ระบบนี้จะมาช่วยแก้ไขให้บรรณารักษ์สามารถรับรู้ได้ว่าห้องใดมีจำนวนคนที่เกินกว่าที่กำหนดไว้
ข้อมูลเพิ่มเติม Line API Message Doc
Laser Fence
Motion Sensor System
Temperature Checking
Automatic Light
Source Code ทั้งหมด -> Embedded
เกม Love Letter เป็นเกมที่สนุกและสามารถส่งเสริมความสัมพันธ์ในกลุ่มเพื่อนซี้ โดยผ่านการทำกิจกรรมร่วมกัน โครงงานนี้มีเป้าหมายในการสร้างเกม Love Letter แบบอิเล็กทรอนิกส์ โดยใช้ Embedded System เพื่อนำความรู้ที่เรียนในวิชา Embedded System ไปประยุกต์ใช้ในโลกความเป็นจริง
โครงงานนี้ใช้บอร์ด ESP32 (NodeMCU) 4 บอร์ด, จอ OLED 4 อัน และ Matrix Keypad 4*4 3 อัน เพื่อสร้างเกม Love Letter สำหรับ 3คน เกมนี้มีบอร์ดกลางที่ควบคุมการกระทำของเกม และบอร์ดผู้เล่นที่ใช้ในการติดต่อกับผู้เล่น
บอร์ดกลางควบคุมการแจกการ์ด
บันทึกผลของเกม
สื่อสารกับบอร์ดผู้เล่นผ่าน ESP-Now
มี Button Switch สำหรับกดเริ่มเกมใหม่
ผู้เล่นจะเล่นเกมโดยใช้ Matrix Keypad
มี จอ OLED เพื่อดูการ์ดและสถานะของเกม
การสื่อสารระหว่างบอร์ดกลางและบอร์ดผู้เล่นจะใช้ ESP-Now เพื่อทำให้การสื่อสารเร็วขึ้นและไม่ต้องใช้วงจรอื่นๆ
กฎของเกมอ้างอิงจากใน https://en.wikipedia.org/wiki/Love_Letter_(card_game)
ต้องการประดิษฐ์อุปกรณ์สำหรับแจกไพ่ เพื่อป้องกันการโกงจากคนแจก และ ลดความผิดพลอดของคนแจก
หลักการจะเหมือนกับเครื่องยิงไพ่แต่มีโครงสร้างที่เรียบง่ายมากกว่า โดยจะมีกล่องสำหรับใส่ไพ่ และ ล้อสำหรับหมุนไพ่ออกจากกล่อง โดยสามารถ input เลขเข้าไปได้ 1-8 คน