Системаи худмухтори маҳаллии ҷамъоварии маълумот

Ширкат постҳои мониторинги NEKST-M-ро, ки дар дохили кишвар аз ҷониби Next Technologies истеҳсол шудааст, харид. Барои таъмини визуалии кори агрегатхои насосй,
сигналҳои сӯхтор ва бехатарӣ, мавҷудияти шиддат дар стартерҳо, ҳарорати хонагӣ, сатҳи оби фавқулодда. Қалби NEKST-M ATMEGA 1280 аст ва ин далел аз ҷиҳати имкони эҷоди маҷмӯаи шахсии шумо барои эҳтиёҷоти мушаххас рӯҳбаландкунанда аст.

Вазифа гузошта шуд, ки дар мухлати кутохтарин ва бо харочоти камтарин барои эхтиёчоти мушаххас системаи комилан автономии диспетчерии махаллй ба вучуд оварда шавад. Асос микроконтроллер аст. Тараккиёт, истехсолот, ки худи кадрхо офаридаанд.

Система бояд бидуни вобастагӣ аз шабакаҳои мобилӣ, серверҳо, Интернет ва системаи иҷозатномадиҳӣ оид ба истифодаи захираҳои радиобасомад кор кунад, дар кори системаи назорат ва назорат аз компютерҳо истифода набарад ё ҳадди аксар давра ба давра ноутбукҳоро истифода набарад, бидуни дастрасӣ ба объектҳо барои муддати дароз (6-9 моҳ). Конфигуратсияи шабака дорои сохтори радиалӣ мебошад. Маълумот дар як нуқта ҷамъоварӣ карда мешавад ва сипас барои коркард тавассути каналҳои муоширати муқаррарӣ ё ҳамчун нусхаи қоғазӣ фиристода мешавад.

Система бояд:

  • назорат ба кори агрегатхои насосй
  • автоматикунонии технологй
  • мухофизат аз окибатхои вазъияти фавкулодда
  • сигнализатсияи фавқулодда
  • ҳисоб кардани вақти корӣ
  • ҳисоб кардани миқдори энергияи барқ
  • назорати ҳарорати таҷҳизот
  • бехатарӣ ва огоҳии сӯхтор
  • сабти даврии фосилавии иттилоот
  • талаботи ояндаи номаълум

Шароити кор:

  • майдони фарогирии 1 кв.км.
  • дидани бевоситаи байни объектҳо
  • ҳарорат аз +50 то -50 С
  • намӣ то 100%
  • конҳои аз ҷиҳати биологӣ фаъол ( қолаб, бактерияҳои коҳишдиҳандаи сулфат)
  • ларзиш, на бештар, мошинҳои синфҳои 1-2 мувофиқи ГОСТ ISO 10816-1-97
  • муҳити электромагнитӣ - иваз кардани муҳаррикҳои барқӣ бо контакторҳои KT 6053, таҷҳизоти оғози нармии RVS-DN, таҷҳизоти идоракунии SIEMENS MICROMASTER PID, радиатсия дар диапазони ISM ва GSM мувофиқи талабот ба ин дастгоҳҳо, кафшери дастӣ дар макон
  • шиддати аз хад зиёди сеть, катъи кутохмуддати таъмини барк, шиддати барк, номутаносибии фазахо хангоми канда шудани сими хатти хавой дар сетьхои таксимкунандаи 6—10 кВ.

Сарфи назар аз чунин талаботҳои сахт, татбиқ ҳангоми ҳалли мушкилот қадам ба қадам хеле содда аст.

Бо дарназардошти ҳама чиз, тахтаи "Arduino Nano 3.0" "мағзи" нақша шуд. Дар тахтаи robotdyn дорои контролери ATMEGA 328, стабилизатори зарурии шиддати 3,3V барои
ҷорӣ 800 мА ва табдилдиҳандаи ба CH340G UART-USB.

