AquaEco (4 / 6 steg)

Steg 4: programvara

I stället för att förklara hela koden, avser vi att fokusera på viktiga sw som kontrollerar de viktigaste hårdvara enheter som används i detta projekt.

1. temperaturövervakning

Nedan är en enkel funktion från projektet som läser temperaturen från sensorn och omvandlar den till celcius. Intel MRAA biblioteket används att interagera med den analoga io.

float ReadTemperature(mraa::Aio *t)
{

flyta motstånd = 0.0f;

flyta temperatur = 0.0f;

int en = t -> read();

CONST int B = 3975;

Resistance=(float)(1023-a) * 10000/a; få motståndet av sensorn;

temperatur = 1 / (log (motstånd/10000) /B+1/298.15)-273.15;//convert till temperatur via databladet.

Sleep(1);

returnera temperatur;

}

2. servo kontroll

Nedan är ett kodstycke som vi använder modulen Intel UPM för att styra servo.

g_servo = ny upm::ES08A(3);
int vinkel = 20;

int cnt = 0;

Denna kod en långsam och stadig servo rörelse, medan utfodring av fisk.

Vinklar beror på enheten och orientering på mataren så ändra dessa efter behov.

om (g_servo)
{

medan (vinkel < 180)

{

vinkel = vinkel == 0? vinkel = 90:0;

g_servo -> setAngle(angle);

vinkel += 170;

Sleep(1);

}

CNT ++;

}

3. GPIO init för relä

relGpio = ny mraa::Gpio(3,true,false);
om (! relGpio)

{

printf ("kunde inte skapa digitala pin\n");

återvända -1;

}

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

om (svar! = MRAA_SUCCESS)

mraa_result_print((mraa_result_t) MRAA_SUCCESS);

Den faktiska relay switch slå på/av görs genom den nedan koden:

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

Se Steg
Relaterade Ämnen