Giter Club home page Giter Club logo

weathertoday-compro's Introduction

Project Introduction กล่องพยากรณ์อากาศสุดอัจฉริยะ!!

สวัสดีครับ พวกเรากลุ่ม 4 Yod Kuman ขอเสนอโปรเจค "Weather Today" โดยเป็นโปรเจค Microcontroller Arduino เกี่ยวกับ การพยากรณ์อุณหภูมิ สภาพฝนฟ้าอากาศในแต่ละวัน โดยมีการแจ้งเตือนผ่านระบบLine หลักการทำงาน มาจากระบบSensor ตรวจจับอุณหภูมิ ความชื้น และปริมาณน้ำฝน ในขณะนั้นซึ่งตัว ผลิตภัณฑ์ในโปรเจคของเรานั้นมีชื่อว่า "Intelligent Weather Box" สิ่งนี้เป็นสิ่งที่เป็นประโยชน์ต่อผู้ใช้งานเป็นอย่างมาก ทำให้ผู้ใช้งานสามารถรู้อุณหภูมิ ความชื้น ในทุกๆเวลาตามที่เรากำหนดจะให้แจ้งเตือนแล้ว ยังสามรถรู้ได้ว่าฝนกำลังจะตกหรือไม่ และแจ้งเตือนผู้ใช้งานเมื่อฝนตกผ่านระบบLine ซึ่งสะดวกต่อผู้ใช้งานในปัจจุบัน


Video Present รีวิวสาธิตการใช้งาน

รับชม Video Click Below Here!!

Video Review Intellignt Box


Features ฟังก์ชั่นที่ตอบสนองต่อผู้ใช้งาน

สำหรับการใช้งานเครื่อง Intelligent Weather Box ก็จะมีฟังก์ชั่นย่อยต่างๆ ในการแจ้งเตือนเกี่ยวกับสภาพอากาศ เช่น

  • ฟังก์ชั่นการบอกค่าอุณหภูมิ
  • ฟังก์ชั่นการบอกค่าความชื้นในอากาศ
  • ฟังก์ชั่นการแจ้งเตือนสภาพอากาศ ณ ขณะนั้น
  • ฟังก์ชั่นการแจ้งเตือนเมื่อฝนตก
  • ฟังก์ชั่นกราฟสรุปอุณหภูมิและความชื้น

โดยทุกระบบที่กล่าวมานั้น เราสามารถปรับเปลี่ยนเวลาการแจ้งเตือน และข้อความการเตือนได้ด้วยตนเอง


Equipment อุปกรณ์ที่ใช้การจัดทำ

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

Installation ขั้นตอนการติดตั้งสำหรับผู้ใช้งาน

กรณีที่ผู้ใช้งานต้องการจะติดตั้งตั้งค่าต่างๆเอง สำหรับการใช้งานนั้น ผู้ใช้จะต้องทำการโหลดโปรแกรม Arduino และ Library ต่างๆมาติดตั้งบนคอมพิวเตอร์ของคุณ

  • วิธีติดตั้งโปรแกรมClick!!
  • วิธีติดตั้งไลบรารี่ต่างๆClick!!

เมื่อทำการติดตั้งProgram เสร็จให้ทำการโหลดไฟล์ Project arduino และLibrary ต่างๆ ด้านล่างนี้

  • Arduino File ไฟล์ที่ใช้ในการรันโปรแรม Click!!
  • Library ที่ใช้ในโปรเจค กลุ่มเราได้ทำการรวมไว้ให้แล้วเรียบร้อย สามารถDowloadได้ Click!! ปล.แตกไฟล์ libraries.rar แล้วนำไปแทนโฟลเดอร์ libraries ที่อยู่ในDocument/arduino ได้เลยครับ

Setting การตั้งค่าเพื่อเริ่มต้นการใช้งาน

เริ่มต้นให้ผู้ใช้ทำการเปิดไฟล์Weatherbox.inoในโปรแกรม Arduino จะแสดงหน้าต่างและโค้ด ดังรูปข้างล่าง ในส่วนของ #define DHTTYPE DHT22 ,DHTPIN D2 ไม่ต้องทำการเปลี่ยนหากผู้ใช้ต้องการตั้งค่าสายต่อช่องเดิม

