Córas áitiúil uathrialach bailithe sonraí

Cheannaigh an chuideachta poist monatóireachta NEKST-M, arna dtáirgeadh sa bhaile ag Next Technologies. Chun léirshamhlú ar oibriú na n-aonad caidéalaithe a chinntiú,
aláraim dóiteáin agus slándála, láithreacht voltais ag tosaithe, teocht an tseomra, leibhéal éigeandála an uisce. Is é croílár NEKST-M ATMEGA 1280 agus is ábhar misnigh é seo ó thaobh na féidearthachta de do threalamh féin a chruthú le haghaidh sainriachtanais.

Socraíodh an tasc chun córas seolta áitiúil lán-uathrialach a chruthú le haghaidh sainriachtanais san am is giorra agus is féidir agus ar an gcostas is lú. Is microcontroller é an bunús. Forbairt, déantúsaíocht, cruthaithe ag an bhfoireann féin.

Ní mór don chóras oibriú gan spleáchas ar líonraí ceallacha, ar fhreastalaithe, ar an Idirlíon agus ar an gcóras ceadúnaithe chun acmhainní minicíochta raidió a úsáid, gan ríomhairí a úsáid in oibriú an chórais faireacháin agus rialaithe nó, ar a mhéad, ríomhairí glúine a úsáid go tréimhsiúil, gan rochtain ar rudaí ar feadh i bhfad (6-9 mí). Tá struchtúr gathacha ag cumraíocht an líonra. Bailítear sonraí ag pointe amháin agus ansin seoltar iad le próiseáil trí bhealaí cumarsáide rialta nó mar chóip chrua.

Ní mór don chóras na nithe seo a leanas a sholáthar:

  • monatóireacht a dhéanamh ar oibriú aonad pumpála
  • uathoibriú teicneolaíochta
  • cosaint ó iarmhairtí coinníollacha éigeandála
  • comharthaíocht éigeandála
  • ríomh ama oibriúcháin
  • an méid leictreachais a chaitear a ríomh
  • rialú teochta trealaimh
  • slándála agus aláraim dóiteáin
  • ciantaifeadadh tréimhsiúil faisnéise
  • riachtanais anaithnid amach anseo

Coinníollacha oibre:

  • limistéar clúdaithe 1 km cearnach.
  • infheictheacht dhíreach idir rudaí
  • teocht ó +50 go -50 ° C
  • taise suas le 100%
  • taiscí atá gníomhach go bitheolaíoch (múnla, baictéir a laghdaíonn sulfáit)
  • creathadh, gan a bheith níos mó, as meaisíní d'aicmí 1-2 de réir GOST ISO 10816-1-97
  • timpeallacht leictreamaighnéadach - aistriú mótair leictreacha le teagmhálaithe KT 6053, trealamh tosaithe bog RVS-DN, trealamh rialaithe SIEMENS MICROMASTER PID, radaíocht sa raon ISM agus GSM de réir na gceanglas maidir leis na feistí seo, táthú stua láimhe ar an suíomh
  • voltas líonra iomarcach, briseadh gearrthéarmach sa soláthar cumhachta, overvoltages tintreach, éagothroime chéim nuair a bhriseann sreang líne lastuas i líonraí dáileacháin 6-10 kV.

In ainneoin ceanglais dhian den sórt sin, tá cur i bhfeidhm simplí go leor agus an fhadhb á réiteach céim ar chéim.

Ag cur gach rud san áireamh, tháinig an bord “Arduino Nano 3.0” mar “inchinn” an phlean. Tá rialtóir ATMEGA 328 ag an mbord robotdyn, an cobhsaitheoir voltas 3,3V riachtanach le haghaidh
reatha 800 mA agus tiontaire go CH340G UART-USB.

Ar an gcéad dul síos, cruthaíodh cuntair uaireanta oibriúcháin mar na cinn is cothroime le dáta. Theip ar mhéadair thionsclaíocha a úsáideadh roimhe seo le chéile ar PICanna le ciorcad soláthair cumhachta gan chlaochladán mar gheall ar bhorradh voltais laistigh de bhliain oibríochta. Níor fhan slán ach iad siúd a bhí nasctha ag baint úsáide as soláthairtí cumhachta 5V baile. Chun suiteáil agus solúbthacht an naisc a bhrostú, tógtar comhartha faoi staid na n-aonad ó chríochfoirt na bhfeistí lasctha, i.e. clárú ar láithreacht an voltas 1ú céim le soláthar cumhachta trí phas de 380V. Chun comhordú a dhéanamh leis an rialtóir, úsáidtear sealaíochta idirmheánach le foirceannadh 220V nó optocoupler comhdhéanta de stiúir agus fóta-resistor GL5516 nó optocoupler PC817. Rinneadh tástáil ar na roghanna go léir. Tá an stiúir faoi thiomáint ag voltas ceartaithe le teorannú reatha ag baint úsáide as dhá thoilleoir SVV22 atá deartha le haghaidh voltas 630V ceangailte i sraith le haghaidh sábháilteachta le linn tástála thimpiste ar na ciorcaid le megohmmeter.
Léamh ama oibriúcháin a léamh ag baint úsáide as an scáileán ST7735S LCD, tarchur sonraí fíor-ama tríd an raidió ag baint úsáide as an modúl E01-ML01DP05 ag minicíocht 2,4 MHz. Tá an sliseanna nRF24L01+ agus an t-aimplitheoir tarchurtha/fhaighte RFX2401C sa ghléas seo,
cumhacht aschuir suas le 100 mW. antennas helical atá deartha le haghaidh an raon inmhianaithe san áireamhán ar líne сайта. Cinntear rogha an chineáil antenna trí ghlacadh na dtonnta aonair frithchaite a eisiamh ó struchtúir miotail máguaird. Déantar páirteanna antenna a phriontáil ar printéir 3D. Stóráiltear staid reatha na gcuntar in EEPROM an rialaitheora féin agus déantar é a athchóiriú i gcás briseadh cumhachta gan choinne. Soláthraíonn an sliseanna RTC DS3231 eatraimh ama le haghaidh comhairimh i bhfoirm modúl le ceallraí cúltaca. Úsáideann an soláthar cumhachta 3 mhodúl, an fhoinse cuisle iarbhír 220/5V HLK-PM01 600mA, tiontaire ó 1-5V go 5V HW-553 и 03962A - rialtóir ceallraí le scéimre cosaint i gcoinne ciorcad gearr, ró-urscaoileadh agus ró-mhuirear. Ceannaíodh na comhpháirteanna go léir ar shuíomh Gréasáin Aliexpress.

Bord aráinCóras áitiúil uathrialach bailithe sonraí
Cuntar 4-chainéil. Tá scagairí LC ag na hionchuir chun cosaint a dhéanamh ar chur isteach thar líne cumarsáide péire casta. Léitear sonraí maidir le staid na n-earraí rialaithe uair sa soicind i gcónaí agus taispeántar iad i ndath ar an LCD. Déantar léamha a nuashonrú agus a thaifeadadh i gcuimhne neamh-luaineach gach 1 soicind. Is é 36 soicind 36/1 uair an chloig, is é seo an fhormáid ina bhfuil na sonraí ag teastáil. Gach 100 soicind. tarchuirtear faisnéis faoin líon soicind oibríochta do gach aonad rialaithe. Tá líon teoranta de thimthriallta scríobh-scriosadh ag cuimhne EEPROM, de réir an mhonaróra, 12 uair. Is é an rogha is measa ná nuair a bhíonn cill amháin ar a laghad á nuashonrú i gcónaí. Is é méid an 100000ú cuntar ná 1 beart, is uimhir fhormáid fhada é seo, 4 áiritheoir, tá taifead amháin i seilbh iomlán de 4 beart. Is é fad cuimhne an tslis ná 16 beart; tar éis 1024 iontráil as 64 áiritheoir, cuirfear tús leis an taifeadadh arís. I leabharlann EEPROM, ní scríobhann an modh EEPROM.put; má thagann luach na cille agus an fhaisnéis atá á scríobh, ní bheidh aon díghrádú ar na cealla. Mar thoradh air sin, beidh an t-am oibriúcháin cuimhne ráthaithe níos mó ná 4 mbliana. Is féidir le ham oibre féideartha ach nach bhfuil ráthaithe a bheith i bhfad níos faide.

Léaráid chuairdCóras áitiúil uathrialach bailithe sonraí
Clár i Arduino IDE//12 beart (328%)

#cuir san áireamh // Leabharlann grafaice lárnach
#cuir san áireamh // Leabharlann a bhaineann go sonrach le crua-earraí
#include
#cuir san áireamh
#include
#cuir san áireamh
#cuir san áireamh
raidió RF24(9, 10); // réad raidió le bheith ag obair leis an leabharlann RF24,
// agus uimhreacha bioráin nRF24L01+ (CE, CSN)
#cuir san áireamh
DS3231 rtc(SDA, SCL);
Am t;

//#define TFT_CS 10
#define TFT_CS 8
#define TFT_RST -1 // is féidir leat é seo a nascadh le hathshocrú Arduino freisin
// agus sa chás sin, socraigh an bioráin #define seo go -1!
//#define TFT_DC 9 // DC=RS=A0 - roghanna sonrúcháin chun ordú nó clár sonraí a roghnú.
#sainmhínigh TFT_DC 3

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

// Rogha 2: úsáid bioráin ar bith ach beagán níos moille!
#define TFT_SCLK 13 // socraigh iad seo le bheith cibé bioráin is mian leat!
#define TFT_MOSI 11 // socraigh iad seo le bheith cibé bioráin is mian leat!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
#cuir san áireamh

athrú beart = 52;
pinState beart;
caidéal fada gan síniú[4];// eagar a bhfuil luachanna cuntair 4 soicind aige
snámhphointe m = 3600.0;
seoladh slánuimhir gan síniú = 0;
int rc;// athróg le haghaidh áiritheoirí
sumprim fada gan síniú = 0;
sumsec fada gan síniú = 0;
beart i = 0;
beart k = 34;
gan síniú int z = 0;
beart b = B00000001;
cuntar cuachta beart[4]; // eagar chun stáit réad a stóráil, 1 - as, 0 - ar.
int tús = 0; //

socrú neamhní () {

rtc.tosaigh();
raidió.tosaigh(); // Tús a chur leis an obair nRF24L01+
radio.setChannel(120); // cainéal sonraí (ó 0 go 127).
radio.setDataRate(RF24_250KBPS); // ráta aistrithe sonraí (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS).
radio.setPALevel(RF24_PA_MAX); // cumhacht tarchuradóra (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm,
// RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openWritingPipe(0xAABBCCDD11LL); // Oscail píopa le aitheantóir le haghaidh aistriú sonraí

// Chun an t-am a shocrú, déan trácht ar na línte riachtanacha
//rtc.setDOW(1); // Lá na seachtaine
//rtc.setTime(21, 20, 0); // Am, i bhformáid 24 uair an chloig.
//rtc.setDate(29, 10, 2018); // Dáta, 29 Deireadh Fómhair, 2018

tft.initR(INITR_BLACKTAB); // tosaigh sliseanna ST7735S, cluaisín dubh
// Úsáid an tosaitheoir seo (gan trácht) má tá TFT 1.44" in úsáid agat
//tft.initR(INITR_144GREENTAB); // tosaigh sliseanna ST7735S, cluaisín RED rcB
tft.setTextWrap(bréagach); // Lig don téacs rith den imeall ceart
tft.setRotation( 2 ); // do PCB DUBH agus RED tft.setRotation(0) nó nach bhfuil.
tft.fillScreen(ST7735_BLACK); // scáileán soiléir

DDRD = DDRD | B00000000;
PORTD = PORTD | B11110000; // tá géarú bogearraí ag obair, ardleibhéal -
// réada rialaithe “ní oibríonn”, scríobhtar “4” chuig na 1 phort sinsearach D, ní dhéantar aon chomhaireamh.

le haghaidh ( rc = 0; rc < 4; rc++)
{
tft.setCursor ( 3, rc * 10 + shift ); // ag taispeáint uimhreacha suímh na réad rialaithe
tft.print(rc + 1);
}

tft.setCursor(12, 0); // aschur 3 líne téacs
tft.println("FHORBAIRTÍ & TÓGÁIL"); // chun tú féin a mholadh a ngaolta
tft.setCursor(24, 10); // nó cóipcheart olc
tft.print("FHORBRÓIR MM");
tft.setCursor(28, 20);
tft.print("TÓGÁIL-ER DD");

//aisghabháil sonraí//////////////////////////////////////// //////////

le haghaidh ( z = 0; z < 1023; z + = 16 ) {// Aitear trí chealla uile an tionscail
// agus scríobhann sé chuig sraith de 4 athróg caidéil, 4 beart do gach cuntar, mar gheall ar
// athróg fhada gan síniú. Tá 4 áiritheoir ann, tógann taifead amháin de na 4 cinn 16 beart.
EEPROM.get(z, caidéal[0]); // mar sin, gan an le haghaidh lúb, toirt níos lú
EEPROM.get(z+4, caidéal[1]);
EEPROM.get(z+8, caidéal[2]);
EEPROM.get(z+12, caidéal[3]);

// an chéad luach eile eile a shannadh do shuim 4 chuntar
sumprim = (caidéil [0] + caidéal [1] + caidéal [2] + caidéal [3]);

// déanann sé comparáid idir luach nua na suime 4 áiritheoir san athróg sumprim leis an luach roimhe sin san athróg
// sumsec agus má bhíonn an tsuim roimhe sin níos lú ná an tsuim nua nó cothrom leis, sannfar an tsuim nua, is mó nó cothrom
// luach sumsec.

má ( sumsec < = sumprim ) {
sumsec = sumprim; //

//agus an luach reatha z sannta don athróg seoltaí, is é z seoladh thús bloc 16 beart de 4 luach
// cuntair a thaifeadtar ag an am céanna (ó nuair a bhíonn calafort á vótáil, scríobhtar na 8 ngiotán go léir ag an am céanna,
// lena n-áirítear ár 4 giotán ard riachtanach de chalafort D).
seoladh = z;
}
}

// rochtain a fháil arís ar an gcuimhne eeprom ag an seoladh ag tús an bhloic 16 beart de 4 gcuntarluach taifeadta
// seo caite, i.e. luachanna roimh shutting síos nó rebooting mar gheall ar reo. Taifeadadh an ceann is déanaí
// luachanna gcuntar isteach i sraith de 4 caidéal athróg.

EEPROM.get(seoladh, caidéal[0]);
EEPROM.get(seoladh + 4, caidéal[1]);
EEPROM.get(seoladh + 8, caidéal[2]);
EEPROM.get(seoladh + 12, caidéal[3]);

seoladh += 16; // an seoladh chun an chéad bhloc eile a scríobh a mhéadú gan sonraí an taifid dheireanaigh a fhorscríobh

//deireadh aisghabháil sonraí///////////////////////////////////// /////////////////

ceangail Idirbhriseadh(0, comhaireamh, ÉIRIÚ); // bioráin D2, a chumasú idirbhriste, teacht gach soicind
// bíoga ó RTC DS3231 ó aschur SQW

wdt_enable(WDTO_8S); // cuir tús leis an lasc ama faire, atosaigh an rialtóir i gcás reo, am,
// ar gá duit an t-ordú athshocraithe lasc ama a eisiúint wdt_reset( agus rebooting a sheachaint le linn gnáthoibríochta - 8 sec.
// le haghaidh tástálacha ní mholtar an luach a shocrú go dtí níos lú ná 8 soicind. Sa chás seo, is fearr an t-amadóir a athshocrú
// jerking, agus tarlaíonn sé gach soicind.

}

lúb neamhní () {
// timthriall folamh, anseo beidh rialú ar oibríocht chéim oscailte an mhótair leictreach
}

comhaireamh neamhní() {

tft.setTextColor(ST7735_WHITE); // socraigh dath an chló
t = rtc.getTime(); // am léite
tft.setCursor(5, 120); // ag socrú suíomh an chúrsóra
tft.fillRect(5, 120, 50, 7, ST7735_BLACK); // an limistéar aschuir ama a ghlanadh
tft.print(rtc.getTimeStr()); // léamha clog aschuir

wdt_reset(); // athshocraigh an faire gach timthriall, i.e. an dara

le haghaidh (rc = 0; rc < 4; rc ++) // tús an timthrialla chun comhlíonadh an staid ionchuir a sheiceáil
// giotán poirt go dtí an staid léite roimhe seo de ghiotán poirt D
{
pinState = (PIND >> 4) & ( b << rc );

más rud é (pumrcounter [rc] != pinState) {// agus más rud é nach bhfuil ag teacht leis, ansin
pumrcounter[rc] = pinState; // luach nua 1/0 a shannadh don athróg stádais ghiotán calafoirt
}
// léiriú ar staid na n-ábhar rialaithe datha
// Is glitch bheag é BLUE den scáileán (nó leabharlann?), RGB agus BGR atá measctha suas.
más rud é (pinState == ( b << rc )) {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_BLUE); // le haghaidh comhaireamh leibhéal íseal athraigh GLAS go GORM
} {Eile
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_GREEN); // le haghaidh comhaireamh leibhéal íseal athraigh GORM go GLAS
caidéal [rc] += 1; // cuir 1 soicind leis an gcuntar ama oibriúcháin
}
}

k++;
má (k == 36) {
k = 0;

tft.fillRect(30, athrú, 97, 40, ST7735_BLACK); // an limistéar taispeána ama oibriúcháin a ghlanadh
tft.fillRect(60, 120, 73, 7, ST7735_BLACK); // agus dátaí

tft.setCursor(60, 120); // ag socrú suíomh an chúrsóra
tft.print(rtc.getDateStr()); // dáta taispeáint ar scáileán LCD

le haghaidh (rc = 0; rc < 4; rc ++) // uaireanta oibriúcháin aschuir ina n-iomláine, deichithe agus
{
tft.setCursor ( 30, rc * 10 + shift ); // na céaduithe uaire le hathrú scáileáin síos 10 picteilín
tft.println(caidéil [rc] / m);
}

// ag scríobh luachanna uaireanta oibriúcháin “amh” (i soicindí) chuig EEPROM /////////////////////////

le haghaidh (rc = 0; rc < 4; rc++)
{
EEPROM.put(seoladh, caidéal [rc]);
seoladh += sizeof(snámh); // incrimint an athróg scríobh seoltaí
}
}

// sonraí a sheoladh thar an gcainéal raidió ó shonraí a léiríonn cé mhéad beart ba chóir a sheoladh.
má (k == 6 ) || (k == 18 ) || (k == 30 )) {

sonraí fada gan síniú;

radio.write(&tús, sizeof(tús));

le haghaidh (i = 0; i < 4; i++) {
sonraí = caidéal [ i ] ;
radio.write( &sonraí, méid(sonraí));
}
}
}

Cúpla nóta ag an deireadh. Tarlaíonn comhaireamh ar leibhéal íseal loighciúil ag na hionchuir.

Is ionann friotaíocht tarraingt suas R2-R5 agus 36 kOhm don rogha le photoresistors GL5516. I gcás optocoupler phototransistor agus sealaíochta, a leagtar go 4,7-5,1 kOhm. Cuireadh an bootloader Arduino Nano v3.0 in ionad an Arduino Uno ag baint úsáide as an ríomhchláraitheoir TL866A chun an t-amadóir faire a oibriú i gceart. Déantar na fiúsanna a cheartú chun oibriú ag voltais os cionn 4,3 V. Níor úsáideadh an ciorcad athshocraithe seachtrach R6 C3. Sa chlár samplach, ní fhreagraíonn minicíocht an tarchuradóra don raon neamhcheadúnaithe; tá an raon 2,4 MHz teoranta do mhinicíochtaí 2400.0-2483.5 MHz.

Is é raon an tarchuradóra E01-ML01DP05 ná 2400-2525 MHz. Is é bandaleithead aon chainéil amháin ná 1 MHz, agus an luas á shocrú mar “RF24_2MBPS” beidh an cainéal radio.setChannel(120) sonraithe agus áitítear an chéad cheann eile, i.e. beidh an banna 2 MHz.

Foinse: will.com

Add a comment