Montage : Récepteur RXB6 433 + ESP8266 => data sur D7
Matériel émetteur : Digoo R8H et R8S
Librairies : homeGW
Plugin : Digoo, Weather
Je reçois correctement les capteurs et d'un coup je n'arrive pas à m'expliquer pourquoi l'ESP8266 reboot.
Mais en plus quand il reboot, je dois débrancher l'alimentation du RXB6 sinon ça boucle.
Que j'alimente le RXB6 en 5v (avec un pont résistance/diode) ou en 3.3v c'est pareil, ça fonctionne et reboot quelques instants après.
J'ai essayé de mettre le data sur D8, là je reçois plus rien et ça ne plante plus.
J'ai remplacé le RXB6 par un autre, pareil...
Je m'arrache les cheveux (et j'en ai plus beaucoup!) avez vous eu ce genre de problème et êtes vous arrivé à résoudre ?
Merci pour la réponse,
Je sais, mais comment expliquer un reboot avant même qu'il n’exécute le programme ?
Je viens d'ajouter un yield() dans une boucle for, et hormis le plantage à la mise sous tension, pour le moment je reçois sans plantage. Mais même si cela résoudrait le problème, il n'explique pas le démarrage.
Je sais, mais comment expliquer un reboot avant même qu'il n'exécute le programme ?
Heuu, pour moi il exécute le programme dès la mise sous tension. Qu'il plante dès le début peut-provenir de plein de raisons. Qu'est le message au reboot ?
Je suis ok aussi sur le fait qu’il commence à exécuter une partie du programme, mais bon sang que ce machin m’agace !
Je croyais avoir résolu un peu avec le yield() mais ce ne fut que de courte durée.
Quelques fois en ouvrant juste une page web, ça plante si le rxb6 est connecté.
Est-ce qu’il est recommandé de le connecter à une pin en particulier ?
Une lecture des plus intéressante, merci.
Alors mon problème serait le chien de garde, comment résoudre cela???
Mon montage complet comporte la gestion d'un écran tactile capacitif en i2c ainsi qu'un mcp23008 (i2c aussi) pour avoir 8 i/o de plus, l'esp8266 n'en a pas beaucoup et divers capteurs.
Voici les connexions :
[pre]
const uint8_t RST = D0; // Reset écran
const uint8_t SCL_PIN = D1; // SCL I2C écran
const uint8_t SDA_PIN = D2; // SDA I2C écran
const uint8_t SCRinterrupt = D3; // Ligne d'interruption écran D3
const uint8_t LED = D4; // LED de fonctionnement
const uint8_t ONE_WIRE_BUS = D5; // Ligne One Wire capteur de température DS18B20
const uint8_t MCPinterrupt = D6; // Ligne d'interruption MCP23008
const uint8_t RF_RECEIVER_PIN = D7; // Pin d'interruption valable pour la reception 433Mhz
const uint8_t RF_TRANSMITTER_PIN = -1; // Pin de transmission 433Mhz (Utiliser -1 pour désactiver la transmition 433Mhz)
const uint8_t SOUND_PIN = D8; // Pin où est branché le buzzer
const uint8_t INT_VANNE = A0; // Ligne de mesure d'intensité de la vanne 4 voies (plus d'intensité, vanne arrivée en buté)
/* Commandes diverses du chauffage */
uint8_t MCPinterrupt_pin; // Lecture du registre INTF indiquant le/les pin(s) ayant déclenché l’interruption.
uint8_t MCPinterrupt_etat; // Lecture du registre INTCAP indiquant le/les pin(s) ayant déclenché l’interruption.
const uint8_t ACCELERATEUR = 0; // Relais de l'accélérateur commandé depuis le MCP23008
const uint8_t VANNE_PLUS = 1; // Relais ouverture de la vanne 4 voies commandé depuis le MCP23008
const uint8_t VANNE_MOINS = 2; // Relais fermeture de la vanne 4 voies commandé depuis le MCP23008
const uint8_t CHAUDIERE_STATUT = 3; // Statut de la chaudière depuis le MCP23008
const uint8_t CHAUDIERE_MARCHE = 4; // Fonctionnement de la chaudière depuis le MCP23008
const uint8_t CHAUDIERE_DEFAUT = 5; // Chaudière en panne depuis le MCP23008
[/pre]
Je comprend que le code aiderait à trouver le problème, mais il est très gros et pas encore optimisé, mais merci pour ton aide et tes liens forts utiles. Là je dois arrêter, mais je reprend dès mon retour, ce n'est pas ce truc qui va gagner, j'en ai maté d'autres...