Rafitra fanangonana angon-drakitra manokana eo an-toerana

Nividy lahatsoratra fanaraha-maso NEKST-M ny orinasa, novokarin'ny Next Technologies ao an-toerana. Mba hiantohana ny fahitana ny fiasan'ny unit pumping,
fanairana afo sy fiarovana, fisian'ny voltase amin'ny fanombohana, mari-pana ao amin'ny efitrano, haavon'ny rano maika. Ny fon'ny NEKST-M dia ATMEGA 1280 ary ity zava-misy ity dia mampahery amin'ny resaka fahafahana mamorona kitapo manokana ho an'ny filana manokana.

Ny asa dia natao hamorona rafitra fandefasana eo an-toerana tsy miankina tanteraka amin'ny filana manokana ao anatin'ny fotoana fohy indrindra ary amin'ny vidiny kely indrindra. Ny fototra dia microcontroller. Fampandrosoana, famokarana, noforonin'ny mpiasa ny tenany.

Ny rafitra dia tsy maintsy miasa tsy misy fiankinan-doha amin'ny tambajotra finday, lohamilina, Internet ary ny rafitra fanomezan-dΓ lana amin'ny fampiasana loharanon'ny onjam-peo, fa tsy mampiasa ordinatera amin'ny fampandehanana ny rafitra fanaraha-maso sy fanaraha-maso na, amin'ny ankamaroany, mampiasa solosaina tsindraindray, tsy misy fidirana amin'ny zavatra nandritra ny fotoana ela (6-9 volana). Ny rafitry ny tambajotra dia manana rafitra radial. Ny angon-drakitra dia angonina amin'ny fotoana iray ary avy eo alefa ho an'ny fanodinana amin'ny alΓ lan'ny fantsom-pifandraisana mahazatra na amin'ny dika mitovy.

Ny rafitra dia tsy maintsy manome:

  • fanaraha-maso ny fiasan'ny vondrona paompy
  • automation ara-teknolojia
  • fiarovana amin'ny vokatry ny fepetra maika
  • famantarana vonjy taitra
  • kajy ny fotoana fiasana
  • kajy ny habetsaky ny herinaratra lany
  • fitaovana fanaraha-maso ny mari-pana
  • fiarovana sy fanairana afo
  • fandraketana an-davitra ara-potoana ny vaovao
  • fepetra takiana ho avy tsy fantatra

Fepetra miasa:

  • faritra fandrakofana 1 km.
  • fahitana mivantana eo amin'ny zavatra
  • hafanana avy amin'ny +50 hatramin'ny -50 C
  • hamandoana hatramin'ny 100%
  • tahiry biolojika mavitrika (bositra, bakteria mampihena sulfate)
  • vibration, tsy misy intsony, ny milina kilasy 1-2 araka ny GOST ISO 10816-1-97
  • tontolo iainana elektromagnetika - fanodinana motera elektrika miaraka amin'ny KT 6053 contactor, fitaovana fanombohana malefaka RVS-DN, fitaovana fanaraha-maso SIEMENS MICROMASTER PID, taratra ao amin'ny faritra ISM sy GSM araka ny fepetra takian'ireo fitaovana ireo, lasantsy arc amin'ny tranokala
  • Volavolan-tambajotra tafahoatra, fahatapahana vetivety amin'ny famatsiana herinaratra, tselatra tafahoatra, tsy fifandanjana amin'ny dingana rehefa tapaka ny tariby ambony amin'ny tambajotra fizarana 6-10 kV.

Na dia eo aza ny fepetra henjana toy izany, dia tsotra ny fampiharana rehefa mamaha ny olana tsikelikely.

Raha raisina ny zava-drehetra dia lasa "atidoha" amin'ny drafitra ny birao "Arduino Nano 3.0". Ny birao robotdyn dia manana controller ATMEGA 328, ny stabilizer 3,3V malefaka ilaina ho an'ny
800 mA ankehitriny ary mpanova ho CH340G UART-USB.

Voalohany indrindra, ny kaontera ora fiasana dia noforonina ho ny farany indrindra. Ny metatra indostrialy efa nampiasaina teo aloha dia nivondrona tamin'ny PIC miaraka amin'ny faritra famatsiana herinaratra tsy misy transformer dia tsy nahomby noho ny fiakaran'ny voly tao anatin'ny herintaona niasana. Ireo izay mifandray amin'ny famatsiana herinaratra 5V vita an-trano ihany no nijanona. Mba hanafainganana ny fametrahana sy ny fahaiza-manaon'ny fifandraisana, ny famantarana momba ny toetry ny vondrona dia nalaina avy amin'ny terminal ny fitaovana switching, i.e. fisoratana anarana ny fisian'ny 1st phase malefaka amin'ny telo-dingana hery famatsiana ny 380V. Mba hifanaraka amin'ny mpanara-maso, dia ampiasaina ny fampitaovana mpanelanelana miaraka amin'ny fihodinkodinana 220V na optocoupler misy LED sy photoresistor GL5516 na optocoupler PC817. Nosedraina ny safidy rehetra. Ny LED dia mandeha amin'ny alΓ lan'ny voltora voahitsy miaraka amin'ny fetra amin'izao fotoana izao amin'ny fampiasana capacitor SVV22 roa natao ho an'ny voltase 630V mifandray amin'ny andian-dahatsoratra ho fiarovana mandritra ny fitsapana tsy nahy ny faritra misy megohmmeter.
Famakiana famakiana fotoana fiasana amin'ny alΓ lan'ny efijery LCD ST7735S, fandefasana angon-drakitra amin'ny fotoana tena izy amin'ny alΓ lan'ny radio mampiasa ny maody E01-ML01DP05 amin'ny matetika 2,4 MHz. Ity fitaovana ity dia misy ny chip nRF24L01+ sy ny RFX2401C transmit / receive amplifier,
hery mivoaka hatramin'ny 100 mW. Antenna helika natao ho an'ny faritra irina ao amin'ny kajy an-tserasera toerana. Ny safidy karazana antenne dia voafaritra amin'ny alΓ lan'ny fanilihana ny fandraisana ireo onja taratra tokana avy amin'ny rafitra metaly manodidina. Ny ampahany amin'ny antena dia atao pirinty amin'ny mpanonta 3D. Ny toetry ny kaontera amin'izao fotoana izao dia voatahiry ao amin'ny EEPROM-n'ny mpanara-maso ny tenany ary averina amin'ny laoniny raha misy fahatapahan-jiro tsy nampoizina. Ny elanelam-potoana amin'ny fanisana dia omen'ny chip RTC DS3231 amin'ny endrika modely misy bateria backup. Ny famatsiana herinaratra dia mampiasa modules 3, ny tena loharano pulse 220 / 5V HLK-PM01 600mA, mpanova avy amin'ny 1-5V mankany 5V HW-553 ΠΈ 03962A - controller bateria miaraka amin'ny tetika fiarovana amin'ny circuit fohy, overdischarge ary overcharge. Ny singa rehetra dia novidina tao amin'ny tranokala Aliexpress.

BreadboardRafitra fanangonana angon-drakitra manokana eo an-toerana
4-channel counter. Misy sivana LC ao amin'ny fidirana mba hiarovana amin'ny fitsabahana amin'ny tsipika fifandraisana miolikolika. Ny angon-drakitra momba ny toetry ny zavatra mifehy dia vakiana indray mandeha isan-tsegondra ary aseho amin'ny loko amin'ny LCD. Ny famakiana dia nohavaozina ary voarakitra ao anaty fitadidiana tsy miovaova isaky ny 1 segondra. Ny 36 segondra dia 36/1 amin'ny ora iray, io no endrika ilana ny angona. Isaky ny 100 seg. ampitaina momba ny isan'ny segondra fiasana isaky ny vondrona fanaraha-maso. Ny fitadidiana EEPROM dia manana tsingerin'ny fanoratana famafana, araka ny filazan'ny mpanamboatra, in-12. Ny safidy ratsy indrindra dia rehefa sela iray farafahakeliny no havaozina tsy tapaka. Ny habetsahan'ny kaontera 100000 dia 1 bytes, ity dia laharana endrika lava, kaontera 4, ny fitambaran'ny 4 bytes dia misy rakitra iray. Ny halavan'ny fitadidian'ny chip dia 16 bytes; aorian'ny fidirana 1024 amin'ny kaontera 64 dia hanomboka indray ny firaketana. Ao amin'ny tranomboky EEPROM, ny fomba EEPROM.put dia tsy manoratra; raha mifanandrify ny sandan'ny sela sy ny fampahalalana nosoratana, dia tsy hisy fahasimbana ny sela. Vokatr'izany, ny fotoana fiasan'ny fahatsiarovana azo antoka dia ho mihoatra ny 4 taona. Mety ho lava kokoa ny fotoana hanaovana asa azo atao nefa tsy azo antoka.

Diagram de circuitRafitra fanangonana angon-drakitra manokana eo an-toerana
Programa amin'ny Arduino IDE//12 octet (328%)

#ao anatin'izany // Famakiam-bokin'ny grafika fototra
#include // tranomboky manokana momba ny Hardware
#include
#include
#include
#ampidiro
#ampidiro
Radio RF24(9, 10); // radio object ho an'ny fiaraha-miasa amin'ny tranomboky RF24,
// ary laharan-pin nRF24L01+ (CE, CSN)
#ao anatin'izany
DS3231 rtc(SDA, SCL);
Fotoana t;

//#define TFT_CS 10
#faritra TFT_CS 8
#define TFT_RST -1 // azonao atao koa ny mampifandray izany amin'ny Arduino reset
// raha izany, apetraho amin'ny -1 ity pin #define ity!
//#define TFT_DC 9 // DC=RS=A0 - safidy fanendrena hisafidianana baiko na rejisitra data.
#faritra TFT_DC 3

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

// Safidy 2: ampiasao izay tsimatra fa miadana kely!
#define TFT_SCLK 13 // apetraho amin'izay pin tianao ireo!
#define TFT_MOSI 11 // apetraho amin'izay pin tianao ireo!
//Adafruit_ST7735 tft = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST);
#ao anatin'izany

byte shift = 52;
byte pinState;
paompy lava tsy misy sonia[4]; // array miaraka amin'ny sanda mifanandrify 4 segondra
mitsingevana m = 3600.0;
adiresy int tsy misy sonia = 0;
int rc; // variable ho an'ny counters
somprim lava tsy misy sonia = 0;
lava tsy misy sonia sumsec = 0;
byte i = 0;
byte k = 34;
tsy misy sonia int z = 0;
byte b = B00000001;
byte pumrcounter[4]; // array ho fitehirizana ny toe-javatra, 1 - off, 0 - on.
int manomboka = 0; //

void setup () {

rtc.begin();
radio.begin(); // Atombohy ny asa nRF24L01+
radio.setChannel(120); // fantsona angona (avy amin'ny 0 ka hatramin'ny 127).
radio.setDataRate(RF24_250KBPS); // tahan'ny famindrana data (RF24_250KBPS, RF24_1MBPS, RF24_2MBPS).
radio.setPALevel(RF24_PA_MAX); // hery fampitana (RF24_PA_MIN=-18dBm, RF24_PA_LOW=-12dBm,
// RF24_PA_HIGH=-6dBm, RF24_PA_MAX=0dBm)
radio.openWritingPipe(0xAABBCCDD11LL); // Sokafy fantsona misy famantarana ho an'ny famindrana angona

// Mba hametrahana ny fotoana, esory ny tsipika ilaina
//rtc.setDOW(1); // Andron'ny herinandro
//rtc.setTime(21, 20, 0); // Ora, amin'ny endrika 24 ora.
//rtc.setDate(29, 10, 2018); // Daty, 29 Oktobra 2018

tft.initR(INITR_BLACKTAB); // manangana chip ST7735S, tabilao mainty
// Ampiasao ity initializer ity (tsy fanehoan-kevitra) raha mampiasa TFT 1.44" ianao
//tft.initR(INITR_144GREENTAB); // manangana chip ST7735S, tabilao rcB RED
tft.setTextWrap(diso); // Avelao hivoaka ny sisiny havanana ny lahatsoratra
tft.setRotation( 2 ); // ho an'ny PCB BLACK sy RED tft.setRotation(0) na tsia.
tft.fillScreen(ST7735_BLACK); // Γ©cran mazava

DDRD = DDRD | B00000000;
PORTD = PORTD | B11110000; // miasa ny fanamafisana rindrambaiko, avo lenta -
// zavatra voafehy "tsy miasa", "4" dia nosoratana ho an'ny seranan-tsambo D 1 zokiny rehetra, tsy misy fanisana.

ho an'ny (rc = 0; rc < 4; rc++)
{
tft.setCursor ( 3, rc * 10 + shift ); // mampiseho laharan'ny toeran'ny zavatra mifehy
tft.print(rc + 1);
}

tft.setCursor(12, 0); // mamoaka lahatsoratra 3 andalana
tft.println("MPANJAKA & MANORONA"); // hidera tena ry olon-tiana
tft.setCursor(24, 10); // na copyright ratsy
tft.print("DEVELOPER M.M.");
tft.setCursor(28, 20);
tft.print("MPANorina-ER D.D.");

//////////////////////////////////////////// ///////////

for (z = 0; z <1023; z += 16) {// Miverimberina amin'ny sela rehetra amin'ny indostria
//ary manoratra amin'ny laharan-tariby 4 paompy, 4 bytes isaky ny kaontera, satria
// variable long unsigned. Misy kaontera 4, ny rakitra iray amin'ny 4 rehetra dia maka 16 bytes.
EEPROM.get(z, paompy[0]); // noho izany, raha tsy misy ny for loop, kely kokoa ny volume
EEPROM.get(z+4, paompy[1]);
EEPROM.get(z+8, paompy[2]);
EEPROM.get(z+12, paompy[3]);

// manendry sanda vaovao manaraka ho an'ny fitambaran'ny kaontera 4
sumprim = (paompy [0] + paompy [1] + paompy [2] + paompy [3]);

// mampitaha ny sanda vaovao amin'ny fitambaran'ny kaontera 4 ao amin'ny fari-pahaizan'ny sumprim amin'ny sanda teo aloha ao amin'ny fari-piainana
// sumsec ary raha latsaky na mitovy amin'ny isa vaovao ny vola teo aloha, dia omena ny lehibe na mitovy vaovao
// sanda sumsec.

raha ( sumsec <= sumprim ) {
sumsec = sumprim; //

//ary ny sanda ankehitriny z dia omena amin'ny fari-piadidiana adiresy, z dia ny adiresin'ny fiandohan'ny sakana 16-byte misy sanda 4
// counters voarakitra amin'ny fotoana iray ihany (hatramin'ny fandatsaham-bato ny seranana, ny 8 bits rehetra dia nosoratana miaraka,
// anisan'izany ny seranan-tsambo 4 avo indrindra ilainay D).
adiresy = z;
}
}

// miditra indray amin'ny fitadidiana eeprom amin'ny adiresin'ny fiandohan'ny sakana 16 bytes amin'ny soatoavina 4 voarakitra an-tsoratra
// farany, i.e. sanda alohan'ny hanakatona na famerenana indray noho ny hatsiaka. Fandraketana ny farany
// sanda mifanohitra amin'ny laharan'ny paompy variables 4.

EEPROM.get(adiresy, paompy[0]);
EEPROM.get(adiresy + 4, paompy[1]);
EEPROM.get(adiresy + 8, paompy[2]);
EEPROM.get(adiresy + 12, paompy[3]);

adiresy += 16; //fampitomboana ny adiresy hanoratana ny sakana manaraka nefa tsy manodina ny angon-drakitra farany

//faran'ny fanarenana data //////////////////////////////////////// /////////////////

attachInterrupt(0, isa, FISORONANA); // pin D2, avelao ny interrupts, tonga isaky ny segondra
// pulses avy amin'ny RTC DS3231 avy amin'ny output SQW

wdt_enable(WDTO_8S); // atombohy ny fameram-potoana, avereno indray ny mpanara-maso raha sendra mangatsiaka, fotoana,
// izay tokony hamoahanao ny baiko fameram-potoana wdt_reset (ary aza averina indray mandritra ny fandidiana mahazatra - 8 sec.
// ho an'ny fitsapana dia tsy soso-kevitra ny hametraka ny sanda ho latsaky ny 8 segondra. Amin'ity tranga ity, ny fameram-potoana dia tsara kokoa
// mitsambikina, ary mitranga isan-tsegondra izany.

}

void loop () {
// tsingerina tsy misy na inona na inona, eto dia hisy ny fanaraha-maso ny fampandehanana ny motera elektrika
}

void isa() {

tft.setTextColor(ST7735_WHITE); // mametraka ny lokon'ny endritsoratra
t = rtc.getTime(); // fotoana famakiana
tft.setCursor(5, 120); // mametraka ny toeran'ny cursor
tft.fillRect(5, 120, 50, 7, ST7735_BLACK); // manadio ny faritra famoahana fotoana
tft.print(rtc.getTimeStr()); // famakiana famantaranandro mivoaka

wdt_reset(); // avereno indray ny alika mpiambina isaky ny tsingerina, izany hoe segondra

for (rc = 0; rc <4; rc ++) // fiandohan'ny tsingerin'ny fanamarinana ny fanarahana ny fanjakana fampidirana
// bits port mankany amin'ny toetry ny port D bits teo aloha
{
pinState = (PIND >> 4) & ( b << rc );

raha (pumrcounter [rc] != pinState) { // ary raha tsy mifanaraka, dia
pumrcounter[rc] = pinState; // manendry ny fari-piainan'ny port bit sanda vaovao 1/0
}
// famantarana ny toetry ny zavatra mifehy ny loko
// BLUE dia glitch kely amin'ny efijery misy (na tranomboky?), RGB sy BGR dia mifangaro.
raha (pinState == ( b << rc )) {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_BLUE); // ho an'ny fanisana ambaratonga ambany dia manova ny MAITSO ho BLUE
} else {
tft.fillRect(15, ((rc * 10 + shift)), 7, 7, ST7735_GREEN); // ho an'ny fanisana ambaratonga ambany dia ovay ny BLUE ho MAITSO
paompy [rc] += 1; // ampio 1 segondra amin'ny kaontera ora fiasana
}
}

k++;
raha (k == 36) {
k = 0;

tft.fillRect(30, shift, 97, 40, ST7735_BLACK); // manadio ny faritra fampisehoana fotoana fiasana
tft.fillRect(60, 120, 73, 7, ST7735_BLACK); // sy daty

tft.setCursor(60, 120); // mametraka ny toeran'ny cursor
tft.print(rtc.getDateStr()); // asehoy ny daty eo amin'ny efijery LCD

ho an'ny (rc = 0; rc <4; rc ++) //mamoaka ora fiasana manontolo, ampahafolony ary
{
tft.setCursor ( 30, rc * 10 + shift ); // am-jatony amin'ny adiny iray miaraka amin'ny fiovan'ny efijery 10 pixels
tft.println(paompy [rc] / m);
}

// manoratra ny sandan'ny ora fiasana "manta" (ao anatin'ny segondra) mankany amin'ny EEPROM ///////////////////////////

ho an'ny (rc = 0; rc < 4; rc++)
{
EEPROM.put(adiresy, paompy [rc]);
adiresy += sizeof(float); // mampitombo ny fari-piadidiana fanoratana
}
}

// mandefa data amin'ny onjam-peo avy amin'ny angon-drakitra manondro ny isan'ny bytes tokony halefa.
raha ((k == 6 ) || (k == 18 ) || (k == 30 )) {

angona lava tsy misy sonia;

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

ho an'ny (i = 0; i < 4; i++) {
data = paompy [i];
radio.write(&data, sizeof(data));
}
}
}

Fanamarihana vitsivitsy amin'ny farany. Ny fanisana dia mitranga amin'ny ambaratonga lojika ambany amin'ny fampidirana.

Ny fanoherana misintona R2-R5 dia 36 kOhm ho an'ny safidy amin'ny photoresistors GL5516. Raha ny phototransistor optocoupler sy ny relay, napetraka amin'ny 4,7-5,1 kOhm. Ny Arduino Nano v3.0 bootloader dia nosoloina ny Arduino Uno amin'ny fampiasana ny programmer TL866A ho an'ny fampandehanana marina ny timer watchdog. Ny fuses dia ahitsy mba hiasa amin'ny voltages mihoatra ny 4,3 V. Tsy nampiasaina ny circuit reset ivelany R6 C3. Ao amin'ny programa santionany, ny fatran'ny mpandefa dia tsy mifanandrify amin'ny elanelana tsy nahazoana alalana; ny 2,4 MHz dia voafetra amin'ny frequence 2400.0-2483.5 MHz.

Ny isan'ny mpitatitra E01-ML01DP05 dia 2400-2525 MHz. Ny bandwidth amin'ny fantsona iray dia 1 MHz, rehefa mametraka ny hafainganam-pandeha ho "RF24_2MBPS" ny onjam-peo voatondro.setChannel(120) ary ny manaraka dia hibodo, izany hoe. ny tarika dia ho 2 MHz.

Source: www.habr.com

Add a comment