Go Down

Topic: Les insolents, les impolis et les ..... (Read 2116 times) previous topic - next topic

safa_1997

Apr 16, 2019, 12:23 am Last Edit: Mar 26, 2020, 10:20 pm by jfs
Je suis vraiment désespéré .. J'ai besoin d'aide :(

Je suis une débutante avec le esp266-01 et j'ai un projet qui doit être fait en ce mois ..
 
Je ne sais pas si mon problème est compliquer ou non  :( mais c'est vraiment embêtant, j'ai une carte  Arduino  Mega et un esp266-01
et il me suffit d'envoyer une chaîne de caractère de   l'Arduino à l'ESP via la communication série. .. pour être clair, mon Arduino peut lire les données provenant de l'ESP et les imprimer dans le moniteur série

mais le contraire  ne fonctionne pas .. et je ne sais pas où est le problème
J'utilise serial1 du Mega ..

quelqu'un peut-il m'aider avec un code clair et un câblage  s'il vous plaît :(

 vous êtes mon dernier espoir de terminer le projet ..

J-M-L

#1
Apr 16, 2019, 02:01 am Last Edit: Apr 16, 2019, 02:02 am by J-M-L
Peut être  soucis Mega Tx 5V => ESP Rx 3.3V ... et grillage de l'ESP...

J'ai écrit un petit tuto avec esp-01 cherchez dans la partie tutos
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

safa_1997

Peut être  soucis Mega Tx 5V => ESP Rx 3.3V ... et grillage de l'ESP...

J'ai écrit un petit tuto avec esp-01 cherchez dans la partie tutos
tu peut me envoyer le lien s'il vous plait

c'est Honteux mais je ne maîtrise pas l'utilisation de ce site :( 


jfs

c'est Honteux mais je ne maîtrise pas l'utilisation de ce site :( 


C'est marrant parceque pour poster la même question sur la partie anglaise du forum t'as l'air de bien connaitre...
Pas d'aide par MP !!!

Concernant le fonctionnement du forum tout se trouve dans les messages épinglés en tête de page.

Lamusicadomi

#4
Feb 03, 2020, 03:43 pm Last Edit: Feb 08, 2020, 08:06 pm by jfs
Bonjour,

J'envoie cette trame d'un UNO vers un Nano mais le message reçu ne correspond pas au message envoyé :
Trame départ :
15:33:18.221 -> BASE 004097ADCO 811775639733 S
15:33:20.019 -> OPTARIF BASE 0
15:33:20.296 ->
15:33:20.296 -> ISOUSC 30 9
15:33:20.296 -> BASE 004097929 2
15:33:20.537 -> PTEC TH.. $
15:33:20.537 -> IINST 000 W
15:33:20.810 -> IMAX 090 H
15:33:20.810 -> PAPP 00130 %
15:33:20.810 -> HHPHC A ,
15:33:21.053 -> MOTDETAT 000000 B
Trame arrivée:
15:36:35.460 -> BACE   $ )')$  "
15:36:35.733 -> @DEC DH.. $
15:36:35.733 -> IINCD     G
15:36:36.001 -> IMAH  )  H
15:36:36.001 -> @A@@   !#  %
15:36:36.001 -> HH@HC A ,
15:36:36.244 -> MODDEDAD        B

Pouvez vous m'aider ?
A bientôt !

hbachetti

On devine tous seuls le type d'interface utilisée : UART, I2C, SPI ?
Et la vitesse ?
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Lamusicadomi

Ci-sessous les infos de la carte :

BN: Carte inconnue
VID: 1A86
PID: 7523
SN: Envoyez un croquis pour l'obtenir

hbachetti

Ce n'est pas une réponse à la question posée.

Quote
J'envoie cette trame d'un UNO vers un Nano mais le message reçu ne correspond pas au message envoyé :
Cette trame emprunte bien un chemin physique entre les deux cartes ?
- ligne série
- bus I2C
- autre ?
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Lamusicadomi

Il s'agit des trames tele-info EDF...
Elles partent de l'UNO via le Tx et arrive sur le NANO sur le Rx
J'utilise un optocoupleur SFH620A-3X entre l'UNO et le NANO.
Est ce plus clair ?

hbachetti

On devine tous seuls le type d'interface utilisée : UART, I2C, SPI ?
Et la vitesse ?
Si tu répondais à toutes les questions ?

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

hbachetti

#10
Feb 03, 2020, 05:24 pm Last Edit: Feb 03, 2020, 05:41 pm by hbachetti
Autant te dire que tirer les vers du nez des demandeurs qui donnent les infos au compte-goutte ne me passionne pas vraiment.

Tu vas devoir fournir toutes les infos :
- schéma (indispensable)
- code (récepteur surtout).

Tout ceci étant précisé ici :
https://forum.arduino.cc/index.php?topic=546956.0
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Lamusicadomi

Ci-dessous le code sur le recepteur NANO :
// ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
// Linky-TIC.ino

#include <ELECHOUSE_CC1101_RCS_DRV.h>

//#include <SoftwareSerial.h>
//const byte TELEINFO_PIN = 8;   //Connexion TELEINFO
const byte TX_PIN = 6;         //emetteur 433 MHZ
const unsigned long TIME = 488;
const unsigned long TWOTIME = TIME*2;
#define SEND_HIGH() digitalWrite(TX_PIN, HIGH)
#define SEND_LOW() digitalWrite(TX_PIN, LOW)
byte OregonMessageBuffer[13];  //  OWL180
//*********************************************************
char HHPHC;
int ISOUSC;             // intensité souscrite 
int IINST;              // intensité instantanée en A
int IMAX;               // intensité maxi en A
int PAPP;               // puissance apparente en VA
int calt;
int calt2;
unsigned long HCHC;     // compteur Heures Creuses en W
unsigned long HCHP;     // compteur Heures Pleines en W
String PTEC;            // Régime actuel : HPJB, HCJB, HPJW, HCJW, HPJR, HCJR
String ADCO;            // adresse compteur
String OPTARIF;         // option tarifaire
String MOTDETAT;        // status word
String pgmVersion;      // TeleInfo program version
boolean ethernetIsOK;
boolean teleInfoReceived;
char chksum(char *buff, uint8_t len);
char message;
boolean handleBuffer(char *bufferTeleinfo, int sequenceNumnber);
char version[17] = "TeleInfo  V 1.00";
unsigned long PAPP_arrondi;               // PAPP*497/500/16 arrondi
unsigned long chksum_CM180;
unsigned long long HCP;

inline void sendZero(void) {
    SEND_LOW();
    delayMicroseconds(TIME);
    SEND_HIGH();
    delayMicroseconds(TIME);
}

inline void sendOne(void) {
    SEND_HIGH();
    delayMicroseconds(TIME);
    SEND_LOW();
    delayMicroseconds(TIME);
}

void sendData(byte *data, byte size) {
    for(byte i = 0; i < size; ++i) {
      (bitRead(data, 0)) ? sendOne() : sendZero();
      (bitRead(data, 1)) ? sendOne() : sendZero();
      (bitRead(data, 2)) ? sendOne() : sendZero();
      (bitRead(data, 3)) ? sendOne() : sendZero();
      (bitRead(data, 4)) ? sendOne() : sendZero();
      (bitRead(data, 5)) ? sendOne() : sendZero();
      (bitRead(data, 6)) ? sendOne() : sendZero();
      (bitRead(data, 7)) ? sendOne() : sendZero();   
    }
}


inline void sendPreamble(void) {
    for(byte i = 0; i < 10; ++i)   //OWL CM180 
    {
        sendOne();
    }
}

inline void sendPostamble(void) {
  for(byte i = 0; i <4 ; ++i)    //OWL CM180   
  {
       sendZero() ;
    }
    SEND_LOW();
    delayMicroseconds(TIME);
}

void sendOregon(byte *data, byte size) {
      sendPreamble();
      sendData(data,size);   
      sendPostamble();
}

void encodeur_OWL_CM180() {
  OregonMessageBuffer[0] =0x62;
  OregonMessageBuffer[1] =0x80;
  //OregonMessageBuffer[2] =0x7D;
  PAPP=int(PAPP*0.9941);
  calt=PAPP % 256;
  calt=calt-(PAPP % 16);
  OregonMessageBuffer[3] =calt,HEX;
  calt=int(PAPP/256);
  calt=calt % 256;
  OregonMessageBuffer[4] =calt,HEX;
  calt=int(PAPP/256/256);
  OregonMessageBuffer[5] =calt,HEX;
  //HCP=(HCHC*223666LL)/1000LL;
  OregonMessageBuffer[6] =(HCP>>4)&0xFF;
  OregonMessageBuffer[7] =(HCP>>12)&0xFF; // ST sert total conso
  OregonMessageBuffer[8] =(HCP>>20)&0xFF; // UV sert total conso
  OregonMessageBuffer[9] =(HCP>>28)&0xFF;
  OregonMessageBuffer[10] =(HCP>>36)&0xFF;
    chksum_CM180= 0;
    for (byte i=0; i<11; i++)   {
        chksum_CM180 += long(OregonMessageBuffer&0x0F) + long(OregonMessageBuffer>>4);
    }
  chksum_CM180 -=2;
  OregonMessageBuffer[11] =((chksum_CM180&0x0F)<<4) + ((chksum_CM180>>8)&0x0F);
  calt2=int(chksum_CM180 % 16)*16+int((chksum_CM180)/16);
  OregonMessageBuffer[12] =calt2,HEX;
  //OregonMessageBuffer[12] =(int(chksum_CM180>>4)&0x0F);  //C = 0 mais inutilisé
}

//************************************************************************************

void setup() {
  Serial.begin(1200);
  //Serial.begin(1200,SERIAL_7E1);
  ELECHOUSE_cc1101.setMHZ(433.92);
  ELECHOUSE_cc1101.Init(PA10);   
  ELECHOUSE_cc1101.SetRx(); 
  pinMode(TX_PIN, OUTPUT);
  SEND_LOW();
}

String info="";
String libelle;
unsigned long millis();
unsigned long tempo;


void loop() {
      if (Serial.available()>0) {
      message=Serial.read()& 0x6F;
      Serial.print(message);
     
      if (message==0x0A) {
        if (info.substring(1,5)=="PAPP") {
          libelle=info.substring(6,12);
          PAPP=libelle.toInt();
          Serial.print("PAPP="); 
          Serial.println(PAPP); 
        }
        if (info.substring(1,5)=="HCHC") {
          libelle=info.substring(6,16);
          HCHC=libelle.toInt();
          Serial.print("HCHC="); 
          Serial.println(HCHC); 
        }
        if (info.substring(1,5)=="HCHP") {
          libelle=info.substring(6,16);
          HCHP=libelle.toInt();
          Serial.print("HCHP="); 
          Serial.println(HCHP); 
        }
        if (info.substring(1,5)=="BASE") {
          libelle=info.substring(6,16);
          HCHC=libelle.toInt();
          Serial.print("HCHC="); 
          Serial.println(HCHC); 
        }
        info="";
      }
      info=info+message;
      tempo=millis();
      tempo=int(tempo/1000) % 55;
      delay(5);
      if (tempo < 10) {
    OregonMessageBuffer[2] =0x6D;
    HCP=(HCHC*223666LL)/1000LL;
        encodeur_OWL_CM180();
        sendOregon(OregonMessageBuffer, sizeof(OregonMessageBuffer));
    delay(5000);
    OregonMessageBuffer[2] =0x6C;
    HCP=(HCHP*223666LL)/1000LL;
        encodeur_OWL_CM180();
        sendOregon(OregonMessageBuffer, sizeof(OregonMessageBuffer));
    delay(5000);
      }
   }
}
 

J'ai une photo du montage mais je ne sais pas comment l'envoyer....

ludocraft

#12
Feb 03, 2020, 06:44 pm Last Edit: Feb 03, 2020, 06:53 pm by ludocraft
tu peux le métre entre entre balise stp ;(


si tu sais pas comment faire c'est par ici


ou la

aussi lit sa sa aideras pour test post (ou eviter que hbachetti te donne une fesser XD)

Topic: Informations nécessaires
black licorne

fdufnews

Et un petit schéma du montage parce que le couplage avec un optocoupleur peut réserver des surprises comme, par exemple, une inversion du signal. Ce qui rendrait la liaison série incompréhensible.

Lamusicadomi

Je joins une photo du montage.

Je tiens à préciser que le programme normalemùent fonctionne bien mais c'est au niveau de la traduction du message que ça pêche...
Je ne peux pas compiler et transférer ce programme sur l'Arduino Nano si je ne mets pas en ATMega328P et non ATMega328P (Old BootLoader).
J'ai essayé avec la version IDE de 1.8.5 à 1.8.11...
Est ce à ce niveau ?
Je tiens à préciser aussi que la résistance côté Nano est de 1K et côté Uno 220Ohms...
A bientôt !

Go Up