Дар навбати аввал ҳисобкунакҳои соатҳои корӣ ҳамчун навтарин ҳисобкунакҳо таъсис дода шуданд. Ҳисобкунакҳои саноатии қаблан истифодашуда, ки дар PIC-ҳо бо схемаи интиқоли барқи бе трансформатор васл карда шуда буданд, аз сабаби баланд шудани шиддат дар давоми як соли кор ноком шуданд. Танҳо онҳое, ки бо истифода аз манбаъҳои барқии худсохти 5V пайвастанд, бетағйир монданд. Барои тезонидани насб ва универсалии пайвастшавӣ аз терминалҳои дастгоҳҳои коммутатсионӣ сигнал дар бораи ҳолати агрегатҳо гирифта мешавад, яъне. баќайдгирии мављудияти шиддати фазаи 1 бо ќувваи барќ сефазавии 380В. Барои ҳамоҳангсозӣ бо контроллер, релеи фосилавӣ бо печи 220V ё оптокоуплер, ки аз LED ва фоторезистори GL5516 ё оптокоуплери PC817 иборат аст, истифода мешавад. Ҳама вариантҳо санҷида шуданд. LED бо шиддати ислоҳшуда бо маҳдудияти ҷорӣ бо истифода аз ду конденсатори SVV22, ки барои шиддати 630 В пай дар пай пайваст карда шудаанд, барои бехатарӣ ҳангоми санҷиши тасодуфии занҷирҳо бо мегаомметр таъмин карда мешавад.
Хониши вақти корӣ бо истифода аз экрани LCD ST7735S, интиқоли маълумот дар вақти воқеӣ тавассути радио бо истифода аз модули E01-ML01DP05 дар басомади 2,4 МГс. Ин дастгоҳ дорои чипи nRF24L01+ ва пурқувваткунандаи интиқол/қабули RFX2401C,
иқтидори баромад то 100 мВт. Антеннаҳои спиралӣ барои диапазони дилхоҳ дар ҳисобкунаки онлайн тарҳрезӣ шудаанд сомона. Интихоби навъи мавҷгир бо истиснои қабули мавҷҳои яккаса инъикосшаванда аз сохторҳои металлии атроф муайян карда мешавад. Қисмҳои антенна дар принтери 3D чоп карда мешаванд. Ҳолати кунунии ҳисобкунакҳо дар EEPROM-и худи контроллер ҳифз карда мешавад ва дар сурати қатъи ғайричашмдошти барқ ​​барқарор карда мешавад. Фосилаҳои вақт барои ҳисобкунӣ аз ҷониби чипи RTC DS3231 дар шакли модул бо батареяи эҳтиётӣ таъмин карда мешавад. Таъмини барқ ​​3 модулро истифода мебарад, манбаи воқеии импулс 220/5В HLK-PM01 600mA, конвертер аз 1-5В то 5В 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,
// ва рақамҳои PIN nRF24L01+ (CE, CSN)
#дарбар мегирад
DS3231 rtc (SDA, SCL);
Вақт t;

//# муайян кардани TFT_CS 10
#муайян кардани TFT_CS 8
#define TFT_RST -1 // шумо инчунин метавонед онро ба барқарорсозии Arduino пайваст кунед
// дар ин ҳолат, ин pin #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);
#дарбар мегирад

гузариш байт = 52;
байт pinState;
насоси дарози имзонашуда[4];// массив бо арзишҳои ҳисобкунаки 4 сония
шино m = 3600.0;
суроғаи int unsigned = 0;
int rc;// тағирёбанда барои ҳисобкунакҳо
unsigned long sumprim = 0;
сумсеки дароз беимзо = 0;
байт i = 0;
байт к = 34;
unsigned int z = 0;
байт b = B00000001;
байт pumrcounter[4]; // массив барои нигоҳ доштани ҳолати объект, 1 - хомӯш, 0 - фаъол.
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); // initialize як чипи ST7735S, ҷадвали сиёҳ
// Агар шумо 1.44" TFT-ро истифода баред, ин оғозкунандаро истифода баред (беэътибор).
//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.print (rc + 1);
}

tft.setCursor(12, 0); // 3 сатри матн баровардан
tft.println("Тарҳиякунандагон ва сохтан"); // барои ситоиши худ азизон
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 байт барои ҳар як ҳисобкунак менависад, зеро
// тағирёбандаи дарози беимзо. 4 ҳисобкунак мавҷуд аст, ки як сабт аз ҳамаи 4 16 байт мегирад.
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 <= sumprim ) {
сумсек = sumprim; //

//ва арзиши ҷории z ба тағирёбандаи суроға таъин карда мешавад, z суроғаи оғози блоки 16-байтии 4 арзиш аст
// ҳисобкунакҳо дар як вақт сабт шудаанд (зеро ҳангоми пурсиши порт, ҳама 8 битҳои он ҳамзамон навишта мешаванд,
// аз ҷумла 4 битҳои баланди порти D) зарурии мо.
суроға = z;
}
}

// бори дигар дастрасӣ ба хотираи eeprom дар суроғаи оғози блоки 16 байт аз 4 арзиши ҳисобкунаки сабтшуда
// охирон, яъне. арзишҳо пеш аз хомӯш кардан ё аз нав оғоз кардан бо сабаби яхкунӣ. Сабти охирин
// арзишҳоро ба массиви 4 тағирёбанда ҳисоб кунед.

EEPROM.get(суроға, насос[0]);
EEPROM.get(суроға + 4, насос[1]);
EEPROM.get(суроға + 8, насос[2]);
EEPROM.get(суроға + 12, насос[3]);

суроға += 16; //афзоиши суроға барои навиштани блоки навбатӣ бе барнавнавис кардани маълумоти сабти охирин

//охири барқарорсозии маълумот///////////////////////////////////////////////////// //////////////////

attachInterrupt(0, шумориш, БАРЗУДАН); // PIN D2, фаъол кардани халалҳо, ҳар сония меояд
// импулсҳо аз RTC DS3231 аз баромади SQW

wdt_enable (WDTO_8S); // Вақтсанҷи назоратро оғоз кунед, дар ҳолати яхкунӣ, вақт, контроллерро аз нав оғоз кунед,
// барои он шумо бояд фармони аз нав танзимкунии вақтсанҷро бароред wdt_reset( ва ҳангоми кори муқаррарӣ аз дубора оғоз кардан худдорӣ кунед - 8 сония.
// барои санҷишҳо тавсия дода намешавад, ки арзиш ба камтар аз 8 сония муқаррар карда шавад.Дар ин ҳолат, таймер беҳтараш аз нав танзим карда мешавад.
// jerking, ва он ҳар сония рӯй медиҳад.

}

ҳалқаи ботил () {
// цикли холй, дар ин чо аз болои кори фазаи кушоди двигатели электрики назорат карда мешавад
}

ҳисоб ботил () {

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) & ( b << rc );

агар (pumrcounter [rc] != pinState) { // ва агар мувофиқат накунад, пас
pumrcounter[rc] = pinState; // таъин кардани тағирёбандаи ҳолати битии порт арзиши нави 1/0
}
// нишон додани ҳолати объектҳои идоракунии ранг
// BLUE як хатои хурди экрани мавҷуда аст (ё китобхона?), RGB ва BGR омехта шудаанд.
агар (pinState == ( b << rc )) {
tft.fillRect(15, ((rc * 10 + смена)), 7, 7, ST7735_BLUE); // барои ҳисобкунии сатҳи паст САБЗ ба кабуд иваз кунед
} Каси {
tft.fillRect(15, ((rc * 10 + смена)), 7, 7, ST7735_GREEN); // барои ҳисобкунии сатҳи паст КАбудро ба САБЗ иваз кунед
насос [rc] += 1; // ба ҳисобкунаки вақти корӣ 1 сония илова кунед
}
}

k++;
агар (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] / м);
}

// навиштани арзишҳои "хом" соатҳои корӣ (дар сонияҳо) ба EEPROM ///////////////////////////////////////

барои (rc = 0; rc <4; rc++)
{
EEPROM.put(суроға, насос [rc]);
суроғаи += sizeof( шино); // зиёд кардани тағирёбандаи суроғаи навиштан
}
}

// аз маълумоте, ки чанд байт бояд фиристода шавад, тавассути канали радио маълумот фиристед.
агар ((k == 6 ) || (k == 18 ) || (k == 30 )) {

маълумоти дарози имзонашуда;

radio.write(&оғоз, sizeof(оғоз));

барои (i = 0; i < 4; i++) {
маълумот = насос [i ];
radio.write( &маълумот, sizeof(маълумот));
}
}
}

Якчанд қайдҳо дар охири. Ҳисобкунӣ дар сатҳи пасти мантиқӣ дар вурудот сурат мегирад.

Муқовиматҳои кашидани R2-R5 барои вариант бо фоторезисторҳои GL36 5516 кОм мебошанд. Дар сурати оптикупер ва релеи фототранзистор ба 4,7-5,1 кОм муқаррар карда мешавад. Боркунаки Arduino Nano v3.0 бо Arduino Uno бо истифода аз барномасози TL866A барои кори дурусти таймери назоратӣ иваз карда шуд. Принтерҳо барои кор кардан дар шиддати болотар аз 4,3 В ислоҳ карда шудаанд. Схемаи аз нав танзимкунии беруна R6 C3 истифода нашудааст. Дар барномаи намунавӣ басомади интиқолдиҳанда ба диапазони литсензиянашуда мувофиқат намекунад; диапазони 2,4 МГс бо басомадҳои 2400.0-2483.5 МГс маҳдуд аст.

Диапазони интиқолдиҳандаи E01-ML01DP05 2400-2525 МГц аст. Маҷрои як канал 1 МГс аст, ҳангоми муқаррар кардани суръат ҳамчун "RF24_2MBPS" канали муайяншудаи radio.setChannel(120) ва канали дигар ишғол мешавад, яъне. банд 2 MHz хоҳад буд.

Манбаъ: will.com

Илова Эзоҳ