AquaEco (4 / 6 étapes)

Étape 4: logiciels

Au lieu d’expliquer l’ensemble du code, nous avons l’intention de se concentrer sur la clé sw qui contrôle les unités de matériel principal utilisées dans ce projet.

1. surveillance de la température

Voici une fonction simple de ce projet qui lit la température du capteur et le convertit en degrés Celsius. L’intel MRAA bibliothèque est utilisée pour interagir avec les e/s analogiques.

flotteur ReadTemperature(mraa::Aio *t)
{

flotteur de résistance = 0.0f ;

flotteur de température = 0.0f ;

int a = t -> read() ;

const int B = 3975 ;

Resistance=(float)(1023-a) * 10000/a ; obtenir la résistance de la sonde ;

température = 1 / (Journal (résistance/10000) /B+1/298.15)-273.15;//convert à la température via la feuille de données ;

Sleep(1) ;

Retour à la température ;

}

2. servo control

Voici un extrait de code dans laquelle nous utilisons le module Intel UPM pour contrôler le servo.

g_servo = new upm::ES08A(3) ;
angle int = 20 ;

cnt int = 0 ;

Ce code un mouvement lent et régulier de servo, tout en se nourrissant de poissons.

Les angles dépendent de l’unité et l’orientation de la mangeoire donc changer ceux-ci au besoin.

Si (g_servo)
{

tandis que (angle < 180)

{

angle = angle == 0? angle = 90:0 ;

g_servo -> setAngle(angle) ;

angle += 170 ;

Sleep(1) ;

}

CNT ++ ;

}

3. GPIO init pour relais

relGpio = new mraa::Gpio(3,true,false) ;
Si (! relGpio)

{

printf ("Impossible de cr├⌐er pin\n numérique") ;

Retourne -1 ;

}

réponse = relGpio -> dir(mraa::DIR_OUT) ;

Si (réponse! = MRAA_SUCCESS)

mraa_result_print((mraa_result_t), MRAA_SUCCESS) ;

Véritable relais commutateur tournant marche/arrêt est effectué par le code ci-dessous :

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

Articles Liés