ระบบรวบรวมข้อมูลอัตโนมัติในท้องถิ่น

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

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

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

ระบบจะต้องจัดให้มี:

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

สภาพการทำงาน:

  • ครอบคลุมพื้นที่ 1 ตร.กม.
  • การมองเห็นโดยตรงระหว่างวัตถุ
  • อุณหภูมิตั้งแต่ +50 ถึง -50 C
  • ความชื้นสูงถึง 100%
  • สิ่งสะสมทางชีวภาพ (เชื้อรา แบคทีเรียลดซัลเฟต)
  • การสั่นสะเทือนของเครื่องจักรคลาส 1-2 อีกต่อไปตาม GOST ISO 10816-1-97
  • สภาพแวดล้อมทางแม่เหล็กไฟฟ้า - การสลับมอเตอร์ไฟฟ้าด้วยคอนแทคเตอร์ KT 6053, อุปกรณ์สตาร์ทแบบนุ่มนวล RVS-DN, อุปกรณ์ควบคุม SIEMENS MICROMASTER PID, การแผ่รังสีในช่วง ISM และ GSM ตามข้อกำหนดสำหรับอุปกรณ์เหล่านี้, การเชื่อมอาร์กแบบแมนนวลที่ไซต์งาน
  • แรงดันไฟฟ้าเครือข่ายมากเกินไป, การหยุดชะงักในระยะสั้นของแหล่งจ่ายไฟ, แรงดันไฟฟ้าเกินจากฟ้าผ่า, ความไม่สมดุลของเฟสเมื่อสายไฟเหนือศีรษะขาดในเครือข่ายการกระจาย 6-10 kV

แม้จะมีข้อกำหนดที่เข้มงวดดังกล่าว แต่การใช้งานก็ค่อนข้างง่ายเมื่อแก้ไขปัญหาทีละขั้นตอน

เมื่อคำนึงถึงทุกสิ่งทุกอย่างแล้ว บอร์ด “Arduino Nano 3.0” จึงกลายเป็น “สมอง” ของแผนดังกล่าว บอร์ด robotdyn มีตัวควบคุม ATMEGA 328 ซึ่งเป็นตัวปรับแรงดันไฟฟ้า 3,3V ที่จำเป็นสำหรับ
กระแสไฟ 800 mA และแปลงเป็น CH340G UART-USB

ประการแรก ตัวนับเวลาทำการถูกสร้างขึ้นให้เป็นตัวนับที่ทันสมัยที่สุด มิเตอร์อุตสาหกรรมที่ใช้ก่อนหน้านี้ซึ่งประกอบบน PIC ที่มีวงจรจ่ายไฟแบบไม่มีหม้อแปลงล้มเหลวเนื่องจากแรงดันไฟกระชากภายในหนึ่งปีของการทำงาน เฉพาะอุปกรณ์ที่เชื่อมต่อโดยใช้แหล่งจ่ายไฟ 5V แบบโฮมเมดเท่านั้นที่ยังคงสภาพเดิม เพื่อเพิ่มความเร็วในการติดตั้งและความคล่องตัวในการเชื่อมต่อสัญญาณเกี่ยวกับสถานะของยูนิตจะถูกนำมาจากเทอร์มินัลของอุปกรณ์สวิตชิ่งเช่น การลงทะเบียนการมีแรงดันไฟฟ้าเฟส 1 ด้วยแหล่งจ่ายไฟสามเฟส 380V ในการประสานงานกับคอนโทรลเลอร์ จะใช้รีเลย์กลางที่มีขดลวด 220V หรือออปโตคัปเปลอร์ที่ประกอบด้วย LED และโฟโตรีซีสเตอร์ GL5516 หรือออปโตคัปเปลอร์ PC817 ทดสอบตัวเลือกทั้งหมดแล้ว LED ได้รับพลังงานจากแรงดันไฟฟ้าแบบแก้ไขที่มีข้อจำกัดกระแสโดยใช้ตัวเก็บประจุ SVV22 สองตัวที่ออกแบบมาสำหรับแรงดันไฟฟ้า 630V ที่เชื่อมต่อแบบอนุกรมเพื่อความปลอดภัยในระหว่างการทดสอบวงจรโดยไม่ได้ตั้งใจด้วยเมกะโอห์มมิเตอร์
การอ่านค่าเวลาการทำงานโดยใช้หน้าจอ LCD ST7735S การส่งข้อมูลแบบเรียลไทม์ผ่านวิทยุโดยใช้โมดูล E01-ML01DP05 ที่ความถี่ 2,4 MHz อุปกรณ์นี้ประกอบด้วยชิป nRF24L01+ และเครื่องขยายสัญญาณส่ง/รับ RFX2401C
กำลังขับสูงสุด 100 mW. เสาอากาศแบบขดลวดที่ออกแบบมาสำหรับช่วงที่ต้องการในเครื่องคิดเลขออนไลน์ сайта. การเลือกประเภทเสาอากาศจะพิจารณาจากการยกเว้นการรับคลื่นสะท้อนเดี่ยวจากโครงสร้างโลหะโดยรอบ ชิ้นส่วนเสาอากาศถูกพิมพ์บนเครื่องพิมพ์ 3D สถานะปัจจุบันของตัวนับจะถูกเก็บไว้ใน EEPROM ของคอนโทรลเลอร์และจะได้รับการกู้คืนในกรณีที่ไฟฟ้าดับโดยไม่คาดคิด ช่วงเวลาสำหรับการนับจัดทำโดยชิป RTC DS3231 ในรูปแบบของโมดูลพร้อมแบตเตอรี่สำรอง แหล่งจ่ายไฟใช้ 3 โมดูล แหล่งกำเนิดพัลส์จริง 220/5V HLK-PM01 600mA ตัวแปลงจาก 1-5V เป็น 5V HW-553 и 03962A - ตัวควบคุมแบตเตอรี่ด้วย โครงการ ป้องกันการลัดวงจร ดิสชาร์จเกิน และโอเวอร์ชาร์จ ส่วนประกอบทั้งหมดถูกซื้อบนเว็บไซต์ Aliexpress

เขียงหั่นขนมระบบรวบรวมข้อมูลอัตโนมัติในท้องถิ่น
เคาน์เตอร์ 4 ช่อง มีตัวกรอง LC ที่อินพุตเพื่อป้องกันการรบกวนบนสายสื่อสารคู่บิด ข้อมูลสถานะของวัตถุควบคุมจะถูกอ่านอย่างต่อเนื่องหนึ่งครั้งต่อวินาที และแสดงเป็นสีบนจอ LCD การอ่านจะได้รับการอัปเดตและบันทึกลงในหน่วยความจำแบบไม่ลบเลือนทุกๆ 1 วินาที 36 วินาทีคือ 36/1 ของชั่วโมง ซึ่งเป็นรูปแบบที่ต้องการข้อมูล ทุกๆ 100 วินาที ข้อมูลจะถูกส่งเกี่ยวกับจำนวนวินาทีของการทำงานสำหรับแต่ละชุดควบคุม หน่วยความจำ EEPROM มีจำนวนรอบการเขียน-ลบที่จำกัด ตามที่ผู้ผลิตระบุ 12 ครั้ง ตัวเลือกที่แย่ที่สุดคือเมื่อมีการอัปเดตอย่างน้อยหนึ่งเซลล์อย่างต่อเนื่อง ปริมาตรของตัวนับที่ 100000 คือ 1 ไบต์ ซึ่งเป็นตัวเลขรูปแบบยาว 4 ตัวนับ รวม 4 ไบต์ถูกครอบครองโดยหนึ่งระเบียน ความยาวของหน่วยความจำของชิปคือ 16 ไบต์ หลังจาก 1024 รายการจาก 64 ตัวนับ การบันทึกจะเริ่มใหม่ ในไลบรารี EEPROM วิธี EEPROM.put จะไม่เขียน หากค่าของเซลล์และข้อมูลที่กำลังเขียนตรงกัน เซลล์จะไม่เสื่อมลง เป็นผลให้ระยะเวลาการทำงานของหน่วยความจำที่รับประกันจะมากกว่า 4 ปี เวลาที่เป็นไปได้แต่ไม่รับประกันการทำงานอาจนานกว่านั้นมาก

