Τοπικό αυτόνομο σύστημα συλλογής δεδομένων

Η εταιρεία αγόρασε θέσεις παρακολούθησης 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,3 V για
ρεύμα 800 mA και μετατροπέας σε CH340G UART-USB.

Καταρχήν δημιουργήθηκαν μετρητές ωραρίου λειτουργίας ως οι πιο ενημερωμένοι. Προηγουμένως χρησιμοποιημένοι βιομηχανικοί μετρητές που συναρμολογήθηκαν σε PIC με κύκλωμα τροφοδοσίας χωρίς μετασχηματιστή απέτυχαν λόγω υπερτάσεων εντός ενός έτους λειτουργίας. Μόνο όσοι ήταν συνδεδεμένοι χρησιμοποιώντας σπιτικά τροφοδοτικά 5V παρέμειναν άθικτα. Για να επιταχυνθεί η εγκατάσταση και η ευελιξία της σύνδεσης, λαμβάνεται ένα σήμα σχετικά με την κατάσταση των μονάδων από τους ακροδέκτες των συσκευών μεταγωγής, δηλ. καταγραφή της παρουσίας τάσης 1ης φάσης με τριφασική παροχή ρεύματος 380V. Για τον συντονισμό με τον ελεγκτή, χρησιμοποιείται ένα ενδιάμεσο ρελέ με περιέλιξη 220 V ή οπτικός συζευκτήρας που αποτελείται από ένα LED και μια φωτοαντίσταση GL5516 ή έναν οπτικό ζευκτήρα PC817. Όλες οι επιλογές δοκιμάστηκαν. Η λυχνία LED τροφοδοτείται από ανορθωμένη τάση με περιορισμό ρεύματος χρησιμοποιώντας δύο πυκνωτές SVV22 σχεδιασμένους για τάση 630V συνδεδεμένους σε σειρά για ασφάλεια κατά τη διάρκεια τυχαίας δοκιμής των κυκλωμάτων με μεγωμόμετρο.
Ανάγνωση ενδείξεων χρόνου λειτουργίας χρησιμοποιώντας την οθόνη LCD ST7735S, μετάδοση δεδομένων σε πραγματικό χρόνο μέσω ραδιοφώνου χρησιμοποιώντας τη μονάδα E01-ML01DP05 σε συχνότητα 2,4 MHz. Αυτή η συσκευή περιέχει το τσιπ nRF24L01+ και τον ενισχυτή εκπομπής/λήψης RFX2401C,
Ισχύς εξόδου έως 100 mW. Ελικοειδείς κεραίες σχεδιασμένες για το επιθυμητό εύρος στην ηλεκτρονική αριθμομηχανή сайта. Η επιλογή του τύπου κεραίας καθορίζεται από τον αποκλεισμό της λήψης μεμονωμένων ανακλώμενων κυμάτων από τις γύρω μεταλλικές κατασκευές. Τα μέρη της κεραίας εκτυπώνονται σε τρισδιάστατο εκτυπωτή. Η τρέχουσα κατάσταση των μετρητών αποθηκεύεται στο EEPROM του ίδιου του ελεγκτή και αποκαθίσταται σε περίπτωση απροσδόκητης διακοπής ρεύματος. Τα χρονικά διαστήματα για μέτρηση παρέχονται από το τσιπ RTC DS3 με τη μορφή μονάδας με εφεδρική μπαταρία. Το τροφοδοτικό χρησιμοποιεί 3231 μονάδες, την πραγματική πηγή παλμού 3/220V HLK-PM5 01mA, έναν μετατροπέα από 600-1V σε 5V HW-553 и 03962A - ελεγκτής μπαταρίας με συστήματος προστασία από βραχυκύκλωμα, υπερφόρτιση και υπερφόρτιση. Όλα τα εξαρτήματα αγοράστηκαν στον ιστότοπο Aliexpress.

Ψωμί σανίδαΤοπικό αυτόνομο σύστημα συλλογής δεδομένων
Μετρητής 4 καναλιών. Υπάρχουν φίλτρα LC στις εισόδους για προστασία από παρεμβολές σε μια γραμμή επικοινωνίας συνεστραμμένου ζεύγους. Τα δεδομένα σχετικά με την κατάσταση των αντικειμένων ελέγχου διαβάζονται συνεχώς μία φορά το δευτερόλεπτο και εμφανίζονται έγχρωμα στην οθόνη LCD. Οι μετρήσεις ενημερώνονται και καταγράφονται σε μη πτητική μνήμη κάθε 1 δευτερόλεπτα. 36 δευτερόλεπτα είναι 36/1 της ώρας, αυτή είναι η μορφή στην οποία απαιτούνται τα δεδομένα. Κάθε 100 δευτερόλεπτα. μεταδίδονται πληροφορίες σχετικά με τον αριθμό των δευτερολέπτων λειτουργίας για κάθε μονάδα ελέγχου. Η μνήμη EEPROM έχει περιορισμένο αριθμό κύκλων εγγραφής-διαγραφής, σύμφωνα με τον κατασκευαστή, 12 φορές. Η χειρότερη επιλογή είναι όταν τουλάχιστον ένα κελί ενημερώνεται συνεχώς. Ο όγκος του 100000ου μετρητή είναι 1 byte, αυτός είναι ένας αριθμός μεγάλης μορφής, 4 μετρητές, συνολικά 4 byte καταλαμβάνεται από μία εγγραφή. Το μήκος της μνήμης του τσιπ είναι 16 byte· μετά από 1024 καταχωρήσεις των 64 μετρητών, η εγγραφή θα ξεκινήσει από την αρχή. Στη βιβλιοθήκη EEPROM, η μέθοδος EEPROM.put δεν γράφει· εάν η τιμή του κελιού και οι πληροφορίες που γράφονται ταιριάζουν, δεν θα υπάρξει υποβάθμιση των κελιών. Ως αποτέλεσμα, ο εγγυημένος χρόνος λειτουργίας της μνήμης θα είναι μεγαλύτερος από 4 χρόνια. Ο χρόνος της πιθανής αλλά μη εγγυημένης εργασίας μπορεί να είναι πολύ μεγαλύτερος.

Διάγραμμα κυκλώματοςΤοπικό αυτόνομο σύστημα συλλογής δεδομένων
Πρόγραμμα σε Arduino IDE//12 byte (328%)

#περιλαμβάνω // Βιβλιοθήκη βασικών γραφικών
#περιλαμβάνω // Βιβλιοθήκη ειδικά για υλικό
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
#περιλαμβάνω
Ραδιόφωνο RF24 (9, 10); // αντικείμενο ραδιοφώνου για εργασία με τη βιβλιοθήκη RF24,
// και αριθμοί καρφιτσών nRF24L01+ (CE, CSN)
#περιλαμβάνω
DS3231 rtc(SDA, SCL);
Χρόνος t;

//#define TFT_CS 10
# καθορισμός TFT_CS 8
#define TFT_RST -1 // μπορείτε επίσης να το συνδέσετε με την επαναφορά του Arduino
// σε αυτή την περίπτωση, ορίστε αυτήν την καρφίτσα #define σε -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);
#περιλαμβάνω

byte shift = 52;
byte pinState?
ανυπόγραφη αντλία μεγάλης διάρκειας[4];// πίνακας με τιμές μετρητή 4 δευτερολέπτων
float m = 3600.0;
ανυπόγραφη διεύθυνση int = 0;
int rc;// μεταβλητή για μετρητές
ανυπόγραφο long sumprim = 0;
ανυπόγραφο long sumsec = 0;
byte i = 0;
byte k = 34;
ανυπόγραφο int z = 0;
byte b = B00000001;
byte pumrcounter[4]; // πίνακας για την αποθήκευση καταστάσεων αντικειμένων, 1 - off, 0 - on.
int start = 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)
radio.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(false); // Να επιτρέπεται το κείμενο να τρέχει από τη δεξιά άκρη
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 + shift ); // εμφάνιση αριθμών θέσεων αντικειμένων ελέγχου
tft.print(rc + 1);
}

tft.setCursor(12, 0); // έξοδος 3 γραμμών κειμένου
tft.println("DEVELOPERS & BUILD"); // να επαινείς τον εαυτό σου αγαπημένα πρόσωπα
tft.setCursor(24, 10); // ή κακά πνευματικά δικαιώματα
tft.print("DEVELOPER MM");
tft.setCursor(28, 20);
tft.print("BUILD-ER DD");

//ανάκτηση δεδομένων////////////////////////////////////////////// ///////////

για ( z = 0; z < 1023; z += 16 ) { // Επαναλαμβάνεται σε όλα τα κελιά του κλάδου
//και γράφει σε έναν πίνακα 4 μεταβλητών αντλίας, 4 byte για κάθε μετρητή, επειδή
// ανυπόγραφη μεγάλη μεταβλητή. Υπάρχουν 4 μετρητές, μια εγγραφή και των 4 παίρνει 16 byte.
EEPROM.get(z, αντλία[0]); // έτσι, χωρίς τον βρόχο for, λιγότερος όγκος
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 = sumprim; //

//και η τρέχουσα τιμή z εκχωρείται στη μεταβλητή διεύθυνσης, z είναι η διεύθυνση της αρχής ενός μπλοκ 16 byte με 4 τιμές
// μετρητές που καταγράφονται ταυτόχρονα (αφού κατά την ψηφοφορία μιας θύρας, και τα 8 bit της γράφονται ταυτόχρονα,
// συμπεριλαμβανομένων των απαραίτητων υψηλών 4 bit της θύρας D).
διεύθυνση = z;
}
}

// για άλλη μια φορά πρόσβαση στη μνήμη eeprom στη διεύθυνση της αρχής ενός μπλοκ 16 byte 4 εγγεγραμμένων τιμών μετρητή
// τελευταία, δηλ. τιμές πριν από τον τερματισμό ή την επανεκκίνηση λόγω παγώματος. Ηχογράφηση των τελευταίων
// Τιμές μετρητή σε μια συστοιχία 4 μεταβλητών αντλία.

EEPROM.get(διεύθυνση, αντλία[0]);
EEPROM.get(διεύθυνση + 4, αντλία[1]);
EEPROM.get(διεύθυνση + 8, αντλία[2]);
EEPROM.get(διεύθυνση + 12, αντλία[3]);

διεύθυνση += 16; //αύξηση της διεύθυνσης για την εγγραφή του επόμενου μπλοκ χωρίς αντικατάσταση των δεδομένων της τελευταίας εγγραφής

//τέλος ανάκτησης δεδομένων/////////////////////////////////////////////////////////////////// //////////////////

attachInterrupt(0, count, RISING); // pin D2, ενεργοποιήστε τις διακοπές, έρχονται κάθε δευτερόλεπτο
// παλμοί από το RTC DS3231 από την έξοδο SQW

wdt_enable(WDTO_8S); // εκκίνηση του χρονοδιακόπτη παρακολούθησης, επανεκκίνηση του ελεγκτή σε περίπτωση παγώματος, χρόνος,
// για την οποία πρέπει να εκδώσετε την εντολή επαναφοράς χρονοδιακόπτη wdt_reset( και να αποφύγετε την επανεκκίνηση κατά την κανονική λειτουργία - 8 δευτερόλεπτα.
// για δοκιμές δεν συνιστάται η ρύθμιση της τιμής σε λιγότερο από 8 δευτερόλεπτα. Σε αυτήν την περίπτωση, ο χρονοδιακόπτης επαναρυθμίζεται κατά προτίμηση
// τράνταγμα, και συμβαίνει κάθε δευτερόλεπτο.

}

κενός βρόχος () {
// κενός κύκλος, εδώ θα υπάρχει έλεγχος της λειτουργίας ανοικτής φάσης του ηλεκτροκινητήρα
}

void count() {

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 ++) // έναρξη του κύκλου για τον έλεγχο της συμμόρφωσης της κατάστασης εισόδου
// θύρα bit στην προηγούμενη κατάσταση ανάγνωσης των bit θύρας D
{
pinState = (PIND >> 4) & ( b << rc );

if (pumrcounter [rc] != pinState) { // και αν δεν ταιριάζει, τότε
pumrcounter[rc] = pinState; // εκχωρώντας στη μεταβλητή κατάστασης bit θύρας μια νέα τιμή 1/0
}
// ένδειξη της κατάστασης των αντικειμένων ελέγχου χρώματος
// Το ΜΠΛΕ είναι ένα μικρό σφάλμα της υπάρχουσας οθόνης (ή της βιβλιοθήκης;), τα RGB και BGR έχουν μπερδευτεί.
if (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++;
αν (k == 36) {
k = 0;

tft.fillRect(30, shift, 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 pixel
tft.println(αντλία [rc] / m);
}

// γράφοντας "ακατέργαστες" τιμές ωρών λειτουργίας (σε δευτερόλεπτα) στο EEPROM ////////////////////////////

για (rc = 0; rc <4; rc++)
{
EEPROM.put(διεύθυνση, αντλία [rc]);
διεύθυνση += sizeof(float); // αύξηση της μεταβλητής διεύθυνσης εγγραφής
}
}

// αποστολή δεδομένων μέσω του ραδιοφωνικού καναλιού από δεδομένα που υποδεικνύουν πόσα byte πρέπει να σταλούν.
αν ((k == 6 ) || (k == 18 ) || (k == 30 )) {

ανυπόγραφα μακρά δεδομένα.

radio.write(&start, sizeof(start));

για (i = 0; i <4; i++) {
δεδομένα = αντλία [i ];
radio.write( &data, sizeof( data));
}
}
}

Μερικές σημειώσεις στο τέλος. Η καταμέτρηση γίνεται σε χαμηλό λογικό επίπεδο στις εισόδους.

Οι αντιστάσεις έλξης R2-R5 είναι 36 kOhm για την επιλογή με φωτοαντιστάσεις GL5516. Στην περίπτωση οπτοζεύκτη και ρελέ φωτοτρανζίστορ, ρυθμίστε στα 4,7-5,1 kOhm. Ο Bootloader 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.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο