ระบบควบคุมอัจฉริยะของใบมีดเป็นเทคโนโลยีที่ได้รับการจดสิทธิบัตร ซึ่งใช้ในระบบควบคุมกระแสหลักของสถานีไฟฟ้าพลังน้ำขนาดใหญ่ ขนาดกลางและขนาดเล็กและสถานีสูบน้ำต่างๆ โปรเจ็กต์นี้ใช้หน้าจอสัมผัสอุตสาหกรรมแบบอนุกรมที่เชื่อถือได้เป็นส่วนต่อประสานระหว่างคนกับเครื่องจักรเพื่อแสดงพารามิเตอร์รายวันและปริมาณใบมีดแบบเรียลไทม์ กำลังขับ การไหลทันที และข้อมูลอื่นๆ เป็นการแสดงผลการดำเนินการ นอกจากนี้ยังมีการวางแผนบันทึกสภาพการทำงานและแบบฟอร์มแจ้งเตือนข้อผิดพลาด และสงวนปุ่มสแตนด์บายไว้ โปรเจ็กต์นี้ใช้หน้าจอสัมผัสแบบอนุกรมสำหรับการแสดงข้อมูลและการแสดงตัวบ่งชี้สไลด์ อุปกรณ์เสริมมีดังนี้:
- STVI056WT-01 หน้าจอสัมผัสแบบอนุกรมและบอร์ดอะแดปเตอร์ STONE V1.2;
- จับคู่บอร์ดควบคุม Arduino;
คำอธิบายสั้น ๆ ของฟังก์ชันอินเทอร์เฟซของระบบควบคุมใบมีดอัจฉริยะ
โฮมเพจมีปุ่มสามปุ่ม ซึ่งสามารถกดเพื่อเข้าสู่ระบบสถานีไฟฟ้าพลังน้ำที่เกี่ยวข้อง ระบบควบคุมสถานีสูบน้ำ และอินเทอร์เฟซคู่มือผู้ใช้ (พร้อมปุ่มสำรอง) อินเทอร์เฟซคู่มือผู้ใช้แสดงเฟรมเวิร์กของระบบสาธิต ดังแสดงในรูปต่อไปนี้:
(อินเทอร์เฟซหน้าแรกของซอฟต์แวร์สาธิตการควบคุมการปรับอัจฉริยะของ Enlegi Blade)
ที่ส่วนต่อประสานระบบควบคุมของสถานีไฟฟ้าพลังน้ำ มีปุ่มเริ่มต้นและหยุด และแสดงสถานะ พิกัด (รวมถึงแรงดันไฟฟ้า อัตรากำลัง และความเร็วพิกัด) และค่าควบคุม (รวมถึงมุมพิทช์ของใบพัดและกำลังขับ) นอกจากนี้ ยังสามารถมีปุ่มข้ามหน้าอื่นๆ (เช่น หน้าแรก บันทึกสภาพการทำงาน สัญญาณเตือนข้อผิดพลาด และปุ่มสแตนด์บายอื่นๆ) ในบันทึกสภาพการทำงานและหน้าการแจ้งเตือนข้อผิดพลาด อาจมีปุ่มย้อนกลับเพื่อกลับไปยังหน้านี้ แผนภาพด้านล่าง:
(อินเทอร์เฟซแสดงผลการควบคุมอัจฉริยะของสถานีไฟฟ้าพลังน้ำ)
คำอธิบายฟังก์ชันอินเทอร์เฟซระบบควบคุมสถานีสูบน้ำ แผนภาพด้านล่าง:
(ส่วนต่อประสานการทำงานของระบบควบคุมสถานีสูบน้ำ)
ในอินเทอร์เฟซการทำงานของสถานีสูบน้ำ สามารถเปลี่ยนโหมดได้และสามารถเปิดและปิดแหล่งจ่ายไฟของทั้งระบบเพื่อแสดงพารามิเตอร์ที่จำลองขึ้นจริง (เช่น ปริมาณใบมีด อัตราการไหลทันที กำลังขับ) และอื่นๆ สามารถเปลี่ยนอินเทอร์เฟซได้ (เช่น บันทึกสภาพการทำงาน รายงานการแจ้งเตือนข้อผิดพลาด) ในเวลาเดียวกัน ค่าระบบ (จำนวนใบมีดทั้งหมด, กำลังไฟพิกัด, อัตราการไหลที่ตั้งไว้) ก็สามารถแสดงได้เช่นกัน อินเทอร์เฟซอื่น ๆ ยังสามารถมีได้ เช่น บันทึกสภาพการทำงาน (เนื้อหาสามารถสั่งซื้อหมายเลข เวลาที่เกิด รายละเอียดเหตุการณ์ บันทึก) สัญญาณเตือนข้อผิดพลาด (เนื้อหาสามารถสั่งซื้อหมายเลข เวลาที่เกิด รายละเอียดสัญญาณเตือน รหัสสัญญาณเตือน ฯลฯ ) สองอินเทอร์เฟซสามารถมีปุ่มย้อนกลับสามารถกลับไปที่อินเทอร์เฟซการทำงานของสถานีสูบน้ำ
แนวคิดในการทำงาน:
หน้าจอพอร์ตอนุกรมทำหน้าที่เป็นส่วนต่อประสานระหว่างคนกับเครื่องจักรและสื่อสารกับบอร์ดพัฒนา Arduino บอร์ดยอมรับคำสั่งปุ่มของหน้าจอสัมผัสและส่งข้อมูลไปยังหน้าจอสัมผัสพอร์ตอนุกรมสำหรับการแสดงผลแบบซิงโครนัส สเกลสไลเดอร์ออกแบบมาเพื่อแสดงการเปลี่ยนแปลงพลังงานแบบไดนามิก ไอคอนของสวิตช์เปิดปิด มีดจ่ายไฟ สวิตช์โหมด และมีดโหมด ออกแบบมาเพื่อสร้างไฟล์ ICON และทำให้เอฟเฟกต์การทำงานของแหล่งจ่ายไฟและโหมดเคลื่อนไหว นอกจากนี้ ในโปรแกรมสาธิต Arduino หน่วยความจำตัวแปรยังใช้เพื่ออ่านคำแนะนำเพื่อรับสถานะของแหล่งจ่ายไฟและโหมด เพื่อควบคุมการจำลองข้อมูลเอาต์พุตและส่งออกหน้าต่างปริมาณจริงไปยังหน้าจอพอร์ตอนุกรม
ขั้นตอนการทำงาน:
- การตั้งค่าฮาร์ดแวร์
- A) เชื่อมต่อบอร์ดพัฒนา Arduino และ USB เข้ากับบอร์ดแปลงพอร์ตอนุกรม
- B) เชื่อมต่อ หน้าจอสัมผัสหิน ด้วยบอร์ดดาวน์โหลดพอร์ตอนุกรม USB และบอร์ดอะแดปเตอร์พอร์ตอนุกรม USB
- 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