Avant toute chose merci de (re)prendre connaissance de la charte et de la respecter.
Pour résumer :
- Avant de poser une question, je cherche si la réponse existe
- Je suis poli, courtois et je respecte tout un chacun sur le forum
- Si un post m'agace : je m'en éloigne plutôt que de répondre d'une façon qui pourrait être mal interprétée


Il n'est jamais du luxe que de rappeler des choses simples :
Courtoisie, amabilité, politesse et bonne humeur sont les maîtres mots pour un forum sympathique, bienveillant et accueillant :)

Le groupe des Helpers est present pour vous aidez, n'hésitez pas à poser des questions ;)

Toute la communauté vous remercie

/!\ L’ancien forum passera en lecture seule en janvier 2020 (Si community a bien pris le relais) puis nous le fermerons définitivement en janvier 2021./!\
Merci de vous rendre sur https://community.jeedom.com maintenant pour vos prochains postes ;)

[DIY] Mon Radio Réveil Domotique

Pour parler de tout, et surtout de rien !
Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 25 juil. 2018, 09:56

ben disons que moi j'aurais souhaité affiché une info (style température ) en permanence donc jouer avec un delay c'est un peu embetant...

J'ai splitté mon afficheur en 2 * 4 comme tu peux voir sur les photos et les 4 matrices du bas me servent d'afficheur de notification.

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 25 juil. 2018, 12:49

effectivement. Je n'ai pas ce problème avec 1 seule zone. Vu que je me lancer dans l'écriture complète, je n'ai pas voulu me complexifier les choses, en tout cas dans la première version du code.

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 25 juil. 2018, 13:05

après qu'il y ai une ou 8 zones cela ne change rien ... le soucis du delay est toujours le même c'est de ce coté la que je vais plancher quand j'aurai un peu de temps .. pour le moment le réveil est fonctionnel depuis pres de 2 semaines :)

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 27 juil. 2018, 10:00

On est bien d'accord concernant l'utilisation des delay. Je vais essayer de changer cela lors de la prochaine version en ajouter aussi un MAJ OTA, ce qui sera plus simple.

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 28 juil. 2018, 11:14

Jamais réussi avec l'ota de mon coté, je sais pas si c'est un soucis de python ou autre mais ca passe pas

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 28 juil. 2018, 12:24

Hello, j'ai testé et pour le coup j'ai eu aussi un soucis avec python mais après réinstallation j'ai réussi.
Seul hic, pas de serial monitor en OTA mais plus besoin d'être collé à l'ESP pour les modifs.

Envoyé de mon SM-G950F en utilisant Tapatalk


Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 28 juil. 2018, 12:39

Tu as du juste réinstaller python 2.7 sur ton pc ? et c'est passé... c'est un gros avantage je trouve surtout pour le réveil car moi je dois toujours tout démonter... c'est pourquoi j'ai programmer les deux boutons avec 3 actions chacun, le premier laissé celui de byfeel et le deuxième 3 scénarios id dans jeedom, comme ca je modifie juste les scénarios et rien d'autres dans l'esp :)

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 28 juil. 2018, 12:46

Malin ;-) oui c'est passé surtout avec l'option qui va bien (voir la photo c'est pareil en version 3.7). Je te copie mon code pour l'OTA dans la journée.
windows-setup-run-the-python-installer.jpeg
windows-setup-run-the-python-installer.jpeg (52.47 Kio) Consulté 499 fois
Envoyé de mon SM-G950F en utilisant Tapatalk


Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 28 juil. 2018, 12:51

okay :) merci

domokalu
Timide
Messages : 33
Inscription : 02 mars 2016, 23:03

Re: [DIY] Mon Radio Réveil Domotique

Message par domokalu » 01 août 2018, 15:42

Bonjour,

Je me lance dans ce projet dès que j'ai tout reçu, cependant il manque le principal pour les non-équipés comme moi.... la boîte :oops:

C'est du DIY également ou il y a un bon plan qq part ?

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 01 août 2018, 17:33

Diy

Envoyé de mon Redmi 5 Plus en utilisant Tapatalk


weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 21 oct. 2018, 10:47

Suite à d'autre besoin, j'ai revu entièrement mon code, cette fois-ci sans delay, uniquement en millis et avec un ensemble de fonctions :

- Récupération des valeurs température et consommation sur le Jeedom pour affichage des informations.
- Arrêt/Démarrage écran en fonction de la présence ou bouton
- Intégration d'une sonde BMP280 pour remonter la valeur dans Jeedom
- MAJ via OTA
- Affichage de l'heure via NTPClient

Je reste bien sûr ouvert à toutes remarques/amélioration, surtout avec le niveau de novice en code.

Code : Tout sélectionner

//Déclaration des librairies
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
#include <Wire.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>

//******* OTA ********
#include <WiFiUdp.h>
#include <ArduinoOTA.h>

//******* NTP ********
#include <NTPClient.h>

//Configuration MAX7219
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4
#define CS_PIN    D6
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

//-------BMP----------
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11 
#define BMP_CS 10

Adafruit_BMP280 bmp;

// ----NTP-----
WiFiClient espClient;
WiFiUDP ntpUDP;
int16_t utc = +2;
NTPClient timeClient(ntpUDP, "ntp.univ-lyon1.fr", utc*3600, 600000);

// ----WIFI-----
const char* ssid = "Wifi";
const char* password = "xxxxxxxx";

//Déclaration variables
HTTPClient http;
String jeedom_url = "http://192.168.1.xxx/core/api/jeeApi.php?apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&type=cmd&id=";
String jeedom_url_post = "http://192.168.1.xxx/core/api/jeeApi.php?plugin=virtual&apikey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&type=virtual&id=";
String id_temp = "322";
String id_conso = "1278";
String id_journuit = "406";
String id_prox = "1117";
String prox = "2";
String journuit = "1";
String temp = "";
String conso = "";
String unit_conso = "kW";
#define BUF_SIZE 75
char temperature[BUF_SIZE] = "%%%%%";
char consomm[BUF_SIZE] = "%%%%%";
char temps[BUF_SIZE] = "1";
uint8_t degC[] = { 6, 3, 3, 56, 68, 68, 68 }; // Deg C
uint8_t pts[] = { 5, 64, 0, 64, 0, 64 }; // 3 points
char szMesg[20] = "";

//BMP280
float pressure;
float hpascals;

//Gestion du temps
unsigned long previousMillisSensor = 0;
unsigned long previousMillisGeneral = 0;
const unsigned long TIME_SENSOR = 30000; //30 secondes
const unsigned long TIME_GENERAL = 300000; // 5 minutes

//Button
const int button = D3;
int buttonState;

//################# SETUP ########################################
void setup()
{
  Serial.begin(115200);
  ArduinoOTA.setHostname("MAX7219");
  P.begin();
  P.setIntensity(5);
  
  //Wifi
  WiFi.mode(WIFI_STA);
  WiFi.disconnect();
  delay(500);
  WiFi.begin(ssid, password);
  WiFi.hostname("ESP_Salon");
  
  while (WiFi.status() != WL_CONNECTED) {
    Serial.println();
    Serial.println("Connecting..");
    P.print("Start.");
    delay(4000);
   }
   
   Serial.print("Connecting to ");
   Serial.println(ssid);
   Serial.println("WiFi connected");  
   Serial.print("IP address: ");
   Serial.println(WiFi.localIP()); 
   P.print("Wifi ok");
   delay(2500);
   timeClient.begin();
  
  //Display
  P.displayText(szMesg, PA_CENTER, 25, 5000, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
  P.addChar('$', degC);
  P.addChar('%', pts);
  delay(2500);
  P.displayClear();

  // OTA

ArduinoOTA.onStart([]() {
    Serial.println("Start");
  });
  ArduinoOTA.onEnd([]() {
    Serial.println("\nEnd");
  });
  ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) {
    Serial.printf("Progress: %u%%\r", (progress / (total / 100)));
  });
  ArduinoOTA.onError([](ota_error_t error) {
    Serial.printf("Error[%u]: ", error);
    if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed");
    else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed");
    else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed");
    else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed");
    else if (error == OTA_END_ERROR) Serial.println("End Failed");
  });
  ArduinoOTA.begin();
  bmp.begin();

// Déclaration bouton
pinMode(button, INPUT_PULLUP);

//MAJ NTP pour première
timeClient.update();
String TM=timeClient.getFormattedTime().substring(0,5);
TM.toCharArray(temps,50);
}

//#####################LOOP######################################
void loop()
{
buttonState = digitalRead(button);

unsigned long currentMillis = millis();

//----------------- GET PARAMETERS ---------------------
  if (currentMillis - previousMillisGeneral >= TIME_GENERAL) {
  previousMillisGeneral = currentMillis;

    http.begin(jeedom_url+id_prox);
    int httpCode = http.GET();
    if (httpCode > 0) {
      prox = http.getString();
      http.end();
      delay(50);
      Serial.print("Promixité : ");
      Serial.println(prox);
    }

    http.begin(jeedom_url+id_journuit);
    httpCode = http.GET();
    if (httpCode > 0) {
      journuit = http.getString();
      http.end();
      Serial.print("Jour / Nuit : ");
      Serial.println(journuit);
    }
    
    //Read data
  pressure = bmp.readPressure();
  hpascals = (pressure/100)+34;
  Serial.println(hpascals);

  if (isnan(pressure)) {
      Serial.println("BMP280 inaccessible!");
  }
  else{
  String urlp = jeedom_url_post+"1194&value="+hpascals;
  http.begin(urlp);  //Virtuel Pression
  httpCode = http.GET();
  http.end();
  Serial.println(urlp);
  }
    
  }

static uint8_t  display = 0;

if (journuit=="1"){
  P.setIntensity(3);
}
else {
  P.setIntensity(0);
}

if (prox=="0" || buttonState == LOW){
P.displayClear();
Serial.print("Pause");
delay(60000);
  }
else
  {

// ------------ GET INFO CAPTEUR -------------------------------

  if (currentMillis - previousMillisSensor >= TIME_SENSOR) {
  previousMillisSensor = currentMillis;

    http.begin(jeedom_url+id_temp);
    int httpCode = http.GET();
    if (httpCode > 0) {
      String temp = http.getString()+"$";
      temp.toCharArray(temperature,50);
      http.end();
      Serial.print("Température : ");
      Serial.println(temperature);
      delay(50);
    }
    
    http.begin(jeedom_url+id_conso);
    httpCode = http.GET();
    if (httpCode > 0) {
      String conso = http.getString()+unit_conso;
      conso.toCharArray(consomm,50);
      http.end();
      Serial.print("Consommation : ");
      Serial.println(consomm);
    }

    timeClient.update();
    String TM=timeClient.getFormattedTime().substring(0,5);
    TM.toCharArray(temps,50);
    Serial.print("Horloge : ");
    Serial.println(temps);
  }
  
  if (P.displayAnimate())
  {
    switch(display)
    {
      case 0: //Temp
      P.setTextEffect(0, PA_OPENING, PA_CLOSING);
      P.setPause(10000);
      display++;
      strcpy(szMesg,temperature);
      break;
      
      case 1: //Conso
      P.setTextEffect(0, PA_GROW_UP, PA_GROW_DOWN);
      P.setPause(5000);
      display++;
      strcpy(szMesg,consomm);
      break;

      case 2: //Temp
      P.setTextEffect(0, PA_OPENING, PA_CLOSING);
      P.setPause(10000);
      display++;
      strcpy(szMesg,temperature);
      break;
      
      default:
      P.setTextEffect(0, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
      P.setPause(5000);
      display = 0;
      strcpy(szMesg,temps);
      break;
    }
    P.displayReset();
  }
 } //prox
ArduinoOTA.handle();
}

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 21 oct. 2018, 10:54

IL faudrait que je le teste dès réception de mon 3eme afficheur tiens ;)

tu as plus d'infos sur le cablage?

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 21 oct. 2018, 11:07

Oui, CLK --> D5, CS --> D6, DIN --> D7 avec GND et VCC en 3,3V/

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 21 oct. 2018, 11:08

et pour sonde et bouton ?

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 21 oct. 2018, 11:23

D3 et GND pour le bouton et la sonde sur les ports I2C (D1 et D2) + VCC et GND

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 21 oct. 2018, 11:46

le tout sur un wemos? merci pour les infos

weado
Timide
Messages : 205
Inscription : 15 janv. 2017, 22:19

Re: [DIY] Mon Radio Réveil Domotique

Message par weado » 21 oct. 2018, 11:56

Non, je me suis mis sur un NodeMCU Lolin. Par contre, je galère pour trouver une solution esthétique. C'était de la récup ton verre/plexi que tu as en façade ?

Avatar de l’utilisateur
dcjona
Actif
Messages : 1525
Inscription : 16 juil. 2017, 11:06

Re: [DIY] Mon Radio Réveil Domotique

Message par dcjona » 21 oct. 2018, 12:18

oui récup du plexi transparent d'un tft 19" a la base et le film blanc derrière pour masquer pareil...
Tu as aussi la possibilité d'imprimer un boiter 3D...
J'ai aussi des afficheurs WS2812B en matrice de 8*8 et j'aimerais bien tenter aussi via celles la mais ca parait plus complexe...

Thyer
Timide
Messages : 163
Inscription : 30 mai 2017, 09:51
Localisation : Lorraine

Re: [DIY] Mon Radio Réveil Domotique

Message par Thyer » 21 oct. 2018, 23:46

Salut,
J'en prépare un autre pour ma fille à base de Légo (Thème Mario Bros), si ça peux donner des idée :D
LEGO.jpg
LEGO.jpg (332.51 Kio) Consulté 370 fois

Répondre

Revenir vers « Discussions Générales »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité