Community Forum
    • Blog
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    question à propos du bod

    Scheduled Pinned Locked Moved ULPNode
    35 Posts 3 Posters 53.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CharlesC Offline
      Charles
      last edited by Charles

      Ah ok, t'es en 3V mais sans le booster pour le moment, je comprends mieux ta consommation. Effectivement, je n'ai pas testé avec un NRF il est for possible que tu n'ais pas ce problème avec, et c'est bon à savoir.
      Non c'était pas l'IRQ (puisqu'elle est en input) c'était les pin genre MOSI, SCK puisque même le RF69 sans "power" et bien du courant est consommé par ces pins MOSI et SCK car elle étaient à 1. du coup je les passe en input avant la mise en veille (j'ai cherché un moment celle là !!!!) même en les passant à 0 çà merdait.

      Oui pour la gate du fet, dans le bootloader, direct je mets cette pin en output à 1 pour couper l'alim. mais tu as raison, une 10K sur le VCC assure un état stable à l'init, je vais modifier 😉

      1 Reply Last reply Reply Quote
      • S Offline
        scalz
        last edited by

        ahah, ben oui j'ai triché, lol.
        pour le dht22, c'est que j'avais pas de sensor temp i2c sous la main, et jvoulais voir si y avait moyen de le rendre un peu moins gourmand. mais c'est vrai que c'est pas la meilleure idée!!
        du coup pour mon i2c j'ai essayé de les passer en input comme ce que tu as fait pour ton spi. mais non ça passe pas non plus. Si je mets input (ça freeze, surement resté bloqué dans l'i2c), input_pullup et output=0 pas de freeze mais ça me lit 0. bizarre, Pour l'i2c aussi tu mets en input? output?

        jvais bien finir par trouver car c'est plutôt assez proche de ton schema ce que je fait et vu que ça fonctionne bien chez toi, ben c'est que je me plante sur un truc.

        1 Reply Last reply Reply Quote
        • CharlesC Offline
          Charles
          last edited by

          Je viens de regarder mon code je mets bien en input no pull-up mais je viens de voir que je fais une spéciale dont j'avais oublié l'existence aussi, regardes tu vas trouver direct 😉 😉

          * ======================================================================
          Function: disableCPUDevices
          Purpose : disable Atmel integrated devices (for low power)
          Input   : -
          Output  : - 
          Comments: - 
          ====================================================================== */
          void ULPNode::disableCPUDevices(void)
          {
            // Disable ADC 
            ADCSRA &= ~_BV(ADEN)  ; 
          
            // disable Analog comparator  
            ACSR |= _BV(ACD); 
            
            // Disable digital input buffers on all ADC0-ADC5 pins
            DIDR0 = 0x3F;    
          
            // set I2C pin as input no pull up
            // this prevent current draw on I2C pins that
            // completly destroy our low power mode
          
            //Disable I2C interface so we can control the SDA and SCL pins directly
            TWCR &= ~(_BV(TWEN)); 
          
            // disable I2C module this allow us to control
            // SCA/SCL pins and reinitialize the I2C bus at wake up
            TWCR = 0;
            pinMode(SDA, INPUT);
            pinMode(SCL, INPUT);
            digitalWrite(SDA, LOW);
            digitalWrite(SCL, LOW);  
          
            power_all_disable();
          }
          
          
          1 Reply Last reply Reply Quote
          • CharlesC Offline
            Charles
            last edited by

            J'imagine que tu veux aussi le WakeUp ;-). t’inquiète pas pour les traces de debug restantes, c'est parce que ce #!#!" de module th02 n'est pas compatible I2C. Tant qu'il est tout seul sur le bus tout va bien, dès qu'il est plus tout seul sur le bus I2C (dans mon cas le capteur de lumière) bien çà mettait la zone, tout plantait !!!! Et crois moi que j'ai mis un moment à comprendre que çà venait pas de mon code
            Résultat : changement de capteur, exit le TH02 !!

            
            /* ======================================================================
            Function: readTLS
            Purpose : 
            Input   : -
            Output  : -
            Comments: -
            ====================================================================== */
            uint16_t ULPNode::readTLS()
            {
              unsigned int ms, data0, data1;
            
              // Enable I2C (just in case)
              power_twi_enable();
            
              // Init I2C Bus
              // not needed, done in _tsl.begin
              // Wire.begin();
              //i2cScan();
            
              DebugF("Reading TSL2561...");
              _tsl.begin(); 
            
              DebugF(".0."); DebugFlush();
            
              // Set I2C 100KHz for 4MHz speed
              //TWBR = ((4000000L / 100000L) - 16) / 2;
            
              // The light sensor has a default integration time of 402ms,
              // and a default gain of low (1X).
              // If you would like to change either of these, you can
              // do so using the setTiming() command.
              // If gain = false (0), device is set to low gain (1X)
              // If gain = high (1), device is set to high gain (16X)
            
              // If time = 0, integration will be 13.7ms
              // If time = 1, integration will be 101ms
              // If time = 2, integration will be 402ms
              // If time = 3, use manual start / stop to perform your own integration
            
              // setTiming() will set the third parameter (ms) to the
              // requested integration time in ms (this will be useful later):
              
              // Gain=0, timing=1
              _tsl.setTiming( 0, 1, ms);
            
              DebugF(".1."); DebugFlush();
            
              // To start taking measurements, power up the sensor:
              if (!_tsl.setPowerUp())
              {
                DebugF("Error=");
                Debug(_tsl.getError());
               _status &= ~RF_NODE_STATE_TSL2561 ;
                return 0;
              }
            
              DebugF(".2.");DebugFlush();
            
              // We detected the module
              _status |= RF_NODE_STATE_TSL2561 ;
            
              // Wait to settle
              DebugFlush();
              sleepQuickWake( WDTO_120MS );
            
              DebugF(".3.");DebugFlush();
            
              // Getting data ok ?
              if (!_tsl.getData(data0,data1))
              {
                DebugF("Error=");
                Debug(_tsl.getError());
                return 0;
              }
            
              DebugF(".4.");DebugFlush();
            
              double lux;    // Resulting lux value
              boolean good;  // True if neither sensor is saturated
            
              // Perform lux calculation:
              if (!_tsl.getLux(0,ms,data0,data1,lux))
              {
                DebugF("getLux BAD!");
                DebugF(" data0: "); Debug(data0);
                DebugF(" data1: "); Debug(data1);
                return 0;
              }
              else
              {
                // Convert to integer value, keep one digit
                _lux = (int16_t) lux * 10;
            
                // Print out the results:
                //DebugF(" lux: ");
                //Debugln(lux);
              }
            
              DebugF(".5.");DebugFlush();
            
            
              // Set it to power down
              _tsl.setPowerDown();
            
              // release I2C bus
              //Wire.endTransmission(true);
              //I2c.end();
            
              DebuglnF("OK!");
              DebugFlush();
            
              return _lux;
            }
            
            
            1 Reply Last reply Reply Quote
            • S Offline
              scalz
              last edited by

              merci pour l'exclu c'est coool!
              j'ai bien vu ton astuce (registres et pinmode), du coup jviens d'essayer vite fait mais ça ne m'a pas amélioré mon souci. mais c'est bizarre, pour debug, j'ai ajouté le i2cscan après le wakeup mosfet et il me trouve bien l'adresse du sensor. mais la lecture des lux me donne 0. je reboot et tout rentre dans l'ordre jsqu'au sleep. jregarde la datasheet du bh et jfais un ptit clean dans mon code pour voir si jfais pas une betise. je te redis ça.
              bien vu sinon l'astuce! c'est du fin du fin tout ça!

              1 Reply Last reply Reply Quote
              • CharlesC Offline
                Charles
                last edited by

                J'imagine que tu refais bien une init complète de ton sensor au wake up ?

                1 Reply Last reply Reply Quote
                • S Offline
                  scalz
                  last edited by

                  oui, pour être sûr je l'ai mis juste avant la lecture.
                  jclean ça et jte montre si tu veux mais c'est simple pour l'instant.

                  1 Reply Last reply Reply Quote
                  • CharlesC Offline
                    Charles
                    last edited by

                    peut être une particularité de ton capteur, j'me suis bien fait avoir avec le TH02 aussi 😉

                    1 Reply Last reply Reply Quote
                    • S Offline
                      scalz
                      last edited by

                      oui c'est ce que j'envisage. faut que je test avec un autre capteur aussi. bmp180 par exemple, tu as déjà essayé en ulpnode?

                      1 Reply Last reply Reply Quote
                      • CharlesC Offline
                        Charles
                        last edited by

                        Heu non, je crois que j'en ai un mais jamais testé !!! bonne idée dès que je m'y remets
                        tu as pris quelle librairie, il doit en avoir 15 tonnes comme d'hab ?

                        1 Reply Last reply Reply Quote
                        • S Offline
                          scalz
                          last edited by

                          j'utilise celle que Mysensors utilise de base dans leur sketch (Adafruit_BMP085 compatible avec le 180). en checkant jviens de voir qu'ils en ont une autre faite par sparkfun mais j'ai pas test.
                          https://github.com/mysensors/Arduino/tree/master/libraries

                          1 Reply Last reply Reply Quote
                          • CharlesC Offline
                            Charles
                            last edited by

                            Ah perso jamais de mauvaises surprises avec les lib de Sparkfun, et c'est assez rare pour le souligner 😉

                            1 Reply Last reply Reply Quote
                            • S Offline
                              scalz
                              last edited by

                              c'est vrai qu'ils sont pas mal chez sparkfun, ça fait un bout de temps qu'ils sont présents en plus.

                              sinon, après un ptit clean , j'arrive à lire mon sensor après power up mosfet. ouf enfin! bon maintenant jvais pouvoir checker les consos. voir si rien n'as bougé!
                              en tout cas merci, car je pense que c'est ton astuce plus le clean qui m'ont dbloqué.

                              en fouinant pour trouver mon souci, je suis tombé sur cette routine pour clean le i2c. je m'en sers pas spécialement mais peut être que ça pourrait te servir un jour http://www.forward.com.au/pfod/ArduinoProgramming/I2C_ClearBus/index.html

                              1 Reply Last reply Reply Quote
                              • S Offline
                                scalz
                                last edited by scalz

                                au fait je t'ai pas demandé, pour ton capteur de temp/hum tu va prendre quoi comme ref? pour ma part je viens de me commander qq Si7021 sur ali pour voir. en espérant qu'ils soient bien, quasi le mm prix que les dht22, y a pas photo. c'est celui que mysensors mettent sur leur sensebender...wait&see

                                1 Reply Last reply Reply Quote
                                • CharlesC Offline
                                  Charles
                                  last edited by

                                  Arrfffff t'aurais du me demander, j'ai ai fait 5 grove SI7021 qui trainent au fond d'une boite 😉

                                  Combien et quelle réf chez ALI ? juste curieux car les prix ont doublés en qq mois pour ces trucs

                                  1 Reply Last reply Reply Quote
                                  • CharlesC Offline
                                    Charles
                                    last edited by

                                    N'y vois pas une attaque personnelle, mais perso je ne comprends cet engouement pour le NRF24L01, c'est quand même super limité (et je pèse mes mots) en portée à coté du RFM69 😉

                                    1 Reply Last reply Reply Quote
                                    • S Offline
                                      scalz
                                      last edited by

                                      ah ben zut c'est pas grave quoique faut voir tu en vendrais un? tu en penses quoi de ces capteurs? tu les as test avec ton ulp? 2.90€ fdpi sur ali.

                                      1 Reply Last reply Reply Quote
                                      • S Offline
                                        scalz
                                        last edited by

                                        http://fr.aliexpress.com/item/Industrial-High-Precision-Si7021-Humidity-Sensor-with-I2C-Interface-for-Arduino/32346083214.html

                                        Non, non, t'inquietes, je suis completement d'accord avec toi pour le nrf vs rfm. le nrf c'est du low cost 2.4ghz bourré de fake. et petite portée comparé au rfm qui en plus embarque des fonctions interessantes.

                                        Le truc j'ai l'impression c'est que pour beaucoup le diy ça veut dire lowcost avec pleins de fils (quelle horreur, lol). pour ma part je suis pas à 2-3 euros près si c'est plus pérein et performant. et j'aime pas la filasse dans tous les sens donc je préfère partir from scratch si c'est avantageux.

                                        pour l'instant j'ai pas trop eu le temps de tester comme je veux ce rfm. la lib mysensors n'est compatible avec que depuis peu. et c'est la branche de dev. ça me dérange pas trop encore, mais à vrai dire vu que ça fait pas longtemps que je me lance dans la domo, j'ai pas grand chose en prod. jsuis dans mes design et liste des besoins. mais c'est sûr que pour moi ce sera rfm. c'est vrai que beaucoup sont en nrf et jpense on peut toujours leur dire rfm ils diront que c'est trop cher. en plus pas d bol s'ils en ont plein en prod!

                                        Oulà, j'espère qu'il va pas y avoir de fervents défenseurs du nrf et fil volant sinon jvais me faire lincher, lol!!!

                                        1 Reply Last reply Reply Quote
                                        • CharlesC Offline
                                          Charles
                                          last edited by

                                          ah ah ah ils sont fort ces chinois, à ce prix là c'est pas du SI7021 c'est une certitude, d'ailleurs j'aimerais bien connaitre les différences entre le SI7021, HTU21 et le SHT21 au niveau caractéristiques.
                                          Oui l'ULPNode fonctionne avec un SI7021 acheté chez Digikey (genre 5€ juste le capteur), mais je ne prends pas le risque de tester avec des Fakes potentiels, j'ai déjà donné avec les faux FTDI !!!!

                                          Je veux bien t'en vendre une mais je peux pas m'aligner avec les chinois lol, je peux te la faire au prix que çà m'a coûté + un timbre 😉

                                          Les infos que je viens de mettre rien pour toi sur mon git avec des photos

                                          1 Reply Last reply Reply Quote
                                          • S Offline
                                            scalz
                                            last edited by

                                            tu as sans doute raison. c'est vrai qu'ils sont forts. mais en plus des fois y a de la qualité en travers. pour le si7021 c'est vrai qu'à ce prix là... c'est pareil j'ai reçu la semaine dernière des acs712 5A (acheté sur ali). j'ai pas eu le temps de test. mais ça fait pas longtemps que j'ai découvert ça ali en fait. avant j'commandais toujours chez farnell,rs et les autres.

                                            jpourrai m'amuser à comparer avec les fake du coup oui ça m'interesse une breadboard. pour le prix jme doute bien, t'inquietes. en plus c'est oshpark. et je l'aurai avant comme ça!

                                            jviens d'aller voir ton git. merci.
                                            c'est vraiment bien. pas bête l'idée du jumper pour les pullups.

                                            1 Reply Last reply Reply Quote
                                            • First post
                                              Last post

                                            3

                                            Online

                                            5.7k

                                            Users

                                            534

                                            Topics

                                            5.0k

                                            Posts

                                            Top Topics

                                            • Denky 4 - Domoticz - Triphasé -
                                              Nicolas BernaertsN
                                              Nicolas Bernaerts
                                              0
                                              7
                                              266

                                            • Denky D4 et Linky Standard TInfo Rx Non Configuré
                                              CharlesC
                                              Charles
                                              0
                                              5
                                              303

                                            Popular Tags

                                            teleinfo
                                            24 topics
                                            arduino
                                            19 topics
                                            remora
                                            16 topics
                                            esp8266
                                            10 topics
                                            arduipi
                                            10 topics
                                            wifinfo
                                            7 topics
                                            raspberry
                                            7 topics
                                            broadcast
                                            7 topics
                                            Copyright © 2022 Charles-Henri Hallard | Return to blog page | Powered by NodeBB