Forum Replies Created

Viewing 15 posts - 991 through 1,005 (of 1,020 total)
  • Author
    Posts
  • in reply to: More than one pcf8574 expander #5523
    Renzo Mischianti
    Keymaster

      Hi hmronline,
      I think something like this can work

       

      #include "Arduino.h"
      #include "PCF8574.h"
      
      PCF8574 pcf8574_1(0x38);
      PCF8574 pcf8574_2(0x39);
      
      
      PCF8574 arrayOfPCF[2];
      //The setup function is called once at startup of the sketch
      void setup()
      {
      	Serial.begin(115200);
      
      	pcf8574_1.pinMode(P0, OUTPUT);
      	pcf8574_1.pinMode(P1, OUTPUT);
      	pcf8574_1.pinMode(P2, OUTPUT);
      
      	pcf8574_2.pinMode(P1, OUTPUT);
      	pcf8574_2.pinMode(P2, OUTPUT);
      	pcf8574_2.pinMode(P3, OUTPUT);
      
      
      	pcf8574_1.begin();
      	pcf8574_2.begin();
      
      	arrayOfPCF[0] = pcf8574_1;
      	arrayOfPCF[1] = pcf8574_1;
      
      }
      
      
      void loop()
      {
      	arrayOfPCF[0].digitalWrite(P1, HIGH);
      	arrayOfPCF[1].digitalWrite(P1, HIGH);
      	delay(2000);
      	arrayOfPCF[0].digitalWrite(P1, HIGH);
      	arrayOfPCF[1].digitalWrite(P1, HIGH);
      	delay(2000);
      
      }
      

      Give me a feedback.
      Bye Renzo

      Renzo Mischianti
      Keymaster

        Hi Dan-Ã…ke Asp,

        sorry for the problem, but the thingiverse account is not updated (no time to do that), I update only this site at this link

        http://mischianti.org/improved-z-axis-for-cyclone-pcb-factory/

        there you can find all the updated parts.

        Bye Renzo

        Renzo Mischianti
        Keymaster

          Hi Alejandro,

          yes, can be an usefully features, but not so simple to develop, the message in the buffer can be not in sequence, and the order in a long transmission can change with the enviroenment condition.

          But when I have more time I think how to do that.

          Bye Renzo

          Renzo Mischianti
          Keymaster

            Hi Alejandro,

            EByte response me

            Hi Renzo,
            The single packet limit is 58 bytes. It means one transmission can only send 58 bytes. it will cut your data into serveral 58-byte packet to send.
            The buffer is 512 bytes, it means you can input maximum 512 bytes of data by UART, and the module will cut the 512-byte of data into several packet to send all those 512 byte data in serveral times.
            ---------------------------------
            Best Regards,
            

            The packet size is 58Bytes if you put a stream of packet the device send they one to one not like a single package.

            Bye Renzo

            Renzo Mischianti
            Keymaster

              Hi Alejandro,
              then, on this point it is not very clear,

              initially I left the possibility of sending packets of any size, but they are truncated at 58byte,

              and on the specifications page they write “TX length 58byte Maximun capacity of singlepackage”,

              so I interpreted what they have written later as if you can send packet in series (even if not yet transmitted) until the buffer is filled,

              and I add new receive message method this days

              ResponseContainer rs = e32ttl.receiveMessageUntil();

              that if you receive more than one String message at the same time can read single message instead all message in the buffer.

              but if you had the same doubt you too, I can try to send 58 bytes and then the rest.

              But if the size is not relevant the upgraded version e22 (I’m doing the library now) have packet size variable (max 240byte) but if there are no limit why to manage packet size?

              But as soon as I find time I do another test.

              Keep in touch.

              Bye Renzo

              Renzo Mischianti
              Keymaster

                Hi,

                for the power, if It isn’t too big a panel like this


                AliExpress.com Product – 10Pcs/Lot DIY Toy 5V 30mA 53X30mm Micro Mini Small Power Solar Cells Panel Wholesale DIY Sun Panel

                without a resin they are flexible and can cover all the pakage, probably can be sufficient to recharge the device quite fast.

                There are some type of battery for bracelet or similar very small but about 50mha


                AliExpress.com Product – Liter energy battery Good Qulity 3.7v polymer lithium battery 50mah 501012 is suitable for I7 bluetooth headset MP3 MP4

                The drone battery can be quite small,


                AliExpress.com Product – 051230 501230 150mah BT150 Bluetooth Headset 3.7V lithium polymer battery

                 

                For LoRa I finish first release of Ebyte E22 LoRa devices that have a repeater function, and If we must track a small area like 60km with some device as repeater put in the area can cover with RF the transmission.

                Ebyte LoRa E22 device repeater relay function ultra long distance

                 

                But We need more detail to do an evaluation.

                 

                Bye Renzo

                 

                Renzo Mischianti
                Keymaster

                  Hi Joaquin,

                  to start you can try with

                  SIM900A

                  BN220

                  For microcontroller the smt32 have a good power and consume, but you can check of the are library for module.

                  Renzo

                   

                  Renzo Mischianti
                  Keymaster

                    I’m happy you have find the solution.. If you need more help or you have some idea to add to the library write on Forum without problem.

                    Bye Renzo

                    Renzo Mischianti
                    Keymaster

                      Hi JoaquinC,

                      I think It’s better to limit the spec to only what you really need, but for fisrt we must select some GPS small like one for drone, like this

                      GPS Module compass

                      GSM Module

                      or a radio with 8km range like

                      LoRa E32 device for Arduino, esp32 or esp8266: specs and basic usage – Part 1

                      Thank It’s important to select a rechargeable battery powerfull and light, this is a choiche that you can find when you have a base to test, but you can select a big 18650 with 3400mha

                      3400mha 18650 battery

                      or a 523450 fot about 1000mha

                      1000mha 503450 Battery

                      If you must have less weight you can choiche a drone battery with low capacity but very small

                      250mAh 402035 battery

                      Chan you can use a system like this to recharge

                      Emergency power bank homemade

                       

                      I think the microcontroller is not so important because for a lot of time It’s become in sleep mode, some SMT series have a very low power consmuption, other like PIC one or ATMega.

                      I think you can use also a WeMos D1, but when you are going to create a board you must use the IC not the board.

                      WeMos D1 mini (esp8266), pinout, specs and IDE configuration – Part 1

                       

                      But you must specify more information about you want to do, like

                      • form factor
                      • weight
                      • distance
                      • frequences

                      and all other spec you want raised.

                       

                      Bye Renzo

                      Renzo Mischianti
                      Keymaster

                        Hehehehehhe… Keep calmp….

                        The sketch I send you is fully working and tested (I do it with an esp32 devkit v1 and WeMos, I try It with an Arduino also and 2 e32 433, that you can see on photo).

                        Pay attention I comment the first 2 define anche change power to adapt to my devices.

                        We can go by step, send me your connection schema, I’m going to do the same connection, and tell me what kind of pull-up resistor you have used.

                        than if It’s ok I ask you to resend all the code.

                        Hold on, we’ll find the problem: P.

                        Bye Renzo

                        Attachments:
                        You must be logged in to view attached files.
                        Renzo Mischianti
                        Keymaster

                          Hi Alejandro,

                          I check your code, and there are some issue, first is the type of communication setted to TRANSPARENT

                          But I have found an issue/problem in the library and I change It, two constructor of esp32 is ambiguous, so I change the disposition of the constructor that have specifies setting of HardwareSerial,

                          To undestand

                          LoRa_E32(HardwareSerial* serial, byte txE32pin, byte rxE32pin, byte auxPin, byte m0Pin, byte m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600, uint32_t serialConfig = SERIAL_8N1);

                          now is

                          LoRa_E32(byte txE32pin, byte rxE32pin, HardwareSerial* serial, byte auxPin, byte m0Pin, byte m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600, uint32_t serialConfig = SERIAL_8N1);

                          but in your case the code become more simpliest with the direct usage of Serial2

                          Here the sending code for esp32

                          
                          #include "Arduino.h"
                          //#define E32_TTL_1W
                          //#define FREQUENCY_915
                          #include "LoRa_E32.h"
                          
                          // Not needed Serial2 have already this pins
                          //#define RX 16
                          //#define TX 17
                          
                          #define AUX 18
                          #define M0 21
                          #define M1 19
                          
                          //HardwareSerial serial1(2);
                          
                          //LoRa_E32 e32ttl1w(&serial1,RX,TX, 18, UART_BPS_RATE_9600,SERIAL_8N1);
                          LoRa_E32 e32ttl1w(&Serial2, AUX, M0, M1);
                          void printParameters(struct Configuration configuration);
                          void printModuleInformation(struct ModuleInformation moduleInformation);
                          
                          // Variables globales
                          unsigned long interval = 15000;          // interval between sends
                          unsigned long lastSendTime = 0;        // last send time
                          byte msgCount = 0;            // count of outgoing messages
                          long randNumber;
                          void setup() {
                            //Inicio comunicacion serie con monitor
                            Serial.begin(9600);
                            delay(500);
                          
                            Serial.println();
                          
                            e32ttl1w.begin();
                          
                            //Configuro el nodo LoRa
                            nodeConfig();
                          }
                          
                          void loop() {
                            // Wait a few seconds between measurements.
                          
                            if (millis() - lastSendTime > interval) {
                              // print a random number from 10 to 19
                              randNumber = random(10, 20);
                              String trama = String(randNumber);
                              ResponseStatus rs = e32ttl1w.sendFixedMessage(0, 3, 0x10,trama);
                              Serial.println("Sending " + trama);
                              Serial.println(rs.getResponseDescription());
                              lastSendTime = millis();            // timestamp the message
                              msgCount++;
                            }
                            delay(100);
                          }
                          
                          void nodeConfig(){
                          
                            ResponseStructContainer c;
                            c = e32ttl1w.getConfiguration();
                            Configuration configuration = *(Configuration*) c.data;
                          
                            configuration.ADDH        = 0x0;
                            configuration.ADDL        = 0x1;
                            configuration.CHAN        = 0x10;
                          
                            configuration.SPED.airDataRate           = AIR_DATA_RATE_010_24;
                            configuration.SPED.uartBaudRate          = UART_BPS_9600;
                            configuration.SPED.uartParity            = MODE_00_8N1;
                            configuration.OPTION.fec                 = FEC_1_ON;
                            configuration.OPTION.fixedTransmission   = FT_FIXED_TRANSMISSION;
                            configuration.OPTION.ioDriveMode         = IO_D_MODE_PUSH_PULLS_PULL_UPS;
                            configuration.OPTION.transmissionPower   = POWER_20;
                            configuration.OPTION.wirelessWakeupTime  = WAKE_UP_1250;
                            //printParameters(configuration);
                          
                          // Set configuration changed and set to not hold the configuration
                            ResponseStatus rs = e32ttl1w.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
                            Serial.print("Config: ");
                            Serial.println(rs.getResponseDescription());
                          }
                          
                           Here the receiving code for WeMos
                          
                          #include "Arduino.h"
                          //#define E32_TTL_1W
                          //#define FREQUENCY_915
                          #include "LoRa_e32.h"
                          
                          #define RX 4
                          #define TX 5
                          #define M0 7
                          #define M1 6
                          
                          LoRa_E32 e32ttl1w(D3, D4, D5, D7, D6);
                          
                          void setup() {
                            //Inicio comunicacion serie con monitor
                            Serial.begin(9600);
                            delay(500);
                          // Startup all pins and UART
                          	e32ttl1w.begin();
                            //Configuro el nodo LoRa
                            nodeConfig();
                          }
                          
                          void loop() {
                          
                            if (e32ttl1w.available() > 0) {
                              Serial.println("----------");
                              ResponseContainer rc = e32ttl1w.receiveMessage();
                              Serial.println(rc.data);
                              // Is something goes wrong print error
                              if (rc.status.code != 1) {
                                rc.status.getResponseDescription();
                              } else {
                              // Print the data received
                                Serial.println(rc.data);
                              }
                            }
                            delay(500);
                          }
                          
                          void nodeConfig(){
                          
                            ResponseStructContainer c;
                            c = e32ttl1w.getConfiguration();
                            Configuration configuration = *(Configuration*) c.data;
                          
                              configuration.ADDH        = 0x0;
                              configuration.ADDL        = 0x3;
                              configuration.CHAN        = 0x10;
                          
                              configuration.SPED.airDataRate           = AIR_DATA_RATE_010_24;
                              configuration.SPED.uartBaudRate          = UART_BPS_9600;
                              configuration.SPED.uartParity            = MODE_00_8N1;
                              configuration.OPTION.fec                 = FEC_1_ON;
                              configuration.OPTION.fixedTransmission   = FT_FIXED_TRANSMISSION;
                              configuration.OPTION.ioDriveMode         = IO_D_MODE_PUSH_PULLS_PULL_UPS;
                              configuration.OPTION.transmissionPower   = POWER_20;
                              configuration.OPTION.wirelessWakeupTime  = WAKE_UP_1250;
                          
                            //printParameters(configuration);
                          
                          // Set configuration changed and set to not hold the configuration
                            ResponseStatus rs = e32ttl1w.setConfiguration(configuration, WRITE_CFG_PWR_DWN_SAVE);
                          
                            Serial.print("Config: ");
                            Serial.println(rs.getResponseDescription());
                          
                          }
                          
                          

                          Download also the new versione of LoRa e32 library that have some fix and additional function to manage multiple string receiving.

                          If you need more help ask without problems.

                           

                          Bye and thanks Renzo

                          Renzo Mischianti
                          Keymaster

                            Hi Alexander,

                            I’m happy that now e32 working correctly, but I don’t know dragino and I’m not able to help in that comparison.

                            If you need more help ask without problem.

                            Bye Renzo

                            Renzo Mischianti
                            Keymaster

                              Thanks Alexander,

                              Do you have the shield for WeMos, you get the error with that??

                              With 868 version sometime there Is a problem with the pull up resistor, but with Arduino.

                              Of you use the shield you can refer to this article LoRa E32 device for Arduino, esp32 or esp8266: WOR (wake on radio) microcontroller and new WeMos D1 mini shield – Part 7 but the configuration is

                              LoRa_E32 e32ttl(D3, D4, D5, D7, D6);

                               

                              And yes, I must update the schema ;).

                              If you give me more information we try to debug your problem.

                               

                              Bye Renzo

                              Renzo Mischianti
                              Keymaster

                                Hi Mario,

                                I put a piece of my Inverter monitor where I send a set of value via mail when there is a problem

                                EMailSender::EMailMessage message;
                                const String sub = F("Inverter error!"); // Here the subject
                                message.subject = sub;

                                const String mp = F("Error on inverter centraline");
                                const String ft = (fixedTime)?F("OK"):F("NO");
                                const String sd = (sdStarted)?F("OK"):F("NO");
                                const String wc = (wifiConnected)?F("OK"):F("NO");
                                const String sf = (isFileSaveOK)?F("OK"):F("NO");

                                // Here the message in html format
                                message.message = mp+
                                F("<br>Time fixed: ")+ft+
                                F("<br>SD Initialized: ")+sd+
                                F("<br>Wifi Connecter :P: ")+wc+
                                F("<br>Saving file ok: ")+sf+
                                F("<br>Wrong saving attempts: ")+sdWrongReadNumber;

                                EMailSender::Response resp = emailSend.send(emailToSend, message);

                                The result is

                                Error on inverter centraline
                                Time fixed: OK
                                SD Initialized: OK
                                Wifi Connecter :P: OK
                                Saving file ok: NO
                                Wrong saving attempts: 10

                                 

                                Bye Renzo

                                Attachments:
                                You must be logged in to view attached files.
                                in reply to: DHT12 Esp8266 (D1Mini) OneWire conections & blynk #4675
                                Renzo Mischianti
                                Keymaster

                                  Hi LottyZak,

                                  The sensor is a DHT12, and the value -127 isn’t present.

                                  Can you put an example of your idea.

                                  Thanks Renzo

                                Viewing 15 posts - 991 through 1,005 (of 1,020 total)