AquaEco (4 / 6 stap)

Stap 4: Software

In plaats van het uitleggen van de hele code, zijn wij van plan om zich te concentreren op de belangrijkste sw die controles van de belangrijkste hardware-eenheden in dit project gebruikt.

1. Temperatuurbewaking

Hieronder is een eenvoudige functie van het project dat de temperatuur van de sensor leest en converteert deze naar Celsius. De intel MRAA library is gebruikt voor de interactie met de analoge io.

float ReadTemperature(mraa::Aio *t)
{

zweven weerstand = 0.0f;

zweven temperatuur = 0.0f;

int een = t -> read();

Const int B = 3975;

Resistance=(float)(1023-a) * 10000/a; krijgen van de weerstand van de sensor;

temperatuur = 1 / (log (weerstand/10000) /B+1/298.15)-273.15;//convert tot temperatuur via het gegevensblad;

Sleep(1) daarvoor;

retourneren van de temperatuur;

}

2. servo control

Hieronder is een codefragment waarin we de Intel UPM-module gebruiken om te controleren de servo.

g_servo = nieuwe upm::ES08A(3);
int hoek = 20;

int cnt = 0;

Deze code een langzame en gestage servo beweging, terwijl het voederen van de vissen.

De hoeken is afhankelijk van de eenheid en de richting van de feeder zo Wijzig deze zo nodig.

Als (g_servo)
{

terwijl (hoek < 180)

{

hoek = hoek == 0? hoek = 90:0;

g_servo -> setAngle(angle);

hoek += 170;

Sleep(1) daarvoor;

}

CNT ++;

}

3. GPIO init voor relay

relGpio = nieuwe mraa::Gpio(3,true,false);
Als (! relGpio)

{

printf ("Failed to create digitale pin\n");

retourneren -1;

}

reactie = relGpio -> dir(mraa::DIR_OUT);

Als (antwoord! = MRAA_SUCCESS)

mraa_result_print((mraa_result_t) MRAA_SUCCESS);

De werkelijke relay switch zet/van het wordt gedaan door de onderstaande code:

relGpio -> write(relay_switch); 0 = relay_switch_on, 1 = relay_switch_off

Gerelateerde Artikelen