สวัสดีครับ พวกเรากลุ่ม 4 Yod Kuman
ขอเสนอโปรเจค "Weather Today" โดยเป็นโปรเจค Microcontroller Arduino เกี่ยวกับ การพยากรณ์อุณหภูมิ สภาพฝนฟ้าอากาศในแต่ละวัน โดยมีการแจ้งเตือนผ่านระบบLine หลักการทำงาน มาจากระบบSensor ตรวจจับอุณหภูมิ ความชื้น และปริมาณน้ำฝน ในขณะนั้นซึ่งตัว
ผลิตภัณฑ์ในโปรเจคของเรานั้นมีชื่อว่า "Intelligent Weather Box" สิ่งนี้เป็นสิ่งที่เป็นประโยชน์ต่อผู้ใช้งานเป็นอย่างมาก ทำให้ผู้ใช้งานสามารถรู้อุณหภูมิ ความชื้น
ในทุกๆเวลาตามที่เรากำหนดจะให้แจ้งเตือนแล้ว ยังสามรถรู้ได้ว่าฝนกำลังจะตกหรือไม่ และแจ้งเตือนผู้ใช้งานเมื่อฝนตกผ่านระบบLine ซึ่งสะดวกต่อผู้ใช้งานในปัจจุบัน
สำหรับการใช้งานเครื่อง Intelligent Weather Box ก็จะมีฟังก์ชั่นย่อยต่างๆ ในการแจ้งเตือนเกี่ยวกับสภาพอากาศ เช่น
- ฟังก์ชั่นการบอกค่าอุณหภูมิ
- ฟังก์ชั่นการบอกค่าความชื้นในอากาศ
- ฟังก์ชั่นการแจ้งเตือนสภาพอากาศ ณ ขณะนั้น
- ฟังก์ชั่นการแจ้งเตือนเมื่อฝนตก
- ฟังก์ชั่นกราฟสรุปอุณหภูมิและความชื้น
โดยทุกระบบที่กล่าวมานั้น เราสามารถปรับเปลี่ยนเวลาการแจ้งเตือน และข้อความการเตือนได้ด้วยตนเอง
Accessory name | Description |
---|---|
NodeMCU ESP82660 |
โมดูล wifi ภายในมีเฟิร์มแวร์ทํางานในลักษณะ Serial-to-WiFi ที่ช่วยให้อุปกรณ์อื่นๆ เช่น MCU สามารถต่อเข้ากับ internet ได้โดยใช้ port serialและใช้คําสั่ง AT ในการควบคุมการทํางาน ต่อมาผู้พัฒนาได้พัฒนาเฟิร์มแวร์ NodeMcu ให้เป็น platform และใช้ภาษา LUA ในการเขียนโปรแกรม ด้วยความที่เป็น platform ที่สะดวกต่อการใช้งาน ทางผู้พัฒนาจึงจับ NodeMcu(ESP8266) ใส่เป็นบอร์ดหนึ่งใน Arduino IDE |
DHT22 |
เป็นเซ็นเซอร์สำหรับวัดอุณหภูมิและความชื้นที่มีความแม่นยำสูงในการวัด สามารถวัดได้ในย่านอุณหภูมิ ตั้งแต่ -40 องศาเซลเซียส ถึง +80 องศาเซลเซียส ความแม่นยำน้อยกว่า +-0.5เซลเซียส และวัดความชื้นสัมพัทธ์ได้ในย่าน 0-100%RH ความแม่นยำ +-2-5%RH |
Water Flow Sensor |
Sensor ที่ทำหน้าที่ในการวัดอัตราการไหลของของเหลว ที่ไหลผ่านตัวSensorหรือนำค่าที่วัดได้มาคำนวณเป็นปริมาณน้ำก็ได้ครับ โดยปกติแล้วค่าที่วัดได้จะออกมาเป็นสัญญาณ Pulse |
LED RGB |
หลอด LED RGB ภายในหลอดจะมี LED ทั้งหมด 3 แม่สี คือ สีแดง สีเขียว และสีน้ำเงิน อยู่ภายใน และมีขาต่อใช้งานทั้งหมด 4 ขา ประกอบด้วยขา Common R G และ B ซึ่งขา Common |
Breadboard MB-102 |
บอร์ดที่ใช้เสียบสายไฟ เซ็นเซอร์ หลอดไฟ ตัวต้านทานในการทดลองนั่นเอง |
Jumper Wires Male-Male |
สายไฟจัมเปอร์ ที่ใช้เชื่อมต่อส่งกระแสไฟต่างๆ ชนิดหัวผู้-ผู้ 20 CM |
Resistor |
คือ ตัวต้านทานที่ต่ออยู่ในวงจรไฟฟ้าทำหน้าที่ในการต้านการไหลของกระแสไฟฟ้าไหลผ่าน ทำด้วยลวดต้านทานหรือถ่านคาร์บอน เป็นต้น ในกรณีที่ มีความต้านทานมากจะยอมให้กระแสไฟฟ้าไหลผ่านได้น้อยลง หากกลับกัน หากมีความต้านทานน้อยจะยอมให้กระแสไฟฟ้าไหลผ่านได้มาก |
USB Cable |
ใช้เป็นหลักในการเชื่อมต่ออุปกรณ์ USB เข้ากับNodeMCU ESP8266 |
กรณีที่ผู้ใช้งานต้องการจะติดตั้งตั้งค่าต่างๆเอง
สำหรับการใช้งานนั้น ผู้ใช้จะต้องทำการโหลดโปรแกรม Arduino และ Library ต่างๆมาติดตั้งบนคอมพิวเตอร์ของคุณ
- Arduino File ไฟล์ที่ใช้ในการรันโปรแรม Click!!
- Library ที่ใช้ในโปรเจค กลุ่มเราได้ทำการรวมไว้ให้แล้วเรียบร้อย สามารถDowloadได้ Click!!
ปล.แตกไฟล์ libraries.rar แล้วนำไปแทนโฟลเดอร์ libraries ที่อยู่ในDocument/arduino ได้เลยครับ
เริ่มต้นให้ผู้ใช้ทำการเปิดไฟล์Weatherbox.ino
ในโปรแกรม Arduino จะแสดงหน้าต่างและโค้ด ดังรูปข้างล่าง
ในส่วนของ #define DHTTYPE DHT22 ,DHTPIN D2
ไม่ต้องทำการเปลี่ยนหากผู้ใช้ต้องการตั้งค่าสายต่อช่องเดิม
#define LINE_TOKEN_TMP1
และ#define LINE_TOKEN_TMP2
ให้ทำการเปลี่ยนTOKEN Lineของผู้ใช้เอง โดยวิธีการรับTokenLine สามารถทำตามคลิปนี้ได้เลยWatch tutorial click!! หรือขั้นตอนด้านล่างดังนี้ ก่อนที่จะใช้งานเครื่อง Intelligent Weather Box ลูกค้าจำเป็นต้องเข้าไปที่หน้าเว็บไซต์ของ Line notify เพื่อทำการเข้าสู่ระบบของ Line ต่อไปจะเป็นการขอ Token ที่ใช้สำหรับรับการแจ้งเตือนผ่าน Line notify- นำToken ที่ได้จากข้างต้น มาใส่ ใน
#define LINE_TOKEN_TMP1
และ#define LINE_TOKEN_TMP2
ด้านในเครื่องหมาย "" ตามที่วงไป - เปลี่ยนการเชื่อมต่อระบบ internet Wifi ด้วยการเปลี่ยนชื่อไวไฟ หรือ
ssid
และ รหัสผ่านไวไฟ หรือpassword
ตามที่ผู้ใช้ต้องการให้ ESP82660 เชื่อมต่อกับไวไฟตัวไหนของผู้ใช้งาน - ในส่วนนี้ จะเป็นส่วนที่จะใช้ตั้งค่าเวลาว่าผู้ใช้งานอยากให้ข้อมูลแจ้งเตือนต่างๆผ่านระบบLinenotify ทุกๆกี่ชั่วโมง
1 วินาที = delay(1000)
1 นาที = delay(60000)
1 ชั่วโมง = delay(3600000)
5. ส่วนสุดท้ายผู้ใช้งาน สามารถเปลี่ยนข้อความในการส่งเข้าระบบLineได้ โดยแก้ไขข้อความตรงคำสั่งLinenotify()
แต่ทางกลุ่มผู้จัดทำไม่แนะนำให้แก้ไข
เนื่องจากได้มีการตั้งค่าให้ส่งข้อความนั้นๆ ตามเงื่อนไขต่างๆที่เซนเซอร์ตรวจจับไว้แล้ว หากผู้ใช้งานต้องการเปลี่ยนโปรดศึกษาและเปรียบเทียบก่อนทำการเปลี่ยน
เพื่อป้องกันการคลาดเคลื่อนหรือความหมายเปลี่ยนของการแจ้งเตือนเข้าสู่ระบบLine
6. หลังจากนั้นให้เราเชื่อต่อ Arduino ด้วยสาย USB แล้วกด upload
ลง NodeMCU
เมื่อเราทำการ `upload` โค้ดและ `ESP82660` ได้ทำการเชื่อมต่อผ่านแล้ว เซนเซอร์จะทำการอ่านค่าอุณหภูมิ ความชื้นและปริมาณน้ำฝน จากนั้นมีการแจ้งเตือนส่งถึง `user` ที่เราได้เลือกเอาไว้ ในส่วนของข้อมูลที่แจ้งเตือนผ่าน LINEจะมีการเรียงลำดับข้อมูลดังนี้
อันดับ | หัวข้อ | ข้อมูลที่ได้ |
---|---|---|
1 | อุณหภูมิ |
เป็นการแจ้งข้อมูลอุณหภูมิ ณ สถานที่ๆเราได้ติดตั้งเครื่องเอาไว้ จะแจ้งเป็นองศาเซลเซียส (c) |
2 | ความชื้น |
เป็นการแจ้งข้อมูลความชื้นในอากาศ โดยข้อมูลที่ได้จากคิดเป็นค่า % |
3 | เตือนสภาพอากาศ |
เป็นการแจ้งเตือนในกรณีที่สภาพอากาศอยู่ในเกณฑ์ที่ร้านมาก หนาวมาก หรืออยู่ในขึ้นปกติ เพื่อให้ user ได้เตรียมตัวรับมือกับสภาพอากาศได้ในทันที |
4 | เตือนฝนตก |
เป็นการแจ้งเตือนในกรณีที่พบปริมาณน้ำฝน นอกเหนือจากสภาพอากาศทั่วไป จะแจ้งเตือนให้ user ได้เตรียมตัวรับมือกับฝนที่เกิดขึ้น |
5 | กราฟสรุป |
เป็นการสรุปข้อมูลอุณหภูมิจากเวลาที่ได้ตั้งไว้ เพื่อบอกถึงอัตรการเปลี่ยนแปลงของอุณหภูมิ และความชื้นทุกๆช่วงเวลานั้นที่มีการเปลี่ยนแปลง |
Name-Lastname | GitHub Username | StudentID | |
---|---|---|---|
Pattharanan Ruengchana | @PattharananZ | 61070156 | |
Rattasit Sangwanpet | @toeyratsit | 61070184 | |
Wareerat Pinkaraket | @pamnana | 61070206 | |
Sarunpon Chaichitatorn | @pengsrp | 61070217 |
Name | Lastname | |
---|---|---|
Asst. Prof. Dr.kitsuchart | pasupa | |
Asst. Prof. Dr.Panwit | Tuwanut |
Readme.md และ Source codeนี้ เป็นส่วนหนึ่งของวิชา การสร้างโปรแกรมคอมพิวเตอร์ Computer Programming หลักสูตรวิทยาศาสตร์บัณฑิต สาขาวิชาเทคโนโลยีสารสนเทศ ภาคเรียนที่ 2 ปีการศึกษา 2561 คณะเทคโนโลยีสารสนเทศ IT (Faculty of Information Technology, KMITL) สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง