IOT

การควบคุมปั๊ม Arduino + จอแสดงผล STONE HMI

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

  1. STVI056WT-01 หน้าจอสัมผัสแบบอนุกรมและบอร์ดอะแดปเตอร์ STONE V1.2;  
  2. จับคู่บอร์ดควบคุม Arduino;  

คำอธิบายสั้น ๆ ของฟังก์ชันอินเทอร์เฟซของระบบควบคุมใบมีดอัจฉริยะ  

โฮมเพจมีปุ่มสามปุ่ม ซึ่งสามารถกดเพื่อเข้าสู่ระบบสถานีไฟฟ้าพลังน้ำที่เกี่ยวข้อง ระบบควบคุมสถานีสูบน้ำ และอินเทอร์เฟซคู่มือผู้ใช้ (พร้อมปุ่มสำรอง) อินเทอร์เฟซคู่มือผู้ใช้แสดงเฟรมเวิร์กของระบบสาธิต ดังแสดงในรูปต่อไปนี้:

(อินเทอร์เฟซหน้าแรกของซอฟต์แวร์สาธิตการควบคุมการปรับอัจฉริยะของ Enlegi Blade)

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

           (อินเทอร์เฟซแสดงผลการควบคุมอัจฉริยะของสถานีไฟฟ้าพลังน้ำ)

คำอธิบายฟังก์ชันอินเทอร์เฟซระบบควบคุมสถานีสูบน้ำ แผนภาพด้านล่าง:

                            (ส่วนต่อประสานการทำงานของระบบควบคุมสถานีสูบน้ำ)

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

แนวคิดในการทำงาน:  

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

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

  1. การตั้งค่าฮาร์ดแวร์  
  2. A) เชื่อมต่อบอร์ดพัฒนา Arduino และ USB เข้ากับบอร์ดแปลงพอร์ตอนุกรม  
  3. B) เชื่อมต่อ หน้าจอสัมผัสหิน ด้วยบอร์ดดาวน์โหลดพอร์ตอนุกรม USB และบอร์ดอะแดปเตอร์พอร์ตอนุกรม USB  
  4. C) เชื่อมต่อหน้าจอพอร์ตอนุกรมและแหล่งจ่ายไฟของบอร์ดพัฒนา Arduino  
  • สร้างอินเทอร์เฟซ 3 อินเทอร์เฟซของหน้าจอพอร์ตอนุกรม ไฟล์ไอคอนเคลื่อนไหว และสไลเดอร์สเกล แล้วนำเข้ามาสู่แพลตฟอร์มการพัฒนาหน้าจอ STONE STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI);  

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

 ถัดไป จัดทำเอกสารกระบวนการพัฒนาเฉพาะ

ขั้นแรก ตั้งค่าการเชื่อมต่อฮาร์ดแวร์  

ทำงานได้ดีในการเชื่อมต่อทุกส่วนตามขั้นตอนการทำงาน:

ถัดไป สร้างภาพตัวบ่งชี้ ICON  

ปุ่มและมีด ICONS ที่ใช้ในโครงการนี้ทำขึ้นดังนี้:  

(สวิตช์ควบคุมสถานีปั๊ม, ไฟล์ไอคอนภาพเคลื่อนไหวมีด 8. แผนภาพการเรียกดูรายการ ICO)

ในแถบเมนูของ STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI) ให้คลิกเครื่องมือสร้างไอคอนใต้เมนูเครื่องมือ (T) เพื่อเปิดกล่องโต้ตอบเครื่องมือไอคอน คลิก "เลือกเส้นทางของรูปภาพ" ที่ด้านล่างของกล่องโต้ตอบเพื่อเลือกเส้นทางรูปภาพของไอคอน คลิกปุ่ม "สร้างไฟล์ ICON" เพื่อจัดแพ็คเกจไฟล์ BMP ในเส้นทางเพื่อสร้างไฟล์ ".ico" ที่แพลตฟอร์ม STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI) รู้จัก คลิกปุ่ม” แสดงตัวอย่าง “เพื่อดูรายการ ICON ในไฟล์ที่นำเข้า”.ico “ไฟล์บีบอัด  

ปุ่มสำหรับเคลื่อนไหวไอคอน BMP พิกเซลตามด้านบน (สร้างการควบคุมไอคอนตัวแปร ขนาดของตำแหน่งเดียวกันควรเหมือนกัน) สถานีสูบน้ำควบคุม 8 ภาพที่ตัดในโฟลเดอร์เดียวกัน จากนั้นที่ด้านซ้ายของหน้าจอ STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI) ให้เลือกการ์ดหน้าไอคอนและเพิ่มลงในไฟล์ Ico ที่บีบอัด 7 โดยใช้ปุ่ม "เพิ่มไอคอน" ใต้ "รายการไอคอน" ใส่รูปภาพทั้งหมด 6 รูปของสถานะสวิตช์ควบคุมของสถานีไฟฟ้าพลังน้ำลงในโฟลเดอร์อื่น แล้วจัดเรียงตามลำดับ 1-6 สร้าง “6. Ico” แล้วทางด้านซ้ายของไฟล์ STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI) หน้าจอเลือกการ์ดหน้าไอคอนและเพิ่มซิป "6. Ico” โดยใช้ปุ่ม “เพิ่มไอคอน” ใต้ “รายการไอคอน”  

ตอนนี้นำเข้าไอคอนรูปภาพลงใน STONE TOOL BOX (ซอฟต์แวร์ออกแบบ GUI) และสร้างปุ่มฟังก์ชัน  

ยังคงใช้วิธีการ 9-variable-animation icon.wmv ในโครงการนี้เพื่อให้ทราบถึงฟังก์ชันแอนิเมชั่น ภาพหน้าจอของการตั้งค่าพารามิเตอร์มีดังนี้:  

            (แผนภาพคุณลักษณะของ Variable ICON ของสถานีไฟฟ้าพลังน้ำ)

จากซ้ายไปขวาคือการตั้งค่าพารามิเตอร์ ICON ของตัวแปรสามตัวของหน้าฟังก์ชันสถานีไฟฟ้าพลังน้ำ: เริ่ม หยุด และสถานะ ที่อยู่หน่วยความจำของพวกเขาถูกตั้งค่าเป็นเดียวกัน (0x0039) และช่วงข้อมูลของพวกเขาเหมือนกัน ดังนั้นการเปลี่ยนแปลงจะถูกซิงโครไนซ์ ไฟล์ไอคอนคือ 6 Ico และหมายเลขซีเรียลของไอคอนที่เกี่ยวข้องคือ 1 และ 2, 3 และ 4, 6 และ 5 ตามลำดับ ซึ่งจะถูกเลือกตามสถานะจริง  

เอฟเฟกต์แอนิเมชั่นสถานะปุ่มทำได้ผ่านปุ่มที่เพิ่มขึ้น รูปต่อไปนี้แสดงพารามิเตอร์ของปุ่มเพิ่มทางด้านซ้ายและปุ่มลดค่าทางด้านขวา ที่อยู่คือ 0x0039 ซึ่งทั้งสองอย่างนี้เหมือนกับที่อยู่ของ Variable ICON

(ไดอะแกรมคุณลักษณะของปุ่มที่เพิ่มขึ้นโดยมีที่อยู่หน่วยความจำเดียวกัน)

(ไดอะแกรมแอตทริบิวต์ ICON แบบแปรผันของสถานะมีดปุ่มของสถานีสูบน้ำ)

จากซ้ายไปขวาคือการตั้งค่าพารามิเตอร์ ICON ของตัวแปรสี่ตัวของหน้าฟังก์ชันสถานีสูบน้ำ: ปุ่มเปิด/ปิด มีดเปิด/ปิด มีดโหมด และปุ่มโหมด ที่นี่ ไฟล์ไอคอนทั้งสองคือ 8.ICO และช่วงข้อมูลจะเหมือนกัน ซึ่งที่อยู่หน่วยความจำเดียวกันจะเปลี่ยนพร้อมกัน  

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

(ไดอะแกรมแอตทริบิวต์ปุ่มที่เพิ่มขึ้นของสถานะปุ่มสถานีสูบน้ำ Variable ICON Variable ด้วยที่อยู่หน่วยความจำเดียวกัน)

นอกจากนี้ กำลังขับของสถานีสูบน้ำจะแสดงโดยใช้ไอคอนเลื่อน ดังแสดงในรูปด้านล่าง:

แอตทริบิวต์พารามิเตอร์ของมันคือ:

(ไอคอนเลื่อนของกำลังขับของสถานีสูบน้ำ — กล่องคุณสมบัติของสไลเดอร์สเกล)

ไอคอนของการควบคุมมาตราส่วน Slider นี้ถูกเรียกใน DEMO 24.ico อย่างเป็นทางการ วิธีการเพิ่มไฟล์ 24.ico เหมือนกับด้านบน ที่อยู่หน่วยความจำของตัวควบคุม Slider Scale นี้คือ 0x0180 ซึ่งสามารถเขียนลงในโปรแกรม MCU ได้ 82 คำสั่ง (ดังแสดงในภาพด้านบนช่วงถูกตั้งค่าเป็น 0-100) เพื่อเปลี่ยนตำแหน่งของไอคอน  

โดยเฉพาะอย่างยิ่ง สถานะของปุ่มจ่ายไฟและโหมดในโปรเจ็กต์นี้อ่านได้จากที่อยู่หน่วยความจำ 0x0009, 0x000A และ 0x0039 ของหน้าจอพอร์ตอนุกรมผ่านคำสั่ง 83 

คำแนะนำที่ใช้มีดังนี้:  

A5 5A 04 83 00 09 02  

ข้อเสนอแนะของหน้าจอพอร์ตอนุกรมมีดังนี้:  

A5 5A 08 83 00 09 02 00 01 00 02  

00 01 ต่อไปนี้คือข้อมูล 2 ไบต์ของ 0x0009, 00 02 คือข้อมูล 2 ไบต์ของ 0x000A  

อ่านคำสั่ง 0x0039 เป็น:  

A5 5A 04 83 00 39 01  

ข้อเสนอแนะของหน้าจอพอร์ตอนุกรมคือ:  

A5 5A 06 83 00 39 01 00 01 หรือ  

A5 5A 06 83 00 39 01 00 02  

มีที่อยู่ข้อมูลห้ารายการที่จะเขียนถึง: 0x0020, 0x0160, 0x0180, 0x0260, 0x0280  

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

ในการส่ง 11 ไปยังจอแสดงผลตัวแปรข้อมูลหน้าจอสัมผัส ใช้คำสั่งต่อไปนี้:  

A5 5A 05 82 00 20 00 0B  

การดีบักการเขียนโปรแกรม  

รหัสมีดังนี้:  

/*

  frank8

  STONE และ Arduino COMM ระบบ enlaiji yepian

  เปิดไฟ LED เป็นเวลาหนึ่งวินาที จากนั้นดับหนึ่งวินาทีซ้ำๆ

  ที่อยู่ 0x0020 เป็นที่อยู่ของจำนวน YePian;

  ที่อยู่ 0x0160 เป็นที่อยู่ของ LiuLiang;

  ที่อยู่ 0x0180 คือที่อยู่ของ Bengzhan outpower;

  ที่อยู่ 0x0260 คือที่อยู่ของ Jiejujiao;

  ที่อยู่ 0x0280 คือที่อยู่ของการจ่ายน้ำ

  ที่อยู่ 0x0009 คือปุ่มเปิดปิด bengzhan;

  ที่อยู่ 0x000A คือคีย์โหมด bengzhan;

  ที่อยู่ 0x0039 คือกุญแจไฟน้ำ

  โค้ดตัวอย่างนี้อยู่ในไฟล์ของ Frank 20210611

 */

// Pin 13 มี LED เชื่อมต่อกับบอร์ด Arduino ส่วนใหญ่

// ตั้งชื่อมันว่า:

int นำ = 13;

int iYePian = 0; //0x0020 สำหรับจำนวน YePian!

int iGongLu = 0; //0x0180 สำหรับ The GongLu!

int iLiuLiang = 0; //0x0160 สำหรับ The now LiuLiang!

int iJiao = 0; // 0x0260 สำหรับ The JieJuJiao!

int iGongLuWater = 0; //0x0280 สำหรับ The Water GongLu! มูลค่า 0-50000!

int iLed = 1; // หน่วงเวลาจำนวน

int iNum = 0 ; // อ่านเป็น char num.

