Automatisk Vandingssystem

Størrelse: px
Starte visningen fra side:

Download "Automatisk Vandingssystem"

Transkript

1 Rettelser Note: glossary til karprint Note: Der skal laves software diagrammer til system arkitektur - applikationsmodel sekvens diagrammer state machines osv Note: Forsyningsspændinger skal have tolerancer Fatal: der skal indsættes resten af teknologi undersøgelserne Note: AVS glossary Note: tilføjes til literatur liste Note: tilføjes til literatur liste Note: tilføjes til litteratur liste Note: Siden med KarShield-diagram skal være A Note: Siden med OeShield-diagram skal være A Fatal: Alle accepttest skal rettes der er ingen af dem der passer Note: glossary for blå Note: glossary for blå Note: glossary for blå Note: glossery til blå Note: glossery til hvid Note: glossery til hvid Note: glossery til blå af 122

2 Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: Lærke Isabella Nørregård Hansen IKT Kasper Sejer Kristensen IKT Kalle Rønlev Møller IKT Jakob Alexander Szalontai Kristensen IKT Kenn Hedegaard Eskildsen E Karsten Schou Nielsen E Thomas Vase EP

3 Indhold 1 Kravspecifikation Aktører Bruger Tekniker Use Cases Ikke fully dressed use cases Ikke Funktionelle Krav Interface System Arkitektur System diagrammer System Domænemodel System BDD CentralControl GUI FlexPMS Database KarControl Sensor Ø RSConverter System Allokeringsdiagram CentralControl diagrammer CentralControl IBD Signalbeskrivelser CentralControl KarControl diagrammer KarControl BDD KarGruppe Indløbsventil Afløbsventil ph-sensor Vandpumpe Flowmåler PSU KarControl IBD RSIn RSOut KarControlForsyning IBD Signalbeskrivelser KarControl Sensor Ø diagrammer Sensor Ø BDD Doseringsventil Fieldsensor Sensor Ø IBD Signalbeskrivelser Sensor Ø Fieldsensor diagrammer Fieldsensor BDD af 122

4 2.5.2 Signalbeskrivelser Fieldsenser Jordfugt sensor diagrammer Jordfugt sensor BDD Jordfugt sensor IBD Signalbeskrivelser Jordfugtighedssensor ph-sensor diagrammer ph-sensor BDD ph-sensor IBD Signal beskrivelser Ventilstyring diagrammer Ventilstyring BDD Ventilstyring IBD Signal beskrivelser Vandpumpestyring diagrammer Vandpumpestyring BDD Vandpumpestyring IBD Signal beskrivelser Teknologiundersøgelser RS Ventiler Doseringspumpe Flowsensor Overordnede Sekvensdiagrammer Klasseidentifikation Klassediagram for use case 7 - Aflæs data Klassediagram for use case 8 - Manuel vanding Klassediagram for use case 5 og 6 - Indtast data Klassediagram for use case 2 og 10 - Kar manipulation Grænsefladebeksrivelser Ventilstyring Grænsefladebeskrivelse Doseringspumpe Grænsefladebeskrivelse Flowsensor Grænsefladebeskrivelse PSU (Power Supply Unit) Grænsefladebeskrivelse Softwarearkitektur Design og implementering af database og GUI GUI Database Kar SensorOe KarSensorData OeSensorData Klassediagram og metodebeskrivelse Kar klassen SensorOe klassen SocketClient klassen Controller index FlexPMS Kar Kommunikation KarBus klassen funktions beskrivelser Protokol klassen funktions beskrivelser RS485 klassen funktions beskrivelser Fieldsensor Kar af 122

5 3.5 Sensor Ø Funktioner AVSLibrary DebugUart Formål Funktioner Doseringspumpe Formål Funktioner FlowSensor Flowsensor Funktioner phprobe phprobe Funktioner RS Formål Funktioner SensorBus Formål Funktioner Ventil Formål Funktioner StubProjects Formål Debug Tester Fieldsensor Dummy Fieldsensor Tester FlowSensor Dummy phprobe Dummy RS485 Dummy SensorBus Dummy Hardware Arkitektur RSConverter Analyse Realisering Ventilstyring MOSFET-styringskreds Design af styringskredsløb MOSFET-transistoren Ground-modstanden Flyback-diode Vandpumpe MOSFET-styringskreds Design af styringskredsløb MOSFET-transistoren Ground-modstanden Flyback-diode Flowsensor Counter-kredsløb Design af jordfugt sensoren Kapacitiv måling Resistiv måling Test og opbygning Præcision og afvigelse Fremtidigt arbejde af 122

6 4.6 Design af ph-proben Støj Måling af støj Responstid Probens præcision Fremtidigt arbejde Shields Kar-shield Oprettelse af egne komponenter Ø-shield PiShield Printlayout PSU Analyse Realisering Transformertest Fremtidigt arbejde Accepttest Test setup Accepttests Ordliste 120 Litteratur af 122

7 Kravspecifikation Revision Ændret af Version Dato Alle Alle Tabel 1.1: Revision for Kravspecifikation 1.1 Aktører I dette afsnit beskrives aktører og deres rolle i systemet. I figur 1.1 ses aktørdiagram, som beskriver alle aktører og deres forhold til systemet Figur 1.1: AVS Aktører 5 af 122

8 1.1.1 Bruger Aktørnavn type: Beskrivelse: Bruger Primær Bruger er ham, som til dagligt tilgår systemet. Han ved hvor meget gødning og fugtighed planterne skal have, og angiver disse værdier i brugergrænsefladen. Det er brugeren som løbende ændrer værdierne, så systemet hele tiden er opdateret med værdier der passer til planternes vækststadier Tekniker Aktørnavn type: Beskrivelse: Tekniker Primær Tekniker er en specielt uddannet person. Han har den nødvendige viden om systemet til at kunne installere systemet fra opstart, opsætte nye vandkar mv. En Bruger kan også være tekniker. 6 af 122

9 1.2 Use Cases I dette afsnit ses de forskellige Use cases. På billede 1.2 ses et Use case-diagram, som viser en simpel repræsentation af Bruger og Teknikers interaktion med systemet og en afbildning af de forskellig Use cases. Figur 1.2: AVS Use case diagram 7 af 122

10 Use case 1 I denne use case kalibreres ph-proben, som er tilsluttet et kar. Dette skal gøres når systemet startes op. Use Case 1 Mål: Initieret af: Aktører: Kalibrer ph-probe At kalibrere en ph-probe Tekniker Primær: Tekniker Samtidige forekomster: 1 Prækondition: Postkondition: En rød LED lyser på karprintet og Teknikeren er i besiddelse af en buffer-væske med ph-værdi på 7 ph-proben er kalibreret og en grøn LED lyser på karprintet 1 tilhørende ph-proben Hovedscenarie: 1. Tekniker sætter ph-proben ned i buffer-væsken 2. Tekniker venter i 2 min 3. Tekniker trykker på knappen kalibrer i 3 sekunder 4. Karp-programmet indlæser værdien fra proben 5. Rød LED slukker 6. Grøn LED lyser 1 fixme Note: glossary til karprint 8 af 122

11 Use case 2 I denne use case opretter Tekniker et nyt kar. Use Case 2 Mål: Initieret af: Aktører: Opret kar At oprette et nyt kar i systemet Tekniker Primær: Tekniker Samtidige forekomster: 1 Prækondition: Ledig adresse på bussen i domæne 1 Postkondition: Der er oprettet et kar Hovedscenarie: 1. Tekniker trykker på Service knappen i gui en 2. Systemet viser service menuen 3. Tekniker trykker på Opret kar i service menu 4. Systemet viser en menu hvor det er muligt at indtaste navn og adresse til et nyt kar 5. Tekniker indtaster navn i feltet Navn 6. Tekniker indtaster Adresse i feltet Adresse 7. Tekniker trykker Opret kar 8. Systemet opretter et nyt kar og sender Teknikeren til forsiden 9. Det nye kar forekommer nu i hoved menuen 9 af 122

12 Use case 3 I denne use case Oprettes en Sensor Ø, den kan kun tilgås af Teknikeren, som er nødt til at kende adressen på sensor øen. Use Case 3 Mål: Initieret af: Aktører: Opret Sensor Ø At Oprette en Sensor Ø Tekniker Primær: Tekniker Samtidige forekomster: 1 Prækondition: Postkondition: Teknikeren kender adressen til Sensor Øen Der er oprettet en Sensor Ø til det ønskede kar Hovedscenarie: 1. Teknikeren sætter Sensor Øen til kar bussen 2. Teknikeren trykker på det ønskede kar i gui en 3. Systemet viser et skærmbillede hvor det er muligt at oprette en sensor Ø 4. Teknikeren trykker på Opret Sensorø 5. Systemet viser en menu hvor det er muligt at indtaste en adresse 6. Teknikeren indtaster adresse i adresse feltet 7. Teknikeren trykker Opret Sensorøen 8. Den nye Sensor Ø forekommer nu i listen over Sensor Øer. 10 af 122

13 Use case 4 I denne use case fyldes karet via indløbsventilen med vand. Indløbsventilen kan styres af Brugeren via guien. Use Case 4 Mål: Initieret af: Aktører: Fyld kar At fylde karet med vand Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkondition: Karet er tomt Karet er fyldt med vand Hovedscenarie: 1. Bruger trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede hvor man kan tilgå ventilstyringen 3. Bruger trykker på Åben indløbsventil 4. Indløbsventilen bliver åbnet og karet bliver fyldt med vand 5. Når Brugeren ikke ønsker at fylde karet længere trykker Brugeren på Luk indløbsventil 6. Indløbsventilen bliver lukket og systemet stopper med at fylde karet med vand. 11 af 122

14 Use case 5 I denne use case indtaster brugeren en ph-værdi, så den ønskede værdi kan ses. Use Case 5 Mål: Initieret af: Aktører: Indtast ph-værdi At indtaste og visualisere den ønskede ph-værdi Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkondition: Et kar er oprettet og systemet er funktionelt Systemet opdaterer og visualisere den ønskede ph-værdi Hovedscenarie: 1. Bruger trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede hvor det er muligt at indtaste en ph-værdi 3. Bruger trykker på feltet uden for ph-værdi hvor der er en angivet værdi 4. Bruger retter værdien til en ønskede ph-værdi 5. Bruger trykker på Gem data 6. Systemet gemmer ph-værdien 12 af 122

15 Use case 6 I denne use case indtaster Brugeren en volumen, så den ønskede værdi kan ses. Use Case 6 Mål: Initieret af: Aktører: Indtast volumen At indtaste og visualisere den ønskede volumen Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkondition: Et kar er oprettet og systemet er funktionelt Systemet opdaterer og visualisere den ønskede volumen Hovedscenarie: 1. Bruger trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede hvor det er muligt at indtaste en volumen 3. Bruger trykker på feltet uden for volumen, hvor der er en angivet værdi. 4. Bruger retter værdien til en ønskede volumen i liter 5. Bruger trykker på Gem data 6. Systemet gemmer volumen 13 af 122

16 Use case 7 Når Bruger ønsker at aflæse målingerne, kan personen tilgå de forskellige kar og aflæses data via gui en. Use Case 7 Mål: Initieret af: Aktører: Aflæs målinger Bruger aflæser ønskede målinger Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkondition: Et fungerende system Målinger er aflæst af Bruger Hovedscenario: 1. Bruger trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede med oversigt over kar data. 3. Bruger aflæser de ønskede målinger. 14 af 122

17 Use case 8 I denne use case ønsker Bruger at tilføre vand manuelt til planterne. For at denne use case kan gennemføres skal der være vand i det kar der ønskes at vande fra samt at dette er tilføjet til systemet. Karet skal være koblet på mindst en sensor ø. Use Case 8 Mål: Initieret af: Aktører: Manuel vanding At tilføre vand til planterne Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkonditions: Der skal være vand i det kar der ønskes at vande fra og der skal være tilkoblet mindst en sonsor ø. gui en befinder sig i hovedmenuen Der er vand ved planterne Hovedscenario: 1. Bruger trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede hvor der kan vælges manuel vanding 3. Bruger trykker på Start manuel vanding 4. Systemet begynder at vande 5. Når der ikke ønskes at vande længere trykker Bruger på Stop manuel vanding 6. Systemet stopper med at vande 15 af 122

18 Use case 9 I denne use case Tømmes karet via afløbsventilen. Afløbsventilen kan styres af Brugeren via guigui en. Use Case 9 Mål: Initieret af: Aktører: Tøm kar At tømme karet for væske Bruger Primær: Bruger Samtidige forekomster: 1 Prækondition: Postkondition: Karet indeholder vand Karet er tømt for væske Hovedscenarie: 1. Systemet trykker på det ønskede kar i gui en 2. Systemet viser et skærmbillede hvor man kan tilgå ventilstyringen 3. Bruger trykker på Åben afløbsventil 4. Afløbsventilen bliver åbnet og karet bliver tømt for væske 5. Når karet er tømt for vand trykker Brugeren på Luk afløbsventil 6. Afløbsventilen bliver lukket og karet er tom. 16 af 122

19 Use case 10 I denne use case sletter Tekniker et kar. Use Case 10 Mål: Initieret af: Aktører: Slet kar At slette et kar i systemet Tekniker Primær: Tekniker Samtidige forekomster: 1 Prækondition: Postkondition: Der er oprettet mindst et kar i systemet Karet er slettet fra systemmet Hovedscenarie: 1. Systemet viser en liste over oprettede kar, med en slet knap uden for hvert kar. 2. Tekniker trykker på slet ud for det kar han ønsker at slette 3. Systemet spørger om Teknikeren er sikker i en dialog 4. Tekniker trykker ok 5. Systemet sletter karet 6. Systemet returnerer Tekniker til listen over oprettede kar 17 af 122

20 1.3 Ikke fully dressed use cases Use Case 11 - Doser ph-væske I denne use case har Brugeren mulighed for at dosere ph-væske via en doseringspumpe indtil den ønskede ph-værdi er vist. Use Case 12 - Automatisk vanding I denne use case sker vandingen automatisk, baseret på den målte jordfugtighed. Hvis den målte jordfugtighed er for lav i forhold til den indtastede jordfugtighed, bliver der vandet ude ved sensor øerne, indtil den målte værdi ca. passer med den indtastede værdi. Use Case 13 - Alarm Ved brugerdefineret grænseværdier (jordfugtighed, ph-værdi og volumen), afgiver systemet en alarm, f.eks. via. . Use Case 14 - Ugeplan I denne use case får Bruger mulighed for at indtaste en ugeplan for styring af dosering af ph-væske og vand til gromediet i løbet af ugen. Use Case 15 - Udprint log Bruger kan få udprintet en log over de hændelser der er forekommet i systemet, bla. sensordata og dosering af vand. 18 af 122

21 1.4 Ikke Funktionelle Krav Brugervenlighed: Skal være intuitivt og let at opererer for udefrakommende: Der forudsættes en fungerende standard PC med Windows inkl. Explore/Chrome /Firefox som browser Systemet skal kunne tilgås igennem en normal webbrowser: Her menes Explorer / Google Chrome / Firefox Systemet skal kunne tilgås over lokalt netværk samt over www Her forudsættes en fungerende internetopkobling og evt. lokalt netværk Systembetingelser: Systemet skal kunne fungere stabilt i temperaturintervallet (1-45 C) Systemet skal kunne fungere stabilt under en absolut luftfugtighed på op til 50% Systemet skal være let at vedligeholde på daglig basis Systemets reservedele skal være lette at udskifte og skaffe. Ydelse: Systemet skal kunne fylde vandkarret på max. 2 min. Systemet skal kunne tømme vandkarret på max. 2 min. Systemet skal kunne dosere vand til gromediet med min 0,5 / max 2 liter/min. Systemet skal kunne dosere gødning til karret på max. 30 sek. 1.5 Interface Interfacet (gui en) kan tilgås via en webbrowser som med udgangspunkt ligner Figur 1.3 og 1.4. Figur 1.3: AVS Interface - home På Figur 1.3 kan brugeren se en liste over de kar der er oprettet, hvor de forskellige kar kan tilgås hvis brugeren klikker på det ønskede kar. Under service har teknikeren mulighed for at oprette et kar, hvor han indtaster adresse, navn og derefter trykker opret kar. hvorefter karet kommer frem på listen over kar. ydermere er der en delete og edit knap uden for hvert kar så teknikeren har mulighed for at slette et kar eller redigerer navnet. 19 af 122

22 Når brugeren trykker på et kar tilgår han/hun et interface for karet, som kan ses på Figur 1.4. Figur 1.4: AVS Interface - kar I feltet øverste til venstre er der mulighed for manuel vanding, hvor brugeren trykker på start når han/hun vil starte den manuelle vanding. For at stoppe den manuelle vanding trykke på bruger på stop. I feltet øverst til højre har brugeren mulighed for at indtaste de ønskede data og aflæse de data der kommer fra de forskellige sensor. I det nederste felt kan der ses en liste over Sensor Øerne hvor brugeren kan aflæse de data der kommer fra de forskellige sensor. 20 af 122

23 System Arkitektur Revision Ændret af Version Dato Alle Tabel 2.1: Revision for System Arkitektur Dette afsnit beskriver systemarkitekturen for systemet AVS, som er specificeret i kravspecifikation. Her anvendes SysML til beskrivelse af struktur og interaktion imellem komponenterne. Fastlæggelse af grænseflader mellem systemets komponenter og beskrivelse af disse. Figur 2.1: Grafisk systembeskrivelse Figur 2.1, er en grafisk systembeskrivelse af det overordnede system som har indholder følgende: De blå pile illustrer vandvejen gennem vandslanger i forhold til kar, ventiler og pumpen. Ud fra var vandkaret sider en PSoC, som er forbundet til sensorerne på karet og de PSoC s der ligger i gromediet/plantekasserne. I plantekasserne ligger der nogle PSoC s som bliver kaldt for Sensor Øer, disse er forbundet til nogle sensorer der tager nogle forskellige målinger. 2.1 System diagrammer 1 1 FiXme Note: Der skal laves software diagrammer til system arkitektur - applikationsmodel sekvens diagrammer state machines osv. 21 af 122

24 2.1.1 System Domænemodel Figur 2.2: Domænemodel af AVS Det overordnede domæne for interaktionen mellem de forskellige delelementer i systemet er beskrevet i følgende domænemodel. Den er udviklet på baggrund af en analyse af de udarbejdede Use Cases og MoSCoW, den bliver brugt som udgangspunkt til at lave bla. applikationsmodel og klassediagrammer System BDD Figur 2.3: Block Definition Diagram af AVS CentralControl CentralControl er systemets centrale computer. Det er gennem dette delsystem, at brugerens interaktion bliver behandlet og formidlet videre til andre delsystemer. CentralControl driver en web- 22 af 122

25 server med dertilhørende web-applikation (GUI), som tillader brugeren at interagere med systemet gennem sin web-browser. Webserveren kommunikerer med et stykke centralt software, FlexPMS. GUI GUI er den brugergrænseflade, som brugeren kan tilgå systemet gennem. FlexPMS FlexPMS (Flexible Plant Management System) softwaren er bindeleddet mellem GUI og de andre delsystemer. FlexPMS afvikles konstant på CentralControl, og håndterer at sende kommandoer til og opsamle data fra KarControl. FlexPMS kommunikerer med de andre delsystemer gennem enhedsdrivers, som er udviklet til og installeret på CentralControl. Database Databasen gemmer alle indstiller lavet af brugeren gennem GUI. KarControl KarControl er en styring, som formidler og håndterer al datakommunikation og kommandoer relateret til ét kar. KarControl formidler kommandoer sendt fra CentralControl videre til hardware koblet på det pågældende kar (f.eks. at åbne og lukke for ventiler), samt formidler måledata fra sensorer tilbage til CentralControl. KarControl ved hvilken ph-værdi karret skal have, samt hvilken koncentration af gødning og jordfugtighed planterne, der er tilkoblet karret, skal have. KarControl sørger selv for, at vedligeholde disse værdier. CentralControl giver KarControl besked, når der foretages ændringer af disse værdier. Sensor Ø Sensor Ø er giver mulighed for at måle (f.eks. jordfugtighed) over et større areal ved, at Sensor Ø erne spredes over området, hvor planterne gror, og har hver især tilsluttet sensorer. Dermed kan man måle jordfugtighed lokalt for området omkring Sensor Ø en og styre vandtilførslen specifikt for planterne, som står i området. RSConverter RSConverter konverterer mellem RS485 og UART System Allokeringsdiagram Figur 2.4: Allokeringsdiagram af AVS 23 af 122

26 2.2 CentralControl diagrammer CentralControl IBD Figur 2.5: Internal Block Diagram af CentralControl Signalbeskrivelser CentralControl Signal beskrivelser Navn Definition Område Kommentar KarBus Data485 Data232 RS485 bus til kommunikation mellem enheder RS485 bus til kommunikation mellem enheder RS485 konverteret til UART 232 logisk 0-5V logisk 0-5V logisk 0-5V PMSConn Database forbindelse intern SW forbindelse GUIConn Database forbindelse intern SW forbindelse ControlConn Socket forbindelse fra GUI til FlexPMS intern SW forbindelse html Http protokol intern SW forbindelse Tabel 2.2: Signal beskrivelser for CentralControl Differentielt bussystem, følger CMOS-standard Internt signal, følger CMOS-standard Signal efter konvertering, følger CMOS-standard Til at skrive log Til at hente og skrive indstillinger samt log Til at sende kommandoer fra GUI til FlexPMS Forbindelse til brugerens browser 24 af 122

27 2.3 KarControl diagrammer KarControl BDD Figur 2.6: Block Definition Diagram af KarControl KarGruppe KarGruppe er den overordnede betegnelse for et vandkar med tilførende ph-værdi og gødningskoncentration. KarGruppen består af diverse sensorer og aktuatorer, og styrer et vilkårligt antal Sensor Ø er. KarGruppen er styret af en controller, KarControl. Indløbsventil Indløbsventilen åbner og lukker for vandtilføjelsen til karret. Den bruges i forbindelse med, at der skal fyldes vand på karret. Det antages, at indløbsventilen er tilsluttet en vandforsyning, som altid er åben. Afløbsventil Afløbsventilen åbner og lukker for, at vand kan løbe ud af karret. Den bruges i forbindelse med, at karret skal tømmes. ph-sensor ph-sensoren målet ph-værdien af gødningsblandingen i karret. Vandpumpe Vandpumpen pumper vand fra karret ud til Sensor Ø erne. Flowmåler Flowmåleren måler mængden af vand, som tilføres karret gennem Indløbsventilen. 25 af 122

28 PSU PSU (Power Supply Unit) forsyner de andre blokke med 12V og 5V KarControl IBD Figur 2.7: Internal Block Diagram af KarControl RSIn RSConverter konverterer mellem RS485 og UART 232 når der skal kommunikeres med CentralControl. RSOut RSConverter konverterer mellem RS485 og UART 232 når der skal kommunikeres med Sensor Ø er KarControlForsyning IBD Der er lavet et separat forsynings IBD som viser forbindelserne fra blokken PSU til resten af blokkene og omverdenen. 26 af 122

29 Figur 2.8: IBD over forsyningsforbindelser til KarControl 2 2 FiXme Note: Forsyningsspændinger skal have tolerancer 27 af 122

30 2.3.4 Signalbeskrivelser KarControl Signal beskrivelser Navn Definition Område Kommentar KarBus OeBus Data485 Data232 EnableIndløb EnableAfløb RS485 bus til kommunikation mellem enheder RS485 bus til kommunikation mellem enheder RS485 bus til kommunikation mellem enheder RS485 konverteret til logisk niveau Signal til at lukke vand ind i kar Signal til at lukke vand ud af kar EnableVandpumpeSignal til styring af vandpumpe Puls Takttæller af flow 0-5V ph Analog signal fra ph måler Differentielt bussystem Differentielt bussystem internt signal Signal efter konvertering 0-5V Signal til at styre magnetventil 0-5V Signal til at styre magnetventil 0-5V PWM styret signal fra -420 til 420 mv Analogt signal Indløb vandstyring i kar Til at lukke vand ind i kar Afløb vandstyring i kar Til at lukke vand ud af kar Dossering vandstyring til planter Til at dosere vand til planterne 230V 12V 5V El-nettet som forsyner PSU Forsyning til pumper og ventiler Forsyning til systemets logiske kredsløb 230V 12V 5V Tabel 2.3: Signal beskrivelser for KarControl 28 af 122

31 2.4 Sensor Ø diagrammer Sensor Ø BDD Figur 2.9: Block Definition Diagram af Sensor Ø Sensor Ø Control Sensor Ø Control tager imod kommandoer fra KarControl, som instruerer omkring åbning og lukning af Doseringsventil. KarControl anmoder også om, at Sensor Ø Control skal sende måledata fra sensors, som er tilkoblet Sensor Ø en. Doseringsventil Doseringsventilen åbner og lukker for vandtilførslen til planterne i området omkring Sensor Ø en, som Doseringsventilen er tilkoblet. Når KarControl tænder for Vandpumpen kan de enkelte Sensor Ø ers Doseringsventiler være åbne eller lukkede alt efter, om planterne omkring Sensor Ø en har brug for vand. Fieldsensor Fieldsensor er en generalisering af alle slags sensorer, som kan tilsluttes Sensor Ø en. Vilkårligt mange sensorer kan tilkobles en bus, og kommunikere med Sensor Ø Control gennem en standardiseret protokol. Sensor kan kun aflevere målinger når de bliver bedt om at levere dem. 29 af 122

32 2.4.2 Sensor Ø IBD Figur 2.10: Internal Block Diagram af Sensor Ø Signalbeskrivelser Sensor Ø Signal beskrivelser Navn Definition Område Kommentar oedata oebus Buskommunikation efter konvertering fra 485 RS485 bus til kommunikation mellem enheder Intern:SW-signal Binary 1 (OFF) (Voa-Vob<-200 mv) Binary 0 (ON) (Voa-Vob>+200 mv) Konverteret signal fra RSconverter til Sensor Ø Controller Differentielt bussystem sensordata I2C bussignal Logisk: 0-5V Kommunikation fra sensorer til Sensor Ø ventilctrl Signal til styring af doserings ventil Logisk: 0-5V Signal til styring af Doseringsventil vand Vandflow fra Karret Vandflow Vandtilførsel til doseringsventil Tabel 2.4: Signal beskrivelser for Sensor Ø 30 af 122

33 2.5 Fieldsensor diagrammer Fieldsensor BDD Dette er vores modellibrary af de sensorer der matcher Fieldsensor specifikationerne Figur 2.11: Block Definition Diagram af Fieldsensor Signalbeskrivelser Fieldsenser Signal beskrivelser Navn Definition Område Kommentar sensordata I2C kommunikation Logisk: 0-5V Kommunikation fra sensorer til Fieldsensor Tabel 2.5: Signal beskrivelser for Fieldsensor 31 af 122

34 2.6 Jordfugt sensor diagrammer Jordfugt sensoren måler en strøm igennem jorden. Denne strøm vil variere med hensyn til fugtigheden som derfor vil resultere i en spændingsændring på indgangen af analog til digital konverteren. Denne spænding bruges til at udregne fugtigheden i procent Jordfugt sensor BDD Figur 2.12: Block Definition Diagram af Jordfugt sensor Jordfugt sensor IBD Figur 2.13: Internal Block Diagram af Jordfugt sensor 32 af 122

35 2.6.3 Signalbeskrivelser Jordfugtighedssensor Signal beskrivelser Navn Definition Område Kommentar Målespænding Spændingsforskel Differential spænding skab af fugtighed i jorden DataADC ADC-konverteret målespænding Logisk: 0-5V Digitalt konverteret målesignal DataI2C I2C kommunikation Logisk: 0-5V Kommunikation fra Jordfugtighedsmåler til Fieldsensor Tabel 2.6: Signal beskrivelser for Jordfugt sensor 33 af 122

36 2.7 ph-sensor diagrammer Til ph måling har vi bygget vores egen sensor ved hjælp af en ph-probe ph-sensor BDD I forhold til signaler er proben ret nem at have med at gøre da den selv producere en spænding i forhold til den væske der måles på ph værdi. Figur 2.14: Block Definition Diagram af ph-sensor ph-sensor IBD Igen ses simpliciteten da ph proben bare interagere med kemikalium og herefter producere en spænding. Figur 2.15: Internal Block Diagram af ph-sensor 34 af 122

37 2.7.3 Signal beskrivelser Signal beskrivelser Navn Definition Område Kommentar phvalue Analogt signal fra ph-måler Analog:-420mV- 420mV Den målte Spændingsforskel i proben Gødningsmix Gødningsmix i kar ph-værdi: 6-8 ph-værdi af gødningsmix i karret Tabel 2.7: Signal beskrivelser for ph-sensor 35 af 122

38 2.8 Ventilstyring diagrammer Da vi bruger ventiler flere steder i systemet er dette en general beskrivelse af dem Ventilstyring BDD Her under ses et diagram over den generalle opbygning af ventil styringen denne gør sig gældende for alle ventilerne i systemet Figur 2.16: Block Definition Diagram af Ventilstyring Ventilstyring IBD Her ses så de interne forbindelser i Ventilstyringen Signal beskrivelser Figur 2.17: Internal Block Diagram af Ventilstyring Signal beskrivelser Navn Definition Område Kommentar cv Vand On/Off signal til Mosfet kredsløbet Vand der flyder gennem ventilen Analog: 0-5V Tabel 2.8: Signal beskrivelser for Ventilstyring Styringssignal til Ventilstyring Vand der flyder til/fra karret 36 af 122

39 2.9 Vandpumpestyring diagrammer Vi bruger en vandpumpe på alle vores kar Vandpumpestyring BDD Her under ses et diagram over den generalle opbygning af vandpumpe styringen denne gør sig gældende for alle vandpumper i systemet Figur 2.18: Block Definition Diagram af Vandpumpestyring Vandpumpestyring IBD Her ses så de interne forbindelser i Vandpumpestyringen Figur 2.19: Internal Block Diagram af Vandpumpestyring 37 af 122

40 2.9.3 Signal beskrivelser Signal beskrivelser Navn Definition Område Kommentar cv vand Pwm signal til Mosfet kredsløbet Vand der flyder gennem Vandpumpen 0-5V Bestemmer om Vandpumpen roterer 0-17l/min Bestemmer mængden af vand til dosering Tabel 2.9: Signal beskrivelser for Vandpumpestyring 38 af 122

41 2.10 Teknologiundersøgelser RS485 Kommunikationen som foregår i systemet imellem brugerinterfacet (Devkit 8000), KarControl (PSoC 4) og de enkelte forgreninger (PSoC 4) skal kunne kommunikere over længere afstande. De allerede kendte busser, SPI og I2C, har begge en maksimal rækkevidde på 1,5m. Vi har derfor været nødsaget til at finde et bedre alternativ. Problemet over længere afstande kan være: Kapacitet i ledningerne Støj fra omkringliggende elektronik For at løse disse problemer, har vi undersøgt RS485-kommunikation. RS485 er en standard som definerer de elektriske karakteristika af sendere og modtagere på en differentiel bus. Ved 2 ledninger kan man opnå half-duplex, og ved 4 ledninger kan man opnå full duplex. Ledningerne i bussen skal være parsnoede. Ved afstande helt op til 1200m, er det muligt at køre med hastigheder på op til 100kbit/s. RS485 er en udbygning af RS422, hvor man har muligheden for at vælge hvorvidt det er input- eller output-driverne som er aktive. Den fysiske konfiguration af bussen skal forbindes som én linje. Dvs. at man kan f.eks. ikke parallel-forbinde 5 enheder direkte til en master, de skal derimod serieforbindes. Bussen termineres i begge ender, med en modstand som svarer til kablernes egen modstand, normalt 120ohm for parsnoede kabler, imellem de 2 bus-forbindelser. Man vil gerne opnå at masteren er centreret i bussen, og at termineringsmodstandene derved er på 2 slaver. Ved at gøre dette, vil afstanden fra masteren til slaverne være så lille som mulig, og derved vil signal-styrken være bedst. RS485 er KUN en elektrisk definition af bussen, og ikke en kommunikationsprotokol. Dette giver mulighed for at skrive sin egen protokol. Standarden anbefaler dog, at man bruger kommunikationsprotokollen TSB Ventiler Følgende krav er opstillet for indløb- og afløbsventil, samt doseringsventilerne 1. Tolerance for Vandtryk: Skal kunne klare min. 2 bar 2. Forsyningsspænding: Skal kunne benytte 12V DC 3. Tolerance for Temp: Skal kunne operere ved 45 C 4. Flow-regulering: Skal kunne levere min. 0.5 liter/min Det vigtigste krav til indløb- og afløb- og doseringsventilerne er, at de bør være rated til at kunne klare de tryk, der påhviler dem. For indløbsventilen gælder følgende grænseflader: 1. Vandtilførsel udefra 2. Vandkaret: Her bør opmærksomheden primært henledes på vandtrykket udefra. Der tages udgangspunkt i den alm. Vandhane, her i er vandtrykket som standard på omkring 2 bar. Derfor skal den ventil der vælges som min. kunne klare et tryk 2 bar. For afløbsventilen gælder følgende grænseflade: 1. Vandkaret: 2. Afløb: Her bør opmærksomheden henledes på trykket i vandkaret, som her maksimalt kan være på 1 bar, afløbet bidrager ikke med noget tryk og kan ignoreres. For doseringsventilen gælder følgende grænseflade For afløbsventilen gælder følgende grænseflade: 1. Vandtryk i doseringsslange: 2. Udløb: 39 af 122

42 Her bør opmærksomheden henledes på trykket i doseringsslangen, dette skabes af doseringspumpen og kan max være på 2 bar, udløbet bidrager ikke med noget tryk og kan ignoreres. Der blev undersøgt flere typer ventiler i forhold til de ovenstående krav, og det blev besluttet at benytte en magnet-ventil til opgaven. Dette blev primært besluttet på baggrund af styringsmetoden af en magnetventil, denne passer til designet at systemet. Den valgte model blev: Hydraelectric Magnetventil, 2 Porte, NC, 12 V dc, 1/2tommer. Datablad for den findes under Datablade Doseringspumpe Følgende krav er opstillet for doseringspumpen. 1. Tolerance for Vandtryk: Skal kunne klare min. 2 bar 2. Forsyningsspænding: Skal kunne benytte 12V DC 3. Tolerance for Temp: Skal kunne operere ved 45 C 4. Flow-regulering: Skal kunne levere min. 0.5 liter/min Her bør opmærksomheden primært henledes på vandtrykket der kan opstå i slangen, imellem doseringspumpen og doseringsventilerne, hvis ingen af disse ikke er åbne når pumpen tændes. Dette problem vil praktisk blive løst software-wise, således at det ikke er muligt at tænde for pumpen med mindre at min. Én af de tilkoblede ventiler er åbne. Der blev undersøgt flere typer pumper i forhold til de ovenstående krav, og det blev besluttet at benytte en inline pumpe til opgaven. Dette blev primært besluttet på baggrund af dens performance og forsyning, denne passer til designet at systemet. Den valgte model blev: Biltema inline Pump, 17l/min, DC12V, 3A, Datablad for den findes under Datablade Flowsensor Følgende krav er opstillet for flowsensoren 1. Tolerance for Vandtryk: Skal kunne klare min. 2 bar 2. Forsyningsspænding: Skal kunne benytte 12V DC Det vigtigste krav til flowsensoren er, at den bør være rated til at kunne klare det tryk, der påhviler den. For flowsensoren gælder følgende grænseflader: 1. Vandtilførsel udefra 2. Vandkaret: Her bør opmærksomheden primært henledes på vandtrykket udefra. Der tages udgangspunkt i den alm. Vandhane, her i er vandtrykket som standard på omkring 2 bar. Derfor skal den ventil der vælges som min. kunne klare et tryk 2 bar. For afløbsventilen gælder følgende grænseflade: 1. Vandkaret: 2. Afløb: Her bør opmærksomheden primært henledes på vandtrykket udefra. Der tages udgangspunkt i den alm. Vandhane, her i er vandtrykket som standard på omkring 2 bar. Derfor skal den flowsensor der vælges som min. kunne klare et tryk 2 bar. Der blev undersøgt flere typer ventiler i forhold til de ovenstående krav, og det blev besluttet at benytte en YF-S201 Hall Effekt flow sesnor. Dette blev primært besluttet på baggrund af måden hvorpå den afgiver sine målinger, dette passer til designet at resten systemet. Den valgte model blev: Sea, 2 Porte, YF-S201 Hall Effekt flowsensor, 12v DC, 1/2tommer. Datablad for den findes under Datablade. 3 3 FiXme Fatal: der skal indsættes resten af teknologi undersøgelserne 40 af 122

43 2.11 Overordnede Sekvensdiagrammer Her ses overordnede sekvensdiagrammer for hver usecase, de har til formål at give et overblik over systemets funktionalitet. Her overskueliggøres systemmet og dets interaktion med andre aktører, samt den fysiske verden. Diagrammerne er ment som overordnede guidlines, hvorfor at metodekaldende ikke er specifikke kald men pseudo-metode-kald. Overordnet sekvensdiagram for usecase 1 - Kalibrer ph-probe På diagrammet ses interaktion mellem System og Tekniker for usecase 1 - Kalibrer ph-probe. Figur 2.20: sd - Usecase 1 Overordnet sekvensdiagram for usecase 2 - Opret kar På diagrammet ses interaktion mellem System og Tekniker for usecase 2 - Opret kar. 41 af 122

44 Figur 2.21: sd - Usecase 2 Overordnet sekvensdiagram for usecase 3 - Opret Sensor Ø På diagrammet ses interaktion mellem System og Tekniker for usecase 3 - Opret Sensor Ø. Figur 2.22: sd - Usecase 3 Overordnet sekvensdiagram for usecase 4 - Fyld kar på diagrammet ses interaktion mellem System og Bruger for usecase 4 - Fyld kar. 42 af 122

45 Figur 2.23: sd - Usecase 4 Overordnet sekvensdiagram for usecase 5 - Indtast ph-værdi På diagrammet ses interaktion mellem System og Bruger for usecase 5 - Indtast ph-værdi. Figur 2.24: sd - Usecase 5 Overordnet sekvensdiagram for usecase 6 - Indtast volumen På diagrammet ses interaktion mellem System og Bruger for usecase 6 - Indtast volumen. 43 af 122

46 Figur 2.25: sd - Usecase 6 Overordnet sekvensdiagram for usecase 7 - Aflæse målinger På diagrammet ses interaktion mellem System og Bruger for usecase 7 - Aflæse målinger. Figur 2.26: sd - Usecase 7 Overordnet sekvensdiagram for usecase 8 - Manuel vanding På diagrammet ses interaktion mellem System og Bruger for usecase 8 - Manuel vanding. 44 af 122

47 Figur 2.27: sd - Usecase 7 Overordnet sekvensdiagram for usecase 9 - Tøm kar På diagrammet ses interaktion mellem System og Bruger for usecase 9 - Tøm kar. Figur 2.28: sd - Usecase 7 Overordnet sekvensdiagram for usecase 10 - Slet kar På diagrammet ses interaktion mellem System og Tekniker for usecase 10 - Slet kar. 45 af 122

48 Figur 2.29: sd - Usecase 7 46 af 122

49 2.12 Klasseidentifikation I system domænemodellen, som ses på figur 2.2, kan det ses at der blev identificeret nogle konceptuelle klasser, hvor hver klasse har til ansvar at løse et specifikt problem. Ud fra dette vil vi gerne se på hvilke domæner og grænseflader der er. Hvor grænsefladerne er det der skal anvendes når dele af systemmet skal kommunikerer og domæne står for de resterende problemer. Så ud fra domænemodellen er følgende grænseflade- og domæneproblemer defineret: Grænseflader: Bruger Grænseflade GUI grænseflader FlexPMS grænseflader Kar grænseflader SensorØ grænseflader Domæne: Håndtering af de forskellige setværdier (ph, volumen, jordfugtighed osv.) Håndtering af målinger Håndtering af Kar data Håndtering af SensorØ data Ud fra dette udarbejdes applikationsmodeller. Hver applikationsmodel har til opgave at vise de klasser som er involveret i de forskellige use cases. Dette håndteres af kontrolklassen. grænsefladeog domæneklasserne er bestem ud fra det overstående så der er identificeret følgende klasser: Boundaryklasser: GUI - Brugergrænseflade mellem bruger og system Database - Grænseflade mellem GUI og FlexPMS Protokol - Bussystemerne der kommunikere med vores hardware Domainklasser: Sensor - Måler de forskellige data (ph, volumen, jordfugtighed osv.) Kar - Håndterer de specifikke data for de individuelle kar SensorØ - Håndterer de specifikke data for de individuelle SensorØ er Ud fra use casene og de definerede klasser, kan der nu oprettes applikationsmodeller. Applikationsmodellerne består af henholdsvis en kontrolklasse der varetager use casens forløb, samt de definerede domain- og boundaryklasser, som kontrolklassen skal bruge for at opfylde dette. Da der er mange af use casene der ligner hinanden er nogle af dem slået sammen i en applikationsmodel. 47 af 122

50 Klassediagram for use case 7 - Aflæs data Figur 2.30: Applikationsmodel for UC1 Dette klassediagram er benyttet til at identificere nødvendige klasser for at udføre use case 7. Nedenfor er beskrives kort klassernes ansvar for use case 7. AflæsData: varetager og koordinerer interaktionen mellem de interne klasser i henhold til use casen. GUI: Grænseflade mellem, system go bruger, hvor brugeren aflæser de målte data Klassediagram for use case 8 - Manuel vanding Figur 2.31: Applikationsmodel for UC8 Dette klassediagram er benyttet til at identificere nødvendige klasser for at udføre use case 8. Nedenfor er beskrives kort klassernes ansvar for use case 8. Manuel vanding: varetager og koordinerer interaktionen mellem de interne klasser i henhold til use casen. 48 af 122

51 GUI: Grænseflade mellem, system go bruger, hvor brugeren kan aktivere den manuelle vanding. Protokol: Bussystem, der kommunikerer med vores hardware, så manuel vanding kan aktiveres Klassediagram for use case 5 og 6 - Indtast data Figur 2.32: Applikationsmodel for UC5 og UC6 Dette klassediagram er benyttet til at identificere nødvendige klasser for at udføre use case 5 og 6. Nedenfor er beskrives kort klassernes ansvar for use case 5 og 6. IndtastData: varetager og koordinerer interaktionen mellem de interne klasser i henhold til use casen. GUI: Grænseflade mellem, system go bruger, hvor brugeren Indtaste de ønskede data. Database: Grænseflade mellem GUI og FlexPMS, hvor de indtastede data bliver gemt. 49 af 122

52 Klassediagram for use case 2 og 10 - Kar manipulation Figur 2.33: Applikationsmodel for UC2 og UC10 Dette klassediagram er benyttet til at identificere nødvendige klasser for at udføre use case 2 og 10. Nedenfor er beskrives kort klassernes ansvar for use case 2 og 10. KarManipulation: Varetager og koordinerer interaktionen mellem de interne klasser i henhold til use casen. GUI: Grænseflade mellem, system go bruger, hvor brugeren kan oprette og slette kar. Database: Grænseflade mellem GUI og FlexPMS, hvor det forskellige kar bliver gemt med deres data. 50 af 122

53 2.13 Grænsefladebeksrivelser Ventilstyring Grænsefladebeskrivelse Ventilstyring er en grænseflade til systemet, modulet omsætter digital styring fra PSoC en til analog aktuation i mangetventilen der kontrollerer vandtilførsel, udledning, samt dosering ved karret. Modulet tager, som input, et digitalt signal 0-5V. Dette omsættes til analog styring af ventilen. Derudover tilføres kontrolkredsen 12V som forsyningsspænding. fig.2.34,s.51 Figur 2.34: Grænsefladebeskrivelse: Ventilstyring Doseringspumpe Grænsefladebeskrivelse Doseringspumpen er ligeledes en grænseflade til systemet, modulet omsætter et digital PWMsignal fra PSoC en til en procentvis styring af doseringspumpen så den kan kører i flere etaper. Modulet tager, som input, et digitalt PWM-signal 0-5V. Dette omsættes til analog styring i doseringspumpen. Derudover tilføres kontrolkredsen 12V som forsyningsspænding. fig.2.35,s.51 Figur 2.35: Grænsefladebeskrivelse: Doseringspumpe Flowsensor Grænsefladebeskrivelse Flowsensor fungerer som grænseflade til systemet, modulet omsætter vandflow i sensoren til et digital PWM-signal der angiver hvor meget vand der flyder igennem sensoren. Modulet forsynes med +5V forsyning, samt GND, og afgiver PWM-signal Dette PWM omsættes via et eksternt counterkredsløb til at give logisk 1 ved hver 10. count. Dette trækker et interrupt i PSoC programmet.fig.2.36,s.51 Figur 2.36: Grænsefladebeskrivelse: Flowsensor PSU (Power Supply Unit) Grænsefladebeskrivelse Strømforsyningen har til formål at forsyne hele systemet med både 5V og 12V. Den genererer disse spændinger ud fra el-nettets 230VAC. Navn Definition Område Kommentar 5V Analogt signal 0-5V Forsyning 12V Analogt signal 0-12V Forsyning GND Analogt signal 0V Stel 51 af 122

54 Softwarearkitektur Revision Ændret af Version Dato KSK 1.0?????? KM Tabel 3.1: Revision for Software Arkitektur I dette afsnit beskrives softwarearkitekturen for AVS 1, som der er blevet givet indblik på i systemarkitekturen. Afsnittet skulle gerne give et indblik på det specificeret software indenfor fastlagte ramme, så udviklerne evt. kunne udarbejde det. Afsnittet indeholder dokumentation og design af de forskellige softwaredele med test på nogle af dem. I afsnittet er softwaren delt ud i fire forskellige blokke som er delt op ud fra domain modelen. De fire blokke er GUI, FlexPMS, KarControl og Sensor Ø. 3.1 Design og implementering af database og GUI I dette afsnit kommer vi ind på beskrivelsen af databasen og gui ens design og implementering. Der vil være en beskrivelse af hvordan disse er anvendt i systemmet og hvordan de løser de problematikker der er stillet i kravspecifikationen GUI Som udgangspunkt til at lave gui en er der blevet implementeret en webside, hvor selve kommunikation mellem databasen, websiden og clienten ser ud som det kan ses i diagrammet på figur FiXme Note: AVS glossary 52 af 122

55 SoftwareArkitektur/GUI/Intro_GUI_DB/photo/webDiagram.PNG Figur 3.1: Diagram over gui og databasens interaktion I Libary ligger der nogle klasser så det er muligt at oprette objekter, ud fra indholdet i DB 2, inde i Controlleren. Controlleren indeholder alle PHP filerne som indeholder funktioner til at sætte websiden op og henter/opdaterer data fra databaserne. Under Template ligger alle HTML filerne som strukturerer indholdet på websiden og visualiserer gui en. Hertil er smarty anvendt som Template Engine, det den gør, er at det tager et PHP script, udfører det, og derefter sender forskellige genererede variabler til template (HTML filerne), hvor Smarty derefter udfører forskellige opgaver med variablerne, for til slut at kompilere skabelonen til gui en. Til template er der også anvendt Bootstrap 3, som er beregnet til at gøre webudvikling lettere, da den består af HTML- og CSS- baserede design skabeloner til typografi, formularer, knapper, navigation og andre interface komponenter, samt valgfri JavaScript udvidelser. For at sikre at Brugeren ikke skal opdatere websiden, hver gang de vil aflæse nogle nye data eller trykke på en af knapperne er der blevet anvendt nogle jquery AJAX metoder, som kan bruges til at udveksle data med en server og opdatere dele af en webside uden at genindlæse hele siden Database FlexPMS databasen er blevet anvendt til at opbevare indtastede data omkring kar og sensorøerne med deres ventil og vandingsstatus, samt aflæste værdier fra de forskellige sensorer, hvor denne database kan tilgås via gui en. MySQL er databaseformatet der er valgt, og valget bunder i at denne har alle de kvaliteter systembeskrivelsen og kravspecifikationen foreskriver. Desuden er softwaren 2 Databasen af 122

56 til etablering af en sådan server gratis, veldokumenteret og nem at gå til. Databasen indeholder nogle forskellig tabeller som er bestemt ud fra de krav vi skulle tilfredsstilles i kravspecifikation og det design der er lavet i systemarkitekturen. Disse tabeller, deres kolonnenavne og deres datatype er illustreret i figur 3.2. Figur 3.2: Diagram over FlexPMS databasen Som det fremgår af diagrammet kender tabellerne til hinanden, det gør de via deres id. Hver Sensor Ø og kar har et unikt id for at sikre man kan differentiere mellem dem. Grunden til at dette er vigtigt er fordi at det sikre at data ikke bliver dubleret, ført forkert ind i tabellerne, eller har nogle forkerte interaktioner. En kort beskrivelse af tabellerne og deres kolonner i databasen følger: Kar Kar indeholder alle kar, deres kar data, som brugeren har oprettet og status for dens ventiler. Alle kar har et navn og adresse med de data som Brugeren ønsker at karet skal have. Kolonnenavnene er beskrevet i tabel af 122

57 Kolonnenavn id name adresse ph volumen humidity MWSTATUS IVALVESTATUS OVALVESTATUS Beskrivelse Et unikt id for hver kar tabellen indeholder Navnet på karet Adressen til karet Den indtastede ph-værdi som Brugeren ønsker Det vandniveau/antal liter vand som Brugeren ønsker i karet Den jordfugtighed brugeren ønsker ved Sensor Øerne Status for manuel vanding: 1: Manuel vanding er startet 0: Manuel vanding er stoppet Status for indløbsventil: 1: Indløbsventilen er åben 0: Indløbsventilen er lukket Status for afløbsventil: 1: Afløbsventilen er åben 0: Afløbsventilen er lukket Tabel 3.2: Beskrivelser af kolonnenavne for tabellen Kar SensorOe SensorOe indeholder alle Sensor Øer, deres data brugeren har oprette og status for dens ventil. hver Sensor Ø har også et KarID så man kan se hvilket Kar de hører til. Kolonnenavnene er beskrevet i tabel 3.3. Kolonnenavn id adresse KarID VALVESTATUS Beskrivelse Et unikt id for hver Sensor Ø tabellen indeholder Adressen til Sensor Ø En reference til det Kars id som Sensor Øen sidder på Status ventilen ved Sensor Øen: 1: Ventilen er åben 0: Ventilen er lukket Tabel 3.3: Beskrivelser af kolonnenavne for tabellen SensorOe KarSensorData KarSensorData indholder alle de målte værdier ved hver kar, derfor har de et KarID, som man kan se hvilken værdi det tilhører. Her indikerer type hvilken slags måling det er, hvor measure værdien der bliver målt. Ydermere er der time der angiver tiden hvor de tilhørende data blev sat ind, på den måde kan man altid tilgå de nyeste data. Kolonnenavnene er beskrevet i tabel 3.4. Kolonnenavn KarID type measure time Beskrivelse En reference til det Kars id der bliver målt på Hvilken type sensor der er lavet måling på: 1: ph-værdi på væsken i karret 2: Vandniveau/Antal liter der bliver tilført til karet 9: Gennemsnittet af jordfugtigheden målt ved Sensor Øerne Den aflæste sensor værdi Tidspunktet værdien blev sat in i tabelen Tabel 3.4: Beskrivelser af kolonnenavne for tabellen KarSensorData 55 af 122

58 OeSensorData OeSensorData minder meget om KarSensorData men indholder alle de målte værdier ved hver Sensor Ø og derfor har de et OeID. Kolonnenavnene er beskrevet i tabel 3.5. Kolonnenavn OeID type measure time Beskrivelse En reference til det Sensor Øs id der bliver målt på Hvilken type sensor der er lavet måling på: 9: Jordfugtigheden målt ved Sensor Øen Den aflæste sensor værdi Tidspunktet værdien blev sat in i tabelen Tabel 3.5: Beskrivelser af kolonnenavne for tabellen KarSensorData Klassediagram og metodebeskrivelse Ud fra implementeringen er der genereret illustrerende klassediagrammer som kan ses på figur 3.3, disse klasser ligger under Libary, som kan ses på figur 3.1, klasserne er anvendt til at kunne oprette objekter, både ud fra indholdet i databasen og til at lave en Socket klient. Hvis der ønskes yderligere indsigt i hvordan specifik kode er skrevet henvises der til sourcekoden 4. SoftwareArkitektur/GUI/KlasseDiagram/photo/klasseDiagram_gui.PNG Figur 3.3: Klassediagram for GUI Her kan man se der ikke er nogle forbindelse mellem de tre klasser, og det skyldes at de får alt deres information om de andre klasser gennem databasen. Kar klassen Kar klassen er en klasse, der giver mulighed for at tilgå et kar fra databasen og få alt dens information baseret på dens ID. Via klassens metoder kan de forskellige data i databasen blive redigeret, karet kan blive oprettet/slettet og man kan se hvilke Sensor Øer der sider på karet. Den har følgende metoder: 4 Se bilag under Software\www\lib 56 af 122

59 SensorOe klassen SensorOe klassen er en klasse, der giver mulighed for tilgå en Sensor Ø fra databasen og få alt dens information baseret på dens ID. Via klassens metoder kan de forskellige data i databasen blive redigeret, Sensor Øen kan blive oprettet/slettet og man kan se hvilket kar Sensir Øen tilhører. Den har følgende metoder: SocketClient klassen SocketClient klassen er en socket klient der anvendes til at sende beskeder direkte til FlexPMS, for at give besked om nogle ting systemet skal gøre. Den har følgende metoder: Controller Som de kan ses på figur 3.1, er der en Controller, den indeholder alle PHP filer. Disse filer indeholder funktionen der anvendes til at sætte websiden op og hente/opdaterer data fra databasen. De følgende filer har hver deres opgave og disse vil blive beskrevet i følgende afsnit. Controller har følgende filerne som kan ses i tabel 3.6. Hvis man ønsker at se filerne skal man gå ind under sourcekoden 5. PHP fil mysql.php index.php kar.php create.php createso.php delete.php deletes.php edit.php updatedata.php auto_refresh_kar.php Beskrivelse Opretter forbindelse til databasen Bygger index/home siden til AVS Bygger kar siden til det kar man tilgår Opretter et kar, som bliver visualiseret i GUI en og sat ind i databasen Opretter en Sensor Ø som bliver visualiseret i GUI en og sat ind i databasen Sletter et kar, både fra databasen og GUI en Sletter en Sensor Ø, både fra databasen og GUI en Redigere navnet på karet Opdaterer de indtastede data i karet opdaterer de aflæste date og er sammentidlig en fil der bliver opdateret hvert sekund Tabel 3.6: Beskrivelser af php filer under Controller I følgende er der nogle af filerne der bliver beskrevet mere detaljeret, for at illustrer hvordan de påvirker gui en og databasen. index 3.2 FlexPMS Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus at erat blandit, vehicula mauris ac, pulvinar ipsum. Nam lobortis neque libero, eget aliquam enim convallis eget. Nunc semper ex faucibus lectus pulvinar, ac molestie ligula vestibulum. Vivamus sagittis massa vitae arcu aliquam scelerisque. Vivamus in dignissim erat. Donec vitae malesuada lorem. Maecenas laoreet pharetra lobortis. Donec ac iaculis metus. Suspendisse potenti. Curabitur tincidunt risus non dui fringilla tincidunt. Fusce dui quam, bibendum non velit nec, gravida sagittis nisi. Maecenas dictum neque sit amet enim pulvinar, ac congue dolor feugiat. Etiam in felis viverra, ultricies justo id, consectetur nisl. Ut sed augue in lacus ullamcorper cursus eget sit amet turpis. 5 Se bilag under Software\www 57 af 122

60 Figur 3.4: PakkeDiagram af FlexPMS Kar Kommunikation Kar kommunikations pakken er ansvarlig for at sende beskeder til kar styringen den står altså for grænsefalden ud til sensor og aktautore igennem kommunikation til kar styringen. Den består af 3 klasser der er illustreret i diagrammet herunder: Figur 3.5: KlasseDiagram af KarBus 58 af 122

61 KarBus klassen Den klasse interfacer med resten af flexpms igennem den event baserede kommunikation der driver systemet klassen har således sin egen message kø og tilsvarende event handlers. KarBus har også en RS485 instans og en Protokol instans i sig, Protokol klassen er implementeringen af Karbus protokollen som KarBus klassen bruger til at sende beskeder til karret, RS485 klassen er ikke direkte brugt af KarBus. funktions beskrivelser void ehandlekarready(mkarready* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked om at tjekke at karret er klar til kommunikation void ehandlekargetsensordata(mkargetsensordata* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked om at hente sensor data fra karret void ehandlekarsetpumpstate(mkarsetpumpstate* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere msg ingenting En besked om at styre pumpen så denne køre med den hastighed der er indehold i beskeden void ehandlekarsetpumpstate(mkarsetpumpstate* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere msg ingenting En besked om at styre pumpen så denne køre med den hastighed der er indehold i beskeden void ehandleoegetsensordata(moegetsensordata* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked om hente data fra sensor øen void ehandleoesetvalve(moesetvalvesate* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked at styre ventilen på sensor øen void ehandleoegetsensortype(moegetsensortype* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked at få afvide hvilken sensortype der er koblet til en bestemt adresse 59 af 122

62 void ehandlekarsetvalve(mkarsetvalvestate* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere msg ingenting En besked at styre ventilen på karret den kan indeholde om det er afløb eller indløb der skal styres void ehandlekargetoelist(mkargetoelist* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked om at få en list af ø er der er tilkoblet et kar void ehandlekaropretoe(mkarsetopretoe* msg) Denne eventhandler kalder den relavante funktion i protokol klassen og stykker det relavante svar sammen hvis der bliver returneret et svar fra RS485 bussen Returnere ingenting msg En besked om at oprette en ø der bliver knyttet til et kar Protokol klassen Denne klasse er en direkte implementering af karbus protokollen det vil sige at den har en funktion per besked der er i protokollen det gør at det er nemt at tilføje beskeder til protokollen men også at andre dele af koden er mindre afhængige af protokollen og hvordan denne håndtere kommunikationen til hardware. Klassen har en pointer til RS485 klassen som den bruger til at sende beskederne med, RS485 kunne for så vidt erstattes af en anden klasse hvis det var ønskeligt at kommunikere på anden vis end via RS485. funktions beskrivelser bool sendandreceive() Denne funktion kalder send og modtage funktionerne i RS485 klassen Returnere Der bliver returneret true hvis en besked blev modtaget ellers false bool getkarrdy(unsigned char karid, unsigned char& karstate) Denne funktion gør en besked klar til at forspørge om et kar er klar til kommunikation derefter venter den indtil der er modtaget en besked med sendandreceive funktionen returtypen sætte alt efter om der modtages en besked Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med karstate Parameter til at returnere status på kar bool getkarsensordata(unsigned char karid, unsigned char& len, unsigned char data)) Denne funktion gør en besked klar til at forspørge om at hente sensor data fra kar derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med len længden af det data der er modtaget data data en der blev modtager lagt i et char array 60 af 122

63 bool setpumpstate(unsigned char karid, unsigned char& state) Denne funktion gør en besked klar til at forespørge om at styre pumpen på et kar derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid state Adressen på det kar der kommunikeres med Bruges til at modtage hvilken state pumpen skal sættes til samt at returnere hvilken tilstand den blev sat til såfremt at vi får et rigtigt svar fra bussen bool getoesensordata(unsigned char karid, unsigned char oeid, unsigned char& len, unsigned char data) Denne funktion gør en besked klar til at forespørge om at hente data fra en sensorø derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med oeid Adressen på den ø vi øsnker at hente data fra len data længden på svaret fra bussen, dette parameter bruges til at returnere værdier den data der er indhentet fra ø en, dette parameter bruges til at returnere værdier bool setoevalve(unsigned char karid, unsigned char oeid, unsigned char& state) Denne funktion gør en besked klar til at forespørge om at styre ventil på en sensor ø der er tilkoblet et kar, derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med oeid state Adressen på den ø vi øsnker at hente data fra Bruges til at modtage hvilken state ventilen skal sættes til samt at returnere hvilken tilstand den blev sat til såfremt at vi får et rigtigt svar fra bussen bool setkarvalve(unsigned char karid, unsigned char& ventilid, unsigned char& state) Denne funktion gør en besked klar til at forespørge om at styre en ventil der er tilkoblet et kar, derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med ventilid Adressen på den ventil der skal styres bruges også til at returnere hvilken ventil der blev styret state Bruges til at modtage hvilken state ventilen skal sættes til samt at returnere hvilken tilstand den blev sat til såfremt at vi får et rigtigt svar fra bussen 61 af 122

64 bool getkaroelist(unsigned char karid, unsigned char& len, unsigned char data) Denne funktion gør en besked klar til at forespørge om at få en liste af tilkoblede ø er på kar, derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med len data længden på svaret fra bussen, dette parameter bruges til at returnere værdier den liste af ø er der er indhentet fra karret, dette parameter bruges til at returnere værdier bool getoesensortype(unsigned char karid, unsigned char oeid, unsigned char& fsid) Denne funktion gør en besked klar til at forespørge om at få typen af en bestemt sensor, derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med oeid Adressen på den ø vi øsnker at hente data fra fsid Adressen på den sensor vi øsnker at kende typen på bool opretoekar(unsigned char karid, unsigned char& oeid) Denne funktion gør en besked klar til at forespørge om at oprette en ø på et kar, derefter venter den på svar fra sendandreceive hvis denne returnere true tjekkes det om vi har fået det rigtige svar hvis det er tilfældet sættes de relevante svar værdier Returnere Der bliver returneret true hvis en besked blev modtaget ellers false karid Adressen på det kar der kommunikeres med oeid Adressen på den ø vi ønsker at oprettet RS485 klassen Denne klasse bliver brugt til at sende og modtage data på RS485 bussen, den gør brug af termios interfacet til at skrive data ud serielt fra raspberry pi s GPIO pinde, den kan også styre en GPIO pin der fungere som transmit enable(txen). Dette er en nødvendighed da hardware der konvertere fra logisk signal til differentielt signal kan sættes i transmit eller receive mode. Klassen er også ansvarlig for at styre pariteten på de bytes vi sender. Grunden til dette er at KarBus bruger mark/space paritet til at indikere om den byte der sendes er en adresse eller en almindelig data byte. Dette har givet lidt udfordring i forhold til at regne pariteten ud for alle bytes der sendes da kommunikationen ellers ikke ville fungere, i linux kan der officielt kun sendes med odd eller even paritet. Selve modtager delen er implementeret som en state machine dette er gjort for at holde styr på adresseringen. 62 af 122

65 Figur 3.6: StateDiagram af RS485RX funktions beskrivelser void initgpio() Denne funktion initiere GPIO en der skal bruges som TxEn Returnere ingen void txenable(bool state) Denne funktion bruges til at tænde og slukke for TxEn Returnere ingen state Kan være true for at tænde txen eller false for at slukke 63 af 122

66 void sendchar(char ch, bool address) Denne funktion sender en enkelt char ad gangen samtidigt vender den pariteten før den sender den holder også øje med hvilken paritet vi er efterladt i da vi skal bruge det når vi modtager Returnere ingen ch address Den char der skal sendes Hvis denne er true indikere det at den char vi sender er en adresse ellers hvis den er false sendes der data bool paritycheck(char &ch, bool parity) Denne funktion bruges til at checke pariteten på de char s der bliver indlæst af modtageren for at identificere om det er en adresse Returnere hvilken paritet en char er blevet læst med ch Den char der skal tjekkes paritet på parity Kaldes med den tilstand der ønskes at tjekke paritet efter int getchar(char &ch, bool &address) Denne funktion bruges til at indlæse en char fra hardware der tjekkes her på paritets fejl da linux håndtere paritets fejl ved at sende 0xFF efter fulgt af 0x00 dermed kan vi vide hvordan vi skal teste hvilken paritet char en burde have haft Returnere hvor mange bytes read() har indlæst ch Den char der skal tjekkes paritet på parity Kaldes med den tilstand der ønskes at tjekke paritet efter void getpacket() Denne funktion indeholder state machinen der bruger getchar til at indlæse char og bestemmer hvor i bufferen de skal placeres alt efter om det er en char som er en adresse eller det er en data char, den holder også øje med når vi har modtaget en hel besked det gør den via length i selve beskeden Returnere intet void sendpacket(char *packet, unsigned int len) Denne funktion bruges til at sende en besked det er blot en for løkke der sender den char pointers værdier som funktionen for med som parametre til sendchar() Returnere intet packet den besked der skal sendes len Hvor mange char s pointeren packet indeholder bool getmessage(char* msg) Denne funktion bruges til at tjekke om der er en besked klar til at blive indlæst Returnere returnere true hvis der er en besked klar ellers false msg kan bruges til at læse bufferen ud void initbuffer() Denne funktion bruges til at gøre bufferen klar til at modtage en ny besked Returnere intet void RS485send(Bus_Message txmessage) Denne funktion bruges af protokollen til at sende en besked på bussen Returnere intet txmessage den besked der skal sendes i stuct format 64 af 122

67 bool RS485read(Bus_Message rxmessage) Denne funktion bruges af protokollen til at sende en besked på bussen Returnere Hvis der er modtaget en besked returneres true txmessage den besked der skal sendes i stuct format 3.3 Fieldsensor Fieldsensor projektet er en skabelon til alle Fieldsensorer. Hvis en ny type sensor skal udvikles, er det blot at indsætte den nye sensor og bruge SB_LoadValue_Float32 eller SB_LoadValue til at overføre data til SensorBus kommunikationen. Der skal desuden også tilføjes et type id for denne sensor, så systemet kan identificere den senere. Typen bliver hardcoded på sensoren, mens det er mening at adressen på sigt bliver automatisk tildelt. Selve projektet består af en SensorBus, en Sensor og en DebugUart (optional). Figur 3.7: SekvensDiagram af Fieldsensor Der er indlagt en "dummy"tæller for at main loopet er mest muligt aktivt, og samtidig mindske hvor ofte en given sensor bliver aflæst. Dette prøver at sikre at kommunikation ikke går tabt mens der ventes. Debug komponenten er til at debugge komponenten under udvikling og test, det er meningen at denne kan disables og derved spare plads og energi mens enheden ellers kører. 65 af 122

68 3.4 Kar Figur 3.8: PakkeDiagram af Kar 3.5 Sensor Ø Sensor Øen består af følgende komponenter, hvor DebugUart er optional, og bruges under test og implementering. De enkelte pakker er videre beskrevet under AVSLibrary sektionen. 66 af 122

69 Figur 3.9: PakkeDiagram af SensorOe Systemet er i kort vist i følgende sekvens diagram 67 af 122

70 Figur 3.10: SekvensDiagram af SensorOe Selve parse funktionen af de enkelte beskeder er ikke vist da de er unikke efter hver kommando, men er simple i deres udførelse, f.eks. skifte state på den tilkoblede ventil. For at sikre mest mulig oppetid i forhold til Øbus kommunikationen er pollning af Fieldsensorer, med vilje lavet til at kun en bliver pollet per loop. Derved har Øbussen mulighed for kommunikation mellem hver pollning i stedet for at skulle vente til alle sensorer er pollet. Der er desuden implementeret en scannings funktion der automatisk tilføjer alle Fieldsensorer der er tilkoblet SensorBussen før Øen booter. Derved kan man tilføje de sensorer man skal bruge og genstarte SensorØen, de er derefter alle blevet tilføjet. Dette er noget der er blevet arbejdet på at skulle ske automatisk løbende i stedet for under boot Funktioner void SetVentilState(uint8 state) Bruges til at skifte tilstand på ventilen alt efter om den skal være åben eller lukket Returnere intet state Den tilstand ventil skal sættes til åben(1) eller lukket(1) uint8 GetOebusAddr() Bruges til at hente den adresse som øen har på ø bussen Returnere Ø ens bus adresse void SetOebusAddr(uint8 addr) Bruges til at ændre øens adresse Returnere intet addr Den adresse øen skal have 68 af 122

71 void addfieldsensor(uint8 addr) Denne funktion allokere plads til en ny fieldsensor og initiere den med default værdier samt den adresse funktionen er kaldt med Returnere intet addr Den adresse fieldsensoren skal have void pollfieldsensor(fieldsensor* fs) Her startes udlæsning af data fra fieldsensoren, hvis det lykkes sættes sensoren til at være online ellers offline Returnere intet fs Er en pointer til den sensor der skal polles void sendfieldsensors(uint8 receiver) Tæller op hvor mange sensorer der er koblet til øen og sender en besked med rette retur type og længde i henhold til antal sensorer derefter deres argumenter Returnere intet receiver Adressen på den der skal modtage fieldsensor data Fieldsensor* findfieldsensor(uint8 sensor_addr) Leder listen af fieldsensorer igennem efter en sensor med adressen i argumentet Returnere En pointer til Fieldsensor hvis alt gik godt ellers NULL sensor_addr Adressen på den sensor der skal findes void parseoebus() dispatcher for OeBus Returnere intet void scanfieldsensors(uint8 import) funktionen skanner alle valide adresse og forsøger at læse fra dem hvis det lykkes importeres sensoren i fieldsensor listen såfremt import parameteren er sat Returnere intet import Fortæller om der skal gemmes de sensorer der er blevet skannet void debuglistfieldsensors() Udskriver adresse og status på alle tilkoblede fieldsensorer på debug uart Returnere intet void debugconfig() udskriver alt data omhandlende sensorøs configuration på debug uart Returnere intet void DebugHandle(const char ch) Bruges til at skifte DebugHandle og udskrive en liste af Komponenter der er tilkoblet debug Returnere intet ch tegn fra uart som der switches på»»»> Beskrevet Oe funktioner 69 af 122

72 3.6 AVSLibrary AVSLibrary et er en samling af custom Psoc4 komponenter, der gør det lettere at overskue og udvikle selve Kar, Sensor Ø og Fieldsensor. Der er mange ting der bliver lettere, hvis ventilerne skal inverte signalet, er det et enkelt sted dette skal ændres, og så bliver det rettet i alle andre projekter hvor de bruges. Der er også begrænsninger med hensynt til at have shared kode. Enums og Struct er fælles på tværs af komponenterne, for at sikre at Enums har de rigtige værdier og Structs er lettere at håndtere et samlet sted. Fieldsensor er blevet meget strømlinet via dette, da man blot indsætter en SensorBus, konfigurerer I2C adresse og sætter den til at være Fieldsensor. Derefter skal mainloopet blot opdateret high og low værdierne, samt kalde Communicate funktionen. Skulle I2C delen udskiftes med en anden bus ville det kunne gøres uden at påvirke de enkelte Fieldsensors. De vil blot få den nye bus med næste gang den kompileres. Selve komponenterne er skrevet i noget "meta"c kode, da der er nogle specielle Psoc macro koder der bruges til at generere den færdige c kode for komponenten. Hvor den mest brugte er $INSTANCE_NAME som erstattes af det navn brugeren vælger for komponenten, derfor bør alle metoder og variabler prefikses med dette. Dette sikrer at alle metoder og variabler er unikke, når c koden genereres af brugeren DebugUart Formål Denne komponents formål er at overtage printf funktionen, og sende data strømmen fra denne ud via en UART. Ideen er at programmet kan kompileres med og uden debug. Hvis debug er deaktiveret bliver printf data strømmen sendt i et sort hul, ellers bliver det sendt ud af en UART. Dette gør at andre komponenter blot skal inludere en header fil, og kan derefter bruge printf uden at skulle tænke videre over det. Desuden giver komponenten også mulighed for andre komponenter at koble sig på en debug menu, så man kan sende kommandoer direkte til de individuelle komponenter. Dette er gjort via funktiones pointere. Når en anden komponent bliver tilføjet bliver denne automatisk givet et nummer i menuen. Når et nummer bliver indtastet skifter DebugHandle til denne komponent. Brugeren kan derefter bruge ESC for at komme tilbage til menuen og vælge en ny DebugHandle. Figur 3.11: StateDiagram af DebugMenu Funktioner int Debug_printf(const char* string,...) Er dokumenteret her, da det er en fri funktion, men hører til denne komponent. Returnere Success: Antal chars udskrevet Failure: Negative number 6 Cypress [2014] 70 af 122

73 void Debug_Start(void) Kobler UART ens PutString til printf funktionen. Samt starter denne op. Returnere Void void Debug_PutChar(char8 txdatabyte) Wrapper for UART_PutChar Returnere Void void Debug_PutString(const char8 string[]) Wrapper for UART_PutString Returnere Void void Debug_Communicate() Redirecter input chars fra UART til den valgte DebugHandle Returnere Void void Debug_DebugHandle(const char ch) Bruges til at skifte DebugHandle og udskrive en liste af Komponenter der er tilkoblet debug Returnere Void void Debug_AddComponent(void (*debugchar) (char)) Tilføjer en DebugHandle funktion, bruges til at koble komponenters DebugHandle til. Returnere Void Doseringspumpe Formål Formålet med denne komponent er at lave en ens tilgang til pumper i systemet. Komponenten består af et Clock input, en PWM generator, samt en Pin. Clocken er input til PWM generatoren, som outputter sit signal til Pin en. Dette signal bliver derefter brugt på et pumpe styreboard. Selve PWM signalet er et Fast PWM signal hvor vi sætter comparatoren efter de procenter den bliver indstillet til. Der kan på komponenten vælges om signalet skal invertes. Hastigheden af PWM signalet angives i procent. Komponenten har 2 states running (0x01) og blocked (0x00). Dette angiver om PWM generatoren er indstillet til at sende det ønskede signal. Man kan derved instille en hastighed inden man starter pumpen, skulle dette være ønsket, samt huske pumpen den sidste værdi den var indstillet til, hvis man midlertidig vil stoppe pumpen og starte den igen med samme hastighed. Funktioner void Pumpe_Start(void) Funktionen bruges til at initialisere PWM generatoren Returnere Void void Pumpe_Run(void) Indstiller PWM generatoren med den forprogrammerede hastighed, hvis den tidligere hastighed var 0%, bliver hastigheden sat til 100%. Pumpens state bliver ændret til running (0x01) Returnere Void 71 af 122

74 void Pumpe_Block(void) Stopper PWN generatoren og ændre pumpens state til blocked (0x00) Returnere Void void Pumpe_SetSpeed(uint8 percent) Indstiller hastigheden PWM generatoren ønskes at køre med, er staten running (0x01) bliver PWM generatoren s comperator ændret med det samme Returnere Void percent 0-100, hvor mange procent af tiden signalet skal være aktivt. void Pumpe_ApplySpeed(void) Intern funktion der indstiller PWM Generatoren med den ønskede hastighed Returnere Void uint8 Pumpe_GetSpeed(void) Returnerer den indstillede hastighed i procent Returnere procent void Pumpe_DebugHandle(const char ch) Kan bl.a. starte, stoppe pumpen, samt ændre hastighed på signalet. Debug handler, se mere under DebugUart Returnere Void ch Input char void Pumpe_DebugState(void) Udskriver hvilken state pumpen er i, samt hastighed mm. Returnere Void FlowSensor Flowsensor Flowsensor komponentens software er designet ud fra dens hardware som giver et frekvens moduleret signal altså et signal hvor frekvens stiger alt efter hvor meget vand der løber igennem. Dette signal vil stå og skifte imellem logisk lav og logisk høj, det betyder at vi kan tælle de pulser der kommer ud af føleren. Til at gøre dette her vi designet en komponent der indeholder en input pin og en interrupt service routine, denne tæller 1 op hver gang der kommer et interrupt og holder derved øje med flowet. Der er så skrevet nogle metoder der kan udlæse og oversætte de talte pulser til et antal liter, der er ved empirisk måler fundet det antal pulser der svare til en liter og dette tal bruges så til at finde ud af liter antallet. Funktioner CY_ISR(FlowSensor_FLOW) Dette er interrupt service routinen der bruges til at registrer antal ticks fra flow måleren Returnere intet void FlowSensor_Start() Denne funktion starter alle afhængigheder flowsensor komponenten har Returnere intet 72 af 122

75 uint16 FlowSensor_getFlowTicks() Denne funktion returnere antal ticks der er talt Returnere antal ticks uint16 FlowSensor_getFlowLiter() Denne funktion returnere antal liter vand der er beregnet Returnere antal ticks void FlowSensor_calcFlowLiter() Denne funktion beregner det antal liter der er talt via flow ticks Returnere intet phprobe phprobe Softwaren til phprobe er implementeret med en OPAmp og en ADC i PSoC 4 chippen desuden er der en interrupt service routine der bruges til at calibrere proben med. OPAmp en og ADC er beskrevet i hardware delen af dokumentationen, i software bliver ADC en aflæst for hvilken værdi der er i milivolt på ADC ens indgang. Desuden er der sat default værdier for ph4 og ph7 som er disse ph proben kalibreres efter, disse to værdier bruges til at regne den aktuelle ph i forhold til det antal milivolt der læses på ADC en. Funktioner CY_ISR(pHProbe_CALIBRATE) Dette er interrupt service routinen der bruges til at kalibrere proben det er vigtigt at nævne at når denne kørers kan karret ikke kommunikere fordi at karret står og venter i denne routine Returnere intet void phprobe_start() Denne funktion start alle afhængigheder phprobe komponenten har, herunder ADC og OPAmp Returnere intet float phprobe_mvtoph(float mv, float ph4, float ph7) Denne funktion regner den aktuelle phværdi ud fra målingen fra ADCen Returnere phværdien float phprobe_getph() Denne funktion aflæser ADC en og returnere phværdien udregnet ved at kalde phprobe_mvtoph funktionen Returnere antal ticks void FlowSensor_calcFlowLiter() Denne funktion beregner det antal liter der er talt via flow ticks Returnere intet RS485 Formål Denne komponent er en UART udbygget til at virke via en RS485 bus. Der er tilføjet en TX Pin der skal være høj under transmission, og ellers lav. UARTen er bygget via interrupts og buffer, hvilket 73 af 122

76 sikre bedre mod tab af beskedr. TX benet er implementeret ved at disable RX og enable TX, tænde for TX Pin og vente 20 ms. Derefter sende komandoen samt eventuelle argumenter. Når alt er sendt disables TX Pin, samt enables RX og TX disables. Da der ingen collison detection er, er protokollen lavet til at kun masteren snakker, og slaves kun svarer når master forventer dette. Modtagelsen af beskeder sker via interrupts og det er først relevant at kalde RS485_GetRxMessage når beskeden er helt modtaget. Mark Space adresseringen er indbygget i UART komponenten, eller er modtage statemachinen ca det samme som kan ses under 3.6. Afsendelsen er lidt mere kompliceret, da afsendelsen af UART beskederne sker i hardwaren og ikke software. Derfor er vi nød til at aktivere interrupts når sender bufferen er tom, og først derefter slukke for TX benet. Funktioner Figur 3.12: StateDiagram af RS485TX void RS485_Start(void) Initialiserer den underlæggende UART samt TX Pin en, og klargører buffere Returnere Void void RS485_SetAddress(uint8 addr) Skifter addresse på interfacet Returnere Void addr Den nye adresse der skal benyttes uint8 RS485_GetAddress( Henter adresse på interfacet Returnere Adressen uint8 RS485_ReadRxStatus() Angiver hvad status er i forhold til at der ligger en besked i bufferen Returnere RS485_MSG_EMPTY, RS485_MSG_READY er de to vigtigste void RS485_GetRxMessage(RS485_MSG_STRUCT *msg) Returnerer en modtaget besked, beskeden ligger stadig i bufferen og skal behandles inden den næste modtages Returnere Void msg Pointer til en msg struct, som blot er pointere til forskellige steder i bufferen void RS485_ClearRxMessage() Skal køres når en besked er parset, dette gør at interfacet igen kan modtage en besked. Det gør også at værdierne i beskedn ikke længere kan forvente at være korrekte Returnere Void 74 af 122

77 void RS485_PutTxMessage(uint8 receiver, uint8 len, uint8 cmd) Sender en besked til receiver med kommandoen command, er len større end 0 skal der sendes len antal RS485_PutTxMessageArg. Mens der sendes kan der ikke modtages beskeder. Dvs hvis der er mitchmatch mellem len og RS485_PutTxMessageArg(uint8 arg) ender programmet i en deadlock Returnere Void receiver Modtager adressen af beskeden len Antallet af argumenter der sendes med cmd Kommandoen der sendes med void RS485_DebugHandle(const char ch) Ikke implementeret endnu Returnere Void ch Input char void RS485_DebugMsg(RS485_MSG_STRUCT *msg) Udskriver beskeden på skærmen i HEX koder, hvis debug er aktiveret bliver alle modtagne pakker udskrevet på denne måde Returnere Void msg Pointer til beskeden SensorBus Formål SensorBussen er en overbygning på en I2C Multi-Master-Slave Bus. Der bør kun sidde en Sensor Ø på bussen, men op til 10 Fieldsensors (begrænset i Sensor Ø ens hukommelse). Hovedformålet er at hive sensordata ud af Fieldsensorne, derfor er SensorPoll bygget op til kun at hive måleværdier ud som default. Hvis Fieldsensortypen er ukendt, kan denne også trække ud, bemærk at der bliver skiftet tilbage til Value, derved er der mindst muligt overhead i de fremtidige afmålinger. Der er startet op på en Scan funktion, samt en automatisk tildeling af adresser til Fieldsensor. Disse er ikke blevet færdigjort, derfor heller ikke dokumenteret i nedenstående. Scan benytter sig af non-blocking read, til at teste om en enhed svarer. 75 af 122

78 Figur 3.13: SekvensDiagram af SensorPoll Funktioner void SB_Start(void) Initialisere I2C komponenten, samt indlæser dummy værdier indtil reelle værdier er klar. Returnere Void void SB_Communicate() Er funktionen der kalder ParseRead og ParseWrite, denne funktion bør kaldes i mainloopet Returnere Void uint8 SB_Read(uint8 addr, uint8 * str, uint8 len, uint8 blocking_mode) Der er to modes til denne kommando blocking og non-blocking. I blocking lader den hardwaren om al kommunikation, dog kan dette ende i deadlock. i non-blocking mode tester den om enheden eksisterer og kan kommunikeres med. Returnere Success: 1 Failure: Anything else addr Adressen der skal læses fra str Char pointer hvor dataen fra læsningen gemmes len Hvor mange chars der skal læses blocking_mode Sætter blocking mode uint8 SB_Write(uint8 addr, uint8 * str, uint8 len, uint8 blocking_mode) Se SB_Read Returnere Success: 1 Failure: Anything else addr Adressen der skal skrives til str Char pointer hvor dataen fra skrivningen hentes len Hvor mange chars der skal skrives blocking_mode Sætter blocking mode 76 af 122

79 void SB_ParseRead(void) Nulstiller readpointeren efter læsning. Returnere Void void SB_ParseWrite(void) Fieldsensor: Skifter hvilken værdi der skal returneres, hvis Sensor Øen har bedt om dette. Sensor Ø: Bruges til at verificere at Fieldsensoren har skiftet mode Returnere Void void SB_ChangeMode(uint8 mode) Fieldsensor: Skifter mode mellem Value og Type Returnere Void mode SB_REQ_TYPE, SB_REQ_VALUE void SB_RefreshData() Opdatere read bufferen med Type eller Value værdierne Returnere Void void SB_LoadValue(uint8 high, uint8 low) Bruges af Fieldsensoren til at opdatere værdien der måles Returnere Void high 0x00-0xFF Værdien har betydning efter hvilken Fieldsensor der anvendes low 0x00-0xFF Værdien har betydning efter hvilken Fieldsensor der anvendes void SB_SensorChangeMode(uint8 addr, uint8 mode) Sensor Ø: Få en Fieldsensor til at skifte mode Returnere Void addr Adressen på Fieldsensoren mode Hvilken mode der skal skiftes til void SB_SensorPoll(uint8 addr, uint8 *values, uint8 *type) Sensor Ø: Henter værdier samt type fra en Fieldsensor Returnere Success: 1 - Failure: 0 addr Adressen på Fieldsensoren values uint8 pointer hvor values gemmes i type uint8 pointer hvor typen gemmes i void SB_DebugHandle(const char ch) Kan bl.a. læse og skrive I2C direkte, læse i buffers, scanne efter enheder mm. Debug handler, se mere under DebugUart Returnere Void ch Input char Ventil Formål Formålet med denne komponent er at lave en ens tilgang til alle ventiler. Den indeholder en Pin, som kan sættes logisk høj (1) eller logisk lav(0). Pin signalet bliver routed til en udgang på psoc en, som den styrekredsen til Ventil kan aflæse og derefter ændre ventil staten. I bund og grund en simpel wrapper for en Pin, men med debug indbygget. 77 af 122

80 Funktioner void Ventil_Start(void) Funktionen bruges til at initialisere Pin komponenten, og derved sikre at ventilen er lukket Returnere Void void Ventil_SetState(uint8 state) Funktionen bruges til at sende signal til at sætte staten på Pin komponenten, staten bliver forwardet direkte til denne Returnere Void state 0: Lukket 1: Åben uint8 state Ventil_GetState(void) Funktionen bruges til at aflæse Pin ens state Returnere 0: Lukket 1: Åben void Ventil_DebugHandle(const char ch) Debug handler, se mere under DebugUart Returnere Void ch Input char void Ventil_DebugState(void) Udskriver hvilken state ventilen er i Returnere Void StubProjects Formål Der blev udviklet en del stub projekter, enten til test af komponenter eller kommunikation. Debug Tester Projekt til at teste Debug komponenten løbende og at den havde den ønskede funktionalitet Fieldsensor Dummy Projekt der kunne agere som en Fieldsensor, der blot sendte statiske værdier tilbage, blev brugt til test af sensor ø er for at sikre at ændringer ikke påvirkede kommunikationen mellem Fieldsensor og Sensor Øen. Fieldsensor Tester Projekt der blev brugt til at teste Fieldsensorer efter de blev bygget, for at teste om de gav korrekte værdier tilbage og om Fieldsensoren endte i deadlocks mm. FlowSensor Dummy Projekt til at teste og udvikle Flowsensor komponenten med udenfor Karet. phprobe Dummy Projekt til at teste og udvikle phproben komponenten med udenfor Karet. RS485 Dummy Projekt til at agere endpoint i RS485 kommunikations tests, den har få kommandoer indkodet og er til at teste selve protokollen og ikke kommandoerne. Derved kunne der testes fra andre platforme før selve Karret var færdig bygget. Blev også brugt til at udvikle RS485 komponenten. SensorBus Dummy Projekt til at agere endpoint i SensorBus kommunikations tests. Blev også brugt til at udvikle SensorBus komponenten. 78 af 122

81 Hardware Arkitektur Revision Ændret af Version Dato KSK KE KE KM KE Tabel 4.1: Revision for Hardware Arkitektur 79 af 122

82 4.1 RSConverter Analyse RS485-bussen er valgt til at kommunikere på, se hvorfor i teknologiundersøgelsen. Til dette formål er udformet et simpelt kredsløb vha. MAX3082. Det logiske 0-5V UART-signal fra PSoC 4 konverteres til et differentielt signal, som kører ud på bussen, og vice versa. Figur 4.1: RS485 converter R 1 er en pulldown-modstand der sørger for, at standard-tilstanden af kredsen står til at modtage. Når der sendes ud på bussen, kræver det en høj T X Enable. R 2 fungerer som terminering på bussen og sørger for at undgå reflektion af signalet. Størrelsen af modstanden afhænger derfor af tranmissionslinjen (bussen). Når R 2 = R bus bliver hele signalet overført. Det er samtidigt vigtigt at bussen kun termineres i starten og enden. Dvs. hvis der er koblet flere kar på KarBussen, skal de serieforbindes og den sidste samt den første have en termineringsmodstand. I guiden for RS485 kommunikation anbefales det, at man bruger 120Ω kabler og derfor termineres der med 120Ω. For at udregne det maksimale strømforbrug til videre design af PSU kigges i databladet for MAX3082. Under "Absolute Maximum Ratings"findes det, at i et 8-pin plastic DIP hus som det der anvendes, har et maksimal effektforbrug på 727mW. Udregningen af det maksimale strømforbrug bliver derfor følgende: I = P U = 727mW 5V = 145, 4mA (4.1) Realisering Kredsløbet opbygges på VERO board og der laves en testopstilling. UART-kommunikation simuleres med et 1kHz firkant-signal. Der vil blive målt følgende: 1. RS232 konverteret til RS485 og konverteret tilbage til RS RS232 konverteret til RS RS485 i begge ender af bussen. Figur 4.2: RS232 konverteret til RS485 og konverteret tilbage til RS232. Kanal 1 (orange) viser det simulerede 1kHz signal. Kanal 2 (blå) viser signalet efter det er blevet konverteret til RS485 og tilbage til RS232. Som det ses af figur 4.2 er signalet fuldstænding intakt. Dette viser samtidig at kredsløbet fungerer som det var tiltænkt. Figur 4.3: RS232 konverteret til RS485. Kanal 1 (orange) viser det simulerede 1kHz signal. Kanal 2 (blå) viser signalet efter det er blevet konverteret til RS485. Som det ses af figur 4.3 er signalet nu koncentreret omkring 0V. Den når dog ikke den fulde V pp = 5. Figur 4.4: RS485 i begge ender af bussen. Kanal 1 (orange) viser signalet efter det er blevet konverteret til RS485. Kanal 2 (blå) viser signalet efter i den anden ende af bussen. Som det ses af figur 4.4 er de 2 signaler ens og der er ikke noget tab af signalet ved transmissionen. 80 af 122

83 4.2 Ventilstyring Til styring af indløb til / afløb fra vandkaret anvendes 2 Hydraelectric Magnetventiler med tilhørende MOSFET-styringskredse. En magnetventil virker ved at det interne relæ bliver aktiveret når der påtrykkes en DC-spænding, evt. i form af et PWM-signal, hvor ved gennemstrømningen kan reguleres, når dette sker åbnes der for gennemgang i ventilen. I det interne relæ sidder en spole, og spolens viklinger medfører en ohmsk modstand. Når der påtrykkes en spænding skabes et magnetfelt omkring spolen, dette felt holder ventilen åben. Når ventilen ønskes lukket, afbrydes spændingen. Dette skaber en problematik hvor strømmen igennem spolen ikke kan ændre sig på samme hurtige måde aom spændingen. Da den fysiske forbindelse til spolen er afbrudt vil spolen selv inducere en modsatrettet spænding for at komme af med strømmen. Dette er et problem da så høje spændinger potentielt er skadeligt for tilkoblede komponenter, men som løsning implementeres en flyback diode parallelt med spolen i reverse bias-konfiguration, derved har strømmen en løbebane, og spolen forhindres i at inducere den høje spænding. Den implementerede kontrolkreds ses på figur 4.11 på side 82. I databladet er oplyst at ventilen benytter 12V, afgiver 6W, dette giver et beregnet strømforbrug på 500mA, se beregning herunder: P = 6V A V = 12V I = P V (??) = 500mA Figur 4.5: Beregning af strømforbrug i magnetventil Derudover er den interne modstand beregnet til: V = 12V I = 500mA R = V I = 24Ω Figur 4.6: Beregning af indre modstand Styringskredsen skal på baggrund af dette designes til at håndtere en strøm på 500mA, og en spænding på 12V. 81 af 122

84 4.2.1 MOSFET-styringskreds Til styringslkredsen er valgt at benytte en N-channel IRLZ44Z-MOSFET transistor i commonsource-konfiguration. Denne type transistor er logic-level kompatibel, og har spænding/strømgrænseværdier der opfylder ovenstående krav. Logic-level kompatible betyder at V GS(th) < 5V og derved kan MOSFET en, alene drives fra en MCU, her en PSoC. V GS(th) er den threshold-spænding hvor transistoren går on. Det ses af grafen på figur 4.14, at MOSFET en ved en V GS = 5V, (ved T J = 25) tillader en strøm på 100A, dette er mere end rigeligt til opgaven. Figur 4.7: Datablad: Gate to Source voltage, fra databladets (Fig. 3, s.3) Ydermere kan det være interessant at se på hvor varm transistoren bliver under operation. Herved kan det udledes om der behøves ekstern køling eks. i form af en heat-sink. Følgende værdier hentet fra databladet: Drain to Source modstand: Strøm der trækkes af af relæet: Junction-to-Ambient modstand: Max junction temp: Ambient temp: R DS = 11mΩ I = 500mA R θja = 62C/W T emp jun = 175C T emp amb = 25C Figur 4.8: Værdier hentet fra datablad Til beregningen benyttes formlen for afsat effekt: P afsat = R DS I 2 = 2.75mW Figur 4.9: Afsat effekt i MOSFET Her ses det at under operation af ventilen afgiver transistoren 2,75 mw i varme. Ydermere noteres det, at den maksimale effekt der kan afsættes uden at der behøves heat-sink er beregnet til mW. T emp max = (T emp jun T emp amb ) R θja = mW Figur 4.10: Max Temperatur uden heat-sink Da der kun afsættes 2,75mW ved operation, er der ingen grund til at implementerer en heat-sink. Design af styringskredsløb På figur 4.11, ses MOSFET-styringskredsløb, PSoC ens 0 og 1 er her simuleret ved en frekvensgenerator med tilpas lav frekvens. Figur 4.11: Styringskredsløb til magnetventil MOSFET-transistoren Transistoren implementeres i common-source-konfiguration, for at et positivt signal på GATE åbner transistoren, og da den er en logic level model, stammer signalet direkte fra PSoCen. 82 af 122

85 Ground-modstanden Der implementeres en modstand R 1 fra Gate til GND for at transistoren forbliver lukket (Gate trækkes til GND) hvis indgangssignalet til Gate afbrydes, dermed undgås det at GATE-signalet flyver og transistoren potentielt kan stå og switche on/off hvis GATE afbrydes. R 1 implementeres med en 10kΩs modstand, og virker som en standard pull down resistor. Flyback-diode Derudover implementere der, som førnævnt en flyback diode, for at give strømmen en løbebane når relæet afbrydes. På denne måde indgås den høje V peak som spolen eller ville inducere, når der lukkes af for strømmen ændres monumentalt. Typen af diode, vælges ud fra følgende parametre: Hvilken strøm vil løbe i dioden Hvilken Peak-spænding vil være over dioden Diode-strøm Strømmen der vil løbe i dioden er givet fra databladet til 3A, derved skal den valgte diode kunne klare at lede max 3A, dette sker i forhold til spolens tidskonstant, τ, hvor efter strømmen vil falde i løbet af 5τ. Peak-spænding Peak-spændingen fra spolen er realiseret i laboratoriet til 60V. På baggrund af disse 2 værdier, vælges 1N4007, denne diode er, ifølge databladet i stand til at klare 1kVp, og 30A. Dette er tilstrækkeligt i denne situation. 83 af 122

86 4.3 Vandpumpe Til styring af dosering fra karret, anvendes en 12V inline pumpe med tilhørende MOSFETstyringskreds. Vandpumpen virker ved at der påtrykkes en DC-middelspænding i form af et PWMsignal, herved kan styrken reguleres ved at justere dutycycle på PWM-signalet. Den implementerede styringskreds ses på figur 4.18 på side 85, her forklares kredsløbet yderligere. I databladet er opgivet at pumpen benytter 12V, og trækker 3A, dette giver en beregnet afsat effekt på 36W, se beregning herunder: I = 3A V = 12V P = I V = 36W Derudover er den interne modstand beregnet til: Figur 4.12: Beregning af effekt i vandpumpen V = 12V I = 3A R = V I = 4Ω Figur 4.13: Beregning af indre modstand Styringskredsen skal på baggrund af disse data designes til at håndtere en strøm på 3A, og en spænding på 12V. 84 af 122

87 4.3.1 MOSFET-styringskreds Til kontrolkredsen er valgt at benytte en N-channel IRLZ44Z-MOSFET transistor i commonsource-konfiguration. Denne type transistor er logic-level kompatibel, og har spænding/strømgrænseværdier der opfylder kravene ovenfor. Logic-level kompatible betyder at V GS(th) < 5V og derved kan MOSFET en, alene drives fra en MCU, her en PSoC. V GS(th) er den threshold-spænding hvor transistoren går on. Det ses af grafen på figur 4.14 at MOSFET en ved en V GS = 5V, (ved T J = 25) tillader en strøm på 100A, dette er mere end rigeligt til opgaven. Figur 4.14: Datablad: Gate to Source voltage, fra databladets (Fig. 3, s.3) Ydermere kan det være interessant at se på hvor varm transistoren bliver under operation. Herved kan det udledes om der behøves ekstern køling eks. i form af en heat-sink. Følgende værdier hentet fra databladet: Drain to Source modstand: Strøm der trækkes af af relæet: Junction-to-Ambient modstand: Max junction temp: Ambient temp: R DS = 11mΩ I = 3A R θja = 62C/W T emp jun = 175C T emp amb = 25C Figur 4.15: Værdier hentet fra datablad Til beregningen benyttes formlen for afsat effekt: P afsat = R DS I 2 = 99mW Figur 4.16: Afsat effekt i MOSFET Her ses det at under operation af pumpen afgiver transistoren 99 mw i varme. Ydermere noteres det, at den maksimale effekt der kan afsættes uden at der behøves heat-sink er mW. T emp max = (T emp jun T emp amb ) R θja = mW Figur 4.17: Max Temperatur uden heat-sink Da der kun afsættes 99mW ved operation, er der ingen grund til at implementerer en heat-sink. Design af styringskredsløb På figur 4.18, ses MOSFET-styringskredsløb, PSoC ens 0 og 1 er her simuleret ved en frekvensgenerator med tilpas lav frekvens. Figur 4.18: Styringskredsløb til vandpumpe MOSFET-transistoren Transistoren implementeres i common-source-konfiguration, for at et positivt signal på GATE til åbner transistoren, og da den er en logic level model, stammer signalet direkte fra PSoC en. 85 af 122

88 Ground-modstanden Der implementeres en modstand R 1 fra Gate til GND for at transistoren forbliver lukket (Gate trækkes til GND) hvis indgangssignalet til Gate afbrydes, dermed undgås det at GATE-signalet flyver og transistoren potentielt kan stå og switche on/off hvis GATE afbrydes. R 1 implementeres med en 10kΩs modstand, og virker som en standard pull down resistor. Flyback-diode Derudover implementeres der, som førnævnt en flyback diode, for at give strømmen en løbebane når relæet afbrydes. På denne måde indgås den høje V p eak som spolen eller ville inducere, når der lukkes af for strømmen ændres monumentalt. Typen af diode, vælges ud fra følgende parametre: Hvilken strøm vil løbe i dioden Hvilken Peak-spænding vil være over dioden Diode-strøm Strømmen der vil løbe i dioden er givet fra databladet til 3A, derved skal den valgte diode kunne klare at lede max 3A, dette sker i forhold til spolens tidskonstant, τ, hvor efter strømmen vil falde i løbet af 5τ. Peak-spænding Peak-spændingen fra spolen er realiseret i laboratoriet til 60V. På baggrund af disse 2 værdier, vælges 1N4007, denne diode er, ifølge databladet i stand til at klare 1kVp, og 30A. Dette er tilstrækkeligt i denne situation. 86 af 122

89 4.4 Flowsensor Til kontrol at vandflow til systemet, er valgt at benytte en flow sensor af typen YF S201. Dette er en Hall Effect sensor. En Hall Effekt sensor benytter ændringer i et nær-magnetfelt til at ændre sensorens outputspænding, dette genererer et PWM-output der identificerer den mængde vand der flyder igennem sensoren, og kan omregnes til mængde vand pr. enhed. Flowraten udregnes efter formlen: P ulsef requency[hz] 7.5 = f lowrate[l/min] Figur 4.19: Beregning af flowrate Ved denne udregning svarer eks. 16Hz = 2L/min, og65.5hz = 8L/min. Denne måde at beregne flowet på giver i midlertidig problemer med implementering på KarP- SoC en, da dette ville kræve at programmet "lagde beslag"på processoren for at udregne flowet over en given tid. Da KarPSoC-programmet har til formål at køre adskillige opgaver vedrørende Karret, er det ganske enkelt ikke en mulighed at følge denne implementering. En alternativ implementering blev valgt for at imødekommende denne problematik. Ved praktisk at måle den mængde vand pr. antal PWM-cycle der flyder igennem sensoren, er det muligt at opstille en model for hvor meget vand der flyder til karret baseret på det antal PWM-cycles der modtages af programmet. Flowsensoren tilkobles via 3 medfølgende pins. Sort: GN D( ) Gul: P W Moutput Red: V CC(+5V ) Figur 4.20: Pinoversigt Output fra sensoren følger CMOS-standarden, det vil sige at den kan kobles direkte til en given inputpin på PSoC en. Output-raten gives som udgangspunkt med en målepræcision på +/- 10 Under operation sinker sensoren 15mA, derved kan den kan trække sin forsyning direkte fra PSoC en Counter-kredsløb For at aflaste Kar-PSoC en der håndtere flowsensoren, designes et eksternt counter-kredsløb. Herved minimeres det antal interrupts der trækkes på PSoC-programmet. Kredsløbet designes ved brug af en 4-bit counter (74HC393) samt en 2-input AND-gate (74HC08). Kredsløbet er koblet således at PWM-output fra flowsensoren kobles til clock-input 1 (CP1) på counter en. Outputs fra denne (Q1, Q3) kobles til AND gaten. Kredsløbet ses på 4.21 herunder. Figur 4.21: Counter-kredsløb Koblet på denne måde, går gaten "høj"når der når er talt 10 op på counteren. Et logisk høj fra gaten, trigger et INT i PSoC en. Som det første i ISR rutinen nulstilles counter eren via et logisk høj på inputtet MR1. Dette gøres for at forhindre at den dobbelttrigger når counteren efterfølgende rammer 14 counts. Info er hentet fra datasheet, 4.22 Figur 4.22: 74HC393 logic Ved praktiske målinger forventes en P W M max = 40 50Hz. Det giver systemet som maximum 80ms til at reset e counteren inden en potentiel fejltriggering. 87 af 122

90 Automatisk Vandingssystem 1 = P eriodetid[ms] f rekvens[hz] 1 = 20[ms] 50[Hz] 4[clockcycles] 20[ms] = 80[ms] Figur 4.23: Beregning af trigger Simulering af Counter-timing ses på 4.24 herunder. Figur 4.24: Counter-Timingsdiagram Denne opsætning med ekstern counter, kan kun lade sig gøre fordi der ikke behøves en ultra præcis måling af vandflowet. Ved at lave INT hver 10 gang, midles der over vandflowet. Dokumentation til flowsensor-softwarestyring findes under "Software-afsnittet". 4.5 Design af jordfugt sensoren Selve jordfugt sensoren skal måle jordfugten i jorden således systemet kan vide hvornår en plante skal have vand. Da vi ønsker at sensoren skal kommunikere over I2C igennem vores egen protokol, ønsker vi samtidig at levere en speciallavet jordfugt sensor med til systemet. Dette kræver at vi selv designer den Kapacitiv måling Den første ide til at måle jordfugten gik ud på at måle den kapacitivt. Efter nogle hurtige søgninger på Google blev der hurtigt fundet frem til følgende dokument 1.2 I pdf filen beskriver to japanske studerende hvordan de med en kapasitet er i stand til at måle den relative luftfugtig. Dette virker ved at når luftfugtigheden ændre sig kan man via to elektrisk ledende plader måle forskellen i luften ved at koble dem som en pladekondensator med luften som dielektrikum. r ændre sig således med luftfugtigheden. Tanken var nu at det samme måtte gøre sig gældende for jorden og komponenten i figur 4.25 blev lavet: Figur 4.25: Opbygning af den kapacitive føler Til den hjemmebyggede pladekondensator blev der også opbygget en oscillator som varierede sin udgangsfrekvens afhængig af kondensatorens kapacitet. Dette kredsløb blev bygget med en LM FiXme 88 af 122 Note: tilføjes til literatur liste

91 Automatisk Vandingssystem Da pladekondensatoren var en kopi fra det før omtalte pdf dokument kom det ikke som en overraskelse at oscillatoren ændrede sin frekvens med næsten 50% når pladekondensatoren blev holdt over dampen fra en kop kogende vand. Hvad der dog ikke var taget højde for var kapaciteten i tilledningerne, som ændrede sig hver gang pladekondensatoren blev flyttet. Det viste sig også at når pladekondensatoren blev trykket ned i jord stoppede oscillatoren med at oscillere. Det var hellere ikke muligt at måle kapaciteten med et LCR-meter og ideen blev derfor opgivet Resistiv måling Næste step var at finde en ny metode til at måle fugtigheden i jorden og denne opstod ved besøg på denne side3. 4 På siden bliver det beskrevet hvordan man kan måle fugtigheden i jorden rent resistivt. Desværre bliver der ikke givet nogle værdier på jordens ledeevne i forhold til fugtigheden og var derfor op til en selv at finde den. Ved en størrer søgning blev der fundet frem til oversigten i figur ,6 HardwareArkitektur/Sensore/Jordfugt_billeder/soil_conductivi Figur 4.26: Oversigt over ledeevnen for nogle forskelige grudstoffer. Det ses her at Fx. Sandsten varierer fra en ledeevne på 0.5 til Siemens/m. Dette er et meget stort spekter og det vil derfor være umuligt at sige noget om ledeevnen i vores jord uden at have målt den. For at kunne gøre dette krævede det at der blev lavet et jordspyd der kunne bruges til at lave målingen med. I figur 4.26 ses jordspyddet sænket ned i vand fra vandhanen, for at måle vandets ledeevne. Da jordspyddet er isoleret delvist med krympeflex, således at der er et fast areal på begge spyd der er i kontakt med vand vil det være muligt at beregne ledeevnen for vandet. Figur 4.27: Multimeteret måler strømmen igennem jordspyddet ved en spænding på 5V (2.92mA 3 4 FiXme Note: tilføjes til literatur liste 6 FiXme Note: tilføjes til litteratur liste 5 Kilde: 89 af 122

92 Figur 4.28: Elektrolyse ved 5V På figur 4.28 ses at der desværre også forekommer elektrolyse ved denne målemetode. Der ses at katoden tiltrækker hydrogen atomer som sætter sig som luftbobler på kobberet. Ved en spænding på 30V var elektrolysen så kraftigt at kobberlaget på anoden ville være væk efter få minutter. Derfor konstanters det også at ved implementering af denne type måling må der kun gå strøm i jordspyddet i det øjeblik målingen bliver foretaget, for at undgå unødvendig slid. Den mest interessante opdagelse blev gjort ved målingen af jorden. Her var teorien at ledeevnen ville stige lineært med fugtigheden. Det viste sig at være forkert og det lignede i stedet et fjerdegrads stigene polynomium, da måleresultaterne blev tegnet ind i Graph. Forinden havde det været et stort problem at finde ud af hvilken skala der skulle bruges til at måle fugtigheden, da der findes mange definitioner af den. Der blev fundet frem til at fugtigheden i tørvægt var den mest brugbare for geoteknikere og der var derfor den skala der blev valgt. Skalaen siger at hvis der er 100 gram ovntørret jord og 40 gram vand indeholder jorden 40% fugtighed. I formlen står m for masse. µ = m wet m dry m dry I figur 4.29 og 4.30 ses hvordan målingerne af jordfugtigheden blev foretaget. 90 af 122

93 Automatisk Vandingssystem Figur 4.29: Vejning af 100 gram af ovntørret jord. Vægten er nulstillet med tomt målebægre Figur 4.30: Her ses blandingsforholdet hvor strømmen i jordspyddet igen er faldende I figur 4.30 blev der lavet 7 målinger ved forskellig fugtighed. Ved en fugtighed på 25.6% begyndte strømmen i jordspyddet at falde igen. Dette bliver et problem i det samlede system da systemet ikke kan vide om den måler i en overvandet plante. figur Viser regression af målepunkterne. 91 af 122

94 Figur 4.31: Målinger indtegnet i Graph. Den yderste måling til højre (25,6.2) er det før omtalte "knæk punkt"hvor vi ikke længere ved om vi måler rigtigt. punktet er ikke medtaget i regressionen. I figur 4.31 aflæsete vi regressionen af graften til at være: f(x) = x 3.77 Funktionen er udtrykket for strømmen i jordspyddet ved en given fugtighed. Dette kan med fordel omskrives til modstand ved brug af ohms lov. Den påtrykte spænding fra spændingsgeneratoren var 5V 5V f(x) = x A Denne funktion kan bruges i en mikroprocessor med en analog til digital konverter, således strømmen kan omregnes til jordfugtigheden i procent.på figur 4.32 ses grafen over funktionen. HardwareArkitektur/Sensore/Jordfugt_billeder/jordspyd_modsta Figur 4.32: Plot over modstanden i jordspyddet ved en given fugtighed.grafen er et udsnit fra 10% til 22% for at gøre den mere overskuelig Test og opbygning Næste punkt var at finde en metode til at måle modstanden i spyddet. Dette kunne gøres ved at koble jordspyddet som en spændingsdeler med en MOSFET transistor til at lede strømmen når der måles. På figur 4.33 ses diagrammet over forklaringen. HardwareArkitektur/Sensore/Jordfugt_billeder/jordspyd.JPG Figur 4.33: Diagram over jordspyddet 92 af 122

95 Der opstilles følgende funktion for kredsløbet: V out R1 Rspyd = V out V cc Ved at isolere x ud fra funktionen på figur 4.32 kan vi få et udtryk for fugtigheden hvis vi kender modstanden fugt = Rspyd Disse to formler blev brugt i PSoC creator til at programmere en CY8C4245AXI-483 med en differentiel koblet analog til digital konverter. På figur 4.34 ses topdesignet i PSoC creator. Figur 4.34: Topdesign i PSoC creator I PSoC creator laves der en funktion der udlæser værdien fra ADC en og omregner den til fugtighed. På et fumleboard opbygges der et kredsløb med et 4.7k potientometer og en 100ohms modstand koblet serielt. I fugur 4.35 ses debugging af første opbygning af funktionen. HardwareArkitektur/Sensore/Jordfugt_billeder/debug100ohm.jpg Figur 4.35: Debugging i PSoC creator ved Rspyd=100Ω Aflæser vi 100Ω på figur 4.32 kan vi se at en fugtighed på 33 stemmer fint overens med det forventede og funktion antages efter flere ligende resultater at virke. Efterfølgende er funktionen lavet om således den også kommunikerer med sensor ø en. Den færdige kode fildes i bilagende. Efterfølgende blev der tegnet et diagram i DesignSpark og der blev i samme program tegnet et printlayout. Dette ses på figur HardwareArkitektur/Sensore/Jordfugt_billeder/Print_2.jpg Figur 4.36: Printplade set fra bunden Det ses på printet at der er blevet lavet nogle modifikationer. Dette skyldes at der var glemt nogle pull op modstande, samt at DesignSpark havde valgt at ligge stel sammen med forsyningen. Diagrammet blev derfor tegnet om til følgende i figur af 122

96 Figur 4.37: Diagram over jordfugtmåleren Det ses på diagrammet i figur 4.37 at der er trukket stik ud til at programmere PSoC en. Ved at forbinde disse til vores Pioneer kit kan vi programmere PSoC en igennem en PSoC 5 og på den måde undgå at skulle købe en programmeringsenhed. Det viste sig dog at der var flere problemer da det nye print blev lavet. Vi kunne sagens kommunikere med PSoC en igennem programmerings stikket. Men det var umuligt at få nogen funktionalitet ud af den. Der blev brugt dage på at finde ud af hvad der kunne være galt, uden resultat. Det blev derfor besluttet at lave et shield til pioneer kittet. 94 af 122

97 Automatisk Vandingssystem Figur 4.38: Det nye print set fra oven Figur 4.39: Shield. Potientiometeret emulerer proben Præcision og afvigelse Vi kørte en test med det nye shield med jord taget fra blomsterbedet, foran Edison bygningen, ved ingeniørhøjskolen i Århus. Da vi ikke kendte ledeevnen i jorden eller fugtigheden målte vi først jorden da den var tør. Her målte vi fugtigheden til 3,5%. Efterfølgende tilsatte vi 10% vand og brugte denne blanding til at udregnede afvigelsen. Afvigelsen fik vi til 1,58% med 95% konfidens. 95 af 122

98 Automatisk Vandingssystem Figur 4.40: Test måling Figur 4.41: Udregning af afvigelsen Selve præcisionen af proben er 12 bit og 5V. Dette giver en opløsning på 1.2mV. Omregnet til opløsning af procentenheden bliver det Fremtidigt arbejde Det bedste fremtidige arbejde vil være at lave målingen kapacitivt, dette vil dog kræve en del arbejde. Skal der laves forbedringer på den resistive måling, skal der findes ud af hvorfor PSoC en ikke 96 af 122

99 ville virke på print samt finde et materiale som ikke så let forgår som kobber og lave jordspyddet af det. 4.6 Design af ph-proben Kravet til ph-proben er at den skal virke omgående når der hældes gødning i vandet. Dette vil sige at den skal omgående kunne fortælle systemet når der er den korrekte ph-værdi, når der doseres gødning. Efter nogle søgninger på Google blev der fundet frem til at en glasprobe var det meste effektive, men samtidig og så det billigste. Figur 4.42: Tegning af en glasprobe. kilde: Wikipedia ph værdi er en måde at angive hvor mange hydrogen-ioner der er i væsken. Definitionen af en syre er at den modtager hydrogen-ionerne og definitionen af en base er at den afgiver hydrogen-ioner. Vand kan både optræde som en syre og en base, dette skyldes at vand vil modtage hydrogenionerne når der hældes en base i, men det vil afgive hydrogen-ioner når der hældes en syre i. På figur 4.43 ses at har vi mol/l af H+ ioner har vi en ph-værdi på 14. Figur 4.43: Graf over ph-værdi. kilde: Wikipedia 97 af 122

100 Måden glasproben virker på at at den internt er fyldt op med saltsyre HCL. I figur 4.42 punkt 3 er koncentrationen mol/l. I punkt 6 er koncentrationen 0.1 mol/l. På denne måde bliver der genereret en spænding når der er et overskud eller underskud af H+ ioner på ydersiden af punkt 1. H+ ionerne vil tiltrække CL- ionerne som ses i punkt 4. Punkt 2 og 5 er elektroderne som vi måler spændingen over. I figur 4.44 ses outputtet fra proben i forhold til ph-værdien i den væske den er i. Figur 4.44: Outputtet fra ph-proben For at få en præcis måling af væsken kræver det at der laves en kaliberering af ph-proben en gang hver måned, da proben vil drifte med tiden. Det ses også på figur 4.44 at en ny probe vil give en højrer spænding en en ældre. Dette betyder at den skal kalibreres en gang i mellem. Til kalibrering af proben skal der bruges noget buffervæske. En buffervæske er en væske med en præcis ph-værdi således at proben kan indstilles efter det. Måden vi vil gøre det på er ved at have en buffer med ph-værdi 7. Når systemet startes op skal proben kalibreres og der vil være en rød LED på karet der lyser. For at kalibrere proben sættes proben ned i buffervæsken og efter ca 30 sekunder trykkes der på en knap som sidder på karet og karet indlæser herved værdien til kalibrering. På figur 4.45 ses at buffervæsken varierer sin ph-værdi ved temperaturforskelle. Dette vil også være gældende for andre væsker, dette er ikke noget vi tager højde for i vores målinger, men det burde blive implementeret i et salgsklart system. HardwareArkitektur/Sensore/pH_probe_billeder/buffervaeske. Figur 4.45: Temperaturens indflydelse på ph-værdien i buffervæsken Nedenfor ses koden til ph-proben. Koden er klar til at blive implementeret i kar-softwaren. Men for overskuelighedens skyld vælges det at vise den individuelle kode her. Der er oprettet en funktion getphval() som returnerer ph-værdien. 1 #include <project.h> 2 3 #define ph7default #define ph4default float ph7; 6 float ph4; 7 float phval; 8 int16 adcresult; 9 int16 adcresultmv; // Omregner til ph-vardi. ph4 og ph7 er parametrene som bruges til at kalibrere proben 12 float mvtoph(float mv, float ph4, float ph7){ 13 return ((ph7-mv)/((ph4-ph7)/3)+7); 14 } 15 float getphval(){ 16 while(adc_isendconversion(adc_wait_for_result)== 0){}; adcresult=adc_getresult16(0); 19 adcresultmv = ADC_CountsTo_mVolts(0,adcResult); return mvtoph(adcresultmv,ph4,ph7); 22 } CY_ISR(CALIBRATE) 25 { 26 int8 status; 27 while(cali_read() == 1){ // vent pa at knappen har varet nede i 3 sekunder 98 af 122

101 28 CyDelay(3000); 29 status = 1; 30 break; 31 } 32 if(status == 1){ 33 getphval(); 34 ph7 = adcresultmv; 35 ph4 = ph4default + (ph7 - ph7default); // ph4default + korrektion 36 RED_LED_Write(0); 37 GREEN_LED_Write(1); 38 } 39 } int main() 42 { 43 ph7 = ph7default; // Default vardi 44 ph4 = ph4default; // Default vardi 45 Opamp_1_Start(); 46 ADC_Start(); 47 ADC_StartConvert(); 48 Calibrate_StartEx(CALIBRATE); 49 CyGlobalIntEnable; 50 RED_LED_Write(1); 51 GREEN_LED_Write(0); while(1){ 54 phval = getphval(); 55 } 56 return 0; 57 } /* [] END OF FILE */ Støj For at få en præcis måling vælger vi at analysere proben for dens støj. Dette gøres ved at lave et nyt PSoC projekt. I Mixed Signal Electronic s har vi arbejdet med dette og vi kopierer derfor et kredsløb derfra. Det skal dog siges at projektet er til PSoC5 og her i Projektet bruger vi en PSoC4. PSoC5 har den fordel at den har en DeltaSigma ADC som er bedre til at sample lavfrekvente signaler. I PSoC4 er den eneste mulighed en SAR converter. På figur 4.46 ses topdesignet i PSoC creator. Figur 4.46: Topdesign i PSoC creator over kredsløbet til støjmåling For at kunne beregne støjen fra proben skal vi måle dens indre modstang og derefter bruge Johnson Nyquist formel for termisk støj. V n = 4 K T R f For at måle den indre modstand i proben kobler vi den med en buffer i PSoC4. Vi prøvede at måle selve indgangsimpedansen i bufferen da den ikke var opgivet i databladet. Dette var desværre ikke muligt da støj på indgangen fik den til at klippe på udgangen. Vi antager derfor at indgangsimpedansen er uendelig og kan for at måle udgangsspændingen ubelastet, opstille kredsløbet i figur af 122

102 Figur 4.47: Non-inverting buffer Der måltes 178mV på udgangen af bufferen med proben sat ned i en buffervæske med en phværdi på 4. Derefter blev proben sat direkte i oscilloskopet som har en indgangsimpedans på 1MΩ. Nedenstående kredsløb opstilles for denne måling figur Figur 4.48: Diagram over den indre modstand Vi udregner med ohms lov den indre modstand til at være 9.5MΩ. Vi kan derfor udregne støjbidraget til at være V n = = 3.9uV Selve bufferen har også et støjstrøms bidrag som vil resultere i en støjspænding over modstanden i proben. Vi har i MSE øvelse 5 arbejdet med disse støjstrømme og kan pga. viden derfra antage at bufferen bidrager med 5pA i støjstrøm. I PSoC bruger vi et digitalt filter på 100Hz. Vi ville gerne have kørt det ned til 1Hz, men det mindste vi kunne implementere var 100Hz. Støj fra bufferen: Støj fra ADC en: V n = I rms R i f = 5pA 9.5MΩ 100 = 475uV V n = 1.3uV 100 = 13uV V n = 10uV 100 = 100uV For at addere støjbidragene adderer vi dem kvadratisk da vores værdier er RMS støj: V ntot = 3.9uV uV uV uV 2 = 485uV Det ses at det største og mest betydende støjbidrag er støjstrømmen fra bufferen. 100 af 122

103 Måling af støj For at måle støjen åbner vi teraterm og udlæser værdien. I projektet er der lavet funktioner til at skrive støjværdierne ud. For at måle den samlede støj sættes proben ned i en buffervæske med ph-værdi = 4. På figur 4.49 ses en måling af den samlede støj på ca 4.8mV. Figur 4.49: Udlæsning på teraterm Figur 4.50: Måling fra DAC en på scopet Responstid For at måle responstiden, sættes proben i en buffer 7 og derefter direkte over i en buffer 4. Da H+ ionerne stadig vil sidde på proben når den trækkes op af buffer 7, sker der først en reaktion når den kommer ned i buffer 4. Denne respons ses på figur Her aflæses responstiden til 1.4 sekunder. 101 af 122

104 Figur 4.51: Responstiden fra proben Probens præcision Selve proben vil have en afvigelse. Denne afvigelse tages der tildels højde for ved kalibreringen, men dette er kun den systematiske fejl der bliver reguleret ind. Der vil også være et antal tilfældige fejl, som vil være umulige at justere ind. For at få et overblik over fejlprocenten laver vi 10 målinger efter kalibrering af buffer 7. Her sætter vi proben ned i en kop vand, for derefter at sætte den ned i ph-bufferen igen. Vi venter i 2 minutter og aflæser derefter i debuggin mode hvad ph-værdien er. Målingerne skrives ind i et excel-regneark således vi kan udregne standardafvigelsen ved en konfidens på 95. Det skal dog siges at dette er en meget simplificeret metode, da der her ikke taget højde for temperatur forskelle. Der laves også kun 10 målinger ved en bestemt ph-værdi. Der burde laves målinger over hele aksen, for at dække usikkerheden helt ind. 102 af 122

105 Figur 4.52: Probens præcision Det ses at vi med 95% sikkerhed kan sige at den målte værdi ligger inden for +-0, i ph-værdi, men som nævnt tidligere er dette ikke en endelig præcision. Fremtidigt arbejde Vi så i denne del at vores beregnede støj var ca en faktor 10 større ved realiseringen end beregningerne. Dette kan skyldes at der er støj i tilledningerne da vi arbejder med ekstremt høje impedanser. Vi kan hermed konkludere at ved meget høje impedanser bliver ens udstyr meget støjfølsomt og det er derfor vigtigt at tage det med i beregningerne når der udlægges print, samt ved beslutning om hvilken terminering der skal benyttes. Fremtidigt arbejde kan være at lave kalibreringsfunktionen således den selv giver besked, når der er gået en måned, om at det er tid til kalibrering. 103 af 122

106 4.7 Shields Kar-shield Til at styre interaktion med karret implementeres følgende eksterne kredsløb, der alle køres fra karpsoc en: Indløbsventil Afløbsventil Doseringspumpe RS-konverter til KarBus RS-konverter til ØBus Flowsensor ph-probe Det er valgt at benytte Shield-teknologi, så alle kredsløbene implementeres på samme print, som er kompatibel med PSoC4 pinlayout på Pioneerkittet. På denne måde kan det færdige print sættes direkte på Pioneerkittet, og alle pinconnections er dermed sikret internt de 2 boards imellem. Det er valgt at benytte PCB-layout programmet Eagle. Her benyttes pre-defineres biblioteker med komponenter til at opbygge de ønskede kredsløb og udlægge printbaner. Oprettelse af egne komponenter Dog er det ikke alle komponenter der kan findes, derfor kan det være nødvendig at oprette sige egne ud fra de ønskede komponenters datablade. For at kunne implementere det eksterne counterkredsløb på shield et, er det nødvendigt at oprette en custom model af 74HC393-counteren, samt 74HZ08-gaten. Dette skyldes at på de eksisterende modeller af disse moduler, er GND internt rout ed, og således tænkt benyttet i forbindelse med et internt stelplan der benyttes på mange print. Men da der i vores tilfælde ønskes at kunne connecte GND fysisk til én af PSoC ens GND-pins, skal dette kunne routes manuelt. I Eagle oprettes der et brugerbibliotek, og deri en custommodel af modulerne med igangspunkt i databladene. (herunder ses oprettelse af HC393) Først udlægges pins på IC en, se fig.4.53 på s. 104 Figur 4.53: Screenshot: Oprettelse af egne komponenter i Eagle Her hentes værdier fra databladet. Derudover skal der oprettes et footprint til modellen så denne kan pleceres på printet. Her hentes Package outline-specs fra databladet. Da begge IC er følger standard package mål, er afstanden imellem de 2 rækker 0.3 inches, og afstanden imellem hvert ben er 0.1 inches. Målene vælges i inches da Eagle benytter inches som standard. Værdierne ses dokumenteret herunder, fig.4.54 Figur 4.54: Screenshot: Package Outline fra databladets Fig.13, s-14 Disse værdier benyttes til at skabe følgende footprint, og dette mappes til pins fra schematic. Figur 4.55: Screenshot: Mapping af pins Det samme foretages for AND-gate IC en. Herefter kan modellerne indsættes på Kar-shield et og herefter kan GND frit routes, som det ses på det færdige print, fig.4.56, s af 122

107 Figur 4.56: Screenshot: Det færdige KarShield 7 7 FiXme Note: Siden med KarShield-diagram skal være A3 105 af 122

108 4.7.2 Ø-shield På samme måde som karshield oprettes også et shield til sensor Ø en. Dette shield indeholder følgende komponenter: Doseringsventil RS-konverter til ØBus I2C Kommunikation til Jordfugt sensor Her implementeres doseringsventilen, der kontrollere om dosering til gromediet er muligt. Derudover findes RS-konverter til Ø-bussen. Sidst findes I2C kommuniktation med jordfugtsensor- PSoC en. Shield et monteres på Ø-PSoC en. Det færdige print ses på fig.4.57, s af 122

109 Figur 4.57: Screenshot: Det færdige KarShield PiShield Ligeledes oprettes der et shield til Rasparry Pi en. Dette shield indeholder følgende komponenter: RS-konverter til karbus Printlayout På baggrund at disse schematics designes de 3 boards og deres printbaner lægges ud. Her tages der hensyn til følgende: Antal ampere der løber i banen Hvilken type signal der løber i banen Kritiske afstande i layoutet Standard tykkelsen af en printbane (for op til 600mA) er mm, til alle ventiler løber 500mA. Printbanen fra forsyning til pumpen, trækker dog 3A max, derfor vælges banetykkelsen her til mm. Derudover løber et PWM-kontrolsignal til pumpen på 3,5kHz, dette skaber en del støj, hvorfor denne bane bør isoleres så meget som muligt fra specielt ventilerne. Derudover bør banerne til kommunikationsbusserne ligeledes isoleres, da disse indeholder rette flanker og dermed skaber en del støj. 8 FiXme Note: Siden med OeShield-diagram skal være A3 107 af 122

110 4.8 PSU Figur 4.58: Strømforsyningen Analyse For at få en idé om det maksimale forbrug, vil der blive kigget på den absolut maksimale strøm for hver del. Der forekommer følgende behov for systemet (12VDC): Pumpen PWM styres ved 12VDC. Ved 100% positiv duty cycle vil den trække 3A. Ventilerne forsynes med 12VDC. De vil hver især maksimalt trække 0,5A pr. styk. Nu er det værd at kigge på, hvornår den største belastning af strømforsyningen forekommer. Ud fra de specificerede usecases, er den maksimale belastning 1 pumpe og 1 ventil på samme tid. Dette sker f.eks. ved "Manuel Vanding". Ved et større system med flere sensor-øer vil kravet selvfølgelig være større. Resten af systemet er forsynet med 5VDC. Der er følgende behov: Central Control. Består af en Raspberry Pi 2. Fra databladet udledes, at den trækker imellem 0,6-2,5A. Grunden til det store strømforbrug er, at der sidder 4 USB-stik på som hver kan trække op til 500mA. Da vi ikke udnytter dette, kan der regnes med maksimalt 0,6A. Flowmåler. Bruger ca. 15mA. Tages ikke med i udregningen grundet det lille forbrug. Kar- og Ø-controller. Består af en PSoC som normaltvis forsynes via. USB, altså maksimalt 0,5A pr. styk. Prototypen består af 3 PSoCs, derfor regnes der med 1,5A. RSConverter. Forbruget er udregnet til 150mA. Prototypen består af 4, altså 0,6A. Specifikationer for 12VDC- og 5VDC-forsyningen er nu givet. Et bud på et samlet forbrug vil være: I 5V = 0, 6A + 1, 5A + 0, 6A = 2, 7A (4.2) Kredsløbene er vist herunder: I 12V = 3A + 0, 5A = 3, 5A (4.3) Figur 4.59: 5V strømforsynings diagram Figur 4.60: 12V strømforsynings diagram Begge reguleringskredsløb opbygges efter samme princip. Fælles for de 2 er: 230VAC-1A sikring 230VAC-2x12VAC transformer Herefter består hvert kredsløb af: Diodebro: D6, D7, D8, D9 Kapacitet: C1, C5 Afkoblingskondensatorer: C2, C4, C6 Referencespænding: R5, D5 Fejlforstærker: U4, R1, R3, C3 108 af 122

111 Spændsføler på udgangen: R2, R4 FET til regulering: Q1 Opstartsmodstand: R6 Spændingen fra el-nettet transformeres fra 230VAC til 12VAC. Herefter dobbelt-ensrettes det: Figur 4.61: Ensrettet spænding f 1 (t) er det ensrettede signal, hvor f 2 (t) er det oprindelige signal fra elnettet. Der vil derfor nu forekomme en 12VAC 100Hz spænding. Denne spænding lader C1 op og C1 vil derefter aflade når spændingen falder. Dette glatter spændingen ud og resultat vil være tæt på et DC signal. Jo mere strøm der trækkes ud af denne kobling, jo mere kapacitet er der brug for. AC-spændingen er regnet i RMS, derfor kræver det en lille omregning til peak-peak spænding og dermed VDC: V DC = V AC 2 = 16, 92V (4.4) Der vil nu ligge en stabil DC-spænding. Nu er spændingen ensrettet og udglattet. For at give 5VDC og 12VDC kræves det at spændingen reguleres. For at kunne regulere spændingen, kræves et referencepunkt. Dette punkt er skabt ved R5 og D5. Zenerdioden sørger for en præcis spænding i punktet, 6,2V eller 2,4V. Næste del er en fejlforstærker der kigger på udgangsspændingen i forhold til referencepunktet. Til dette anvendes en operationsforstærker. Minus-indgangen forbindes igennem R3 til referencepunktet. Plus-indgangen forbindes til spændingsdeleren som føler på udgangen. R1 og C3 bestemmer sammen med R3 forstærkningen. En ligning kan opstilles for forstærkningen: A = 1 + R π f C 3 = 1 + 1kΩ + 1 R 3 10kΩ 2 π f 1nF (4.5) Ved at indføre C3 opnåes en frekvensafhængig forstærkning. Dette gøres for at undgå at højfrekvent støj kan forstyrre reguleringen. For at give et eksempel af forstærkningen, udregnes der 5 eksempler med hhv. DC (0Hz), 1kHz, 10kHz, 100kHz og f =. Da forstærkningen i en operationsforstærker selvfølgelig ikke er uendelig, vil den være lig med A OL (se billedet fra databladet for LF356 herunder). Figur 4.62: Open loop karakteristik for LF356 A OL = (4.6) A DC = 1 + 1kΩ π 0 1nF 10kΩ = A OL (4.7) A 1kHz = 1 + 1kΩ π 1kHz 1nF 10kΩ = 17, 015 (4.8) A 10kHz = 1 + 1kΩ π 10kHz 1nF 10kΩ = 2, 692 (4.9) 109 af 122

112 A 100kHz = 1 + 1kΩ π 100kHz 1nF 10kΩ = 1, 259 (4.10) A = 1 + 1kΩ π 1nF 10kΩ = 1, 1 (4.11) Udgangen af operationsforstærkeren styrer gaten på en P-kanal FET. I databladet for IRF9Z24 findes følgende oplysninger: R DS(on) = 0, 28Ω når V GS = 10V I D = 11A når T = 25 C og I D = 7, 7A når T = 100 C P D = 60W Den maksimale strøm der trækkes ved 12V er 3,5A og ved 5V er den 2,7A. Den afsatte effekt i FET en kan dermed udregnes: P 5V = (16, 97V 5V ) 2, 7A = 32, 321W (4.12) P 12V = (16, 97V 12V ) 3, 5A = 17, 397W (4.13) For at kunne klare denne effekt, skal de 2 FETs monteres på køleplader. Figur 4.63: Strømforsyningens køleplader I tilfælde af at operationsforstærkeren lukker for FET en inden den når at lade en spænding igennem, monteres der en opstartsmodstand henover FET en (fra source til drain). Denne sørger for at C5 lades op og spændingsføleren giver nu en spænding ind til fejlforstærkeren. Når denne spænding så overstiger referencepunktet, vil fejlforstærkeren regulere det ved at hæve spændingen på FET ens gate Realisering Kredsløbet er opbygget på VERO board. Udgangen skal belastes med effektmodstande så de trækker de udregnede maksimal-værdier. Størrelsen af effekt modstandene beregnes: R 5V = Til rådighed findes der følgende effektmodstande: 2 stk. 5Ω 4 stk. 10Ω Følgende opstillinger kommer tættes på den ønskede belastning: 5V = 1, 852Ω (4.14) 2, 7A R 12V = 12V = 3, 429Ω (4.15) 3, 5A R 5Vrealisering = ( ) 1 = 1, 667Ω (4.16) R 12Vrealisering = ( ) 1 = 3, 333Ω (4.17) Testen kan nu opstilles, og resultatet samt opstillingen ses herunder: 110 af 122

113 Figur 4.64: Testopstillingen med belastning på 5V forsyningen Figur 4.65: Testopstillingen med belastning på 12V forsyningen Figur 4.66: 5V forsyningen uden belastning Figur 4.67: 5V forsyningen med belastning Figur 4.68: 12V forsyningen uden belastning Figur 4.69: 12V forsyningen med belastning Som figur4.67 viser, kommer der en rippel på forsyningen ved belastning. Rippelen på 5V-forsyningen giver følgende informationer: V pp = 160mV Periodetiden kan aflæses til T = 10mS hvilket medfører en frekvens på f = 1 T = 100Hz 100Hz frekvensen som optræder ved belastningen fortæller, at der er mangler på kapacitet. Når spændingen fra transformeren rammer dens peak-værdi, bliver kondensatoren C 1 ladet helt op. Men inden den næste peak-værdi forekommer, har kondensatoren afladet 160mV. Dette giver en rippel som kan fjernes ved at tilføre mere kapacitet. Samme fænomen ser vi, ved at kigge på figur4.69. V pp = 80mV Periodetiden kan aflæses til T = 10mS hvilket medfører en frekvens på f = 1 T = 100Hz Det skal også noteres at begge forsyninger ikke rammer den ønskede spænding. Der er flere unøjagtigheder som kan påvirke dette: Unøjagtighed i zener-dioden D 5. Offset i fejlforstærkeren U 4. Transformertest Transformeren tilfører et tab i strømforsyningen i form af følgende: Modstand i primær- og sekundær-vindinger Leakage reaktans i primær- og sekundær-vindinger. Jernkerne tab. Magnetisk reaktans. For at beregne disse faktorer foretages der 2 målinger: Short-circuit giver modstanden i vindingerne samt leakage reaktansen. 111 af 122

114 Open-circuit giver jernkernetabet og den magnetiske reaktans. Short-circuit testen forbinder en variabel spændingskilde til primær-siden og kortslutter sekundærsiden. Figur 4.70: Short-circuit test R eq1 simulerer tabet i vindingerne. X eq1 simulerer leakage reaktansen. Først findes den maksimale strøm som må løbe i primær-siden. Det udregnes således: I max = S rated = 160V A = 0, 696A (4.18) V rated 230V Spændingen på skille-varioen justeres fra 0VAC indtil strømmen er I max = 0, 696A. Spændingen aflæses til V sc = 18V. Nu kan den aktive effekt beregnes: Nu kan tabene beregnes: P sc = V sc I max = 18V 0, 7A = 12, 522W (4.19) R eq1 = P sc 12, 522W Imax 2 = = 25, 875Ω (4.20) (0, 696A) 2 Z eq1 = V sc = I max X eq1 = 18V = 25, 875Ω (4.21) 0, 696A ( Z eq1 ) 2 R 2 eq1 = 0 (4.22) Z eq1 = R eq1 + j X eq1 = 25, 875Ω (4.23) Open-circuit testen forbinder en 230V spændingskilde til primær-siden og sekundær-siden står ubelastet. Figur 4.71: Open-circuit test Spændingen på skille-varioen sættes til 230VAC. Tomgangsstrømmen skal aflæses og den aktive effekt beregnes: Nu kan tabene beregnes: I oc = 10mA (4.24) P oc = V rated I oc = 230V 10mA = 2, 3W (4.25) N 1 = 12 (4.26) N 2 = 230 (4.27) V 1 = N 1 V rated = = 12V (4.28) N Y m = G C = P oc V 2 1 = N 2 N 1 I oc = V 1 B m = 2, 3W = 16mS (4.29) 12V mA = 16mS (4.30) 12V Y m 2 G 2 C = 0 (4.31) Y m = G C = j B m = 16mS (4.32) 112 af 122

115 Fremtidigt arbejde Der var umiddelbart 2 forbedringer som ville give en mere stabil og funktionel strømforsyning. Først og fremmest skal der indføres mere kapacitet på udgangen af strømforsyningen. Dette vil fjerne eller i hvert fald formindske den rippel som opstår ved større belastninger. For det andet kan der indføres et potmeter i spændingsføleren, som derved kan justere udgangsspændingen. Dette vil samtidig også gøre, at begge kredsløb (til 5V og 12V) kunne være ens. Det giver også mulighed for at lave andre spændinger ud fra kredsløbet. Til et færdigt produkt er der stadig meget arbejde med f.eks. at udligge print og konstruere et chassis som strømforsyningen og ikke mindst kølepladerne kan placeres i. 113 af 122

116 Accepttest Revision Ændret af Version Dato Alle Tabel 5.1: Revision for Accepttest 5.1 Test setup Til at teste følgende skal der bruges et setup med en PC der er i stand til at forbinde til den indlejrede Linux platform. Fieldsensorer tilsluttes til den indlejrede Linux platform via de PSoC moduler der styre dem. Aktuatorerne skal ligeledes tilsluttes gennem deres respektive moduler Accepttests Accepttest Use Case 1 Kalibrer ph-probe Test Forventet resultat Resultat Teknikeren tager ph-proben ud af karet og sætter den ned i buffer-væsken Rød LED lyser på karprintet Teknikeren venter i 2 minuter Proben er placeret i væsken i 2 minuter Teknikeren trykker på knappen kalibrer på karprintet og holder den nede i 3 sekunder Rød LED skifter til grøn LED Test OK Test OK Test OK Tabel 5.2: Acceptest for Use Case 1 Kalibrer ph-probe 1 FiXme Fatal: Alle accepttest skal rettes der er ingen af dem der passer 114 af 122

117 Accepttest Use Case 2 Opret kar Test Forventet resultat Resultat Teknikeren tilgår gui en ved at indtaste management url i sin webbrowser Teknikeren trykker på Service-knappen i gui en til AVS Teknikker trykker på knappen Opret kar (blå knap 2 ) Tekniker indtaster navnet Test i feltet Navn, adressen 2 i feltet Adresse og trykker Opret kar (blå knap 3 ) Systemet viser gui en til AVS Systemet viser service menuen Systemet viser en dialogboks hvor det er muligt at indtaste navnet og adressen til det kar man vil oprette Systemet opretter et nyt kar med navnet Test og adressen 2, der kan ses nederst i listen over Kar, i gui en til AVS Tabel 5.3: Acceptest for Use Case 2 Opret kar Test OK Test OK Test OK Test OK Accepttest Use Case 3 Opret Sensor Ø Test Forventet resultat Resultat Teknikeren tilgår gui en ved at indtaste management url i sin webbrowser Teknikeren trykker på det øverste oprettet kar i gui en Teknikeren trykker på knappen Opret Sensorø (blå knap) Tekniker indtaster adressen 4 i feltet Adresse og trykke Save changes (blå knap 4 ) Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Systemet viser en dialogboks hvor det er muligt at indtaste adressen til den Sensor Ø man vil oprette Systemet opretter et ny Sensor Ø, med adressen 4, der kan ses nederst i listen over Sensorøer, i oversigten over karet Test OK Test OK Test OK Test OK Tabel 5.4: Acceptest for Use Case 3 Opret Sensor Ø 115 af 122

118 Accepttest Use Case 4 Fyld kar Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger trykker på knappen Åben indløbsventil (blå knap) i boksen Ventilstyring Bruger trykker på knappen Luk indløbsventil (hvid knap) Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Indløbsventil-knappen bliver hvid, teksten i knappen ændres til Luk indsløbsventil og systemmet begynder at fylde karet med vand Indløbsventil-knappen bliver blå, teksten i knappen ændres til Åbn indsløbsventil og systemmet stopper med at fylde karet med vand Tabel 5.5: Acceptest for Use Case 4 Fyld kar Test OK Test OK Test OK Test OK Accepttest Use Case 5 Indtast ph-værdi Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger trykker på feltet i tabellen Kar data, under Indtastet værdi, og ud fra ph-værdi (0-14), skriver værdien 7.5 og trykker Gem data Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Systemet opdaterer ph-værdien til 7.5, som nu kan ses i tabellen Kar data, under Indtastet værdi, og ud fra ph-værdi (0-14) Test OK Test OK Test OK Tabel 5.6: Acceptest for Use Case 5 Indtast ph-værdi Accepttest Use Case 6 Indtast volumen Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger trykker på feltet i tabellen Kar data, under Indtastet værdi, og ud fra Vandniveau (l), skriver værdien 5 og trykker Gem data Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Systemet opdaterer vandniveau til 5, som nu kan ses i tabellen Kar data, under Indtastet værdi, og ud fra Vandniveau (l) Test OK Test OK Test OK Tabel 5.7: Acceptest for Use Case 6 Indtast volumen 116 af 122

119 Accepttest Use Case 7 Aflæs målinger Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger aflæser ph-værdien i tabellen Kar data under Målt værdi og ud fra ph-værdi (0-14) Bruger aflæser vandniveau i tabellen Kar data under Målt værdi og ud fra Vandniveau (l) Bruger aflæser jordfugtighed i tabellen Kar data under Målt værdi og ud fra Jordfugtighed (%) Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet En værdi mellem 0-14 aflæses i tabellen Kar data under Målt værdi og ud fra ph-værdi (0-14) En værdi med enheden liter aflæses i tabellen Kar data under Målt værdi og ud fra Vandniveau (l) En værdi med enheden % aflæses i tabellen Kar data under Målt værdi og ud fra Jordfugtighed (%) Test OK Test OK Test OK Test OK Test OK Tabel 5.8: Acceptest for Use Case 7 Aflæs målinger Accepttest Use Case 8 Manuel vanding Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger trykker på knappen Start manuel vanding (blå 5 knap) i boksen Manuel vanding Bruger trykker på knappen Stop manuel vanding (hvid 7 knap) i boksen Manuel vanding Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Manuel vanding-knappen bliver hvid 6, teksten i knappen ændres til Stop manuel vanding og systemet begynder at vande ved alle Sensor Øerne Manuel vanding-knappen bliver blå 8, teksten i knappen ændres til Start manuel vanding og systemet Stopper med at vande ved alle Sensor Øerne Test OK Test OK Test OK Test OK Tabel 5.9: Acceptest for Use Case 8 Manuel vanding 117 af 122

120 Accepttest Use Case 9 Tøm kar Test Forventet resultat Resultat Bruger tilgår gui en ved at indtaste management url i sin webbrowser Bruger trykker på det øverste oprettet kar i gui en Bruger trykker på knappen Åben afløbsventil (blå knap) i boksen Ventilstyring Bruger trykker på knappen Luk afløbsventil (hvid knap) Systemet viser gui en til AVS Systemet viser et skærmbillede med oversigt over karet Afløbsventil-knappen bliver hvid, teksten i knappen ændres til Luk afløbsventil og systemmet begynder at tømme karet for vand Afløbsventil-knappen bliver blå, teksten i knappen ændres til Åbn afløbsventil og systemmet stopper med at tømme karet for vand Tabel 5.10: Acceptest for Use Case 9 Tøm kar Test OK Test OK Test OK Test OK Accepttest Use Case 10 Slet Kar Test Forventet resultat Resultat Teknikker tilgår gui en ved at indtaste management url i sin webbrowser Teknikker trykker på knappen med et skraldespands ikon ud for det øverste oprettet kar i guien Teknikker trykker ok i dialog Systemet viser gui en til AVS Systemmet spørger om teknikeren er sikker i en dialog Systemet sletter karet og returnerer Teknikeren til listen over kar Tabel 5.11: Acceptest for Use Case 10 Slet Kar Test OK Test OK Test OK 118 af 122

121 119 af 122 Automatisk Vandingssystem

122 Ordliste AVS Automatisk vandingssystem. CentralControl er systemets centrale computer. Database gemmer brugerens indstillinger samt log. Doseringsventil åbner og lukker for tilførslen af Gødningsmix til en bestemt Sensor Ø. Fieldsensor er en samlet generisk beskrivelse af måleinstrumenter, der kan tilsluttes en Sensor Ø. FlexPMS (Flexible Plant Management System) er den software, som binder brugergrænsefladen med den fysiske verdens. Flowmåler måler mængden af væske som løber gennem denne. Gromedie er det stof floran er plantet i, dette kan fx være muld. Gui er den grafiske brugergrænseflade. Gødningsmix er en blanding af vand og gødning med en bestemt ph-værdi. Kar er en beholder, der kan indeholde Gødningsmix. KarController styrer tilgangen af vand, gødning og ph-væske samt de sensor ø er der er tilkoblet denne. KarGruppe er et Kar med tilhørende KarController og Sensor Ø er. Management url adressen hvorpå guiinterfacet befinder sig. PC computer med Windows 7+ styresystem, samt Google Chrome som browser. Plante består af flora og gromedie. RSConverter et elektronisk print, som kan konvertere mellem UART 232 og RS485. Sensor Ø består af en Sensor Ø Control, en række Fieldsensorer, som måler fra et begrænset området, og en Doseringsventil. Sensor Ø Controller er controlleren i en Sensor Ø, som opsamler data fra sensorerne og kan styre Doseringsventilen. Ventilstyring en ventil, der kan åbnes og lukkes vha. et 5V-signal. Ventilen er tilsluttet 12V. 120 af 122

123 Litteratur Cypress, Cypress. PSoC Creator Component Author Guide. Cypress, URL 121 af 122

124

Automatisk Vandingssystem

Automatisk Vandingssystem Rettelser Fatal: Der skal laves en skitse over systemet........................... 12 Fatal: Der skal laves software diagrammer til system arkitektur - applikationsmodel sekvens diagrammer state machines

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Automatisk Vandingssystem

Automatisk Vandingssystem Automatisk Vandingssystem Projektdokumentation Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper Sejer Kristensen

Læs mere

Automatisk Vandingssystem. Rettelser. 1 af 11

Automatisk Vandingssystem. Rettelser. 1 af 11 Automatisk Vandingssystem Rettelser 1 af 11 Automatisk Vandingssystem Projektrapporten Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen

Læs mere

Automatisk Vandingssystem. Rettelser. 1 af 18

Automatisk Vandingssystem. Rettelser. 1 af 18 Automatisk Vandingssystem Rettelser 1 af 18 Automatisk Vandingssystem Projektrapporten Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen

Læs mere

Automatisk Vandingssystem. Rettelser. 1 af 23

Automatisk Vandingssystem. Rettelser. 1 af 23 Rettelser 1 af 23 Automatisk Vandingssystem Projektrapporten Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen - 201205713 - IKT Kasper

Læs mere

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15

smart-house Web-Server Manual smart-house Web-Server Manual 1 of 15 smart-house Web-Server Manual CARLO GAVAZZI AS, PB 215, NO-3901 Porsgrunn Telefon: 35 93 08 00 Telefax: 35 93 08 01 Internet: http://www.carlogavazzi.no E-Mail: gavazzi@carlogavazzi.no 1 of 15 Indholdsfortegnelse

Læs mere

Automatisk Vandingssystem. Rettelser. 1 af 20

Automatisk Vandingssystem. Rettelser. 1 af 20 Automatisk Vandingssystem Rettelser 1 af 20 Automatisk Vandingssystem Projektrapporten Aarhus Universitet Gruppe 6-3. Semester - F15 vejleder: Michael Alrøe dato: 28-05-2015 Lærke Isabella Nørregård Hansen

Læs mere

GSM port styring 400 brugere

GSM port styring 400 brugere 1 GSM port styring 400 brugere SMS alarm, temperatur og fjernkontrol system 16 brugere til at modtage alarmbeskeder via SMS Software vejledning SSIHuset Svane Electronic ApS Arildsvej 27, Gråmose, DK-7442

Læs mere

Oversigts billedet: Statistik siden:

Oversigts billedet: Statistik siden: 1 Tilslutning: Tilslut et nætværks kabel (medfølger ikke) fra serverens ethernet port til din router. Forbind derefter bus kablet til styringen, brun ledning til kl. 29, hvid ledning til kl. 30 Forbind

Læs mere

X88S. SMS fjernstyring til sommerhuse

X88S. SMS fjernstyring til sommerhuse X88S SMS fjernstyring til sommerhuse X88s er en GSM/SMS baseret fjernstyring med: 6 indgange 8 relæudgange 2 temperaturfølere Billig i drift, intet abonnement. Kan køre på taletidskort. Nem og hurtig montering.

Læs mere

Webstech Trådløs Sensor Overvågning. Brugervejledning

Webstech Trådløs Sensor Overvågning. Brugervejledning Webstech Trådløs Sensor Overvågning Brugervejledning Besøg venligst vores hjemmeside for senest opdaterede udgave eller for hjælp Support Dato Version Ændringer 1. Januar 2013 1.0 Nyt layout for 2013 kunder

Læs mere

FC10 FEED CONTROL BRUGERMANUAL

FC10 FEED CONTROL BRUGERMANUAL FC10 FEED CONTROL BRUGERMANUAL 2 Indholdsfortegnelse FC10 Taster og display... 3 Tilstand... 4 Indstillinger... 4 Log... 5 Alarm... 5 Udløser... 6 Trækstation... 6 Installatør menu... 6 3 FC10 Taster og

Læs mere

Svendeprøve Projekt Tyveri alarm

Svendeprøve Projekt Tyveri alarm Svendeprøve Projekt Tyveri alarm Påbegyndt.: 8/2-1999 Afleveret.: 4/3-1999 Projektet er lavet af.: Kasper Kirkeby Brian Andersen Thomas Bojer Nielsen Søren Vang Jørgensen Indholds fortegnelse 1. INDLEDNING...3

Læs mere

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0

QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100. SecVision - Quick Manual v1.0 QUICK MANUAL BRUGERNAVN: ADMIN PASSWORD: 00000 APP: SMARTEYES PRO PORT: 50100 SecVision - Quick Manual v1.0 1. System Login 1.1. Bruger Login ID: admin Password: 00000 1.2. Indstilling af dato/tid og harddisk

Læs mere

QUICKVEJLEDNING. Montering

QUICKVEJLEDNING. Montering QUICKVEJLEDNING Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes som vist nedenfor.

Læs mere

ALARM & MELDINGER. SIESTA i TS. Fremkommer når absorberen ikke har været monteret på patientsystemet i mere end 30 sek.

ALARM & MELDINGER. SIESTA i TS. Fremkommer når absorberen ikke har været monteret på patientsystemet i mere end 30 sek. SIESTA i TS ALARM & MELDINGER A A Absorber ikke monteret Tilgængelig i STBY, MAN eller VENT status. Fremkommer når absorberen ikke har været monteret på patientsystemet i mere end 30 sek. Fremkommer med

Læs mere

BAS 914S/929S Datablad

BAS 914S/929S Datablad BAS 914S/929S BA Systems Petershvilevej 1 DK-3200 Helsinge http://www.basystems.dk BAS 914S/929S tilhører en familie af programmerbare kontrollere der er målrettet til mindre samt medium størrelse installationer.

Læs mere

BRUGERVEJLEDNING VIDEOKAMERA

BRUGERVEJLEDNING VIDEOKAMERA BRUGERVEJLEDNING VIDEOKAMERA Side 2 til nyt videokamera Introduktion Det nye videokamera er et IP-videokamera, der tilsluttes trådløst til din router. Videokameraet fungerer sådan, at du kan se videooptagelser

Læs mere

ISC2100 kan kommunikere via RS232, RS485, Ethernet og LON, bruge USB enhed og USB host.

ISC2100 kan kommunikere via RS232, RS485, Ethernet og LON, bruge USB enhed og USB host. DK-1 ISC2100 er en frit programmerbar regulator, som er skalérbar til styring af helt små og op til meget store anlæg. ISC2100 kan eksempelvis anvendes til styring af varme, brugsvand og ventilation, samt

Læs mere

Betjeningsvejledning til Håndterminal og AnyQuest Host

Betjeningsvejledning til Håndterminal og AnyQuest Host Betjeningsvejledning til Håndterminal og AnyQuest Host INDHOLDSFORTEGNELSE: 1 Indledning... 2 2 Generelt for Håndterminalen... 3 2.1 Justering af Dato og Tid.... 3 3 Aflæsning... 6 3.1 Opstart... 6 3.1.1

Læs mere

Brugervejledning. ComX brugervejledning version 4.1

Brugervejledning. ComX brugervejledning version 4.1 Brugervejledning ComX brugervejledning version 4.1 1 INDHOLD PAKKENS INDHOLD Pakkens indhold side 2 Fjernbetjening side 2 Tilslutning af Settop-boksen side 3 Introduktion til Bredbånds-TV side 4 Tilslutning

Læs mere

Guide til Umbraco CMS

Guide til Umbraco CMS web Guide til Umbraco CMS Indhold Indledning 3 Kompatible browsere 3 Log ind i Umbraco 4 Content-delen 5 Indholdstræet 5 Tilføjelse af en side/sektion 7 Sortering af indhold 12 Galleri 14 Mediebibliotek

Læs mere

Dr.Heron med tilslutningsprint DCT

Dr.Heron med tilslutningsprint DCT Dr.Heron med tilslutningsprint DCT TEMPERATUR - STYRING 1.0 El-tilslutning Kabler INSTALLATION Anbefalet kabeltype: YSY-JZ. Temperaturføler- og styrespændingssignaler fremføres i separat, skærmet kabel

Læs mere

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14

Diagnostic og Toolbox Instruktion. www.lp.dk Lindgaard Pedersen A/S. Rev. 1.0 Side 1 / 14 EL-PAS -Cruise II ANDROID Diagnostic og Toolbox Instruktion LP www.lp.dk Lindgaard Pedersen A/S Side 1 / 14 Indhold Denne vejledning indeholder instruktion til brug af Cruise Android App, hentet fra Android

Læs mere

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning

MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning MiniPlex-41USB NMEA-0183 multiplexer Betjeningsvejledning MiniPlex-41USB, V1.1 Firmware V1.20 SeaTech, 2002 Indledning: MiniPlex-41USB er en 4-kanals data multiplexer, som giver mulighed for tilslutning

Læs mere

Microcontroller, Arduino

Microcontroller, Arduino Microcontroller, Arduino Kompendium til Arduino-programmering i Teknologi. Vi skal lære at lave programmer til uc for at kunne lave el-produkter. Vi skal forstå princippet i programmering af en uc og se

Læs mere

I/O Extender - installations- og brugervejledning

I/O Extender - installations- og brugervejledning DK I/O Extender - installations- og brugervejledning Indholdsfortegnelse side 1. Applikation og funktion.....................................................3 1.1. LED lys diode........................................................3

Læs mere

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter...

Installationsmanual. 2 Installering...6. 3 Installering SMS sender...7. 4 Installering PSTN/GSM sender...7. 5 Installering PSTN GSM konverter... CS 47 Syntax Side 2 Indholdsfortegnelse 1 Introduktion...4 1.1 Funktioner...4 1.2 Forsyning...4 1.3 PSTN support...5 1.4 GSM support...5 1.5 SMS support...5 1.6 Indgange...5 1.7 Udgange...5 1.8 Password...5

Læs mere

BAS 920. Datablad. BA Systems Petershvilevej 1 DK-3200 Helsinge http://www.basystems.dk

BAS 920. Datablad. BA Systems Petershvilevej 1 DK-3200 Helsinge http://www.basystems.dk BAS 920 BA Systems Petershvilevej 1 DK-3200 Helsinge http://www.basystems.dk BAS 920 tilhører en familie af frit programmerbare kontrollere designet til at være skalerbare fra helt små til meget store

Læs mere

Accepttest Specifikation For. Gruppen

Accepttest Specifikation For. Gruppen Accepttest Specifikation For Gruppen Indholdsfortegnelse 1. INDLEDNING...3 1.1 FORMÅL...3 1.2 REFERENCER...3 1.3 TESTENS OMFANG OG BEGRÆNSNINGER...3 2. TESTEMNER...3 2.1 CENTRAL ENHEDEN...3 2.2 ADGANGS

Læs mere

Vejledning for TKE 01 Ver 4.01

Vejledning for TKE 01 Ver 4.01 Vejledning for TKE 01 Ver 4.01 TKE-01 er lavet specielt til at arbejde sammen med en Calyma ventilationunit med Lemmens DC-motorer. POWER ON SPJÆLD LUKKET FEJL TRYKFEJL VARME STYRING under 18 grader Temperatur

Læs mere

ZTH-.. som MP-Bus tester

ZTH-.. som MP-Bus tester ZTH-VAV og ZTH-GEN juster- og diagnoseværktøj som MP-Bus tester. Tilslutning i tavle eller samledåse Tester Kort beskrivelse MP-Bus tester er ikke velegnet til kabel-test. Anvendelse Tilslutning og forsyningsspænding

Læs mere

Guide til indbygget PLC Teco 7300 CV frekvensomformere

Guide til indbygget PLC Teco 7300 CV frekvensomformere Guide til indbygget PLC Teco 7300 CV frekvensomformere Juni 2005 Indholdsfortegnelse. Interface...3 Installering af PC-program...3 Forbindelse til frekvensomformer...4 Gem parameteropsætning / PLC-program...7

Læs mere

Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless

Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Side 1 af 8 Indholdsfortegnelse 1 PAKKENS INDHOLD... 3 2 INSTALLATION... 4 2.1 PLACERING... 4 2.2 FORBRUG... 4 2.3 12V TILSLUTNING... 4

Læs mere

Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless

Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Installationsmanual SuperSail Marine Alarm Marine Alarm Wireless Side 1 af 8 Indholdsfortegnelse 1 PAKKENS INDHOLD... 3 2 INSTALLATION... 4 2.1 PLACERING... 4 2.2 FORBRUG... 4 2.3 12V TILSLUTNING... 4

Læs mere

INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER

INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER INSTALLATIONSMANUAL TIL GARAGEPORT ÅBNER INSTALLATIONS MANUALEN SKAL GENNEMLÆSES OMHYGGELIG FØR IBRUGTAGNING ADVARSEL FOR SIKKER INSTALLATION Inden installation af automatikken skal balance fjederen på

Læs mere

EasyIQ ConnectAnywhere Brugermanual Windows 7, Windows Vista og Windows XP

EasyIQ ConnectAnywhere Brugermanual Windows 7, Windows Vista og Windows XP EasyIQ ConnectAnywhere Brugermanual Windows 7, Windows Vista og Windows XP Indhold Log på EasyIQ ConnectAnywhere... 2 Adgangskode udløbet... 3 Log af EasyIQ ConnectAnywhere... 5 Mulighederne i EasyIQ ConnectAnywhere...

Læs mere

Reguleringssystem EnergyLogic Touchline Wave

Reguleringssystem EnergyLogic Touchline Wave Reguleringssystem EnergyLogic Touchline Wave BRUGERMANUAL TIL iphone APP ØKOENERGI- OG SANITETSSYSTEMER Roth A/S Centervej 5 3600 Frederikssund Telefon: +45 47380121 Fax: +45 47380242 E-Mail: service@roth-nordic.dk

Læs mere

LW313 Sweex Wireless 300N Adapter USB

LW313 Sweex Wireless 300N Adapter USB LW313 Sweex Wireless 300N Adapter USB Bemærk venligst! Udsæt ikke Sweex Wireless 300N Adapter USB for ekstreme temperaturer. Placér ikke adapteren i direkte sollys eller i nærheden af radiatorer eller

Læs mere

KOMPONENT BESKRIVELSE

KOMPONENT BESKRIVELSE Beskrivelse : S12-20-8A tegningsnummer 630014 Program som styrer 5 individuelle trykforløb på samme tid. Kan køre med intern tryk-reservoir. Kommunikerer med PC-program 714014 Dato Sign. Beskrivelse af

Læs mere

GSM Dørtelefon. Installation manual. Bruger manual. Gennemlæs omhyggeligt denne manual før installation og ibrugtagning af dette produkt.

GSM Dørtelefon. Installation manual. Bruger manual. Gennemlæs omhyggeligt denne manual før installation og ibrugtagning af dette produkt. GSM Dørtelefon Installation manual Bruger manual Gennemlæs omhyggeligt denne manual før installation og ibrugtagning af dette produkt. Tlf.: +45 86161617 Mobil: +45 40200001 Side 1 GSM Dørtelefon Version

Læs mere

Manual til Elegant DK190

Manual til Elegant DK190 Manual til Elegant DK190 Indhold Forord... 4 Alarmens generelle opbygning... 5 Placering af alarmen... 7 Oversigt over alarmen... 8 Forside... 8 Bagside... 9 Tag alarmen i brug... 10 Programering af alarmen...

Læs mere

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system

SSI-9001 IP65. Installations vejledning. SSIHuset v/svane Electronic ApS. GSM fjern kontrol og alarm system SSI-9001 IP65 GSM fjern kontrol og alarm system Installations vejledning SSIHuset v/svane Electronic ApS Vejledning Kontakt Tænd/sluk 1 - Strømforsyning: Forbundet til egen 12V / 1.5A strømforsyning (*)

Læs mere

UniLock System 10. Manual til interface fra trådløse Salto Sallis døre til UniLock. Version 1.0 Revision 150206

UniLock System 10. Manual til interface fra trådløse Salto Sallis døre til UniLock. Version 1.0 Revision 150206 UniLock System 10 Manual til interface fra trådløse Salto Sallis døre til UniLock Projekt PRJ177 Version 1.0 Revision 150206 Interfaceprint som giver mulighed for at styre op til 4, 8 eller 16 online trådløse

Læs mere

Dekoder type 628. Diagram. Print. Litra.DK

Dekoder type 628. Diagram. Print. Litra.DK Dekoder type 628 Denne dekoder anvendes hovedsagelig til signaler. Den kan også anvendes til andre opgaver, men her vil andre typer af dekodere være mere velegnet. Dekoderen forsynes med spænding og digital

Læs mere

QUICKVEJLEDNING til 4-moduler. Montering

QUICKVEJLEDNING til 4-moduler. Montering QUICKVEJLEDNING til 4-moduler Montering 1. Klargør et SIM-kort, så pinkoden er 1234 eller deaktiveret. Monter kortet i enheden. Enheden har nu 1234 som password eller kører uden password. Kortet vendes

Læs mere

Vejledning til GSM alarm sender

Vejledning til GSM alarm sender 1 Vejledning til GSM alarm sender SSIHuset Svane Electronic 2 Sikkerheds tips Brug kun dette produkt som foreskrevet her i vejledningen. Installer ikke senderen tæt på vand, fugt eller direkte varme. Forbind

Læs mere

PoolManager PoolManager PRO. Funktionalitet og flot design

PoolManager PoolManager PRO. Funktionalitet og flot design PoolManager PoolManager PRO Funktionalitet og flot design Nyudviklet innovativ teknik i moderne design Made in Germany Nyd krystalklart vand hver eneste dag. Den seneste udgave af Poolmanager har gennemgået

Læs mere

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:...

Manual IHC Kompatibelt SMS modem. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer syntax... 2 Lysdioder... 2 Tilslutning:... Manual IHC Kompatibelt SMS modem. Modemmet er kompatibelt med LK IHC visual2 controllere. IHC er registreret varemærke hos LK, Schneider Electric. Generel info:... 2 Controllere:... 2 Manualen... 2 Komandoer

Læs mere

Lavet af Danni jensen og David Olsen

Lavet af Danni jensen og David Olsen Projekt Delfin Lavet af Danni jensen og David Olsen 19/5-2008 Indholdsfortegnelse. Side 1: Indholdsfortegnelse og forord. Side 2: Kravsliste. Side 3: Use Case Model. Side 4: Formandens aktørbeskrivelse

Læs mere

REEFTlink Et banebrydende produkt til on-line overvågning af jeres produktionsapparat

REEFTlink Et banebrydende produkt til on-line overvågning af jeres produktionsapparat Rikard Karlsson, produktionschef hos Elektrolux, Ljungby, Sverige: REEFTlink er en komplet, dynamisk og fremtidssikret løsning, der dækker hele vores behov for Lean og Takt-baseret produktionsstyring.

Læs mere

Svane Electronic Timer universal med 8 funktioner 1

Svane Electronic Timer universal med 8 funktioner 1 Svane Electronic Timer universal med 8 funktioner 1 Digital timer print modul 12V 2000.2231 Multi funktions timer med 8 funktioner, anvendelig i mange installationer, forsyning 12VDC drift. Printet har

Læs mere

Opdatering af Windows XP

Opdatering af Windows XP Opdatering af Windows XP For at sikre computeren mest muligt er det en god idé at opdatere sit styresystem jævnligt. Det anbefales, at man mindst en gang om ugen kontrollerer for opdateringer til sit styresystem,

Læs mere

088U0240 / 088U0245. Vejledning til CF-MC-masterregulator

088U0240 / 088U0245. Vejledning til CF-MC-masterregulator 088U0240 / 088U0245 DK Vejledning til 2 Danfoss Heating Solutions VIUHK701 Danfoss 03/2011 Indholdsfortegnelse 1. Introduktion 4 2. CF2 + Systemoversigt (fig. 1)....................................................

Læs mere

Installationsvejledning Danfoss SolarApp

Installationsvejledning Danfoss SolarApp MAKING MODERN LIVING POSSIBLE SOLAR INVERTERS Installationsvejledning Danfoss SolarApp DLX Serie - Invertere med integreret ConnectSmart www.danfoss.com/solar Indholdsfortegnelse Indholdsfortegnelse 1.

Læs mere

Streame fra Winamp til Dreambox/pc på netværk.

Streame fra Winamp til Dreambox/pc på netværk. Streame fra Winamp til Dreambox/pc på netværk. 1. Formål 2. Forudsætninger og installationer 3. Opsætning 4. Start streaming 5. Aflyt streaming 6. Kontakt 1. Formål Mange benytter Winamp ( Nullsoft, Inc.)

Læs mere

Quick Guide SuperSail Container Alarm app.

Quick Guide SuperSail Container Alarm app. Quick Guide SuperSail Container Alarm app. Applikationen startes via browser på nedenstående adresse: http://server.super-sail.dk:49715/supersailalarm/#/login Adressen kan oprettes som genvej på f.eks.

Læs mere

RYOM Vildtkamera. Premium med MMS/data. Manual Nr. 218-328

RYOM Vildtkamera. Premium med MMS/data. Manual Nr. 218-328 RYOM Vildtkamera Premium med MMS/data Manual Nr. 218-328 Vildtkamera Premium - nr. 218-328 ACORN LTL-5310MM KAMERA MENU OG KNAPPER: På bagsiden af kameraet er der et LCD display, 4 retningsknapper, menu

Læs mere

Vejledning, teknik, tips and tricks

Vejledning, teknik, tips and tricks Vejledning, teknik, tips and tricks Indhold 1 AUHRA pålogning og startside... 1 2 Ofte stillede spørgsmål og kendte fejl... 4 2.1 Har din computer adgang til AU s netværk og adm. systemer?... 4 2.2 Kan

Læs mere

CO2 Control Box E-Cab-980

CO2 Control Box E-Cab-980 CO2 Control Box E-Cab-980 CO2 Control Box E-Cab-980 er beregnet til detektering og alarmereing ved utætheder i CO2 køleanlæg i køle- og fryserum. CO2 Control Box E-Cab-980 er designet til at fungere sammen

Læs mere

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model

Dm071 / Dm072 - Obligatorisk projekt 3: Design af model Dm071 / Dm072 - Obligatorisk projekt 3: Design af model Fag: Projektet omhandler emner fra fagene Software Design og Software Konstruktion. Formål: Formålet med projektet er at give dig mulighed for sammen

Læs mere

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen

Programmering C Eksamensprojekt. Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Programmering C Eksamensprojekt Lavet af Suayb Köse & Nikolaj Egholk Jakobsen Indledning Analyse Læring er en svær størrelse. Der er hele tiden fokus fra politikerne på, hvordan de danske skoleelever kan

Læs mere

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund

AVR MP3 29-05-08 05576 Ingeniørhøjskolen i Århus Michael Kaalund AVR MP3 29-05-08 Indholdsfortegnelse 1 Introduktion...2 2 Udviklingsmiljø...2 3 Beskrivelse af systemet...3 3.1 VS1001k...3 3.2 MP3 file formatet...6 4 Konklusion...6 5 Litteratur liste...6 6 Illustrations

Læs mere

Opsætning af Outlook til Hosted Exchange 2003

Opsætning af Outlook til Hosted Exchange 2003 Opsætning af Outlook til Hosted Exchange 2003 Sådan opsættes Outlook 2007 til Hosted Exchange 2003 Opdateret 15. november 2011 Indhold 1 Indledning... 2 2 Opsætning af Outlook 2003... Error! Bookmark not

Læs mere

OS2 Opgavefordeler. Løsningsbeskrivelse Version 2. Udarbejdet af Miracle A/S Simon Møgelvang Bang smb@miracle.dk

OS2 Opgavefordeler. Løsningsbeskrivelse Version 2. Udarbejdet af Miracle A/S Simon Møgelvang Bang smb@miracle.dk OS2 Opgavefordeler Løsningsbeskrivelse Version 2 Udarbejdet af Miracle A/S Simon Møgelvang Bang smb@miracle.dk 15/2/2015 Løsningsbeskrivelse for OS2 Opgavefordeler 1. Introduktion... 3 2. Kontekst... 3

Læs mere

Installer nyt image på din PC - Windows 7

Installer nyt image på din PC - Windows 7 Installer nyt image på din PC - Windows 7 1 Tryk F12 og hent nyt image til din PC...2 2 Log på første gang efter installationen...2 3 Din Citrix sådan tilpasser du dine systemer/applikationer...3 3.a Tilføj

Læs mere

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre

SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre 1 SSI 6000.0400 GSM Fjernbetjenings system for porte/garage døre Vejledning SSIHuset v/svane Electronic ApS Arildsvej 27, Gråmose, DK-7442 Engesvang mail: ssi@svane-el.dk http: svane-el.dk 2 System for

Læs mere

LUDUS Web Installations- og konfigurationsvejledning

LUDUS Web Installations- og konfigurationsvejledning LUDUS Web Installations- og konfigurationsvejledning Indhold LUDUS Web Installations- og konfigurationsvejledning... 1 1. Forudsætninger... 2 2. Installation... 3 3. Konfiguration... 9 3.1 LUDUS Databasekonfiguration...

Læs mere

Rejsekort A/S idekonkurence Glemt check ud

Rejsekort A/S idekonkurence Glemt check ud Rejsekort A/S idekonkurence Glemt check ud 9. marts 2015 1 Indhold 1 Introduktion 4 1.1 Problembeskrivelse........................ 4 1.2 Rapportens opbygning...................... 4 2 Ordliste 5 3 Løsning

Læs mere

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning

TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE. Brugervejledning TEKNISKE FORHOLD VEDR. ADGANG TIL VP.ONLINE vp.online 2011 01-10-2011 Indholdsfortegnelse 1 PROBLEMER MED AT SE VP.ONLINE... 3 2 BROWSER KONFIGURATION... 6 3 SKRIVEADGANG TIL DREV... 7 4 SESSION TIMEOUT

Læs mere

Manual Version 2. til oprettelse af hjemmesider for landsbyer i Rebild kommune

Manual Version 2. til oprettelse af hjemmesider for landsbyer i Rebild kommune Manual Version 2 til oprettelse af hjemmesider for landsbyer i Rebild kommune Oversigt: Login Hjemmeside...... side 3 Login Administrationsmodul... side 5 Kategorier.. side 6 Opret/rediger første side...

Læs mere

18/11 2010 Version 2.0 Side 1 af 36

18/11 2010 Version 2.0 Side 1 af 36 Login til DJAS Gå ind på adressen http://www.djas.dk I feltet Brugernavn skrives den e-mail adresse som brugeren er registeret med i systemet. I feltet Password skrives brugerens adgangskode. Ved at sætte

Læs mere

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 -

Indholdsfortegnelse. Hvorfor skal jeg tage backup af min blog? Side 3. Tag backup med UpDraft Side 4. Tag manuelt backup Side 8 - 2 - - 1 - Indholdsfortegnelse Hvorfor skal jeg tage backup af min blog? Side 3 Tag backup med UpDraft Side 4 Tag manuelt backup Side 8-2 - Hvorfor skal jeg tage backup af min blog? Lige meget om du har opbygget

Læs mere

Google Apps. Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9

Google Apps. Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9 Lær at oprette, organisere, dele og slette dokumenter. Udarbejdet af PLC, version 2013!!!!!!! Side 1 af 9 Arbejde i faner Google Apps arbejder i faner, derfor er det vigtigt, du er bekendt med det. Mappen

Læs mere

09/03 2009 Version 1.4 Side 1 af 37

09/03 2009 Version 1.4 Side 1 af 37 Login til DJAS Gå ind på adressen http://www.djas.dk I feltet Brugernavn skrives den e-mail adresse som brugeren er registeret med i systemet. I feltet Password skrives brugerens adgangskode. Ved at sætte

Læs mere

Dr.Sherlock INSTALLATION. 1.0 Diagram TEMPERATUR - OVERVÅGNING

Dr.Sherlock INSTALLATION. 1.0 Diagram TEMPERATUR - OVERVÅGNING Dr.Sherlock TEMPERATUR - OVERVÅGNING 1.0 Diagram INSTALLATION Kabel til følere skal være type FLEX YSY-JZ eller lignende. Det må gerne være en multileder med fælles skærm. Det er også muligt at køre med

Læs mere

BRUGERVEJLEDNING TÆND-SLUK ENHED

BRUGERVEJLEDNING TÆND-SLUK ENHED BRUGERVEJLEDNING TÆND-SLUK ENHED Side 1 til tænd-sluk enheden Introduktion Med tænd-sluk enheden fra LOCKON kan du styre strømmen i din bolig. Du kender princippet fra de traditionelle tænd-sluk ure, der

Læs mere

Opsætning af Bolyguard/Scoutguard MG982 til GPRS

Opsætning af Bolyguard/Scoutguard MG982 til GPRS Opsætning af Bolyguard/Scoutguard MG982 til GPRS Med GPRS opsætningen kan man via datanetværket sende billeder til sin mail. Indsæt SD kortet i din PC eller forbind kameraet med PC en vha. USB stikket.

Læs mere

Opsætning af Outlook til Hosted Exchange 2007

Opsætning af Outlook til Hosted Exchange 2007 Opsætning af Outlook til Hosted Exchange 2007 Sådan opsættes Outlook 2007 til Hosted Exchange 2007. Opdateret 29. december 2010 Indhold 1 Indledning... 2 2 Outlook 2007 klienten... 2 3 Automatisk opsætning

Læs mere

15. Digital kode vælger (hvid DIP switch) 16. Kanal vælger (gul DIP switch) 17. Batteri hus

15. Digital kode vælger (hvid DIP switch) 16. Kanal vælger (gul DIP switch) 17. Batteri hus Babyalarm MBF 8020 DK 1.. INDHOLD 1 x sender med integreret oplader, 1 x modtager, 1x ladestation for oplader 2 x strømforsyninger, 2 x specielle opladte batteri pakker 1 x Bruger manual 2.. KOMPONENTER

Læs mere

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG

STYKLISTE AP 500 MANUAL 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG STYKLISTE # ANTAL BESKRIVELSE 1 1 ELEKTRONIK MODUL 2 1 SERVOMOTOR 3 1 LEDNINGSNET 5 1 AP 500 MONTERINGS KIT 5.1 1 WIRETRÆK BESLAG 5.2 3 WIRE BESKYTTER 5.3 1 KABELHOLDER 5.4 1 SPÆNDESKIVE 5.5 1 WIRETRÆK

Læs mere

COOP brugermanual til Podio BRUGERMANUAL. til Podio. 23. februar 2015 Side 1 af 38

COOP brugermanual til Podio BRUGERMANUAL. til Podio. 23. februar 2015 Side 1 af 38 BRUGERMANUAL til Podio 23. februar 2015 Side 1 af 38 INDHOLDSFORTEGNELSE HVAD ER PODIO?... 3 HVAD KAN VI PÅ PODIO?... 4 Aktivitet... 4 Bestyrelsesmøder... 4 Arrangementer & aktiviteter... 5 Opslagstavle...

Læs mere

Svar på de mest almindelige Citrix spørgsmål

Svar på de mest almindelige Citrix spørgsmål Svar på de mest almindelige Citrix spørgsmål Henrik Meyer og Ajâja Hyttel Oprettet: 24/6-13 Sidst revideret 14/5-14 h t t p s : / / c i t r i x. a a b n e t. d k Hvad er nyt i Citrix?... 2 Hvis du ikke

Læs mere

Foreløbig version af Brugervejledning for datamodtagere til GS1Trade Sync

Foreløbig version af Brugervejledning for datamodtagere til GS1Trade Sync Foreløbig version af Brugervejledning for datamodtagere til GS1Trade Sync v 0.1 maj 2014 www.gs1.dk/gs1tradesync Indhold Log på... 3 Søg produkter... 4 Hierarkiopbygning... 7 Subskriptioner (Selektioner)

Læs mere

Funktions Manual. Skyhost WebPortal. Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost)

Funktions Manual. Skyhost WebPortal. Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost) Funktions Manual Skyhost WebPortal Login (Bemærk: for at kunne bruge WebPortalen skal du have et aktivt abonnement fra Skyhost) 1: Gå ind i på www.skyhost.dk - Klik på WebPortal knappen øverst på siden

Læs mere

Sådan redigerer du en hjemmeside i Umbraco

Sådan redigerer du en hjemmeside i Umbraco Brugermanual til din boligafdelings hjemmeside Sådan redigerer du en hjemmeside i Umbraco Indhold Introduktion... 2 Log på Umbraco og redigér din hjemmeside... 3 Opret ny side... 7 Gem side uden at udgive/publicere

Læs mere

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010

Vejledning. Opsætning af Trio Web Vers 2.0 feb. 2010 Opsætning af Trio Web Vers 2.0 feb. 2010 Indholdsfortegnelse Opsætning af Trio Web... 3 Generel opsætning af Trio Web... 3 Databaseopsætning... 3 DB... 3 Aar... 4 Login... 4 Internet... 4 Port... 4 Registreringsnøgle...

Læs mere

Manual KlimaC SMS Box. Dioder for fjernbetjening skal pege mod varmepumpen (afstand 6 m.)

Manual KlimaC SMS Box. Dioder for fjernbetjening skal pege mod varmepumpen (afstand 6 m.) Manual KlimaC SMS Box Dioder for fjernbetjening skal pege mod varmepumpen (afstand 6 m.) Opstart Isætning af SIM kort: SIM-kortet SKAL være uden Pin-kode, koden fjernes nemmest ved at isætte SIM-kortet

Læs mere

SMSRemote manual. 019D903122_01 LKIHCSMSRemote Schneider Electric Danmark A/S - All rights reserved

SMSRemote manual. 019D903122_01 LKIHCSMSRemote Schneider Electric Danmark A/S - All rights reserved SMSRemote manual 019D903122_01 LKIHCSMSRemote Schneider Electric Danmark A/S - All rights reserved Indledning SMSRemote er en applikation til smartphones til let kommunikation med LK SMS Modem når det

Læs mere

Alde Smart Control App

Alde Smart Control App Brugs- og installationsanvisning til Alde Smart Control Android Alde Smart Control App iphone 2 Lynguide 3 Brugsanvisning 4 Indledning 4 Appen Alde Smart Control 5 Appen Alde smart control - hovedmenu

Læs mere

WebAccess og dets moduler for ECL Comfort 200/300

WebAccess og dets moduler for ECL Comfort 200/300 for ECL Comfort 200/300 Anvendelse WebAccess muliggør: Fjernstyring og -overvågning via internet/ intranet Konfigurerbare alarmindstillinger og notifikation af eksterne modtagere via e-mail/sms Datalogning

Læs mere

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4

15. oktober. Maskine Udlejning. Jacob Weng, Jeppe Boese og Mads Anthony. Udlejningsvirksomhed. Roskilde Tekniske Gymnasium 3.4 Maskine Udlejning 15. oktober 2010 Jacob Weng, Jeppe Boese og Mads Anthony Roskilde Tekniske Gymnasium Udlejningsvirksomhed 3.4 Indholdsfortegnelse Problemformulering:... 2 Planlægning:... 2 Analyse af

Læs mere

STOFA VEJLEDNING SAFESURF INSTALLATION

STOFA VEJLEDNING SAFESURF INSTALLATION STOFA VEJLEDNING SAFESURF INSTALLATION Denne vejledning gennemgår installationsproceduren af SafeSurf, og herefter de tilpasningsmuligheder man kan benytte sig af. Trin 1 Installationen starter med at

Læs mere

MCE9637 DeviceNet Modul

MCE9637 DeviceNet Modul Kokkedal Industripark 4 DK-2980 Kokkedal DANMARK Tlf: +45 49 18 01 00 Fax: +45 49 18 02 00 MCE9637 DeviceNet Modul MCE9637 til overførsel af status og vægt for digitale vejeceller Gælder for: PIC nr.:

Læs mere

Brugersiderne for renteberegninger. Indhold. 1. Indledning. Anvendelse af. (Version 28. september 2014)

Brugersiderne for renteberegninger. Indhold. 1. Indledning. Anvendelse af. (Version 28. september 2014) Anvendelse af Brugersiderne for renteberegninger. (Version 28. september 2014) Indhold Brugersiderne for renteberegninger.... 1 1. Indledning... 1 2. Forudsætninger... 4 3. Indtastning af udbetaling/skyldigt

Læs mere

MANUAL. Siteloom CMS

MANUAL. Siteloom CMS MANUAL Siteloom CMS www.hjerteforeningen.dk/cms Brugernavn: Password: 3. oktober, 2013 BASIS FUNKTIONER 1. Kalender... 4 1.a. Opret... 5 1.b. Rediger eller slet... 9 2. Sider...12 2.a. Opret side...13

Læs mere

Kom godt i gang med Icotera fiberboks. med indbygget router. 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev06.indd 1

Kom godt i gang med Icotera fiberboks. med indbygget router. 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev06.indd 1 Kom godt i gang med Icotera fiberboks med indbygget router 25562 - TRE BRE booklet 120x120 fiberboks ICOTERA rev06.indd 1 04-10-2012 10:25:12 Tillykke med din nye fiberboks Inden du får glæde af fiberbredbåndet,

Læs mere