สิ่งที่ผู้ใช้งานจะต้องตั้งค่ามีดังนี้

  1. #define LINE_TOKEN_TMP1 และ #define LINE_TOKEN_TMP2 ให้ทำการเปลี่ยนTOKEN Lineของผู้ใช้เอง โดยวิธีการรับTokenLine สามารถทำตามคลิปนี้ได้เลยWatch tutorial click!! หรือขั้นตอนด้านล่างดังนี้

    Login Linenotify

    ก่อนที่จะใช้งานเครื่อง Intelligent Weather Box ลูกค้าจำเป็นต้องเข้าไปที่หน้าเว็บไซต์ของ Line notify เพื่อทำการเข้าสู่ระบบของ Line
    1. ให้กด Log in ที่มุมขวาบน
    2. เข้าสู่ระบบของ Line ให้เรียบร้อย
    3. จากนั้นเลือก My page

    Token access Linenotify

    ต่อไปจะเป็นการขอ Token ที่ใช้สำหรับรับการแจ้งเตือนผ่าน Line notify
    1. กดเลือก Generate token
    2. ตั้งชื่อที่ผู้ส่งในกรอบสี่เหลี่ยมแรก
    3. เลือกผู้รับจากรายชื่อที่ให้เลือก (สามารถเลือก 1 ต่อ 1 หรือเลือกส่งเป็นกลุ่มได้)
    4. จากนั้นกดที่ Generate token ปุ่มสีเขียว
    5. จากนั้นจะได้รับ Token ไปใส่ไว้ในโค้ดเพื่อระบุเป้าหมายที่เราจะส่งไป
  2. นำToken ที่ได้จากข้างต้น มาใส่ ใน #define LINE_TOKEN_TMP1 และ #define LINE_TOKEN_TMP2 ด้านในเครื่องหมาย "" ตามที่วงไป
  3. เปลี่ยนการเชื่อมต่อระบบ internet Wifi ด้วยการเปลี่ยนชื่อไวไฟ หรือ ssid และ รหัสผ่านไวไฟ หรือ password ตามที่ผู้ใช้ต้องการให้ ESP82660 เชื่อมต่อกับไวไฟตัวไหนของผู้ใช้งาน
  4. ในส่วนนี้ จะเป็นส่วนที่จะใช้ตั้งค่าเวลาว่าผู้ใช้งานอยากให้ข้อมูลแจ้งเตือนต่างๆผ่านระบบLinenotify ทุกๆกี่ชั่วโมง

1 วินาที = delay(1000) 1 นาที = delay(60000) 1 ชั่วโมง = delay(3600000) 5. ส่วนสุดท้ายผู้ใช้งาน สามารถเปลี่ยนข้อความในการส่งเข้าระบบLineได้ โดยแก้ไขข้อความตรงคำสั่งLinenotify() แต่ทางกลุ่มผู้จัดทำไม่แนะนำให้แก้ไข เนื่องจากได้มีการตั้งค่าให้ส่งข้อความนั้นๆ ตามเงื่อนไขต่างๆที่เซนเซอร์ตรวจจับไว้แล้ว หากผู้ใช้งานต้องการเปลี่ยนโปรดศึกษาและเปรียบเทียบก่อนทำการเปลี่ยน เพื่อป้องกันการคลาดเคลื่อนหรือความหมายเปลี่ยนของการแจ้งเตือนเข้าสู่ระบบLine 6. หลังจากนั้นให้เราเชื่อต่อ Arduino ด้วยสาย USB แล้วกด upload ลง NodeMCU


Notification การแจ้งเตือนผ่านระบบ Line สู่ผู้ใช้งาน

เมื่อเราทำการ `upload` โค้ดและ `ESP82660` ได้ทำการเชื่อมต่อผ่านแล้ว เซนเซอร์จะทำการอ่านค่าอุณหภูมิ ความชื้นและปริมาณน้ำฝน จากนั้นมีการแจ้งเตือนส่งถึง `user` ที่เราได้เลือกเอาไว้ ในส่วนของข้อมูลที่แจ้งเตือนผ่าน LINEจะมีการเรียงลำดับข้อมูลดังนี้

อันดับ หัวข้อ ข้อมูลที่ได้
1 อุณหภูมิ เป็นการแจ้งข้อมูลอุณหภูมิ ณ สถานที่ๆเราได้ติดตั้งเครื่องเอาไว้ จะแจ้งเป็นองศาเซลเซียส (c)
2 ความชื้น เป็นการแจ้งข้อมูลความชื้นในอากาศ โดยข้อมูลที่ได้จากคิดเป็นค่า %
3 เตือนสภาพอากาศ เป็นการแจ้งเตือนในกรณีที่สภาพอากาศอยู่ในเกณฑ์ที่ร้านมาก หนาวมาก หรืออยู่ในขึ้นปกติ เพื่อให้ user ได้เตรียมตัวรับมือกับสภาพอากาศได้ในทันที
4 เตือนฝนตก เป็นการแจ้งเตือนในกรณีที่พบปริมาณน้ำฝน นอกเหนือจากสภาพอากาศทั่วไป จะแจ้งเตือนให้ user ได้เตรียมตัวรับมือกับฝนที่เกิดขึ้น
5 กราฟสรุป เป็นการสรุปข้อมูลอุณหภูมิจากเวลาที่ได้ตั้งไว้ เพื่อบอกถึงอัตรการเปลี่ยนแปลงของอุณหภูมิ และความชื้นทุกๆช่วงเวลานั้นที่มีการเปลี่ยนแปลง

Example notification ตัวอย่างข้อความแจ้งเตือนให้กับผู้ใช้งาน

  • Normal สภาพอากาศปกติ
  • Raining เมื่อฝนกำลังตก
  • Graph กราฟแสดงอุณหภูมิและความชื้นในอากาศ


Members

Name-Lastname GitHub Username StudentID
Pattharanan Ruengchana @PattharananZ 61070156
Rattasit Sangwanpet @toeyratsit 61070184
Wareerat Pinkaraket @pamnana 61070206
Sarunpon Chaichitatorn @pengsrp 61070217

Assistant Teacher

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) สถาบันเทคโนโลยีพระจอมเกล้าเจ้าคุณทหารลาดกระบัง


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.