Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
atelier:objet_connecte:lumiere [2018/10/20 01:00]
emoc [code photon]
atelier:objet_connecte:lumiere [2019/09/16 21:51]
emoc
Ligne 1: Ligne 1:
-====== Lumière ======+====== Lumière ​(photon + relais) ​====== 
 + 
 +Ce montage permet de commander un relais pour allumer une lampe de chevet à distance, par l'​intermédiaire d'une page web. \\ 
 +Attention, ce montage est relié au courant du secteur à 230V, prendre les précautions nécessaires!
  
 ===== composants ===== ===== composants =====
 +
 +  * 1 x particle photon
 +  * 1 x [[http://​wiki.seeedstudio.com/​Grove-Relay/​|module relais grove]]
 +  * 1 x bouton miniature
 +  * 1 x résistance 10k
 +  * 1 x plaque d'​essai
 +  * quelques fils de connexion
  
 ===== schéma du montage ===== ===== schéma du montage =====
Ligne 9: Ligne 19:
 ===== code photon ===== ===== code photon =====
  
-++++ Afficher ​le code |+Le relais est déclenché,​ soit directement par le bouton pour les tests, soit par une commande envoyée depuis la page web. La fonction interne du photon ''​controleLumiere''​ communique une valeur de retour à la page web selon l'​ordre qu'​elle a reçu. 
 + 
 +<​accordion>​ 
 +<panel title="​lumiere.phot (cliquer pour afficher le code)">​ 
 +<code c lumiere.phot>​ 
 +/* 
 +    Utilisation d'un relais pour déclencher une lampe de chevet reliée au secteur 
 +    Quimper, Dour Ru, 11 oct. 2018, pierre <at> lesporteslogiques.net 
 +    particle photon ​photon firmware 0.7.0 
 +    Code sous licence CC BY-SA 4.0 : https://​creativecommons.org/​licenses/​by-sa/​4.0/​deed.fr 
 +     
 +    Le relais peut être déclenché par le bouton du circuit ou par une commande web 
 + 
 +*/ 
 + 
 +int broche_led_interne = D7; 
 +int broche_relais = D4; 
 +int broche_bouton = D0; 
 + 
 +boolean lumiere_on = false; 
 + 
 +void setup() { 
 +  pinMode(broche_led_interne,​ OUTPUT); 
 +  pinMode(broche_relais,​ OUTPUT); 
 +  pinMode(broche_bouton,​ INPUT); 
 +  Particle.function("​lumiere",​ controleLumiere);​ 
 +
 + 
 +void loop() { 
 +  if (digitalRead(broche_bouton) == HIGH) { 
 +    lumiere_on = !lumiere_on;​ 
 +    if (lumiere_on) controleLumiere("​on"​);​ 
 +    else controleLumiere("​off"​);​ 
 +    delay(1000);​ 
 +  } 
 +
 + 
 +int controleLumiere(String commande) { 
 +  if (commande.equalsIgnoreCase("​on"​)) { 
 +    digitalWrite(broche_led_interne,​ HIGH); 
 +    digitalWrite(broche_relais,​ HIGH); 
 +    return 1; 
 +  } 
 +  else if (commande.equalsIgnoreCase("​off"​)) { 
 +    digitalWrite(broche_led_interne,​ LOW); 
 +    digitalWrite(broche_relais,​ LOW); 
 +    return 0; 
 +  } 
 +  return -1; 
 +
 +</​code>​ 
 +</​panel>​ 
 +</​accordion>​ 
 + 
 +++++ afficher ​le code |
 <code c lumiere.phot>​ <code c lumiere.phot>​
 /* /*
Ligne 61: Ligne 125:
 ===== code web ===== ===== code web =====
  
 +<​accordion>​
 +<panel title="​lumiere.html (cliquer pour afficher le code)">​
 <code javascript [enable_line_numbers="​true",​highlight_lines_extra="​37,​38,​39,​40"​] lumiere.html>​ <code javascript [enable_line_numbers="​true",​highlight_lines_extra="​37,​38,​39,​40"​] lumiere.html>​
 <​!DOCTYPE html> <​!DOCTYPE html>
Ligne 143: Ligne 209:
 </​html>​ </​html>​
 </​code>​ </​code>​
 +</​panel>​
 +</​accordion>​
  
 +++++ afficher le code |
 +<code javascript [enable_line_numbers="​true",​highlight_lines_extra="​37,​38,​39,​40"​] lumiere.html>​
 +<​!DOCTYPE html>
 +<​!-- ​
 +    Controle de relais à distance ​
 +    Quimper, Dour Ru, 11 oct. 2018, pierre <at> lesporteslogiques.net
 +    Code sous licence CC BY-SA 4.0 : https://​creativecommons.org/​licenses/​by-sa/​4.0/​deed.fr
 +-->
 +<​html>​
 +<​head>​
 +
 +<meta charset="​utf-8">​
 +<script src="​https://​code.jquery.com/​jquery-3.1.1.min.js"​ type="​text/​javascript"​ charset="​utf-8"></​script>​
 +
 +<style type="​text/​css">​
 +  div {
 +    width: 100px;
 +    height: 100px;
 +    background-color:​ white;
 +    position: absolute;
 +    top:0;
 +    bottom: 0;
 +    left: 0;
 +    right: 0;
 +    margin: auto;
 +  }
 +  input[type=button] {
 +    color: white;
 +    font-size: 1.5em;
 +    width: 100px;
 +    height: 100px;
 +  }
 +  .on  { background:​green;​ }
 +  .off { background:​red;​ }
 +</​style>​
 +
 +<​script>​
 +
 +// remplacer les * ci-dessous par le jeton d'​authentification
 +var accessToken = "​****************************************";  ​
 +// remplacer les * ci-dessous par l'​identifiant unique du photon
 +var deviceID = "​************************"; ​                   ​
 +var url = "​https://​api.particle.io/​v1/​devices/"​ + deviceID + "/​lumiere";​
 +
 +function basculerLumiere(item){
 +    ​
 +  function definirLumiere(message){
 +    $.post(url, {params: message, access_token:​ accessToken},​ callback, "​json"​);​
 +  } 
 +  ​
 +  function callback(data){
 +    if (data.return_value == 1) {
 +      item.className = "​off";​
 +      item.value = "​off";​
 +      document.body.style.backgroundColor = "#​FFFFFF";​
 +    }
 +    else if (data.return_value == 0) {
 +      item.className = "​on";​
 +      item.value = "​on";​
 +      document.body.style.backgroundColor = "#​000000";​
 +    }
 +    else if (data.return_value == -1) {
 +      alert("​Impossible de se connecter au Photon"​);​
 +    }
 +  }
 +    ​
 +  if(item.className == "​on"​) {
 +    definirLumiere("​on"​);​
 +  } else {
 +    definirLumiere("​off"​);​
 +  }
 +}
 +</​script>​
 +</​head>​
 +
 +<​body>​
 +  <div>
 +    <input type="​button"​ id="​bouton"​ class="​off"​ onClick="​basculerLumiere(this)"​ value="​off"/>​
 +  </​div>​
 +</​body>​
 +
 +</​html>​
 +</​code>​
 +++++
  • atelier/objet_connecte/lumiere.txt
  • Dernière modification: 2019/09/27 11:54
  • par emoc