La RED Board.


Messages recommandés

Bonsoir Gen

Tu évoques dans ton premier post

les platines moteurs pourront être reliées à la centrale va des câbles de type RJ45

 

Finalement quel est le type de connecteur retenu?

 

++

20200808_223005.jpg

Lien à poster
Partager sur d’autres sites

Yop,

 

Aucun, chacun mettra ce qu'il veux, moi je fourni juste le JST câblé..comme je fais pour tout mes montages.

si il y a de la demande, je peux faire une chtite plaquette JST -> RJ45 que je fournirai avec, suffit de demander.

moi j'utiliserai des GX16 étanches pour les gens qui me demanderaient des montages

 

++

GEN

 

Lien à poster
Partager sur d’autres sites
Le 08/08/2020 à 20:19, Gen a dit:

Yop

 

Comme dit précédemment je taffe sur le graphisme (j'ai cela en horreur !)

La fenêtre principale est à 50% réalisée, un petit avant goût.

Capture.thumb.PNG.4ddb1f27b69eddcf551ff611ab764dbe.PNG

 

++

GEN

 

 

Yop,

 

c'est un bon début surtout pour quelqu'un qui a le graphisme en horreur. Courage ;)

 

++

Viker

 

  • Like 1
Lien à poster
Partager sur d’autres sites

Yop @Viker

Merci.

Ça commence à aller, je maitrise de plus en plus l'outil graphique.

Page principale terminée. (mettez votre écran anti-bave svp :-) )

Capture.thumb.PNG.f188ffa103fb67016105712a652f11a6.PNG

 Aller.. Plus que onze pages à faire..

++

GEN

  • Like 8
Lien à poster
Partager sur d’autres sites

yop @JH63

 

Je ferai certainement mais bien plus tard une version 7" pour les gens avec peu de moyens

Tout comme la version radio avec le module qui va bien avec.. (compatible avec la RED Board et les nextion)

 

++

GEN

Modifié par Gen
  • Like 2
Lien à poster
Partager sur d’autres sites

Yop

 

Je viens de terminer le premier onglet, par la suite je mettrai la couleur et les polices des chiffres à jour

 

Capture.thumb.PNG.bf74e22217dba63ebe8202bfae3375ea.PNG

 

J'attaque la partie led maintenant.

Sinon, j'ai reçu mes afficheurs de conso pour mon montage de boîtier indicateur.JPG.55680e82a84305cc0982153278b5354c.JPG

A sa droite viendra se positionner l'afficheur LCD 4x20

J'ai finalement reçu tous les composants pour faire le montage de ma platine proto, dès que j'ai un peu de temps je commencerai à la souder

 

++

GEN

  • Like 1
Lien à poster
Partager sur d’autres sites

Yop,

 

Il reste juste la place pour le lcd.

L'afficheur LCD 4x20 donnera quoi comme info et y aura-t-il un paramétrage via ce lcd et genre un bouton rotatif ou tout se passera sur le nextion?

 

++

Viker

Modifié par Viker
Lien à poster
Partager sur d’autres sites

Yop

 

J'en sais encore rien, j'aviserai en fonction des ressources libres à la fin de la programmation, car il y aura une version filaire pour le nextion et une version radio

Dans un premier temps le paramétrage ne se fera que par le Nextion

le LCD affichera :

l'adresse IP et la force du signal

la date et l'heure de la dernière mise en route (pour voir si il n'y a pas eu un reboot dû à une coupure)

etc.;

sur l'autre indicateur, il y aura le voltage, l'intensité, la fréquence, la conso

 

++

GEN

  • Like 2
Lien à poster
Partager sur d’autres sites

Ola,

J ai commencé à regarder ces écrans cela reste pas donné prix moyen 115e,

je voudrais savoir si en plus de l écran il faut ce convertisseur ou simplement les 4 fils livré avec le nextion suffiront.

++

883800654440193950.thumb.jpg.90db6fda3db2790636bf0e2c4cbff021.jpg

Lien à poster
Partager sur d’autres sites

Yop

 

Rien de tout ça, je fourni le câble JST - JST ou  JST - Fil avec la RED Board, (en fonction de si on câble l'écran à proximité ou à distance) dans sa version filaire.

 

++

GEN

Lien à poster
Partager sur d’autres sites

Yop

 

Je viens de terminer la soudure de tous les composants CMS (Composant monté en surface)

Nettoyage  et contrôle au microscope et au multimètre OK

J'ai fais un petit test d'upload de programme et la partie FDTI (qui sert à programmer le contrôleur) et cela fonctionne.

Donc pour le moment tout roule, je vais écrire une routine de test pour l'électronique et ensuite je pourrai commencer à souder tous les autres composants

OUI je sais ma platine est verte, c'est mon prototype de test

proto.thumb.JPG.0ea2238507a8bbfb2e3e162ef3767c01.JPG

 

++

GEN

Modifié par Gen
  • Like 2
Lien à poster
Partager sur d’autres sites

Yop

 

Fait gaffe @Viker, ou pour toi j'en ferai une couleur CACA d'oie ! Nan mais :-)

Bon, je viens de monter la partie alimentation et tout roule, j'ai bien toutes mes tensions de service 12v,10v,5v,3v3

Je rentre à 14v

1.JPG.450f53de21eab78ad5c3db5dfd5600cc.JPG

 

La partie alimentation

2.JPG.7764edd0dbefcbc8950a336bb6fde9c8.JPG

J'ai également soudé un support de relais, pour voir que rien ne génait

Je vais pouvoir commencer à tester l'électronique, je vais commencer par le RTC.

Je n'utiliserai pas le RTC de l'écran car trop de dérives dans le temps

 

@plus pour la suite des festivités

Il me reste encore des circuits pour les retardataires

++

GEN

  • Like 2
Lien à poster
Partager sur d’autres sites

Yop

 

On passe à autre chose, je viens de terminer l'écriture de la librairie DataStorage,

elle a été complètement revisitée par rapport à la classe utilisée dans le programme GENESYSYS

Elle permet l'enregistrement automatique des données en mémoire.

Cette librairie n'est valable que pour l'ESP32,

Le fichier .h

 

//*************************************************************************************
// This library records all the temperature an humidity thresholds for a room
// Settings are automatically saved
// The constructor need 3 parameters of memory position
// parameter 1 - int array of 9 memory position for recording temperature data
// parameter 2 - int array of 9 memory position for recording humidity data
// parameter 2 - int value memory position for growing mode selected (GROWING/FLOWERING)
// !!!! This library only works with ESP32 !!!!
//*************************************************************************************

#ifndef DataStorage32_h
#define DataStorage32_h

#include <Arduino.h>
#include <EEPROM.h>

#define GDMIN           0   //Growing Day Min
#define GDMAX           1   //Growing Day Max
#define GNMIN           2   //Growing Night Min
#define GNMAX           3   //Growing Night Max
#define FDMIN           4   //Flowering Day Min
#define FDMAX           5   //Flowering Day Max
#define FNMIN           6   //Flowering Night Min
#define FNMAX           7   //Flowering Night Max
#define HYST            8   //Hysteresis

#define GROWING         0   //Growing Mode     
#define FLOWERING       1   //Flowering Mode

#define TEMPERATURE     0
#define HUMIDITY        1
#define MINIMUM         0
#define MAXIMUM         1

class DataStorage32
{
    public:
    DataStorage32(int TMEM[],int HMEM[],int MMEM);
    void    writeFactorySettings(void);
    void    loadDataFromMemory(void);
    void    setTemperature(int type, int value);
    int     getTemperature(int type);
    void    setHumidity(int type, int value);
    int     getHumidity(int type);
    void    setMode(int value);
    int     getMode(void);
    int     getActualValue(int balise, int type, bool light, int mode);
 
    private:
    int     temperatureFolder[9];
    int     humidityFolder[9];
    int     mode;

    protected:
    int     T_MemoryPos[9];
    int     H_MemoryPos[9];
    int     modeMemoryPosition;
    void    memWrite(int address, int value);
    int     memRead(int address);

};
#endif

le fichier .cpp

 

 


#include "DataStorage32.h"

DataStorage32::DataStorage32(int TMEM[],int HMEM[],int MMEM)
{
  memcpy(T_MemoryPos,TMEM, sizeof(T_MemoryPos));
  memcpy(H_MemoryPos,HMEM, sizeof(H_MemoryPos));
  modeMemoryPosition = MMEM;
}

void DataStorage32::writeFactorySettings(void)
{
    this->setTemperature(GDMIN,20);
    this->setTemperature(GDMAX,28);
    this->setTemperature(GNMIN,18);
    this->setTemperature(GNMAX,22);
    this->setTemperature(FDMIN,20);
    this->setTemperature(FDMAX,26);
    this->setTemperature(FNMIN,18);
    this->setTemperature(FNMAX,20);
    this->setTemperature(HYST, 2);
    this->setHumidity(GDMIN,40);
    this->setHumidity(GDMAX,80);
    this->setHumidity(GNMIN,30);
    this->setHumidity(GNMAX,50);
    this->setHumidity(FDMIN,40);
    this->setHumidity(FDMAX,60);
    this->setHumidity(FNMIN,30);
    this->setHumidity(FNMAX,40);
    this->setHumidity(HYST,  5);
    this->setMode(GROWING);
}

void DataStorage32::loadDataFromMemory(void)
{
    temperatureFolder[GDMIN]= this->memRead(T_MemoryPos[0]);
    temperatureFolder[GDMAX]= this->memRead(T_MemoryPos[1]);
    temperatureFolder[GNMIN]= this->memRead(T_MemoryPos[2]);
    temperatureFolder[GNMAX]= this->memRead(T_MemoryPos[3]);
    temperatureFolder[FDMIN]= this->memRead(T_MemoryPos[4]);
    temperatureFolder[FDMAX]= this->memRead(T_MemoryPos[5]);
    temperatureFolder[FNMIN]= this->memRead(T_MemoryPos[6]);
    temperatureFolder[FNMAX]= this->memRead(T_MemoryPos[7]);
    temperatureFolder[HYST] = this->memRead(T_MemoryPos[8]);

    humidityFolder[GDMIN]   = this->memRead(H_MemoryPos[0]);
    humidityFolder[GDMAX]   = this->memRead(H_MemoryPos[1]);
    humidityFolder[GNMIN]   = this->memRead(H_MemoryPos[2]);
    humidityFolder[GNMAX]   = this->memRead(H_MemoryPos[3]);
    humidityFolder[FDMIN]   = this->memRead(H_MemoryPos[4]);
    humidityFolder[FDMAX]   = this->memRead(H_MemoryPos[5]);
    humidityFolder[FNMIN]   = this->memRead(H_MemoryPos[6]);
    humidityFolder[FNMAX]   = this->memRead(H_MemoryPos[7]);
    humidityFolder[HYST]    = this->memRead(H_MemoryPos[8]);

    mode = this->memRead(modeMemoryPosition);
}

void DataStorage32::setTemperature(int type, int value)
{
    temperatureFolder[type] = value;
    this->memWrite(T_MemoryPos[type],value);

}

int DataStorage32::getTemperature(int type)
{
    return temperatureFolder[type];
}

void DataStorage32::setHumidity(int type, int value)
{
    humidityFolder[type] = value;
    this->memWrite(H_MemoryPos[type],value);
}

int DataStorage32::getHumidity(int type)
{
    return humidityFolder[type];
}

void DataStorage32::setMode(int value)
{
    mode = value;
    this->memWrite(modeMemoryPosition,mode);
}

int DataStorage32::getMode(void)
{
    return mode;
}

int DataStorage32::getActualValue(int balise, int type, bool light, int mode)
{
    // balise (MINIMUM/MAXIMUM)
    // type   (TEMPERATURE/HUMIDITY)
    // light  (false/true)
    // mode   (GROWING/FLOWERING)
    int index = 0;
    if(mode==FLOWERING){index+=4;}
    if(!light){index+=2;}
    if(balise==MAXIMUM){index+=1;}
    if(type==TEMPERATURE)
    {
        return temperatureFolder[index];
    }
    else
    {
        return humidityFolder[index];
    }
}

void DataStorage32::memWrite(int address, int value)
{
    byte temp = (value & 0xFF);
    EEPROM.write(address,temp);
    EEPROM.commit();
}

int DataStorage32::memRead(int address)
{
    return EEPROM.read(address);
}

 

 

 

++

GEN

Modifié par Gen
  • Thanks 3
Lien à poster
Partager sur d’autres sites

Yop les growers.

 

J'ai commencé à tout souder et fait les premiers tests de l'électronique, toutes mes puces sont reconnues, c'est déjà une bonne chose

J'ai fait quelques modifications au circuit, j'ai viré la puce TXB0108, c'est une grosse daube, je suis passé à mon ancienne méthode de level shiffter via des BSS138 et sa fonctionne nickel, j'ai également rajouté une connectique "module" pour y brancher dans le futur l'HYDRO-GEN, et ainsi les gens ne devront pas se faire ch...; avec des connecteurs Dupont, j'ai également repositionné les condensateurs. (je vais devoir refaire faire mes circuits, sniff, mais c'est la vie, c'est cela le prototypage)

Par contre à la recommande, je demanderai à la société de souder tous les CMS (composant monté en surface) car j'en ai vraiment chi.. des boulons de 20.

De plus mon four à souder est trop petit, j'ai dû terminer les soudures au fer à air chaud, une galère.

 

Bref, jusqu'à maintenant tout roule.

Quelques tofs

DSC_0212.JPG.c6392d69186c80e682a777a91fef12d7.JPG

DSC_0213.JPG.947c7ab26d50da452a93e3ef97813466.JPG

DSC_0214.JPG.aa19de67d1ac716414dfa103fcc33da9.JPG

Et une fois positionné dans son boîtier

DSC_0215.JPG.8fbd7f9c458899f2d2ed6a1b89e759e5.JPGDSC_0216.JPG.fafa7f3e5198d94355e41a512d8e9d26.JPG

Tout a été calculé au poil de cul près et le boîtier se referme parfaitement

Plus besoin de tournevis (sauf pour fixer le circuit), toutes les connectiques sont à clipser et tous les raccords sont en JST XH 2,54mm

 

A bientôt pour la suite

Si vous avez des com's ou des questions, n'hésitez pas

++

GEN

 

Modifié par Gen
  • Like 2
  • Thanks 2
Lien à poster
Partager sur d’autres sites

Yop

 

Suite des tests

-L'horloge OK

-La commande des 10 relais OK

-Les 4 commandes moteurs à 5 vitesses OK

 

il me reste encore à tester : les sondes, et les 2 générateurs PWM 10V

 

++

GEN

Lien à poster
Partager sur d’autres sites

Yop

 

Quelques news, j'ai passé la journée complète à tester l'électronique...

Tout allait bien jusqu'à...... je branche l'écran.

Il consomme beaucoup, quand je dis beaucoup, c'est vraiment beaucoup, le 10.1" faut compter entre 0.8 et 0.9 A en 5V à lui seul !!

Moralité même en passant sur un régulateur 2A L78S05, la baisse de tension produit beaucoup trop de chaleur, ce composant aurait été trop sollicité et aurait fini par claquer, j'ai essayé avec différents radiateur, mais rien n'y fait.

Même en mettant des régulateurs en cascade, le problème en amont aurait été le même.

J'ai donc radicalement modifié la partie alim avec un module IRM-10, qui lui me fournira ce que j'ai besoin juste pour l'écran.

Tant qu'à faire, j'ai modifié les sorties PWM pour le pilotage des LEDS

on peut maintenant choisir soit 12V soit 10V, elle n'est pas belle la vie ?

Le proto est envoyé en prod, je devrai le recevoir vendredi

 

D'ici là, je retourne à la programmation.

 

++

GEN

  • Like 2
Lien à poster
Partager sur d’autres sites

Yop,

 

je crois que c'est une bonne idée de faire faire la soudure des CMS car même avec le four ce doit être long.

Quand tu auras la carte finale le masque pour déposer la soudure ne sera pas un luxe.

 

Courage!

 

++

Viker

Lien à poster
Partager sur d’autres sites

Yop @Viker

 

Mais je taffe déjà avec des stencils et un support à stencils, ensuite je place les composant avec une brucelle et ensuite zou au four

le soucis c'est que le circuit est plus grand que la zone couverte par les tubes IR, donc les extrémités ne sont pas "cuites", je dois donc repasser

au fer à air chaud par la suite

 

voila pour l'explication

 

++

GEN

Lien à poster
Partager sur d’autres sites