int iNum2 = 0; // อ่านเป็น char num2 สำหรับ ShuiDianZhan!

int iPower = 2; //รูปกุญแจ 0x0009

int iMode = 2; //รูปปั้นกุญแจ 0x000A

int iPowerWater = 2; //รูปกุญแจ 0x0039

// รูทีนการตั้งค่าทำงานหนึ่งครั้งเมื่อคุณกดรีเซ็ต:

การตั้งค่าเป็นโมฆะ () {                

  // เริ่มต้นพินดิจิตอลเป็นเอาต์พุต

  โหมดพิน (นำ, เอาต์พุต);     

  Serial.begin(115200); // เปิดฟังก์ชันการสื่อสารแบบอนุกรมและรอให้พอร์ตอนุกรมเปิดขึ้น  

ในขณะที่ (!Serial) {

    ; // รอให้พอร์ตอนุกรมเชื่อมต่อ จำเป็นสำหรับลีโอนาร์โดเท่านั้น

  }  

}

// รูทีนลูปทำงานซ้ำแล้วซ้ำอีกตลอดไป:

ห่วงเป็นโมฆะ () {

  int ในชาร์;

    ถ้า (iLed == 900) {     

//——- อ่านค่า 0x0009 และ 0x000A———- 

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            Serial.write(0x04); //ความยาว

            Serial.write(0x83); // อ่าน!

            Serial.write(0x00); // ที่อยู่ของปุ่มเพาเวอร์ bengzhan!

            Serial.write(0x09); // ที่อยู่ของปุ่มเพาเวอร์ bengzhan!

            Serial.write(0x02); // 0x0009 (กำลัง) และ 0x000A (โหมด)

//———ค่าส่งคืนของ STONE จะเป็น “A5 5A 08 83 00 09 02 00 01 00 02”——

     }

/*———————————————————————-*/     

    ถ้า (iLed == 800) {     

//——- อ่านค่า 0x0039———- 

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            Serial.write(0x04); //ความยาว

            Serial.write(0x83); // อ่าน!

            Serial.write(0x00); // ที่อยู่ของปุ่ม Power ShuiDianZhan!

            Serial.write(0x39); // ที่อยู่ของปุ่มเพาเวอร์ ShuiDianZhan!

            Serial.write(0x01); // 0x0039 (ปุ่มเปิดปิด) 

//———ค่าส่งคืนของ STONE จะเป็น “A5 5A 06 83 00 39 01 00 01 “——

     }

  // อ่านข้อความที่ส่งโดยพอร์ตอนุกรม:

  ถ้า (Serial.available () > 0) { inChar = Serial.read (); }

  ถ้า (inChar == 0x09) { iNum = 1 ; }

  if ((inChar == 0x02)&&(iNum == 1)) { iNum = 2 ; }

  if ((inChar == 0x00)&&(iNum == 2)) { iNum = 3 ; }

  ถ้า ((inChar == 0x01)&& (iNum == 3)) {  

      inNum = 4 ;

      ถ้า (iPower != 1){

          iPower = 1 ; //เปิดเครื่อง!

          อิหลิวเหลียง = 10 ;

          กงลู่ = 50 ;

          อีเปียน = 10 ;         

      }

   }

   ถ้า ((inChar == 0x02)&& (iNum == 3)) {  

      inNum = 4 ;

      iPower = 2 ; //ไฟดับ!

      อิหลิวเหลียง = 0 ;

      กงลู่ = 0 ;

      อีเปียน = 0 ;

   }

   if ((inChar == 0x00)&&(iNum == 4)) { iNum = 5 ; }

   ถ้า ((inChar == 0x01)&& (iNum == 5)) {  

      inNum = 0 ;

      iMode = 1 ; // โหมดดี!

   }

   ถ้า ((inChar == 0x02)&& (iNum == 5)) {  

      inNum = 0 ;

      iMode = 2 ; //โหมดปิด!

      ถ้า(iPower == 1)iGongLu = 60 ; //กงลู่ถูกตั้ง 60%!

   }

  //——0x0009 และ 0x000A อ่านคีย์ ok! iPower\iMode โอเค!—————-

   ถ้า (inChar == 0x39) { iNum2 = 1 ; }

  if ((inChar == 0x01)&&(iNum2 == 1)) { iNum2 = 2 ; }

  if ((inChar == 0x00)&&(iNum2 == 2)) { iNum2 = 3 ; }

  ถ้า ((inChar == 0x01)&& (iNum2 == 3)) {  

      inNum2 = 0 ;

      ถ้า (iPowerWater != 1){

          iPowerWater = 1 ; //เปิดเครื่อง!       

          ไอเจียว = 0 ;

          น้ำ iGongLu = 0 ;

      }

   }

   ถ้า ((inChar == 0x02)&& (iNum2 == 3)) {  

      inNum2 = 0 ;

      iPowerWater = 2 ; //ไฟดับ!

   }

  //——0x0039 อ่านคีย์ ok! iPowerWater ตกลง!——————-

  ล่าช้า (1); 

  ไฟ LED += 1;   

  ถ้า (iLed == 500) {  

      digitalWrite (นำสูง); // เปิด LED (สูงคือระดับแรงดันไฟฟ้า)

                  // ล่าช้า (500); // รอสักครู่ ช่วง:200-2000

           ถ้า (iPower == 1) { 

               iYePian += 1; // ช่วง: 1-20

               อิหลิวเหลียง += 1; // ช่วง: 1-20

               ถ้า(iMode == 1) iGongLu += 5; // ช่วง: 1-20

           }   

           ถ้า (iYePian >= 14 ) { iYePian = 10; }   

           ถ้า (iGongLu >= 70) { iGongLu = 50; }   

           ถ้า (iLiuLiang >= 14) { iLiuLiang = 10; }   

           ถ้า (iPowerWater == 2) { 

               ไอเจียว += 1; // ช่วง: 1-20

               iGongLuWater += 2; // ช่วง: 1-20

           }   

           ถ้า (iJiao >= 60 ) { 

               ไอเจียว = 0; 

               iGongLuWater = 0; 

           }   

  }    

  ถ้า (iLed >= 1000) {    

      digitalWrite (นำ, ต่ำ); // ปิด LED โดยทำให้แรงดันไฟฟ้า LOW

                  // ล่าช้า (500); // รอสักครู่ ช่วง:200-2000

      ไฟ LED = 1;

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            อนุกรมเขียน(0x05);

            อนุกรมเขียน(0x82);

            Serial.write(0x00); // ที่อยู่ของ YePian

            Serial.write(0x20); // ที่อยู่ของ YePian

            อนุกรมเขียน(0x00);

            Serial.write (iYePian);

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            อนุกรมเขียน(0x05);

            อนุกรมเขียน(0x82);

            Serial.write(0x01); // ที่อยู่ของกงลู่

            Serial.write(0x80); // ที่อยู่ของกงลู่

            อนุกรมเขียน(0x00);

            Serial.write (iGongLu);

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            อนุกรมเขียน(0x05);

            อนุกรมเขียน(0x82);

            Serial.write(0x01); // ที่อยู่ของหลิวเหลียง

            Serial.write(0x60); // ที่อยู่ของหลิวเหลียง

            Serial.write (iLiuLiang); //หลิวเหลียงคือ 2800–3200

            อนุกรมเขียน(0x80);            

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            อนุกรมเขียน(0x05);

            อนุกรมเขียน(0x82);

            Serial.write(0x02); // ที่อยู่ของ ShuiDianZhan JieJuJiao

            Serial.write(0x60); // ที่อยู่ของ ShuiDianZhan JieJuJiao

            อนุกรมเขียน(0x00);

            Serial.write (iJiao);

            Serial.write(0xA5); //”A5″ คือ 165

            Serial.write(0x5A); //”5A” คือ 90

            อนุกรมเขียน(0x05);

            อนุกรมเขียน(0x82);

            Serial.write(0x02); // ที่อยู่ของ ShuiDianZhan ออก Power

            Serial.write(0x80); // ที่อยู่ของ ShuiDianZhan ออก Power;

            Serial.write (iGongLuWater); //ShuiDianZhan ออก Powe คือ 0–32000

            อนุกรมเขียน(0x00);            

  }    

สุดท้าย บันทึกวิดีโอออนไลน์ 

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

ที่มา: Plato Data Intelligence