Control Distribuit In Culturi Agricole Diversificate

[NUME_REDACTAT] sursă

Controller:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import java.rmi.server.UnicastRemoteObject;

import java.util.ArrayList;

import java.util.HashMap;

public class Controller implements ControllerActions {

HashMap<String,String> responsesMap = null;

String command = null;

ArrayList historyList = null;

public Controller() {

responsesMap = new HashMap<String,String>();

responsesMap.put("Incepe ploaia", "Opreste instalatia de irigare");

responsesMap.put("Ploaia s-a terminat", "Porneste instalatia de irigare");

responsesMap.put("Senzorul de debit nu functioneaza", "Reseteaza senzorul de debit");

responsesMap.put("Senzorul de umitidate detecteaza ca umitidatea solului este foarte scazuta", "Cultura trebuie irigata in urmatoarea luna");

responsesMap.put("Senzorul de umitidate detecteaza ca umiditatea solului este in crestere","");

responsesMap.put("Senzorul de umitidate detecteaza ca umiditatea solului este in scadere","");

historyList = new ArrayList();

}

public void setCommand(String command){

this.command = command;

}

public String processMessage(String message) {

System.out.println(new java.util.Date().toString() + " Mesaj primit de la sensor: "+message);

historyList.add(new java.util.Date().toString() + " " + message);

if(command != null){

String tmp = command;

command = null;

return tmp;

}

else{

return responsesMap.get(message);

}

}

public static void main(String args[]) {

try {

Controller controller = new Controller();

ControllerActions stub = (ControllerActions) UnicastRemoteObject.exportObject(controller, 0);

// Bind the remote object's stub in the registry

Registry registry = LocateRegistry.getRegistry();

registry.bind("ControllerActions", stub);

System.out.println("Controller ready");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

while(true){

String command = br.readLine();

System.out.println(command);

if(command.contains("istoric") || command.contains("Istoric")){

System.out.println("*****************************Istoric***********************");

for(int i=0;i<controller.historyList.size();i++){

System.out.println(controller.historyList.get(i));

}

System.out.println("*****************************//***********************");

}

controller.setCommand(command);

}

} catch (Exception e) {

System.err.println("Controller exception: " + e.toString());

e.printStackTrace();

}

}

}

ControllerActions

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface ControllerActions extends Remote {

String processMessage(String message) throws RemoteException;

}

MessageScheduler

import java.util.Timer;

import java.util.TimerTask;

/**

* Simple demo that uses java.util.Timer to schedule a task to execute once 5

* seconds have passed.

*/

public class MessageScheduler {

Timer timer;

Sensor sensor = null;

public MessageScheduler(int seconds, Sensor sensor) {

this.sensor = sensor;

timer = new Timer();

timer.scheduleAtFixedRate(new MessageSender(),0, seconds * 1000);

}

class MessageSender extends TimerTask {

public void run() {

sensor.sendMessage();

}

}

}

Sensor

import java.io.IOException;

import java.rmi.RemoteException;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import java.util.Random;

