วันอาทิตย์ที่ 13 พฤษภาคม พ.ศ. 2561


Example Program for LINE Notify API

           LINE Notify เป็นบริการของทาง LINE Application ซึ่งเป็นบริการและช่องทางที่ถูกต้อง ท่านสามารถส่งข้อความการแจ้งเตือนใดๆ ไปยัง Line Account ของท่านเองผ่านการใช้ API ซึ่งเรียกผ่าน HTTP POST ข้อจำกัดของ LINE Notify คือ สามารถส่งแจ้งเตือนได้เฉพาะผู้ที่ขอใช้หรือกลุ่มที่ผู้ขอใช้เป็นสมาชิกเท่านั้น ไม่สามารถส่งข้อความไปยังตังบุคคลอื่นได้ บทความนี้จะนำเสนอตัวอย่างการส่งข้อความแจ้งเตือนจากอุปกรณ์ IoT (บอร์ด ESP32) ไปยัง Line Application

สิ่งที่ต้องเตรียมก่อน

1.       อุปกรณ์ IoT (ในบทความนี้ใช้บอร์ด ESP32 V.1 )


2.         Arduino IDE Program พร้อมติดตั้ง Library Core ของ WiFi ของบอร์ด ESP32



ขั้นตอนการทำงาน

            1. การขอ Access Token
             ก่อนที่เราจะใช้บริการของ “LINE Notify” เพื่อให้เราสามารถรับการแจ้งเตือนจากเว็บเซอร์วิสของทาง LINE นั้น ในการใช้งาน API ในทุก ๆ บริการ จะมีสิ่งที่เรียกว่า Access Token ไว้สำหรับเป็นรหัสที่ใช้ตอนจะเข้าใช้งาน โดยที่ LINE Notify API สามารถเข้าไปสมัครและขอรับ Token ได้ที่ https://notify-bot.line.me/my/

            หลังจากที่เข้าไปในหน้าเว็ปแล้ว ให้ทำการ “เข้าสู่ระบบ” ด้วย Line ID ของท่าน เมื่อเข้าสู่ระบบสำเร็จจะปรากฏชื่อของ Line ID ของท่าน และหลังจากนั้นให้คลิกที่ “ออก Tokenเพื่อรับ Token สำหรับนำมาใช้งาน


           ในเมนูของการออก Token ท่านจะต้องระบุดังนี้
·      ชื่อที่จะแสดงในการแจ้งเตือน
·      กลุ่มที่ต้องการส่งข้อความแจ้งเตือน หากท่านต้องการที่จะส่งข้อความแจ้งเตือนหาตัวท่านเองให้เลือก “รับการแจ้งเตือนแบบตัวต่อตัวจาก LINE Notify”
หลังจากใส่ข้อมูลครบถ้วนแล้ว ให้คลิกที่ปุ่ม “ออก Tokenท่านจะได้รับ Token ที่พร้อมนำมาใช้งานและได้รับข้อความเตือนมายัง Line ของท่าน ว่าได้ขอรับบริการของ LINE Notify เรียบร้อยแล้ว


          เมื่อได้ทำการออก Token เป็นที่เรียบร้อยแล้ว ในระบบจะแสดงการบริการที่เชื่อมต่ออยู่ ว่าตอนนี้เราได้ทำการเชื่อมต่อกับกลุ่มใดบ้าง และยังสามารถยกเลิกการเชื่อมต่อได้ด้วยหากต้องการ


         2. Code Program ของ ESP32
          หลังจากที่เราได้รับ Token จาก LINE Notify เป็นที่เรียบร้อยแล้ว หลังจากนั้นเราจะมาทำงานเขียนโปรแกรม ESP32 เพื่อที่จะส่งข้อความจากอุปกรณ์ไปยัง Line ที่เราได้ระบุเอาไว้ในข้างต้น

Code Program
หมายเหตุ
/*
 * Example Program For LINE Notify APL
 * MCU    : ESP32 V.1
 * Write By : Panya Hantula
 */
void Line_Notify(String message) ;

#include <WiFi.h>
#include <WiFiClientSecure.h>

// Config connect WiFi
#define WIFI_SSID "YOUR WIFINAME"
#define WIFI_PASSWORD "YOUR WIFIPASSWORD"

//--------- Line config
//--------- Get LINE_TOKEN From  https://notify-bot.line.me/th/
#define LINE_TOKEN "LINE ACCESS TOKEN"

String message = "Hi!  This is message from LINE Notify API.";

void setup() {
    Serial.begin(9600);

  WiFi.mode(WIFI_STA);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(WIFI_SSID);

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("connected: ");
  Serial.println(WiFi.localIP());

  //---------------------- Send Message --------------
  Line_Notify(message);
}

void loop() {
           // to do something;
}

void Line_Notify(String message) {
  WiFiClientSecure client;
  if (!client.connect("notify-api.line.me", 443)) {
    Serial.println("connection failed");
    return;  
  }



  String req = "";
  req += "POST /api/notify HTTP/1.1\r\n";
  req += "Host: notify-api.line.me\r\n";
  req += "Authorization: Bearer " + String(LINE_TOKEN) + "\r\n";
  req += "Cache-Control: no-cache\r\n";
  req += "User-Agent: ESP8266\r\n";
  req += "Connection: close\r\n";
  req += "Content-Type: application/x-www-form-urlencoded\r\n";
  req += "Content-Length: " + String(String("message=" +
                    
message).length()) + "\r\n";
  req += "\r\n";
  req += "message=" + message;
  Serial.println(req);
  client.print(req);
  delay(20);
    Serial.println("----- Sending --------");
    while(client.connected()) {
      String line = client.readStringUntil('\n');
      if (line == "\r") {
        break;
      }
  }
  Serial.println("Messages are sended...");
}









WiFi name
WiFi Password



Line Token

Message ที่ต้องการส่ง


ส่วนของโค้ดโปรแกรมที่ท่านจำเป็นต้องแก้ไขมีอยู่ด้วยกัน 3 ส่วนคือ
·        
         WIFI_SSID "YOUR WIFINAME"       กำหนดชื่อ WiFi ที่ต้องการเชื่อมต่อ                 
·        WIFI_PASSWORD "YOUR WIFIPASSWORD"        กำหนดรหัสผ่านของ WiFi
·        LINE_TOKEN "LINE ACCESS TOKEN"     กำหนด Token ที่ได้รับจาก LINE Notify
·        message = "Hi!  This is message from LINE Notify API.";        ข้อความที่ต้องการแสดง

            เนื่องจากไมโครคอนโทรลเลอร์ไม่รองรับ UTF-8 ทำให้ไม่รองรับการพิมพ์ภาษาไทย แต่หากต้องการส่งเป็นข้อความภาษาไทย ข้อความยาวหลายบรรทัด มีการเว้นวรรค มีอักษรพิเศษ จะต้องแปลงข้อความให้อยู่ในรูป URL Encode ก่อน โดยใช้บริการเว็บ http://meyerweb.com/eric/tools/dencoder/ เมื่อเข้าไปในเว็บ ให้พิมพ์ข้อความที่ต้องการ จากนั้นกดปุ่ม Encode ก็จะปรากฏข้อความที่ถูกแปลงแล้วออกมาแล้วให้ท่านนำข้อความที่ถูกแปลงไปใส่ในตัวแปร message ได้เลย


          3. Upload code Program ที่เขียนและทดสอบการทำงาน
เมื่อกดที่ Upload ในโปแกรม Arduino IED สำเร็จ บอร์ด ESP32 จะแสดงข้อสถานการณ์ทำงานผ่านทาง Serial Monitor ด้วย Baudrate: 9600 โดยโปรแกรมจะส่งข้อความเพียง 1 ครั้ง และเมื่อส่งข้อความสำเร็จจะแสดงข้อความ “Message are sended…..”


        หลังจากบอร์ด ESP32 แสดงข้อความ “Message are sended…..” จะเห็นได้ว่ามีข้อความแจ้งเตือนส่งมายัง Line ที่เรากำหนดเอาไว้ ซึ่งในบทความนี้ได้ส่งหาตัวผู้เขียนเอง ข้อความประกอบด้วย “ชื่อ” ที่ได้ตั้งเอาไว้ในตอนที่ออก Token ข้างต้น และหลังจากชื่อจะตามด้วย ข้อความ” ที่ระบุอยู่ในตัวแปร message ใน code program ก่อนที่จะโหลด


           4. สรุป
          ในบทความนี้ได้พูดถึงเรื่องการส่งการแจ้งเตือนจากอุปกรณ์ IoT (ESP32) มายัง Line Application ผ่านทาง LINE Notify เป็นบริการของทาง LINE บริการและช่องทางที่ถูกต้อง ท่านสามารถส่งความการแจ้งเตือนใดๆ ไปยัง Line Account ของตัวท่านเองหรือกลุ่มที่ท่านเป็นสมาชิกในกลุ่มนั้นได้ สามารถนำมาประยุกต์ใช้งานได้อย่างหลากหลาย เช่น อุปกรณ์ตรวจจับการทำงานของเครื่องจักรในโรงงาน ทำการแจ้งเตือนเมื่ออุปกรณ์ตัวนั้นมีปัญหาหรือรายงานสถานะการทำงานของเครื่อง เป็นต้น 






