Site arduino yun

Salut à tous,
En ce moment, je me suis fait un petit système pour pouvoir contrôler des relays à partir d'un site web. J'utilise l'Arduino Yun et un shield relay maison. J'ai réussi à faire mon site d'ailleurs ils ressemble à ça. http://www.noelshack.com/2016-24-1466364773-capture2.png
Mon problème est que je ne sais pas comment garder les informations en ligne. Je m'explique : quand je créé un bouton (scénario) avec certaines caractérisques, et que j'appuie sur ce bouton, certain relay ce déclenche et leurs voyants deviennent vert. Sauf que si je rafraichie ma pages, et bah je ne vois plus ces voyants vert mais rouge, et le bouton créé n'apparaît plus...
J'aurai voulu savoir dans quelle voie me lancer, sachant que j'ai mon site en HTML et Javascript.
Si vous voulez voir à quoi cela ressemble je vous mets mon dossier de travail dans ce lien : MEGA

UP :slight_smile:

VrTwiSt:
UP :slight_smile:

Entrez la clé de déchiffrage
Pour accéder à ce dossier/fichier, il vous faudra sa clef de déchiffrement.
Si vous n'avez pas la clef, prenez contact avec le créateur du lien.

comment veux tu voir le code sans clef de déchiffrage?

<!DOCTYPE html>
<html>
	<head>
		<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <!-- Encodage de la page  -->
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></script>
		<script type="text/javascript" src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
		<link rel="stylesheet" href="style.css"/>
	</head>
	<body>
		<script language ="javascript">
			$("button").button();
			var arrayFunction = [];
			
			function changeState(y)	{	//y
				$.ajax({
					type: "POST",
					url:"http://192.168.1.15/arduino/"+y+"/1"
				});
				changeColor(y);
			}
			
			function changeColor(z)	{	//z,x,v
				var x = document.getElementById(z+0.2);
				var v = x.getAttribute("src");
				if(v == "rouge.png")
					v = "vert.png";
				else
					v = "rouge.png";
				x.setAttribute("src", v);
			}
			
			function add()	{	//counter,element,btn,val,str,i
				var counter = 0;
				var element = document.getElementById("sc");
				var btn = document.createElement("BUTTON" );
				var val = document.getElementById("namebtn").value;
				var str = document.createTextNode(val);
				for (i=8; i <= 12; i++)
				{
					if (document.getElementById(i).checked == true)
					{
						arrayFunction[counter] = i;
						counter = counter + 1;
					}
				}
				btn.setAttribute("onClick","setFunction(" + counter + ")");
				btn.appendChild(str);
				element.appendChild(btn);
			}
			
			function setFunction(a)	{	//a,b
			
				for (b=0; b<=(a-1); b++)
				{
					changeState(arrayFunction[b]);
				}
			}
		</script>
		
		<form>
			<fieldset>
				<legend>Interraction directe</legend>
				<div id="Button">
					<input type="button" id="8.1" value="8" onclick="changeState(8)">
						<img id="8.2" src="rouge.png"/>
						
					<input type="button" id="9.1" value="9" onclick="changeState(9)">
						<img id="9.2" src="rouge.png"/>
						
					<input type="button" id="10.1" value="10" onclick="changeState(10)">
						<img id="10.2" src="rouge.png"/>
						
					<input type="button" id="11.1" value="11" onclick="changeState(11)">
						<img id="11.2" src="rouge.png"/>
						
					<input type="button" id="12.1" value="12" onclick="changeState(12)">
						<img id="12.2" src="rouge.png"/>
				</div>
			</fieldset>	
			
			<fieldset>
				<legend>Création de scénario</legend>
				<div id="CreateSC">
					<div id="checks">
						<input type="checkbox" id="8"> 8

						<input type="checkbox" id="9"> 9

						<input type="checkbox" id="10"> 10

						<input type="checkbox" id="11"> 11

						<input type="checkbox" id="12"> 12

					</div>
				</div>
				<div id="CreateBtn">
					<input type="text" id="namebtn">
					<input type="button" id="addbtn" value="Add Button" onclick="add()">
				</div>
			</fieldset>
		</form>
		
		<fieldset id="sc">
			<legend>Scénario</legend>
		</fieldset>
	</body>
</html>

voici le code problème de lien avec le site MEGA… Les images rouge.png et vert.png sont les “voyants” :wink:
Désolé de ne pas avoir remarqué …

déjà en rafraichissant la page, normal, tu attribue des png automatiquemnt.

<input type="button" id="8.1" value="8" onclick="changeState(8)">
						<img id="8.2" src="rouge.png"/>
						
					<input type="button" id="9.1" value="9" onclick="changeState(9)">
						<img id="9.2" src="rouge.png"/>
						
					<input type="button" id="10.1" value="10" onclick="changeState(10)">
						<img id="10.2" src="rouge.png"/>
						
					<input type="button" id="11.1" value="11" onclick="changeState(11)">
						<img id="11.2" src="rouge.png"/>
						
					<input type="button" id="12.1" value="12" onclick="changeState(12)">
						<img id="12.2" src="rouge.png"/>

si tu mettais la partie arduino aussi, car là, tu te sers que de la partie openwrt du yun.
au pire, tu peux inscrire dans un fichier txt les données, les lire et les réinjecter dans ta page html après

#include <Bridge.h>
#include <BridgeServer.h>
#include <BridgeClient.h>

int lastState8;
int lastState9;
int lastState10;
int lastState11;
int lastState12;

String check;
 
BridgeServer serveur;
 
void setup() {
  Bridge.begin();
  serveur.begin();
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
}
 
void loop() {
  int State8;
  int State9;
  int State10;
  int State11;
  int State12;
  
  BridgeClient client = serveur.accept();  
             
  if (client) {
    check = client.readStringUntil('/');
        
    if (check == "8") {
      State8 = client.parseInt();
      if (State8 == lastState8) {
        digitalWrite(8,LOW);
        lastState8 = 0;
      }
      else if (State8 != lastState8){
        digitalWrite(8,HIGH);
        lastState8 = 1;
      }
    }
    
    
    if (check == "9") {
      State9 = client.parseInt();
      if (State9 == lastState9) {
        digitalWrite(9,LOW);
        lastState9 = 0;
      }
      else if (State9 != lastState9){
        digitalWrite(9,HIGH);
        lastState9 = 1;
      }
    }

    if (check == "10") {
      State10 = client.parseInt();
      if (State10 == lastState10) {
        digitalWrite(10,LOW);
        lastState10 = 0;
      }
      else if (State10 != lastState10){
        digitalWrite(10,HIGH);
        lastState10 = 1;
      }
    }
    
    if (check == "11") {
      State11 = client.parseInt();
      if (State11 == lastState11) {
        digitalWrite(11,LOW);
        lastState11 = 0;
      }
      else if (State11 != lastState11){
        digitalWrite(11,HIGH);
        lastState11 = 1;
      }
    }

    if (check == "12") {
      State12 = client.parseInt();
      if (State12 == lastState12) {
        digitalWrite(12,LOW);
        lastState12 = 0;
      }
      else if (State12 != lastState12){
        digitalWrite(12,HIGH);
        lastState12 = 1;
      }
    }
        
    check = " ";
    client.stop();
    
  }
  delay(500); 
}

Voilà mon code arduino. le HTML permet d’écrire sur .txt ?? (je débute avec l’HTML) :wink: