classe : PotentLineaire

package
{
import com.richard_gauthier.potentiometre.PotentLineaire;
import flash.display.Sprite;
/**
* ...
* @author Richard GAUTHIER
*/
   public class Main extends Sprite
   {
      //Créer l'objet potentiomètre
      private var potentiometre : PotentLineaire = new PotentLineaire(0, 200, 40);

      public function Main()
      {
         //positionner l'objet sur la scène
         potentiometre.x = 40;
         potentiometre.y = 20;

         //mettre l'objet sur la scène
         addChild(potentiometre);

         //créer un écouteur qui appellera la fonction chgValeur
         potentiometre.dispatcher.add(chgValeur);

      }

      //la fonction chgValeur du potentiomètre
      private function chgValeur(valeur : Number):void
      {
         //affiche la valeur dans la fenêtre output
         trace(valeur);
      }

   }

}

 Sysml de classe

classe : NiveauBatterie

package
{
import com.richard_gauthier.NiveauBatterie.NiveauBatterie;
import com.richard_gauthier.potentiometre.PotentLineaire;
import flash.display.Sprite;
/**
* ...
* @author Richard GAUTHIER
*/
public class vision extends Sprite
{
//Créer l'objet potentiometre
private var potentiometre : PotentLineaire = new PotentLineaire(0, 100, 40);

//Créer l'objet NiveauBatterie
private var niveauBatterie : NiveauBatterie = new NiveauBatterie(100 , 40);

public function vision()
{
//positionner l'objet sur la scène
potentiometre.x = 40;
potentiometre.y = 80;

//mettre l'objet sur la scène
addChild(potentiometre);

//créer un écouteur qui appellera la fonction chgValeur
potentiometre.dispatcher.add(chgValeur);

//positionner l'objet sur la scène
niveauBatterie.x = 40;
niveauBatterie.y = 20;

//modifie la valeur de la batterie
//s'exprime eb pourcentage
niveauBatterie.setValue(potentiometre.valeurPotentiometre());

//mettre l'objet sur la scène
addChild(niveauBatterie);

}

//la fonction chgValeur du potentiometre
private function chgValeur(valeur : Number):void
{
//affiche la valeur dans la fenêtre output
trace(valeur);

//modifie la valeur de la batterie
niveauBatterie.setValue(valeur);

}

}

}

 
 Sysml
 

classe : CompteurAiguille

package
{
   import com.richard_gauthier.CompteurAiguille.CompteurAiguille;
   import com.richard_gauthier.CompteurAiguille.CompteurAiguilleVide;
   import com.richard_gauthier.NiveauBatterie.NiveauBatterie;
   import com.richard_gauthier.potentiometre.PotentLineaire;
   import flash.display.Sprite;
/**
* @author Richard GAUTHIER
* Professeur en STI2D
* Lycée Paul Sérusier
* 29270 CARHAIX
*/
   public class vision extends Sprite
   {
      //Créer l'objet potentiometre
      private var potentiometre : PotentLineaire = new   PotentLineaire(0, 100, 40);

      //Créer l'objet compteur
      private var compteur : CompteurAiguille = new CompteurAiguille("Capteur","V",0,200);

      public function vision()
      {
         //positionne l'objet sur la scène
         compteur.x = 0;
         compteur.y = 0;

         //modifie la valeur de l'objet
         chgValeur(potentiometre.valeurPotentiometre());

         //met l'objet sur la scène
         addChild(compteur);

         //positionne l'objet sur la scène
         potentiometre.x = compteur.width / 2 -          potentiometre.width/2;
         potentiometre.y = compteur.height;

         //mettre l'objet sur la scène
         addChild(potentiometre);

         //creer un ecouteur qui appelera la fonction chgValeur
         potentiometre.dispatcher.add(chgValeur);

         
      }

      //la fonction chgValeur du potentiometre
      private function chgValeur(valeur : Number):void
      {

         var calcul : Number;

         //equation du capteur
         calcul = valeur * 2;

         //affiche la valeur dans la fenêtre output
         trace(calcul);

         //modifie la valeur de la batterie
         compteur.setValue(calcul);

      }

   }

}

 

 
  