วันอังคารที่ 24 กันยายน พ.ศ. 2556

การทดสอบมาตรฐานทางเทคนิคของเครื่องส่งวิทยุกระจายเสียงสำหรับการทดลองประกอบกิจการวิทยุกระจายเสียง

          ระบบวิทยุกระจายเสียงในระบบการมอดูเลตเชิงความถี่ (Frequency Modulation : FM) ถูกนำมาใช้งานอย่างแพร่หลายในปัจจุบัน  เนื่องระบบ FM ให้คุณภาพเสียงที่ชัดเจนและเป็นระบบสเตอริโอ (Stereo) ซึ่งทำให้เกิดมิติของเสียงที่ได้ยิน สำหรับวิทยุกระจายเสียงของประเทศไทยใช้มาตรฐานของสหภาพโทรคมนาคมนานาชาติ (International Telecommunication : ITU) ในปัจจุบันสถานีวิทยุที่ทำการกระจายเสียงด้วยระบบ FM ได้เกิดขึ้นอย่างต่อเนื่อง ซึ่งอุปกรณ์เครื่องส่งวิทยุที่ใช้ในการกระจายเสียงนั้นส่วนใหญ่ไม่ผ่านการรับรองมาตรฐานจากคณะกรรมการกิจการกระจายเสียง กิจการโทรทัศน์ และกิจการโทรคมนาคมแห่งชาติ (กสทช.) จึงก่อให้เกิดปัญหาการรบกวนช่องความถี่อื่นๆ เช่น รบกวนช่องความถี่ข้างเคียง เป็นต้น ดังนั้นเพื่อแก้ปัญหาและป้องกันการรบกวนของช่องสัญญาณอื่นๆ อุปกรณ์เครื่องส่งวิทยุที่ใช้ในการส่งกระจายเสียงจะต้องได้รับการรับรองมาตรฐานทางเทคนิคของเครื่องส่งวิทยุกระจายเสียง

มาตรฐานทางเทคนิคเครื่องส่งวิทยุกระจายเสียงสำหรับการทดลองประกอบกิจการวิทยุกระจายเสียง
มาตรฐานทางเทคนิคเครื่องส่งวิทยุกระจายเสียง [1] ระบุลักษณะทางเทคนิคขั้นต่ำของเครื่องส่งวิทยุกระจายเสียงสำหรับการทดลองประกอบกิจการวิทยุกระจายเสียง ซึ่งมีการใช้งานในย่านความถี่วิทยุ 87.75 เมกะเฮิรตซ์ (MHz) ถึง107.75 เมกะเฮิรตซ์ (MHz) ที่มีการมอดูเลตแบบเอฟเอ็ม (FM) และมีช่องห่างระหว่างคลื่นพาห์ (Channel Spacing) 250 กิโลเฮิรตซ์ (kHz) ซึ่งมาตรฐานทางเทคนิคมีดังนี้


1. กำลังคลื่นพาห์ที่กำหนด (Rated Carrier Power)
นิยาม กำลังคลื่นพาห์ที่กำหนด หมายถึง กำลังคลื่นพาห์ (Carrier Power) ของเครื่องส่งวิทยุกระจายเสียงตามที่ผู้ผลิตประกาศ หรือแจ้งในเอกสารลักษณะทางเทคนิคของเครื่องส่งวิทยุกระจายเสียงนั้น โดยกำลังคลื่นพาห์ หมายถึง กำลังเฉลี่ย (Average Power) ที่ส่งไปโหลดเทียม (Dummy Load) ในขณะที่ไม่มีการมอดูเลต ซึ่งค่ากำลังคลื่นพาห์ที่วัดได้จากการทดสอบจะต้องมีค่าไม่เกิน ± 0.5 dB ของกำลังคลื่นพาห์ที่กำหนด

           ขีดจำกัด กำลังคลื่นพาห์ที่กำหนด (Rated Carrier Power) ที่อนุญาตให้ใช้งานจะต้องมีค่าไม่เกิน 500 วัตต์ (± 0.5 dB)

2. การแพร่แปลกปลอม (Conducted Spurious Emission)
           นิยาม การแพร่แปลกปลอม หมายถึง การแพร่ที่ขั้วต่อสายอากาศที่ความถี่วิทยุใดๆ ที่อยู่นอกเหนือแถบความถี่ที่จำเป็น (Necessary Bandwidth) และหมายความรวมถึงการแพร่ฮาร์มอนิก (Harmonic Emission) การแพร่พาราซิติก (Parasitic Emission) ผลจากการมอดูเลตระหว่างกัน (Intermodulation Product) และผลจากการแปลงความถี่ (Frequency Conversion Product) แต่ไม่รวมถึงการแพร่นอกแถบ (Out-of-Band Emission)

           ขีดจำกัด  กำลังของการแพร่แปลกปลอมสำหรับกิจการวิทยุกระจายเสียงในระบบเอฟเอ็ม (FM) ต้องต่ำกว่าค่ากำลังคลื่นพาห์ (Carrier Power) ในขณะที่ไม่มีการมอดูเลต อย่างน้อยที่สุดตามสูตรคำนวณที่กำหนด ดังนี้

46 + 10log P หรือ 70 dBc, โดยให้เลือกใช้ค่าที่ต่ำกว่า

โดยที่ P หมายถึง กำลังคลื่นพาห์ที่กำหนด มีหน่วยเป็นวัตต์ (Watt)
          
            ย่านความถี่ที่จะต้องทำการวัดการแพร่แปลกปลอม คือ ตั้งแต่ความถี่ 9 kHz ถึง 1 GHz โดยแบ่งย่านความถี่ดังนี้

ย่านความถี่
การตั้งค่า Resolution Bandwidth
(เครื่อง Spectrum Analyzer)
9 kHz – 150 kHz
1 kHz
150 kHz – 30 MHz
10 kHz
30 MHz – 1 GHz
100 kHz
*** หมายเหตุ   ตั้งค่า Video Bandwidth ประมาณ 3 เท่าของ Resolution Bandwidth

3. การแพร่นอกแถบ (Out-of-Band Emission)
           นิยาม การแพร่นอกแถบ หมายถึง การแพร่ที่ขั้วต่อสายอากาศที่ความถี่วิทยุใด ๆ ที่อยู่นอกเหนือแถบความถี่ที่จำเป็น (Necessary Bandwidth) ในขณะที่มีการมอดูเลตความถี่เสียงตามที่กำหนด โดยไม่รวมถึงการแพร่แปลกปลอม (Spurious Emission)

           ขีดจำกัด  การแพร่นอกแถบต้องอยู่ภายในขอบเขตที่กำหนดไว้ในภาพข้างล่างนี้

Frequency relative to the center of
The channel (kHz)
Relative level
(dBc)
-500
-85
-300
-85
-200
-80
-100
0
100
0
200
-80
300
-85
500
-85



วิธีการตั้งค่าสัญญาณ Audio เพื่อวัดการแพร่นอกแถบ (Out-of-band Emission)
1.  ตั้งค่าสัญญาณ Audio โดยให้ช่องสัญญาณทางด้านขวาเป็นหลัก
( ช่องสัญญาณทางด้านซ้าย (L) = ช่องสัญญาณทางด้านขวา (R)  -  6 dB )
2. ตั้งค่าสัญญาณ Audio ที่ความถี่ 1 kHz แล้วปรับความแรงของสัญญาณเพื่อให้ได้ Deviation ± 40 kHz (± 32kHz สำหรับระบบ Mono)
3.   วัดค่าความแรงของสัญญาณ Audio จากข้อ 2. ด้วย Noise Meter
4.   ถอดสัญญาณ Audio ออก แล้วแทนด้วย Colored Noise Generator มาตรฐาน
5.   วัดความเร่งของ Colored Noise Generator ด้วย Noise
6.   ปรับความแรงของ Colored Noise Generator เพื่อให้ได้ความแรงเท่ากับ
      ความแรงในข้อ 3
7.   อ่านค่า Spectrum ที่ได้เทียบกับขีดจำกัด (รูปที่ 1)

4. ค่าผิดพลาดทางความถี่ (Frequency Error)
           นิยาม ค่าผิดพลาดทางความถี่ หมายถึง ค่าแตกต่างระหว่างความถี่คลื่นพาห์ในขณะที่ไม่มีการมอดูเลต กับความถี่ที่ระบุ (Nominal Frequency) ของภาคเครื่องส่ง

           ขีดจำกัด ค่าผิดพลาดทางความถี่จะต้องไม่เกิน ± 2 กิโลเฮิรตซ์ (kHz) ของความถี่คลื่นพาห์ในขณะที่ไม่มีการมอดูเลต


5. ค่าเบี่ยงเบนทางความถี่ (Frequency Deviation)
           นิยาม ค่าเบี่ยงเบนทางความถี่ หมายถึง ค่าแตกต่างที่มากที่สุดระหว่างความถี่ขณะใดขณะหนึ่ง(Instantaneous Frequency) เมื่อมีการมอดูเลตกับความถี่คลื่นพาห์ในขณะที่ไม่มีการมอดูเลต

ขีดจำกัด ค่าเบี่ยงเบนทางความถี่จะต้องไม่เกิน ± 75 กิโลเฮิรตซ์ (kHz)

วิธีการตั้งค่าสัญญาณ Audio เพื่อวัดค่าเบี่ยงเบนความถี่ (Frequency Deviation)
1.  ตั้งค่าสัญญาณ Audio โดยให้ช่องสัญญาณทางด้านขวาเป็นหลัก
( ช่องสัญญาณทางด้านซ้าย (L) = ช่องสัญญาณทางด้านขวา (R)  -  6 dB )
2. ตั้งค่าสัญญาณ Audio ที่ความถี่ 1 kHz แล้วปรับความแรงของสัญญาณเพื่อให้ได้ Deviation ± 40 kHz (± 32kHz สำหรับระบบ Mono)
3.   วัดค่าความแรงของสัญญาณ Audio จากข้อ 2.
4.   เพิ่มความแรงของสัญญาณ Audio ที่วัดได้จากข้อ 2 ไปอีก 12 dB
5.   อ่านค่า Frequency Deviation ที่ได้ ซึ่งจะต้องไม่เกิน ± 75 kHz มีค่าความผิดพลาด
       ± 3%

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

Note.
การวัดค่าพารามิเตอร์ควรวัดที่ความถี่ต่ำ ความถี่สูงสุด และความถี่กึ่งกลางของย่านความถี่ที่ต้องการรับรองหรือความถี่ที่ใช้งานเท่านั้น



อ้างอิง 
[1] ประกาศคณะกรรมการกิจการกระจายเสียง กิจการโทรทัศน์และกิจการโทรคมนาคมแห่งชาติ เรื่อง หลักเกณฑ์การอนุญาตทดลองประกอบกิจการวิทยุกระจายเสียง พ.๒๕๕๕
[2] เอกสารประกอบการบรรยาย   "การทดสอบมาตรฐานทางเทคนิคของเครื่องส่งวิทยุกระจายเสียงสำหรับการทดลองประกอบกิจการวิทยุกระจายเสียง" , ผศ.ดร. รังสรรค์ ทองทา อาจารย์สาขาวิชาวิศวกรรมโทรคมนาคม มหาวิทยาลัยเทคโนโลยีสุรนารี นครราชสีมา


วันพฤหัสบดีที่ 12 กันยายน พ.ศ. 2556

โครงสร้างเครือข่ายประสาทเทียม (Neural Network)

                 โครงข่ายเครือข่ายประสาทเทียม ( Artificial Neural Network) คือ โมเดลทางคณิตศาสตร์หรือโมเดลทางคอมพิวเตอร์ที่มีลักษณะโครงสร้างและการทำงานคล้ายกับสมองของมนุษย์ โดยการประมวลผลจากการคำนวณแบบคอนเนคชันนิสต์ (Connection) แนวคิดเริ่มต้นของเทคนิคนี้ได้มาจากการศึกษาโครงข่ายไฟฟ้าชีวภาพ (Bio Electric Network) ในสมองของมนุษย์ ซึ่งประกอบด้วย เซลล์ประสาท (Neurons) และ จุดประสานประสาท (Synapses) ตามโมเดลนี้ ข่ายงานประสาทเกิดจากการเชื่อมต่อระหว่างเซลล์ประสาท จนเป็นเครือข่ายที่ทำงานร่วมกัน

Cr. [http://th.wikipedia.org]

                  โดยทั่วไปแล้วโครงสร้างเครือข่ายประสาทเทียมจะมีความสามารถในการเรียนรู้ข้อมูลต่างๆ ที่ป้อนให้กับระบบการเรียนรู้ ( Learning ) ซึ่งเป็นคุณลักษณะที่สำคัญของเครือข่ายประสาทเทียม ตัวเครือข่ายจะถูกฝึกสอนโดยการแสดงรูปแบบ (Pattern) ต่างๆ ที่ต้องการให้เครือยข่ายเรียนรู้ด้วยกฏการเรียนรู้ (Learning Rule) ซึ่งความสามารถนี้ทำให้เครือข่ายประสาทเทียมมีความแตกต่างไปจากโปรแกรมคอมพิวเตอร์ทั่วๆ ไป
                  เครือยข่ายประสาทเทียมจะทำการเก็บข้อมูลความรู้ (Knowledge) ในขั้นตอนการเรียนรู้ โดยการเก็บไว้ที่น้ำหนักประสาท (Synaptic Weights) ซึ่งโครงสร้างของตัวเซลล์ประสาท (Neurons) ในเครือข่ายประสาทเทียมนั้นมีรูปแบบมากมายหลายชนิด โครงสร้างดังกล่าวเป็นองค์ประกอบที่สำคัญของการเรียนรู้ของเครือข่ายที่ทำให้เกิดการปรับเปลี่ยนค่าน้ำหนักหระสาทที่แตกต่างกันออกไป ไม่ว่าจะเป็นจำนวนของเซลล์ประสาท กฏการเรียนรู้ เป็นต้น  

Cr.  [อาทิตย์ ศรีแก้ว , “หนังสือ ปัญญาเชิงคำนวณ พิมพ์ครั้งที่ 1สาขาวิศวกรรมไฟฟ้า วิศวกรรมศาสตร์ มหาวิทยาลัยเทคโนโลยีสุรนารี]


                 เครือข่ายประสาทเทียมมีการนำมาประยุกต์ใช้งานหลากหลายรูปแบบ รูปแบบหนึ่งที่ถูกนำมาประยุกต์ใช้งานกันอย่างแพร่หลาย คือ การสร้างแบบจำลองจากข้อมูล Input และ Output ตัวอย่างเช่น หากมีระบบควบคุมการให้น้ำสำหรับปลูกพืชในโรงเรือนโดยอัตโนมัติ และการให้น้ำแต่ละครั้งจะขึ้นอยู่กับ อุณหภูมิ ความชื้น ปริมาณความเข้มแสง อายุของพืชที่ปลุก เพื่อที่จะกำหนดปริมาณของน้ำที่จะให้กับพืช จากตัวอย่างที่ได้กล่าวมาแล้วนั้นจะเห็นได้ว่าตัวแปรทั้งหมดมีอยู่ 5 ตัวแปร แบ่งเป็นข้อมูล Input 4 ตัวแปร และ Output 1 ตัวแปร ซึ่งโดยทั่วไปแล้วจะสร้างแบบจำลองทางคณิตศาสตร์ของระบบควบคุมนี้ เพื่อให้ได้ปริมาณของน้ำที่ถูกต้องและเหมาะสม ซึ่งการสร้างแบบจำลองทางคณิตศาสตร์นี้เป็นเรื่องที่ยุ่งยากและซับซ้อนอย่างยิ่ง 
                  ดังนั้นจึงมีการประยุกต์ใช้งานเครือยข่ายประสาทเทียมสำหรับการสร้างแบบจำลองนี้ขึ้น เพื่อลดขั้นตอนทางคณิตศาสตร์ ลดความซับซ้อนของแบบจำลอง เป็นต้น การประยุกต์ใช้งานเครือข่ายประสาทเทียมสามารถอธิบายโครงสร้างอย่างคราว ๆ ได้ดังรูป 
                


                 ในบทความนี้จะนำเสนอการเริ่มต้นการใช้งานของเครือข่ายประสาทเทียม โดยจะยกตัวอย่างการประมาณค่า sine โดยจะสมมุติว่าเราไม่รู้สมการ sine แต่รู้ค่าที่เป็น Input และ Output ของสมการ ดังนั้นเราจะประยกต์ใช้งานเครือข่ายประสาทเทียมเพื่อประมาณค่าของสมการ เครือข่ายประสาทเทียมมีโครงสร้างแบบหลายชั้น (Mulit - Layer Neural Network) และใช้กฏการเรียนรู้แบบแพร่กลับ (Back-propagation) และเขียนโปรแกรมการจำลองจากโรปแกรม Matlab และใช้ Neural Network Toolbox ที่อยู่ในโปรแกรม Matlab
                    จากรูป กราฟ sine ที่แสดงนี้จะเป็น output ของเครือขายประสาทเทียม โดยที่เครือข่ายระสาทเทียมมีโครงสร้างและคำสั่งดังนี้


net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF)

PR
R x 2 matrix of min and max values for R input elements

Si
Size of ith layer, for Nl layers

TFi
Transfer function of ith layer (default = 'tansig')

BTF
Backpropagation network training function (default = 'trainlm')

BLF
Backpropagation weight/bias learning function (default = 'learngdm')

PF

Performance function (default = 'mse')


ตัวอย่างโปรแกรม

Code for Matlab.

1.     P = 0:0.01:22.5;
2.     T = sin(P);

3.     net = newff([0 22.5],[5 10 1],{'tansig' 'tansig' 'purelin'});

4.     net.trainParam.epochs = 500;
5.     net.trainParam.goal = 0.001;
6.     net = train(net,P,T);
7.     Y = sim(net,P);
8.     plot(P,T,P,Y,'r')


โครงสร้างของเครือข่ายประสาทเทียม 

ตัวแปร P จะมีค่าตั้งแต่ 0-22.5 โดยแต่ละค่ามีแตกต่างกัน 0.01 ซึ่งจะกำหนดเป็น Input
T เป็นค่าที่ได้จาก Function Sine ซึ่งจะกำหนดให้เป็น Output
- ตัวแปร net คือ แบบจำลองเครือข่ายประสาทเทียม 
- จำนวน Layer = 3 Layer 
- ค่าสูงสุด 22.5 , ค่าต่ำสุด 0
- จำนวน Node ของแต่ละ Layer   5  10  1
  ** หมายเหตุ จำนวน Node ของ Output จำเป็นต้องมีค่าเท่ากับ Output
- Transfer Function ของแต่ละ Layer   tansig  tansig  purelin
- จำนวนรอบการคำนวน (Epochs) = 500 รอบ
- ค่า MSE ที่ต้องการให้มีค่าต่ำที่สุด = 0.001
- ตัวแปร Y เป็นค่า Output ที่ได้จาก เครือข่ายประสาทเทียม 

          ผลการสร้างแบบจำลองและประมาณค่าที่ได้จากเครือข่ายประสาทเทียมเมื่อนำมาเปรียบเทียบกับข้อมูลที่เป็น Output จาก Function Sine ได้ผลการทดสอบดังรูป
              จากรูปกราฟเส้นสีน้ำเงินคือค่าที่ได้จาก Function Sine และเส้นสีแดงค่าค่าที่ได้จาก Neural Network จากกราฟจะเห็นได้ว่า ค่าที่ได้จาก Neural Network มีความใกล้เคียงกับค่าที่ใช้ในการฝึกสอน (ค่าที่ได้จาก Function Sine) แต่ก็ยังเกิดค่าที่ผิดพลาดเมื่อมี Amplitude เข้าใกล้ 1 และ -1 อันเนื่องจากการกระบวนการฝึกสอนและโครงสร้างของ Neural Network ซึ่งถ้าเป็นระบบที่มีขนาดของแบบจำลองที่ใหญ่ จำเป็นจะต้องพิจารณาพารามิเตอร์ต่าง ๆ เพื่อให้เกิดความเหมาะสมด้วย

              จากตัวอย่างที่นำมาเสนอนี้แสดงให้เห็นว่า เครือข่ายประสาทเทียม (Neural Network) สามารถที่จะสร้างแบบจำลองที่ให้ค่า Output ใกล้เคียงกับข้อมูลจริง ซึ่งจากความสามารถในการประมาณค่านี้ทำให้เครือข่ายประสาทเทียมนิยมนำมาใช้งานสำหรับการสร้างแบบจำลองต่าง ๆ ที่ไม่อาจจะระบุลักษณะแบบจำลองทางคณิตาสาตร์ได้ และนอกเหนือจากนี้ยังนำการประยุกต์ใช้งานในรูปแบบอื่น ๆ อีกมากมาย ตัวอย่างเช่น โปแกรมจัดจำใบหน้า โปรแกรมอ่านป้ายเบียนยานพาหนะ เป็นต้น