public class Sensor {

ControllerActions stub = null;

private Sensor() {

try {

Registry registry = LocateRegistry.getRegistry();

stub = (ControllerActions) registry.lookup("ControllerActions");

} catch (Exception e) {

System.out.println("Sensor exception: " + e.toString());

e.printStackTrace();

}

}

public void sendMessage(){

String possibleMessages[] = {"Incepe ploaia","Ploaia s-a terminat", "Senzorul de debit nu functioneaza",

"Senzorul de umitidate detecteaza ca umitidatea solului este foarte scazuta",

"Senzorul de umitidate detecteaza ca umiditatea solului este in crestere",

"Senzorul de umitidate detecteaza ca umiditatea solului este in scadere"};

try {

Random randomGenerator = new Random();

int randomInt = randomGenerator.nextInt(6);

String response = stub.processMessage(possibleMessages[randomInt]);

executeCommand(response);

} catch (RemoteException e) {

e.printStackTrace();

} }

public void executeCommand(String response){

if(response.contains("restart") || response.contains("restart")){

System.out.println("Se restarteaza applicatia!");

try {

Runtime.getRuntime().exec("cmd.exe /c start java Sensor");

System.exit(0);

} catch (IOException e) {

e.printStackTrace();

}

System.exit(0);

}

else{

if(!response.isEmpty()){

System.out.println(new java.util.Date().toString()+" Mesaj primit de la controller: "+response);

}

}

}

public static void main(String[] args) {

System.out.println("Initializing sensor.");

new MessageScheduler(5, new Sensor());

System.out.println("Sensor is initialized.");

Bibliografie

1.http://www.agrointel.ro

2.http://www.agropataki.ro

3.http://www.bluemonitor.ro

4.I. Dumitrache – Ingineria reglării automate

CUPRINS

[NUME_REDACTAT] I. Considerente teoretice

1.2. Care sunt metodele de irigare?

1.3. Detalierea tipurilor de sisteme de irigații

1.4. Tipuri de bazine

1.5. Tipuri de puțuri

1.6. Ce este SCADA?

1.7. Limbajul de programare RMI – [NUME_REDACTAT] 2. [NUME_REDACTAT]

2.1. Prima cultură – Plantația de pruni

2.2. A doua cultura – Grâul

2.3. A treia cultură – Cultura de roșii

2.4.Bazinul de stocare apă

2.5. Automatizarea sistemului de irigații

2.6. Simulare sistem SCADA

[NUME_REDACTAT]

Bibliografie

LUCRARE DE LICENȚĂ

Control distribuit în culturi agricole diversificate

CUPRINS

[NUME_REDACTAT] I. Considerente teoretice

1.2. Care sunt metodele de irigare?

1.3. Detalierea tipurilor de sisteme de irigații

1.4. Tipuri de bazine

1.5. Tipuri de puțuri

1.6. Ce este SCADA?

1.7. Limbajul de programare RMI – [NUME_REDACTAT] 2. [NUME_REDACTAT]

2.1. Prima cultură – Plantația de pruni

2.2. A doua cultura – Grâul

2.3. A treia cultură – Cultura de roșii

2.4.Bazinul de stocare apă

2.5. Automatizarea sistemului de irigații

2.6. Simulare sistem SCADA

[NUME_REDACTAT]

[NUME_REDACTAT]

Tema proiectului: „Control distribuit în culturi agricole diversificate”.

Se va proiecta un sistem de irigații automatizat pentru trei culturi agricole, cu ajutorul sistemului SCADA.

Voi trece prin partea teoretica și apoi prin cea practică.

Acum voi argumenta de ce am ales metodele folosite în lucrare.

De ce am ales metoda de irigare prin aspersie pentru cultura de grâu si metoda prin picurare pentru celelalte două culturi (cultura de roșii și plantația de pruni)?

– economia de apă;

– economia de electricitate;

– lipsa intervenției muncitorilor (decât în caz de avarie);

– udare constantă și exactă;

În cazul culturii de grâu aspersoarele aruncă apa precis în aria calculată și cu cantitatea cunoscută de apă, consumul știindu-se dinainte de inceperea procesului de irigare. Apa nu se împrăștie și nu se pierde pe drum.

Pentru cultura de roșii si plantația de pruni, folosirea irigației prin picătură este cea mai economa metodă, deoarece consumă exact cantitatea de apă necesară plantei. Apa nu se împrăștie și nu se pierde pe drum.

Irigarea prin metodele alese mai sus permit automatizarea sistemului de irigații. Pe lânga automatizarea instalației, apa circulând numai prin conducte, nu mai este nevoie de intervenția muncitorilor sa dirijeze apa sau sa mute motopompele, etc.

De ce am ales construirea unui bazin de colectare apă și forarea puțurilor?

Prin forarea puțurilor fermierul va avea întordeauna apa constantă, nu va mai depinde de nimic.

Bazinul de colectare apă va avea rolul de:

a încălzi apa înainte de irigare;

irigare;

stingerea incendiilor.

De ce am ales automatizarea instalației de irigare?

În primul rând prin automatizare spunem ușurarea muncii oamenilor. Irigarea va fi exactă și udarea se va face la ore optime pentru plante.

De ce am ales sistemul SCADA?

Dupa cum spune si numele, [NUME_REDACTAT] [NUME_REDACTAT] Acquisition – SCADA este un sistem inteligent care preia cea mai mare parte din atribuțiile muncitorului. SCADA ia decizii în timp real fără intervenția omului. De exemplu, o situație des întâlnită în irigarea culturilor, începe ploaia și sistemul de irigații pornește. Dacă un muncitor nu intervine să oprească irigarea, acea cantitate de apă și de energie electrică se va folosi degeaba. SCADA, prin senzorii amplasați pe teren, va detecta prezența ploii și va opri irigarea, astfel făcându-se o economie sau, după caz, muncitorul daca ar fi putut intervenii nu va mai fi nevoit. Pe lănga aceste intervenții acest sistem are o bază de date stocate,puse la dispoziția fermierului: când s-a irigat, când a plouat, de câte ori, etc.

Capitolul I. Considerente teoretice

1.1. Ce este un sistem de irigare ?

Sistemul de irigare reprezintă totalitatea lucrărilor efectuate pentru aprovizionarea dirijată cu apă a culturilor agricole în vederea  măririi productivității.

Când se utilizează un sistem de irigare ?

Sistemele de irigare sunt folosite în cazul în care se dorește:
– creșterea productiei (recoltei agricole);
– intreținerea plantei;
– refacerea vegetației;
– stabilizarea solurilor slab coezive;
– ameliorarea de soluri salinizate.

Irigarea reduce riscurile în afacerile agricole

„Irigarea culturilor este în primul rând o metodă de a reduce riscurile în afacerile agricole. Este clar că prin irigare, mai ales în perioadele de secetă, calitatea și randamentul culturilor cresc ceea ce înseamnă și venituri suplimentare.

La ora actuală, în lume, din cele peste 1,5 miliarde de hectare de teren arabil, aproximativ 300 de milioane de hectare sunt irigate, acestea din urma furnizând în jur de o treime din producția agricolă mondiala. [NUME_REDACTAT] ale Americii, India și China dețin împreună jumătate din totalul suprafețelor pe care se folosește irigarea sistematică.

Aportul terenurilor irigate la producția totală de cereale, la nivel mondial, este de 40% ceea ce corespunde cu producția medie de pe 18% din suprafața terenurilor arabile la nivel mondial. Totodată terenurile irigate contribuie la creșterea ocupării populației, de circa 30%.

Rata de creștere a amenajărilor de irigații a scăzut de la 2 – 3% între anii 1970-1980, la 0,6% între anii 2000 – 2010.
Conform statisticilor realizate de specialiști, pentru producerea unui singur kilogram de grâu este nevoie, de la însămînțare, până la recoltare, de 400 – 2.000 de litri de apă (în funcție de zonă, mai mult sau mai puțin aridă).”

Beneficiile instalării unui sistem de irigare automată:

apa este distribuită în mod uniform;

pierderile de apă sunt eliminate, deci se fac economii la cantitatea de apă consumată;

mai puțina fortă de muncă;

întregul sistem este automat, nu are nevoie de prezența nimănui;

poți planifica udarea recoltei în momentele optime, adică noaptea;

Cultura primește cantitatea de apă în funcție de cerințe.

1.2. Care sunt metodele de irigare?

Metodele de bază ale irigării sunt:

scurgerea prin canale sau tevi la suprafață;

scurgerea gravitațională prin canale sau tevi;

aspersiunea;

irigația subterană (prin tuburi);

picurare.

Irigarea la suprafață poate fi de mai multe feluri:

prin aspersiune (cu aspersoare);

radiculară (prin tevi perforate);

prin picurare (prin banda sau tub de picurare);

micro-aspersiune (cu aspersoare cu debit mic), etc.

Cultura vegetală are un rol important in alegerea sistemelor de irigatii.

Metoda de irigare diferă și în funcție de tehnologiile de cultură:

amenajări peisagistice;

cultura floricolă;

cultura pomicolă;

cultura legumicolă;

și altele.

În funcție de costurile și cerințele de funcțioanare, metodele de irigare sunt variate.

Dacă se respectă calendarul de irigare și cantitatea de apă necesară, atunci fermierul obține profit și nu pierderi.

Majoritatea sistemelor de irigare (cele mai comune) consuma în medie 12-30 litri de apă/minut.

Cel mai economic sistem pentru irigații este cel prin picurare, dar acesta nu se pretează la toate culturile agricole (grâu, porumb etc).

Cum se alege sistemul de irigație?

Când alegem sistemul de irigație ținem seama de:

cultură (floricolă,pomicolă,legumicolă,etc);

cantitatea de apă;

sol;

sursa energiei (branșament sau sursă/surse de energie regenerabilă ;

sursa de apă (puț, ape curgatoare,baraje etc);

finanțe (pentru achiziționare și pentru întreținere).

Datorită suprafețelor foarte mari care trebuiesc irigate, în agricultura sistemele de irigații sunt dintre cele mai complexe, ele fiind gândite foarte bine, deoarece pierderile pot fi foarte mari.

1.3. Detalierea tipurilor de sisteme de irigații

Sistemele de irigații prin aspersiune(cu aspersoare):

Ce inseamna aspersia apei?

Distribuția uniformă a apei sub forma unor picături fine, care simulează ploaia, pe o suprafață bine determinată. Dispozitivul care imprăștie apa este aspersorul, apa vine printr-o conductă pana în aspersor, iar acesta dispersează apa cu ajutorul presiunii dupa pe conductă.

Pentru aplicarea corecta și cu maximă eficiență a irigarii cu aspersoare, și nu numai, va trebui ținut cont în egală masură de factorii de climă, sol si plantă.

Tipuri de aspersoare:

cu rotor (pop-up);

spray.

Aspersoarele spray au o rază mică de împraștiere a apei, raza de udare fiind cuprinsă între 1,5-5,5m. Acestea sunt în general utilizate în spații înguste, unde sunt prezente multe obstacole, pe suprafețe mici de gazon, flori etc. Pe aspersoarele spray pot fi montate duze speciale, astfel putând fi utilizate și pentru udarea tufelor si arbuștilor.

Caracteristici generale ale aspersoarelor spray:

sunt construite din materiale de calitate pentru a asigura o funcționare fiabilă și performantă pe termen lung în aplicații și pot fi folosite atât pentru spații verzi rezidențiale cât și comerciale;

robuste și pregatite pentru a face fată oricărei provocări din teren;

opțional pot veni încorporate cu supapă de reținere și regulator de presiune;

au diferite înălțimi de ridicare a tijei pentru adaptibilitate în funcție de vegetația și configurația terenului;

presiunea recomandată de funcționare: 1,0-4,8 bari;

presiunea optimă de funcționare: 2,1 bari;

raza de udare: 0,6-5,2m (în funcție de duza și presiunea apei);

rata de precipitație: aproximativ 38mm/h (în funcție de duza și presiunea apei).

Aspersoarele cu rotor sunt aspersoare pop-up care ies din pamânt din cauza presiunii.

Se utilizează pe suprafețe de gazon mari. Raza de udare a aspersoarelor cu rotor este de la 5m în sus, în funcție de tipul aspersorului. Fiecare tip de aspersor are o anumita arie de acoperire, care deseori depinde și de presiunea apei. Rotoarele au duze incluse și unghiurile se pot regla sau poate stropi în cerc complet.

Au un corp compact și capac robust rezistent la călcare. Au structura rezistentă cu arc de retragere inoxidabil, dispun de etanșeitate foarte bună, iar raza de stropire poate varia în plus sau în minus cu 10% pana la 35% în funcție de modelul ales.”

Caracteristici generale ale aspersoarelor cu rotor:

acoperă suprafețe mari;

instalare rapidă și eficientă;

rezistență la coroziune și abraziune;

consumul de apă scăzut;

raza se ajustează foarte ușor;

unghiul de funcționare este reglabil;

reducerea razei de acțiune fără a schimba duza, prin acționarea șurubului de dispersie.

Sisteme de irigat prin picurare:

În principal tehnologia pentru irigare cu tub prin picurare se rezumă la udarea cu cantități controlate de apă corelate cu capacitatea de absorție a solului și evapotranspirația, distribuite în apropierea plantelor, în principal în zona de dezvoltare a rădăcinilor plantelor.

Alegerea acestor echipamente, instalații și sisteme de irigații prin picurare se pretează în mod deosebit la culturile horticole:

legume în câmp;

solarii;

sere;

grădini;

vii;

livezi;

flori;

culturile de porumb și cartofi;

Au posibilitatea unui grad mare de mecanizare.

Funcționarea acestor echipamente, instalații și sisteme de irigare cu conducte de picurare se bazează pe distribuirea apei în mod uniform, în puncte apropiate de plante, în mod lent, picătura cu picătura într-o propoziție și cu o frecvență adaptată nevoilor plantei, având posibilitatea compensării stricte a evapotranspirației, permitând un control riguros al normelor de udare și aplicarea acestora.

Echipamentele, instalațiile și sistemele pentru irigații cu conducte de picurare asigură o sanitate deosebita în raport cu alte metode de irigații cunoscute, datorită următoarelor considerente:

ca rezultat al neudării frunzelor și fructelor se reduce apariția bolilor și epidemiilor;

umiditatea atmosferică scăzută elimină apariția bolilor criptogamice;

pesticidele aplicate nu sunt spălate de pe frunze odată cu irigarea, prelungindu-se astfel timpul de actiune al acestora, reducând numărul de tratamente aplicate, implicit cantitatea de substanțe utilizate;

se reduce densitatea buruienilor și dezvoltarea acestora ca afect al udării limitate a suprafețelor.

Aceste echipamente, sisteme și instalații pentru irigații cu furtun de picurare reprezintă singura metodă eficientă de irigare uniformă pe terenuri denivelate și în pantă.

Datorită miscării capilare lente a apei în sol, aproape nici un pic de aer nu este scos din sol datorită penetrării apei. Microporii din sol ramân de obicei uscați și aerisiți, nivelul de umiditate fiind numai cu puțin peste capacitatea solului, cu excepția unei zone saturate, relativ mici aflate în imediata apropiere a picuratorului. Acest lucru permite solului o respirație corespunzătoare a rădăcinilor plantelor de-a lungul întregului sezon de vegetație, fără nici o strangulare în timpul, sau imediat după irigare.

Este posibilă irigarea 24 de ore, indiferent de situațiile extreme, în funcție de condițiile de permeabilitate a solului și cerințelor plantelor.

Se elimină în totalitate pierderile periferice de apa (udarea drumurilor, udarea zonelor adiacente și a zonelor terminale).

Temperatura solului se menține mai ridicată în timpul udării, comparativ cu metoda de irigare prin aspersie sau brazde, fapt ce conduce la o maturitate mai timpurie a culturilor, fapt de o importanță deosebită la irigarea spațiilor protejate (solarii, sere).

Folosirea acestor echipamente, sisteme și instalații pentru irigații cu tub prin picurare utilizează pe rețea presiuni reduse (doar 0,3-1,05 atmosfere), comparativ cu metoda de irigare prin aspersie, ceea ce conduce în afara unui consum de energie, mai redus pentru pomparea apei și la o siguranță în exploatare a rețelei alimentare, evitându-se astfel defecțiunile cauzate de utilizarea apei la presiuni ridicate de lucru.

1.4. Tipuri de bazine

Din punct de vedere a dimensiunilor:

bazine de dimensiuni mici (ex. 5-10metri cubi);

medii (20-100metri cubi);

mari (mai mari de 1000 metri cubi).

Bazinele cele mari sunt, prin definiție, rezervoare de stocare a apei pe termen lung.

Din punct de vedere a construcției:

bazine din beton;

din structuri metalice sau material plastic;

bazine săpate izolate cu membrană.

În funcție de capacitatea necesară și posibilitățile locale vom alege soluția optimă. 

Din p.d.v. al poziționării:

bazine situate sub nivelul pământului (tancuri subterane), lacuri deschise;

bazine și lacuri semi-ingropate (lacuri supraînălțate cu taluz, bazine semi-îngropate);

bazine supraterane (fundul bazinului se află deasupra nivelului solului);

bazine supraînaltate (turnuri de apă).

Bazinele săpate au anumite limitări (de ex. nivelul panzei freatice), cele supraînălțate sunt limitate de eventualitatea existenței unei surse de izvor ce necesită cădere liberă de apă. Turnurile de apă au avantajul ca odata ce apa a fost pompata în bazin, nu mai necesita pompa pentru alimentarea consumatorilor, deci are autonomie și pe perioadele cu căderi de rețea electrică.

Din p.d.v. al protecției:

bazine deschise sau închise;

acoperite. 

Bazinele acoperite sunt mai scumpe, dar au avantajul protecției suplimentare, respectiv a pierderilor de apă din evaporare reduse la minim.

Din p.d.v al izolației: există bazine din: 

beton neizolat, beton tratat cu amorsă hidroizolantă, beton izolat cu folie sau membrană

metal, fibră de sticlă, materiale plastice, compozite, etc

săpate, neizolate, izolate cu argilă sau bentonită

bazine izolate cu membrane și folie (cauciuc EPDM, HDPE, LDPE, PVC, etc)

Dintre toate tipurile de bazine de capacitate medie sau mare, cea mai rentabilă este construcția săpată în pământ, semi-îngropat, deci cu utilizarea pamantului excavat la construcția unui dig compactat. Astfel se evita cheltuielile legate de transportul și depozitarea solului excavat iar adâncimea acesteia poate fi mai mare, deci raportul dintre volumul de apă și cantitatea de material de hidroizolație este mai optimă.

1.5. Tipuri de puțuri

După adâncime:

puțuri de mică adancime (până în 50m);

puțuri de medie adâncime (între 50m și 150m);

puțuri de mare adâncime (peste 150m).

Tipuri de puțuri după materialul folosit la executarea sa:

puțuri din piatră sau beton (denumite și fântani, cu o adancime maximă de 50m);

puțuri din pvc (cu o adâncime de peste 50m).

Tipuri de puțuri ca diametru:

puțuri cu diametrul mare (80-100cm, până în 50m);

puțuri cu diametrul mic (90-250mm, se pot executa la toate tipurile de puțuri).

1.6. Ce este SCADA?

Numele SCADA este o abreviere de la [NUME_REDACTAT] [NUME_REDACTAT] Acquisition – orice aplicație care culege date despre un sistem în scopul de a controla acel sistem este o aplicație de tip SCADA.

O aplicație de tip SCADA vizează două elemente:

1. Procesul / sistemul / echipamentul ce se dorește a fi monitorizat și controlat (poate fi o centrală electrică, o rețea de apă, un sistem de dirijare a traficului sau orice altceva).

2. O rețea de echipamente inteligente care se interfațează cu primul sistem prin intermediul senzorilor si al mecanismelor de control. Aceasta rețea, care este sistemul SCADA, oferă posibilitatea monitorizării avansate și a controlului primului sistem prezentat.

Unde se utilizează SCADA?

Puteti folosi sisteme SCADA pentru gestionarea eficientă a oricărui tip de echipament, dar, în general, acestea sunt utilizate pentru automatizarea unor procese industriale complexe, unde controlul manual nu este practic, sisteme distribuite pe arii geografice mari, cu multipli parametri de monitorizat și corectat, sau cu viteza mare de modificare a datelor de proces, unde controlul uman este greoi și ineficient:

Fabricarea, transportul și distribuția de energie electrică;

Apă și canalizare;

Controlul incintelor;

Producție;

Managementul traficului;

Etc.

Când avem nevoie de SCADA?

Solutiile SCADA se impun în momentul în care avem un răspuns afirmativ la una dintre următoarele întrebări:

Are procese care necesită menținerea unor condiții de mediu speciale în diferite incinte?

Procesele sale necesită monitorizare în timp real a unor echipamente distribuite geografic?

Este important pentru el să analizeze modul în care modificarea input-urilor influentează output-urile?

Are nevoie să controleze echipamente de la distantă?

Are nevoie de informații exacte, în timp real, despre procese cheie din activitatea sa?

Monitorizarea si controlul în timp real cresc eficiența și maximizează profitul

Dacă ați înteles domeniile de aplicare ale soluțiilor SCADA și beneficiile acestora, trebuie să vă gândiți și la avantajele pe termen lung pe care le oferă ca și instrument de analiză:

Acces la date importante de proces, atât în timp real cât și istoric, cu posibilități de structurare și raportare flexibile;

Analiza trend-urilor de proces ;

Descoperirea și corectarea punctelor de încetinire ale procesului;

Reducerea schemelor de personal și a costurilor implicate.

Cum functionează o soluție SCADA?

O soluție SCADA indeplinește patru funcții:

1. Achiziție de date

2. Comunicarea datelor prin rețea

3. Prezentarea datelor

4. [NUME_REDACTAT] funcții sunt susținute de cele patru componente ale soluției SCADA:

1. Senzorii (digitali sau analogici) și releele de comandă care se interfațează direct cu procesul.

2. RTU-urile (Remote telemetry units). Aceste echipamente inteligente sunt instalate în teren pentru a prelua datele de la senzori pe de o parte, și a transmite comenzile la releele de comandă pe de altă parte.

3. [NUME_REDACTAT] sau serverul SCADA este o consolă care servește drept punct central al întregii aplicații. [NUME_REDACTAT] beneficiază de o interfață grafică prin care utilizatorul are acces la toate datele de proces și poate da comenzi pentru modificarea acestuia. De asemenea, exista corecții setate ca automate la modificarea unor parametri, comenzi corective pe care stația Master le transmite automat, fără intervenția operatorului.

4. Infrastructura de comunicații conectează [NUME_REDACTAT] cu RTU-urile din teren.

1.7. Limbajul de programare RMI – [NUME_REDACTAT] este RMI?

Remote method invocation (apelul procedurilor la distanță);

[NUME_REDACTAT] pentru implementarea aplicațiilor distribuite;

Ofera o sintaxă și semantică similare cu cele ale aplicațiilor ne-distribuite.

Caracteristici:

Permite colaborarea obiectelor aflate în mașini virtuale diferite;

Permite unei aplicații să apeleze metode ale unui obiect aflat în alt spațiu de adrese;

Implementează soluții (la nivel distribuit) pentru:

Identificarea obiectelor externe (remote);

Trimiterea parametrilor și primirea rezultatelor;

Tratarea excepțiilor;

Gestiunea memoriei.

Portabilitate.

Arhitectura RMI

Principiul de bază

Separarea conceptelor de comportament și implementare

Componentele unui sistem RMI:

Server:

Interfețele serviciilor;

Clasele cu implementări concrete;

Un serviciu de nume;

Eventual un server Web.

Client:

Interfețele serviciilor;

O aplicație client care solicită serviciul;

Eventual un server Web.

Capitolul 2. [NUME_REDACTAT]

Am propus o fermă cu 3 culturi diferite: pruni, grâu și roșii. Am împărțit terenul în trei arii, dimensiunile sunt în figura de mai jos.

În ceea ce urmează, va fi prezentată automatizarea sistemelor de irigații și materialele necesare.

Figura 1

[NUME_REDACTAT] 1:

Prima parcelă reprezintă cultura de grâu irigată cu aspersoare;

A doua parcelă de culoare gri reprezintă plantația de pruni, irigată cu sistemul de picurare;

A treia parcela de culoare albastră reprezintă cultura de roșii, irigată cu bandă cu picuratoare;

Patratul roșu din mijloc reprezintă bazinul de captare apa,puțurile și camera tehnică.

In total avem o arie de 81 de hectare care le vom iriga cu puțurile proprii prin 3 metode:

Irigarea cu aspersoare;

Irigarea cu tub și dispozitive picuratoare;

Irigarea cu bandă picuratoare.

Prima cultură – Plantația de pruni

Când precipitațiile sunt suficiente, udarea prunilor nu este necesară.

Când precipitațiile nu sunt suficiente (sub 500-600mm/an), prunii au nevoie de o cantitate de apă suplimentară.

Calendarul udărilor:

In luna martie dacă a fost o iarnă secetoasă;

La sfârsitul lunii următoare ori începutul lunii mai, în momentul legării fructelor;

La sfarșitul lunii mai sau începutul lunii iunie, când lăstarii sunt în creștere intensivă;

În cursul lunii iulie, pentru favorizarea creșterii fructelor;

Această udare este necesară doar în anii foarte secetoși, în luna august, dar nu mai aproape de 2-3 săptamani înaintea culesului;

Ultima udare, se face doar în anii cu secete crunte, și se face la începutul lunii noiembrie.

Dacă în luna respectivă a plouat îndeajuns măcar o singură dată, nu mai este nevoie de udarea respectivă.

Câtă apă este necesară pentru fiecare pom:

La prunii tineri, cantitatea de apă trebuie să fie între 10-30 litri pentru un singur pom, și trebuie să pătrundă 40-50cm în sol, în funcție de structura acestuia și gradul de umiditate;

La prunii care deja au intrat pe rod, cantitatea de apă trebuie să fie între 30-50 litri, și să pătrundă 70-80 cm în sol.

Cea mai des întâlnită greșeală în udarea pomilor este cea când se udă în cantități mici și dese. Din această cauză rădacinile având apa la suprafață se dezvoltă și ele tot la suprafață, și în iernile grele sau verile foarte secetoase se pot usca foarte ușor.

Figura 2

În parcela 1 (figura 2) am așezat teoretic pomii cu metoda „Pichetarea în pătrat” (figura 3). Această așezare a prunilor asigură un spațiu pentru așezarea pomilor uniform distribuit la toți pomii din livadă. Este o metodă des folosită la plantațiile pe terenuri plane, sau pante domoale.

La acest sistem de pichetare distanța dintre pomi pe rând va fi egală cu cea dintre rânduri.

Figura 3

Distanța între pomi am ales să fie de 4m între rânduri și 4 m între pomi. De aici rezultă că avem un număr de 16875 de pomi.

Cea mai eficientă și economică metodă de udare a plantației este udarea prin picurare.

Metoda prin picurare constă în distribuirea apei pe teren în mod lent, sub formă de picături.

Apa distribuită nu umezește decât o parte din sol, rămânând intervalul dintre rânduri neumezit. Apa este distribuita la fiecare pom în parte cu ajutorul dispozitivului de picurare. Se folosește o instalație, alcătuită dintr-o rețea de conducte din material plastic prevăzute cu dispozitive de picurare, amplasate la fiecare pom în parte, respectiv din 4 în 4 m.

Avantajele utilizării irigării prin picurare sunt multiple:

solul se mentine la un nivel optim de umiditate pentru pom

irigarea se automatizează

reducerea cheltuielilor cu îngrășeminte, datorită aplicării acestora localizat, la fiecare pom, prin dizolvarea în apa de udat.

nu creează condiții pentru transmiterea bolilor;

se realizeazaă importante economii de energie, apă, forță de muncă;

este puțin pretențioasă la condițiile de sol, relief, putând fi folosită pe terenuri cu pante mari, denivelate sau cu nivel freatic ridicat;

terenul ramâne tot timpul accesibil, funcționarea acestui sistem de irigație permitând desfașurarea altor operații de întreținerea a culturii;

este ușor de utilizat și este în mod categoric o investiție pentru o perioadă îndelungată

Pentru parcela noastră am ales ca, conducta principală (de transport), desenată cu albastru în figura de mai jos (figura 4), sa strabatî terenul pe jumatate, astfel, distanța de la conducta de transport la ultimul pom sa fie egala, având un debit de apa constant la fiecare pom.

Liniile negre, asezate vertical semnifică tuburile secundare (de udare), care sunt legate de conducta principală. În ele sunt înfipte dispozitivele de picurare la fiecare pom.

Figura 4

Pentru acesta instalație de irigare avem nevoie de:

-tub PE cu diametrul de 75mm – 600ml

-tub PE moale cu diametrul de 25mm – 66kml

-dispozitive de picurare – 16875 bucati

-teu PE cu diametrul de 75mm redus la 25mm – 220bucati

-cot PE cu diametrul de 75mm redus la 25mm – 1 bucata

-robinet PE cu diametrul de 25mm – 221 bucati

Pentru pomii fructiferi am ales dispozitivul de picurare [NUME_REDACTAT]-Plus, cu un debit de 8l/h.

Acest dispozitiv de picurare, numit și „Ciuperca de picurare” are următoarele caracteristici:

-uniformitatea fluxului de apă cu presiune compensată în cazul unei foarte mari variații de presiune de operare, este mai buna ca niciodată

-canalul turbulent mai mare al fluxului de apă, cu auto-curățare, oferă o rezistență superioară la înfundare

-caracteristicile constructive permit o inspecție în câmp rapidă și ușoară

-baza stabilă

-ciuperca de picurare clasa A conform normelor UNI ISO 9260

-capacul se poate îndeparta pentru curatare interioară.

Specificații:

-debit 4lh sau 8l/h

-intervalul presiunii de operare recomandat: de la 0,5 pana la 3,5 bar

-utilizarea unui material de polietilena stabil

-realizarea unei găuri de 2mm pentru introducerea piciorului de bază a ciupercii de picurare în coloana de irigare

-utilizarea unui adăpost mascul pentru racordarea microtubului

Cantitatea necesară de apă consumată maxim pentru irigarea unui singur prun este de 50l, de unde rezultă că pentru întreaga suprafață, respectiv a 16875 de pomi, consumul maxim este de 843mc/udare.

Figura5 .Cantitatea de apă consumată/lună de-a lungul unui an de un singur prun

Figura 6.Cantitatea de apă consumată/lună de-a lungul unui an de plantatia de pruni

A doua cultura – [NUME_REDACTAT] are urmatoarele dimensiuni:

300m lațime ;

600m lungime.

Aria: 180000mp (18ha).

A doua cultură pe care am ales-o este cultura de grâu.

Această cultură necesită o udare cu aspersoare.

Aspersoarele au un consum de apa mult mai mare decat metoda anterioară de udare, și anume udarea prin picurare.

Modele care le-am ales sunt aspersoarele Sennior.

Acest tip de aspersor are urmatoarele caracteristici:

-Filet interior cu diametrul de 63mm

-Reglare jet pentru a oferi o uniformitate de udare

-Proiectat din material turnat

-Compozitie alamă și metal

-Duze interschimbabile

Si ca performanțe:

Mai jos am realizat un desen (figura 7) care explică cum am aranjat aspersoarele.

Linia neagră reprezintă teava PE PN10.

Cercurile reprezintă aria de acoperire a fiecarui aspersor.

Figura 7

Pentru această arie am avut nevoie pentru a acoperii toate spațiile necesare udării corespunzătoare de câte 7 rânduri a câte 4 aspersoare și 6 rânduri a câte 3 aspersoare, formând un total de 52 de asperoare.

Fiecare aspersor consumă 590 l/min, rezultând un total de 30,68 mc/min (1840 mc/h)

Pentru a întelege mai ușor asezarea pieselor și a aspersoarelor, am detaliat în fugura de mai jos (figura 8):

Figura 8

Reprezentație figura 8. :

Teu 1 – teu PE cu diametrul de 125mm

Teu 2 – teu PE cu diametrul de 75mm cu partea de sus redusa la 63mm

Cot 1 – cot PE cu diametrul de 125mm redus la 75mm

Cot 2 – cot PE cu diametrul de 75mm redus la 63mm

Teava PE pe coloana principală are diametrul de 125mm, iar pe coloanele secundare are diametrul de 75mm.

Teava PE dintre teu și aspersor are diametrul de 63mm.

Figura 9

Necesar de materiale:

Teava PE cu diametrul de 125mm : 600ml

Teava PE cu diametrul de 75mm: 3600ml

Teava PE cu diametrul de 63mm: 78ml

Teu 1 – 1 bucăți

Teu 2 – 52 bucăți

Cot 1 – 2 bucăți

Cot 2 – 13 bucăți

Robinet – 13 bucăți

Mufă numărul 2 – 52 bucăți

Cantitatea necesară de udare a grâului:

Începem cu norma de udare. Aceasta este cantitatea de apă exprimată în metri cubi la hectar, care se dă la o singură udare. Ea are ca limită capacitatea de câmp pentru apa a solului iar limita inferioara 75-80 % din capacitatea de camp. Practic la jumătatea intervalului dintre capacitatea de câmp și coeficientul de ofilire.

Norma de udare pentru grâu este:

răsărire 400mc/ha;

impăiere-burduf două udări de 700mc/ha

Deci maximul de udare pe hectar este de 700mc.

Parcela noastră are 18ha, de unde reiese că avem nevoie de o cantitate de apă maximă de 12600mc, deci o udare de 6,8h.

Figura 10.Cantitatea de apă consumată/lună de-a lungul unui an pentru cultura de grâu

A treia cultură – Cultura de roșii

Umiditatea solului și a atmosferei prezintă o deosebită importanță pentru creșterea și dezvoltarea culturilor de roșii. Acestea au pretenții moderate de umiditate, deoarece coeficientul de transpirație este redus.

În primele faze de creștere, nivelul umidității din sol este de 68-70% din capacitatea de câmp, iar în perioada de fructificare, începând creșterea intensivă a fructelor din prima inflorescență este de 78-81%.

Figura 11

Dimensiunile terenului le-am notat în figura 11.

Aria: 360000 mp.

Reprezentație figura 8:

Linie neagră – teava PE principală de alimentare (32mm)

Linie roșie – banda cu picuratoare (16mm) , care se alimentează din teava principală.

Distanța între rânduri: 90cm

[NUME_REDACTAT] de rănduri: 1333

Număr metrii de instalație de picurat necesară: 360300 m

Număr conectori: 2666

Număr dopuri: 2666

Teava PE 32mm necesară: 1200 m

Am ales banda de picurare cu grosimea de 16mm și distanța între găuri de 33cm. Fiecare picurator consuma 1,1l/h.

Construită printr-un singur proces de extrudare, fără cusături sau sudură. Rezistență mare la înfundare, orificiul de picurare fiind realizat cu laser, iar la interior prezintă numeroase orificii de absorbție a apei.

Figura 12

Mod de lucru:

-în teava principală PE se face cate o gaură de 16mm pentru fiecare rând, și pe stânga și pe dreapta și se înfige conectorul cu robinet.

-în conector se înfige banda cu picuratoare și se întinde pe rând.

-la finalul rândului, respectiv finalul benzii cu picuratoare se montează un dop.

Semănarea plantelor se face în a doua jumătate a lunii martie, le vom uda cu 25l pe roșie, după 55-60 zile plantele ajung la 15-20 cm, le vom mări rația de udare la 0,5l. Dupa 10-12 săptamâni roșiile ajung să facă fructe.

Consumul zilnic al roșiilor în stare de maturitate este de 0,5l în zilele noroase și de 2l în zilele cu cer senin.

De aici rezultă că avem nevoie în zilele însorite de 2424 mc de apă. (Detalii în tabelul 1 de mai jos)

Tabelul 1

Teoretic, dacă facem media, consumul maxim lunar de apă pentru cultura de roșii este 45454mc.

Figura 13.Cantitatea medie de apă consumată/lună de-a lungul unui an de un singur fir de roșie

Figura 14.Cantitatea medie de apă consumată/lună de-a lungul unui an pentru cultura de roșii

La sfârșit am făcut un tabel (tabelul 2) și un grafic al consumului de apă pentru toate culturile în paralel.

Tabelul 2

Figura 15.Cantitatea medie de apă consumată/lună de-a lungul unui an pentru toate culturile

2.4. Bazinul de stocare apă

După ce am stabilit consumul apei pentru toate cele trei culturi agricole, vom stabili bazinul care trebuie sa-l amenajăm pentru a avea apa necesară pentru irigații.

Presupunem ca nu avem nici o altă sursă de apă, decât puturile care le vom face și bazinul de reținere a apei.

Acest bazin are rolul de a stoca apa pentru:

a încălzi apa înainte de irigare;

irigare;

stingerea incendiilor.

Dimensionarea corecta a bazinului de colectare a apei

În primul rând va trebui dimensionat capacitatea corecta a bazinului.

Un bazin mic (subdimensionat) nu rezolvă, decât parțial problemele de aprovizionare cu apă.

Un bazin mare (supradimensionat) înseamnă cheltuieli nejustificate de investiție precum și cheltuieli de întreținere suplimentare.

Pentru cele trei culturi, luăm în calcul consumul maxim al fiecarui sistem de irigații în același timp, deoarece nu stim exact dacă fermierul dorește udarea separată a fiecarei culturi sau în același timp.

Volumul maxim de apa necesar fiecărei culturi, după cum am calculat la fiecare parcelă în parte este următorul:

-udarea prin aspersoare pentru cultura de grâu: 12.600mc

-udarea prin picatură pentru plantația de pruni: 843mc

-udarea prin picurare pentru cultura de roșii: 2424mc

Deci volumul bazinului trebuie să aibă 15.867mc, il rotunjim la 16.000mc.

Am ales dimensiunile bazinului (figura 10):

40m lungime;

40m lățime;

10m înălțime.

Figura 16

Pentru realizarea bazinului, am ales modelul de bazin semi-îngropat. Se va săpa o groapă cu dimensiunile corespunzătoare, pământul scos se va taluza pe lăngă groapa sapată, se va turna pereții și fundul bazinului din beton care va fi armat cu fier beton, apoi va fi izolat cu membrană de cauciuc.

Apa este introdusă în bazin pe partea superioară, care este controlată de pompele care trag apa din puțuri.

Nivelul apei (H) din bazin este reglat cu ajutorul electropompelor care introduc apa și electropompele care o scot.

Acesta se calculează cu ecuația diferențială:

Vom crea un model care să știe nivelul actual de apă din bazin și nivelul de referință, făcând diferența între cele două să acționeze asupra pompelor.

Cea mai eficientă metodă este cea cu regulatorul PID (proportional – integrativ – derivativ), acesta este mai precisă decat alte metode dacă se cunoaște aparatul matematic al sistemului reglat.

Kp este constanta parți proporționale;

Ki este constanta parți integrative;

Kd este constanta parți derivative.

SIMULARE

Implementarea modelului în [NUME_REDACTAT] Number reprezintă intrarea în sistem care generează numere aleatoare în forma unei unde pătrate (interval de 20ms), după aceea se adună cu o constantă, constituind nivelurile aleatoare care se doresc a fi reglate

Blocul PID este un subsistem oferit de simulink constituit dintr-un element derivativ, unul integrativ si unul proportional

Blocul VALVE este un subsistem care simulează comportamentul intrării și ieșirii, acesta este compus dintr-un integrator inmulțit cu o valoare care dă debitul maxim

Subsistemul TANK simulează comportamentul unui bazin cu o intrare (debitul de apă) și 3 ieșiri (debit de iesire din bazin,nivelul de apă actual)

Iesirea din sistem se multiplexează cu referința într-un vector și se afișează pe grafic:

Lănga bazinul de colectare apă va fi construită o cameră tehnica unde vor fi amplasate motopompele și panourile de comandă.

Pentru a prelua apa din bazin avem nevoie de 4 motopompe modelul „Varisco”.

Specificatii motopompă:

motor Iveco

4 cilindrii

combustibil: motorină

1800 rot/min

capacitate: 600mc/h

Figura 17

Pentru alimentarea bazinului cu apă, va trebui forat un puț sau mai multe în funcție de teren și cantitatea de apă necesară.

Am ales două puțuri din PVC cu adâncimea peste 150m, cu un diametru de 250mm.

Adâncimea peste 150m, deoarece forajul va trece prin mai multe pânze freatice, în caz de un anotimp secetos prelungit, primele izvoare prin care va trece de regula vor seca.

La aceste două puțuri se vor adauga două pompe electrice cu capacitatea de 160mc/h fiecare, rezultând un total de 320mc/h. Aceste pompe vor trage apa din puțuri și o vor direcționa în bazinul construit.

Bazinul va fi umplut în 39 de ore de funcționare a pompelor.

La fiecare coloana principală care duce la fiecare cultură se mai poate adăuga un bazin de dimensiuni mai mici, în care se vor pune substanțele nutritive pentru a ajuta planta, deci în total înca 3 bazine.

2.5. Automatizarea sistemului de irigații

Aceasta instalație de irigație are nevoie de un soft care să o controleze.

Softul care l-am implementat se bazează pe soluția SCADA.

Acesta a fost implementat în RMI – Java.

Cum funcționează sistemul SCADA care l-am propus:

Pe teren sunt mai mulți senzori amplasați:

– senzor de ploaie amplasat la nivelul solului;

– senzori de umiditate amplasat în sol (la fiecare cultura);

– senzor de debit amplasat în interiorul tevi principale, imediat după ce este trasă apa de către pompa din bazin.

Acesti senzori sunt verificați periodic (din 3 în 3 secunde) de către programul controller. Fiecare senzor își trimite statusul.

Motoarele și vanele electrice sunt controlate tot de controller.

Senzorul de debit este amplasat în coloana principală de apă dintre pompă și sistemul de irigații, acesta are rolul de a:

putea programa sistemul să irige după cantitatea de apă, în caz că se dorește acest lucru (de exemplu, fermierul știe cantitatea de apă care trebuie folosită la un hectar, calculează cât îi trebuie la 10 hectare de exemplu și apoi setează doar cantitatea de apă necesară);

masura cantitatea de apă care s-a consumat;

de a verifica dacă după comanda „Start” a pompei, senzorul masoară debit, în caz că nu, controllerul resetează senzorul și dacă se reia eroarea imediat, controllerul afiseaza mesajul „Eroare senzor debit”, atunci cineva va trebui să verifice problema, dacă senzorul este stricat, pompa nu funcționează sau teava este înfundată.

Senzorul de umiditate este amplasat în sol. Acesta are rolul de a detecta umiditatea solului în diferite stadii.

Senzorul de ploaie are rolul de a detecta când începe ploaia și când se oprește.

Tot ce se întampla în sistem, rămâne în baza de date a programului (Istoric), fermierul putând accesa oricând datele.

Sistemul poate fi setat să irige în funcție de:

ore (pe timp);

debit (se setează cantitatea de apă care se dorește a fi consumată);

sau automat, lăsând sistemul să ia toate deciziile.

Fiecare cultura are programul său de irigare, pot fi setate toate odată sau pe rând, deschizându-se vanele în funcție de setarea dorită.

Sistemul poate fi verificat sau setat si prin retea.

Simulare sistem:

Simularea a fost facuta cu mesaje trimise aleatoriu.

În funcție de statusul senzorului controllerul ia decizii:

Dacă începe ploaia în timp ce sistemul irigă, senzorul de ploaie (care nu este amplasat lânga cultură, pentru a nu sări apă de la irigații și a-l induce în eroare) este verificat de către controller și apoi dacă acesta trimite mesajul „Începe ploaia”, controllerul ia acțiunea „oprește instalația de irigare”.

Dacă ploaia se oprește, controllerul ia decizia să reia irigarea

Dacă senzorul de umiditate detectează că umiditatea este în scădere, controllerul afisează mesajul către utilizator: „Cultura trebuie irigată în urmatoarea lună”.

Dacă senzorul de umiditate detectează că umiditatea este foarte scazută, controllerul afisează mesajul către utilizator: „Cultura trebuie irigată”.

Dacă senzorul de debit afisează mesajul „Senzorul de debit nu funcționează”, atunci controllerul ia comanda „Resetează senzorul de debit”.

Arhitectura SCADA

[NUME_REDACTAT] urma celor menționate ma sus, reiese că un sistem de irigații automatizat are următoarele avantaje:

reduce erorile umane (a uita a porni/opri instalația, a iriga cu o cantitate insuficientă de apa, a nu umple bazinul dupa ce s-a golit, etc.);

usurează munca fermierului;

se mulează dupa cerințele plantei (în caz ca trebuie irigat noaptea,cantitatea exactă de cât are nevoie, etc.);

sistemul poate fi pornit/oprit de la distanță prin internet;

nu face risipă de apă, irigă exact cât este necesar;

Dezavantaje:

investiția într-un sistem de irigații automatizat este mare, dar în timp se amortizează (un hectar de grâu produce în jur de 8 tone dacă este irigat corespunzător, și maxim 4 tone dacă nu este irigat )

[NUME_REDACTAT] sursă

Controller:

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import java.rmi.server.UnicastRemoteObject;

import java.util.ArrayList;

import java.util.HashMap;

public class Controller implements ControllerActions {

HashMap<String,String> responsesMap = null;

String command = null;

ArrayList historyList = null;

public Controller() {

responsesMap = new HashMap<String,String>();

responsesMap.put("Incepe ploaia", "Opreste instalatia de irigare");

responsesMap.put("Ploaia s-a terminat", "Porneste instalatia de irigare");

responsesMap.put("Senzorul de debit nu functioneaza", "Reseteaza senzorul de debit");

responsesMap.put("Senzorul de umitidate detecteaza ca umitidatea solului este foarte scazuta", "Cultura trebuie irigata in urmatoarea luna");

responsesMap.put("Senzorul de umitidate detecteaza ca umiditatea solului este in crestere","");

responsesMap.put("Senzorul de umitidate detecteaza ca umiditatea solului este in scadere","");

historyList = new ArrayList();

}

public void setCommand(String command){

this.command = command;

}

public String processMessage(String message) {

System.out.println(new java.util.Date().toString() + " Mesaj primit de la sensor: "+message);

historyList.add(new java.util.Date().toString() + " " + message);

if(command != null){

String tmp = command;

command = null;

return tmp;

}

else{

return responsesMap.get(message);

}

}

public static void main(String args[]) {

try {

Controller controller = new Controller();

ControllerActions stub = (ControllerActions) UnicastRemoteObject.exportObject(controller, 0);

// Bind the remote object's stub in the registry

Registry registry = LocateRegistry.getRegistry();

registry.bind("ControllerActions", stub);

System.out.println("Controller ready");

InputStreamReader isr = new InputStreamReader(System.in);

BufferedReader br = new BufferedReader(isr);

while(true){

String command = br.readLine();

System.out.println(command);

if(command.contains("istoric") || command.contains("Istoric")){

System.out.println("*****************************Istoric***********************");

for(int i=0;i<controller.historyList.size();i++){

System.out.println(controller.historyList.get(i));

}

System.out.println("*****************************//***********************");

}

controller.setCommand(command);

}

} catch (Exception e) {

System.err.println("Controller exception: " + e.toString());

e.printStackTrace();

}

}

}

ControllerActions

import java.rmi.Remote;

import java.rmi.RemoteException;

public interface ControllerActions extends Remote {

String processMessage(String message) throws RemoteException;

}

MessageScheduler

import java.util.Timer;

import java.util.TimerTask;

/**

* Simple demo that uses java.util.Timer to schedule a task to execute once 5

* seconds have passed.

*/

public class MessageScheduler {

Timer timer;

Sensor sensor = null;

public MessageScheduler(int seconds, Sensor sensor) {

this.sensor = sensor;

timer = new Timer();

timer.scheduleAtFixedRate(new MessageSender(),0, seconds * 1000);

}

class MessageSender extends TimerTask {

public void run() {

sensor.sendMessage();

}

}

}

Sensor

import java.io.IOException;

import java.rmi.RemoteException;

import java.rmi.registry.LocateRegistry;

import java.rmi.registry.Registry;

import java.util.Random;

public class Sensor {

ControllerActions stub = null;

private Sensor() {

try {

Registry registry = LocateRegistry.getRegistry();

stub = (ControllerActions) registry.lookup("ControllerActions");

} catch (Exception e) {

System.out.println("Sensor exception: " + e.toString());

e.printStackTrace();

}

}

public void sendMessage(){

String possibleMessages[] = {"Incepe ploaia","Ploaia s-a terminat", "Senzorul de debit nu functioneaza",

"Senzorul de umitidate detecteaza ca umitidatea solului este foarte scazuta",

"Senzorul de umitidate detecteaza ca umiditatea solului este in crestere",

"Senzorul de umitidate detecteaza ca umiditatea solului este in scadere"};

try {

Random randomGenerator = new Random();

int randomInt = randomGenerator.nextInt(6);

String response = stub.processMessage(possibleMessages[randomInt]);

executeCommand(response);

} catch (RemoteException e) {

e.printStackTrace();

} }

public void executeCommand(String response){

if(response.contains("restart") || response.contains("restart")){

System.out.println("Se restarteaza applicatia!");

try {

Runtime.getRuntime().exec("cmd.exe /c start java Sensor");

System.exit(0);

} catch (IOException e) {

e.printStackTrace();

}

System.exit(0);

}

else{

if(!response.isEmpty()){

System.out.println(new java.util.Date().toString()+" Mesaj primit de la controller: "+response);

}

}

}

public static void main(String[] args) {

System.out.println("Initializing sensor.");

new MessageScheduler(5, new Sensor());

System.out.println("Sensor is initialized.");

}

}

Bibliografie

1.http://www.agrointel.ro

2.http://www.agropataki.ro

3.http://www.bluemonitor.ro

4.I. Dumitrache – Ingineria reglării automate

Similar Posts

  • Obtinerea Berii cu Sirop de Brad

    [NUME_REDACTAT] C. ș.a., “Tratat de industrie alimentară”, Editura ASAB, București 2009 http://ro.wikipedia.org/wiki/Bere http://www.bionatura.ro/produse_naturiste_sirop-natural-de-muguri-de-brad.html http://www.ziare.com/lifeshow/sanatate/01-30-2009/siropul-de-brad-facut-in-casa-este-eficient-contra-tusei-648809 [NUME_REDACTAT] tipului de produs nou Definirea tipului de produs nou cuprinde trei faze. Prima fază este faza de stabilire a obiectivelor în care se analizează piața din România, se analizaeză strategia, se analizează dacă activitatea companiei corespunde tipului de produs. A…

  • Procesul Tehnologic de Fabricare ale Pastelor Fainoase

    INTRODUCERE Glutenul denumește proteinele conținute în grău, orz, ovăz, secară. Din păcate, în ultimii ani au arătat că un număr tot mai mare de oameni uferă de intolerantă la gluten. Intoleranta la gluten se manifestă sub forma unei boli care se numește boala celiacă. La persoanele afectate, consumul de produse care conțin gluten provoacă o…

  • Importanta Protectiei Mediului

    Raportat la orice altă perioadă de timp, secolul XXI este probabil perioada celor mai de seamă descoperiri ale științei, idei care au transformat odată pentru totdeauna planeta noastră în moduri pe care strămoșii noștri nu le-ar fi putut bănui. Din păcate, tot confortul vieții cotidiene vine cu un preț căci majoritatea obiectelor și serviciilor din…

  • Gestiunea Durabila a Deseurilor Urbane Solide

    CUPRINS INTRODUCERE Cap. 1. GESTIONAREA DESEURILOR IN CONCEPTUL „DEZVOLTARE DURABILA” Abordarea problemei Clasificarea deșeurilor in funcție de proveniența lor Gestionarea deșeurilor solide urbane Cap. 2. STRATEGIA DE GESTIONARE A DESEURILOR SOLIDE URBANE (SNGD) 2.1 Cadrul legislativ 2.2 Date generale privind gestiunea deșeurilor urbane in România 2.3 Principii si obiective strategice 2.4 Instrumente pentru realizarea obiectivelor…

  • Apele Naturale

    CAPITOLUL IX. BIBLIOGRAFIE Cărți: [NUME_REDACTAT], Apele minerale și termale din România, ed Tehnică, 2010 [NUME_REDACTAT], Substanțele minerale terapeutice din România, ed Științifică și Enciclopedică, 1985 [NUME_REDACTAT], Apele minerale terapeutice, ed Balneară, 2013 Dr. [NUME_REDACTAT], Apa și sănătatea: apa potabilă, ape minerale, hidroterapia, ed Ceeres, București, 1994 Ministerul sănătății și prevederilor sociale. Institutul de balneologie și…