package
{
import com.richard_gauthier.AfficheurLCD.AfficheurLCD;
import com.richard_gauthier.BoutonOnOff.BoutonOnOff;
import com.richard_gauthier.CompteurAiguille.CompteurAiguille;
import com.richard_gauthier.CompteurLCD.CompteurLCD;
import com.richard_gauthier.ExtendsClass.ExtendsClass;
import com.richard_gauthier.JaugeAiguille.JaugeAiguille;
import com.richard_gauthier.JaugeHorizontale.JaugeHorizontale;
import com.richard_gauthier.potentiometre.PotentLineaire;
import com.richard_gauthier.texte.Label;
import com.richard_gauthier.Voyant.Voyant;
import flash.events.MouseEvent;

/**
* ...
* @author Richard GAUTHIER
*/
public class IHM extends ExtendsClass
{

private var boutonOnOff : BoutonOnOff = new BoutonOnOff("DO2");

private var jauge : JaugeHorizontale = new JaugeHorizontale("Le Titre","Unité",0,100);

private var jaugeAiguille : JaugeAiguille = new JaugeAiguille("Le Titre","Unité",0,100);

private var montexte : Label = new Label();

private var afficheurLCD : AfficheurLCD = new AfficheurLCD("Le Titre","Unité");

private var compteur : CompteurLCD = new CompteurLCD("Compteur 1","Unité",0xffff00);

private var voyant1 : Voyant = new Voyant("Voyant 1",0xffff00);

private var compteurAiguille : CompteurAiguille = new CompteurAiguille("Compt Aigui","Unité",0,200,0x00ffff);

private var potentiometre :PotentLineaire = new PotentLineaire(0, 100, 20);

public function IHM()
{
titre.setTitre("IHM STI2D");
titre.btRetourVisible(false);
titre.redessineBarre(800, 60);


boutonOnOff.x = 20;
boutonOnOff.y = titre.height + 10;
boutonOnOff.addEventListener(MouseEvent.CLICK, cliqueOnOff);
addChild(boutonOnOff);

voyant1.x = boutonOnOff.width + 20;
voyant1.y = titre.height + 10;
addChild(voyant1);

jauge.y = boutonOnOff.y + boutonOnOff.height + 20;
addChild(jauge);


jaugeAiguille.y = jauge.y + jauge.height + 20;
addChild(jaugeAiguille);

montexte.y = jaugeAiguille.y + jaugeAiguille.height + 20;
addChild(montexte);

afficheurLCD.y = titre.height + 10;
afficheurLCD.x = jauge.x+jauge.width;
addChild(afficheurLCD);

compteur.y = afficheurLCD.y + afficheurLCD.height-20;
compteur.x = largeurEcran - compteur.width;
addChild(compteur);

compteurAiguille.y = afficheurLCD.y + afficheurLCD.height+100;
compteurAiguille.x = jaugeAiguille.width +20;
compteurAiguille.scaleX = 0.8;
compteurAiguille.scaleY = 0.8;

addChild(compteurAiguille);

potentiometre.y = hauteurEcran - potentiometre.height;
potentiometre.x = largeurEcran/2 -potentiometre.width/2
addChild(potentiometre);
potentiometre.dispatcher.add(chgValeur);



chgValeur(potentiometre.getValue());
}

private function cliqueOnOff(e:MouseEvent):void
{
voyant1.setValue(boutonOnOff.getValue());
}

private function chgValeur(valeurPoten:Number):void
{
jauge.setValue(valeurPoten);

jaugeAiguille.setValue(valeurPoten);

montexte.setText("" + valeurPoten + " Unité");

afficheurLCD.setValue(valeurPoten);

compteur.setValue(valeurPoten);

compteurAiguille.setValue(valeurPoten);
}

}

}

 

 


Pour réaliser l'énergie mètre à l'aide d'une carte arduino yun, il faut télécharger les fichiers ( ici ) et l'application sur google play. 



Pour commander une carte arduino à l'aide d'une liaison bluetooth, il faut télécharger le fichier arduino et l'application sur google play. 

 

<?PHP 
$umido = file_get_contents ("http://localhost/arduino/idro"); 
$tempe = file_get_contents ("http://localhost/arduino/termo"); 
date_default_timezone_set('UTC'); 
$save= date( 'd.M.Y H:i')."|".$umido."|".$tempe."\n"; 
$write_file = fopen("/mnt/sda1/php/datilog.txt","a"); 
fwrite($write_file,$save); 
fclose($write_file); 
?>

Fonte: Moddingstudio.com - Primo Esperimento con Arduino YUN http://www.moddingstudio.com/content.php?1709-Primo-Esperimento-con-Arduino-YUN#ixzz2wahy6CZU

Code arduino yun :

#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>

// Démarrage de YunServer. Cettr classe réceptionne
// toutes les requêtes transférées par le serveur web côté Linux.
YunServer server;

void setup() {
   // Démarrage du Bridge
   Bridge.begin();

   //Serial.begin(9600);

   // Lance l'écoute du YunServer sur le réseau
   server.listenOnLocalhost();
   server.begin();

   //initialisation de la borne 2 en sortie
   pinMode(2,OUTPUT);

}

void loop() {

   // Réceptionne les éventuels clients
   YunClient client = server.accept();

    //Test si un client est connecté
    if (client) {
    //Oui il y a un client
    //Récupère la requête envoyée par le client
    String command = client.readStringUntil('\r');

    //traite la requête
    if(command == "DO2=1") digitalWrite(2,HIGH);
    else if(command == "DO2=0") digitalWrite(2,LOW);
    else if(command == "A0") client.print( analogRead(A0));

     //Serial.print(command);

     //Renvoie une valeur
     //client.print("ok");

     //Fermeture de la connexion et libèration des ressources
     client.stop();


}

}

 

Code as3 :

package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.MouseEvent;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;

/**
* ...
* @author richard gauthier

*/
public class Main extends Sprite
{

    public function Main():void
   {

     

      //sendData("http://192.168.240.1/arduino/DO2=1");
      sendData("http://arduino.local/arduino/DO2=1");

    }


    public function sendData(url:String):void
   {
     var _url:URLRequest = new URLRequest(url);
     var chargement:URLLoader = new URLLoader();
     

     chargement.addEventListener(Event.COMPLETE, finChargement); 
     chargement.addEventListener(IOErrorEvent.IO_ERROR, erreurChargement);
     chargement.load(_url);
    }

    private function finChargement(event:Event):void
    {

         //Ecrit dans la boite de sortie (output) la valeur reçue
         trace(event.target.data);
         
    }

    private function erreurChargement(event:IOErrorEvent):void
    {
       trace("Erreur de chargement de l'URL.");
    }

 }

}

 

Fil de navigation