แผนภูมิวงจรรวมระบบรวบรวมข้อมูลอัตโนมัติในท้องถิ่น
โปรแกรมใน Arduino IDE//12 ไบต์ (328%)

#รวม // ไลบรารีกราฟิกหลัก
#รวม // ไลบรารี่เฉพาะฮาร์ดแวร์
#รวม
#รวม
#รวม
#รวม
#รวม
วิทยุ RF24(9, 10); // วัตถุวิทยุสำหรับการทำงานกับไลบรารี RF24
// และหมายเลขพิน nRF24L01+ (CE, CSN)
#รวม
DS3231rtc(SDA, SCL);
เวลา เสื้อ;

//#define TFT_CS 10
#กำหนดTFT_CS 8
#define TFT_RST -1 // คุณสามารถเชื่อมต่อสิ่งนี้กับการรีเซ็ต Arduino ได้
// ในกรณีนี้ ให้ตั้งค่า #define pin นี้เป็น -1!
//#define TFT_DC 9 // DC=RS=A0 - ตัวเลือกการกำหนดสำหรับการเลือกคำสั่งหรือการลงทะเบียนข้อมูล
#กำหนดTFT_DC 3

Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);

// ตัวเลือก 2: ใช้พินใดก็ได้ แต่ช้ากว่าเล็กน้อย!
#define TFT_SCLK 13 // ตั้งค่าให้เป็นพินอะไรก็ได้ที่คุณชอบ!
#define TFT_MOSI 11 // ตั้งค่าให้เป็นพินอะไรก็ได้ที่คุณชอบ!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
#รวม

กะไบต์ = 52;
ไบต์พินสเตต;
ปั๊มยาวที่ไม่ได้ลงนาม [4];// อาร์เรย์ที่มีค่าตัวนับ 4 วินาที
ลอย ม. = 3600.0;
ที่อยู่ int ที่ไม่ได้ลงนาม = 0;
int rc;// ตัวแปรสำหรับตัวนับ
sumprim แบบยาวที่ไม่ได้ลงนาม = 0;
ผลรวมยาวที่ไม่ได้ลงนาม = 0;
ไบต์ i = 0;
ไบต์ k = 34;
int z ที่ไม่ได้ลงนาม = 0;
ไบต์ b = B00000001;
ไบต์ pumrcounter [4]; // อาร์เรย์สำหรับจัดเก็บสถานะของวัตถุ 1 - ปิด 0 - เปิด
int เริ่มต้น = 0; //

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

rtc.begin();
radio.begin(); // เริ่มต้นงาน nRF24L01+
radio.setChannel(120); // ช่องข้อมูล (ตั้งแต่ 0 ถึง 127)
radio.setDataRate(RF24_250KBPS); // อัตราการถ่ายโอนข้อมูล (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS)
radio.setPALevel(RF24_PA_MAX); // กำลังส่ง (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm,
// RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
วิทยุ openWritingPipe (0xAABBCCDD11LL); // เปิดไปป์ด้วยตัวระบุสำหรับการถ่ายโอนข้อมูล

// หากต้องการตั้งเวลา ให้ยกเลิกการใส่เครื่องหมายบรรทัดที่จำเป็น
//rtc.setDOW(1); // วันของสัปดาห์
//rtc.setTime(21, 20, 0); // เวลา ในรูปแบบ 24 ชั่วโมง
//rtc.setDate(29, 10, 2018); // วันที่ 29 ตุลาคม 2018

tft.initR(INITR_BLACKTAB); // เริ่มต้นชิป ST7735S แท็บสีดำ
// ใช้ตัวเริ่มต้นนี้ (ไม่ใส่เครื่องหมายข้อคิดเห็น) หากคุณใช้ TFT ขนาด 1.44 นิ้ว
//tft.initR(INITR_144GREENTAB); // เริ่มต้นชิป ST7735S, แท็บ RED rcB
tft.setTextWrap(เท็จ); // อนุญาตให้ข้อความวิ่งออกไปทางขอบขวา
tft.setRotation(2); // สำหรับ BLACK PCB และ RED tft.setRotation(0) หรือไม่
tft.fillScreen(ST7735_BLACK); //เคลียร์หน้าจอ

DDRD = DDRD | B00000000;
PORTD = PORTD | B11110000; // การกระชับซอฟต์แวร์ใช้งานได้ระดับสูง -
// วัตถุควบคุม "ไม่ทำงาน", "4" ถูกเขียนไปยังพอร์ตอาวุโสทั้ง 1 พอร์ต D ไม่มีการนับเกิดขึ้น

สำหรับ ( rc = 0; rc < 4; rc ++)
{
tft.setCursor ( 3, rc * 10 + กะ ); // แสดงหมายเลขตำแหน่งของวัตถุควบคุม
tft.พิมพ์(rc + 1);
}

tft.setCursor(12, 0); // ส่งออกข้อความ 3 บรรทัด
tft.println("ผู้พัฒนา & สร้าง"); //เพื่อชื่นชมตัวเองคนที่รัก
tft.setCursor(24, 10); //หรือลิขสิทธิ์อันชั่วร้าย
tft.print("ผู้พัฒนา MM");
tft.setCursor(28, 20);
tft.print("BUILD-ER DD");

//การกู้คืนข้อมูล////////////////////////////////////////////// ////////////

สำหรับ ( z = 0; z < 1023; z += 16 ) { // วนซ้ำทุกเซลล์ของอุตสาหกรรม
//และเขียนลงในอาร์เรย์ของตัวแปรปั๊ม 4 ตัว 4 ไบต์สำหรับแต่ละตัวนับ เพราะ
// ตัวแปรแบบยาวที่ไม่ได้ลงนาม มีตัวนับ 4 ตัว หนึ่งระเบียนจากทั้งหมด 4 ตัวมีขนาด 16 ไบต์
EEPROM.get(z, ปั๊ม[0]); // ดังนั้น หากไม่มี for loop ปริมาณก็จะน้อยลง
EEPROM.get(z+4, ปั๊ม[1]);
EEPROM.get(z+8, ปั๊ม[2]);
EEPROM.get(z+12, ปั๊ม[3]);

// กำหนดค่าถัดไปใหม่สำหรับผลรวมของ 4 ตัวนับ
sumprim = (ปั๊ม [0] + ปั๊ม [1] + ปั๊ม [2] + ปั๊ม [3]);

// เปรียบเทียบค่าใหม่ของผลรวมของ 4 ตัวนับในตัวแปร sumprim กับค่าก่อนหน้าในตัวแปร
// sumsec และหากผลรวมก่อนหน้าน้อยกว่าหรือเท่ากับผลรวมใหม่ ระบบจะกำหนดผลรวมใหม่ที่มากกว่าหรือเท่ากับ
// ค่า sumsec

ถ้า ( sumsec <= sumprim ) {
sumsec = ซัมพริม; //

//และค่าปัจจุบัน z ถูกกำหนดให้กับตัวแปรที่อยู่ z คือที่อยู่ของจุดเริ่มต้นของบล็อก 16 ไบต์จำนวน 4 ค่า
// ตัวนับที่บันทึกในเวลาเดียวกัน (เนื่องจากเมื่อทำการโพลพอร์ตทั้ง 8 บิตจะถูกเขียนพร้อมกัน
// รวมถึงพอร์ต D สูง 4 บิตที่จำเป็นของเราด้วย)
ที่อยู่ = z;
}
}

// เข้าถึงหน่วยความจำ eeprom อีกครั้งตามที่อยู่จุดเริ่มต้นของบล็อก 16 ไบต์จาก 4 ค่าตัวนับที่บันทึกไว้
// สุดท้ายคือ ค่าก่อนที่จะปิดหรือรีบูตเนื่องจากการค้าง การบันทึกล่าสุด
// นับค่าเป็นอาร์เรย์ของปั๊มตัวแปร 4 ตัว

EEPROM.get (ที่อยู่, ปั๊ม [0]);
EEPROM.get (ที่อยู่ + 4, ปั๊ม [1]);
EEPROM.get (ที่อยู่ + 8, ปั๊ม [2]);
EEPROM.get (ที่อยู่ + 12, ปั๊ม [3]);

ที่อยู่ += 16; //เพิ่มที่อยู่สำหรับเขียนบล็อกถัดไปโดยไม่เขียนทับข้อมูลของบันทึกล่าสุด

//สิ้นสุดการกู้คืนข้อมูล////////////////////////////////////////// / /////////////////////

แนบอินเตอร์รัปต์ (0, นับ, เพิ่มขึ้น); // ปักหมุด D2 เปิดใช้งานการขัดจังหวะ มาทุกวินาที
// พัลส์จาก RTC DS3231 จากเอาต์พุต SQW

wdt_enable(WDTO_8S); // เริ่มจับเวลาจ้องจับผิด รีบูทคอนโทรลเลอร์ในกรณีที่ค้าง เวลา
// ซึ่งคุณต้องออกคำสั่งรีเซ็ตตัวจับเวลา wdt_reset( และหลีกเลี่ยงการรีบูตเครื่องระหว่างการทำงานปกติ - 8 วินาที
// สำหรับการทดสอบ ไม่แนะนำให้ตั้งค่าให้น้อยกว่า 8 วินาที ในกรณีนี้ ควรรีเซ็ตตัวจับเวลาจะดีกว่า
//กระตุกและมันก็เกิดขึ้นทุกวินาที

}

ห่วงเป็นโมฆะ () {
// รอบเปล่า ในที่นี้จะควบคุมการทำงานของมอเตอร์ไฟฟ้าแบบเปิด
}

จำนวนโมฆะ () {

tft.setTextColor(ST7735_WHITE); // กำหนดสีตัวอักษร
t = rtc.getTime(); //อ่านเวลา
tft.setCursor(5, 120); // กำหนดตำแหน่งเคอร์เซอร์
tft.fillRect(5, 120, 50, 7, ST7735_BLACK); // การล้างพื้นที่เอาต์พุตเวลา
tft.print(rtc.getTimeStr()); // อ่านค่านาฬิกาเอาท์พุต

wdt_reset(); // รีเซ็ตสุนัขเฝ้าบ้านทุกรอบ เช่น วินาที

สำหรับ (rc = 0; rc <4; rc ++) // จุดเริ่มต้นของวงจรเพื่อตรวจสอบความสอดคล้องของสถานะอินพุต
// พอร์ตบิตไปยังสถานะการอ่านก่อนหน้าของบิตพอร์ต D
{
pinState = (PIND >> 4) & ( ข << rc );

if (pumrcounter [rc] != pinState) { // และถ้าไม่ตรงกันล่ะก็
pumrcounter[rc] = สถานะพิน; // กำหนดค่าตัวแปรสถานะบิตพอร์ตเป็นค่าใหม่ 1/0
}
// บ่งชี้สถานะของวัตถุควบคุมสี
// BLUE เป็นข้อผิดพลาดเล็กๆ น้อยๆ ของหน้าจอที่มีอยู่ (หรือไลบรารี่?), RGB และ BGR ปะปนกัน
ถ้า (pinState == ( b << rc )) {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_BLUE); // สำหรับการนับระดับต่ำ ให้เปลี่ยนสีเขียวเป็นสีน้ำเงิน
} else {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_GREEN); // สำหรับการนับระดับต่ำ ให้เปลี่ยนสีน้ำเงินเป็นสีเขียว
ปั๊ม [rc] += 1; // เพิ่ม 1 วินาทีในตัวนับเวลาทำงาน
}
}

เค++;
ถ้า (k == 36) {
เค = 0;

tft.fillRect(30, กะ, 97, 40, ST7735_BLACK); // ล้างพื้นที่แสดงเวลาการทำงาน
tft.fillRect(60, 120, 73, 7, ST7735_BLACK); // และวันที่

tft.setCursor(60, 120); // กำหนดตำแหน่งเคอร์เซอร์
tft.print(rtc.getDateStr()); // แสดงวันที่บนหน้าจอ LCD

สำหรับ (rc = 0; rc <4; rc ++) // ส่งออกชั่วโมงการทำงานทั้งหมดสิบและ
{
tft.setCursor ( 30, rc * 10 + shift ); // หนึ่งในร้อยของชั่วโมงโดยเลื่อนหน้าจอลง 10 พิกเซล
tft.println(ปั๊ม [rc] / m);
}

// เขียนค่าชั่วโมงการทำงาน "ดิบ" (เป็นวินาที) ไปยัง EEPROM /////////////////////////////////

สำหรับ (rc = 0; rc <4; rc ++)
{
EEPROM.put (ที่อยู่, ปั๊ม [rc]);
ที่อยู่ += ขนาดของ (ลอย); // เพิ่มตัวแปรที่อยู่การเขียน
}
}

// ส่งข้อมูลผ่านช่องสัญญาณวิทยุจากข้อมูลที่ระบุจำนวนไบต์ที่ควรส่ง
ถ้า ((k == 6 ) || (k == 18 ) || (k == 30 )) {

ข้อมูลขนาดยาวที่ไม่ได้ลงนาม

radio.write(&เริ่มต้น, ขนาดของ(เริ่มต้น));

สำหรับ (i = 0; i <4; i++) {
ข้อมูล = ปั๊ม [i ];
radio.write( &data, ขนาดของ (ข้อมูล));
}
}
}

หมายเหตุบางประการในตอนท้าย การนับเกิดขึ้นในระดับตรรกะต่ำที่อินพุต

ความต้านทานแบบดึงขึ้น R2-R5 คือ 36 kOhm สำหรับตัวเลือกที่มีโฟโตรีซิสเตอร์ GL5516 ในกรณีของออปโตคัปเปลอร์โฟโต้ทรานซิสเตอร์และรีเลย์ ให้ตั้งค่าเป็น 4,7-5,1 kOhm บูตโหลดเดอร์ Arduino Nano v3.0 ถูกแทนที่ด้วย Arduino Uno โดยใช้โปรแกรมเมอร์ TL866A เพื่อการทำงานที่ถูกต้องของตัวจับเวลาจ้องจับผิด ฟิวส์ได้รับการแก้ไขให้ทำงานที่แรงดันไฟฟ้าสูงกว่า 4,3 V ไม่ได้ใช้วงจรรีเซ็ตภายนอก R6 C3 ในโปรแกรมตัวอย่าง ความถี่ของเครื่องส่งสัญญาณไม่สอดคล้องกับช่วงที่ไม่มีใบอนุญาต ช่วง 2,4 MHz ถูกจำกัดไว้ที่ความถี่ 2400.0-2483.5 MHz

ช่วงของเครื่องส่งสัญญาณ E01-ML01DP05 คือ 2400-2525 MHz แบนด์วิธของหนึ่งช่องสัญญาณคือ 1 MHz เมื่อตั้งค่าความเร็วเป็น “RF24_2MBPS” ช่อง radio.setChannel(120) ที่ระบุและช่องถัดไปจะถูกครอบครองเช่น คลื่นความถี่จะเป็น 2 MHz

ที่มา: will.com

เพิ่มความคิดเห็น