Forum Replies Created

Viewing 15 posts - 841 through 855 (of 979 total)
  • Author
    Posts
  • in reply to: fix transmition #10056
    Renzo Mischianti
    Keymaster

      Hehehehehe.. I’m sorry for you, but It’s better for me.
      Bye Renzo

      Renzo Mischianti
      Keymaster

        Perfect Tans,
        I’m glad you found the problem.
        Bye Renzo

        Renzo Mischianti
        Keymaster

          Hi Tans,
          you code not use WiFiManager, to use It you must do something like this

          
          
          /*
           * EMailSender library for Arduino, esp8266 and esp32
           * Simple esp8266 Gmail with Email From name send example
           *
           * http://mischianti.org/category/my-libraries/emailsender-send-email-with-attachments/
           *
           */
          
          #include "Arduino.h"
          #include 
          #include 
          #include  // https://github.com/tzapu/WiFiManager
          
          const char *smtp_server = "smtp.gmail.com";
          uint16_t smtp_port = 465;
          const char *email_login = "@gmail.com";
          const char *email_password = "";
          const char *email_from = "@gmail.com";
          const char *email_to = "@gmail.com";
          const char *email_subject =
          		"Device {{DEVICE_AP}}/{{DEVICE_LOCATION}} alerts water alarm!";
          
          WiFiManager wifiManager;
          
          EMailSender emailSend(email_login, email_password, email_from, smtp_server,
          		smtp_port);
          
          
          void configModeCallback (WiFiManager *myWiFiManager) {
            Serial.println("Entered config mode");
            Serial.println(WiFi.softAPIP());
            //if you used auto generated SSID, print it
            Serial.println(myWiFiManager->getConfigPortalSSID());
          }
          
          void setup() {
          	Serial.begin(115200);
          
          	  //WiFiManager
          	  //Local intialization. Once its business is done, there is no need to keep it around
          	  WiFiManager wifiManager;
          	  //reset settings - for testing
          //	  wifiManager.resetSettings();
          
          	  //set callback that gets called when connecting to previous WiFi fails, and enters Access Point mode
          	  wifiManager.setAPCallback(configModeCallback);
          
          	  //fetches ssid and pass and tries to connect
          	  //if it does not connect it starts an access point with the specified name
          	  //here  "AutoConnectAP"
          	  //and goes into a blocking loop awaiting configuration
          	  if(!wifiManager.autoConnect("esp8266 mischiantis test")) {
          	    Serial.println("failed to connect and hit timeout");
          	    //reset and try again, or maybe put it to deep sleep
          	    ESP.reset();
          	    delay(1000);
          	  }
          
          	  //if you get here you have connected to the WiFi
          	  Serial.println(F("WIFIManager connected!"));
          
          	  Serial.print(F("IP --> "));
          	  Serial.println(WiFi.localIP());
          	  Serial.print(F("GW --> "));
          	  Serial.println(WiFi.gatewayIP());
          	  Serial.print(F("SM --> "));
          	  Serial.println(WiFi.subnetMask());
          
          	  Serial.print(F("DNS 1 --> "));
          	  Serial.println(WiFi.dnsIP(0));
          
          	  Serial.print(F("DNS 2 --> "));
          	  Serial.println(WiFi.dnsIP(1));
          
          	EMailSender::EMailMessage message;
          	message.subject = "Soggetto";
          	message.message = "Ciao come stai
          io bene.
          www.mischianti.org"; EMailSender::Response resp = emailSend.send(email_to, message); Serial.println("Sending status: "); Serial.println(resp.status); Serial.println(resp.code); Serial.println(resp.desc); } void loop() { }

          For additional detail you can check this guide

          How to manage dynamic WIFI configuration on esp8266 or esp32

          Bye Renzo

          in reply to: E90-DTU (400SL22P) #10000
          Renzo Mischianti
          Keymaster

            Hi Ludopot,
            they response me

            Hi Dear Customer,

            Thanks for contacting Ebyte for sales and technical support.

            1.All employees of Ebyte are having holiday and will get back to work after 19th, Feb. 2021.

            2.Ebyte accept orders during holiday time but shipping date will be after 19th.Feb.2021.

            For technical support cases, you may send your questions with full model numbers, order ID numbers, store name and, if you have, screenshots of your settings to me by email.

            I will try to reply you every 1-3 days because I will have limited access to email.
            Sorry for the inconvenience.
            ———————————
            Best Regards,
            Sales Engineer:Robin Hu
            Email: sales06@ebyte.com
            Phone: +86-18584911141
            Skype: Ebyte Robin Hu
            Website: http://www.ebyte.com/en/
            Chengdu Ebyte Electronic Technology Co., Ltd.
            Address:Building B5, Mould Industrial Park, 199# Xiqu Ave, West High-tech Zone, Chengdu, 611731

            I rewrite the email with the orders information, but we must wait after the Chinese New Year.

            Keep in touch, Bye Renzo

            in reply to: E90-DTU (400SL22P) #9992
            Renzo Mischianti
            Keymaster

              Hi ludopot,
              for the compatibility I write to EByte, when i receive a response i write here.

              But you can do all with a microcontroller some e22 and a max3485 ic.

              To implement rs485 communication refer to this article

              How to interface Arduino, esp8266 or esp32 to RS-485.

              Pratically microcontroller retrieve information with max485 ic and send these with e22 device.

              Bye Renzo

              in reply to: PCF 8574 example from nopnop #9988
              Renzo Mischianti
              Keymaster

                Don’t worry Turnoff,
                for every doubt or qwestion write a topic without problems.
                Bye Renzo

                in reply to: port 587 with ssl ANS TLS not working #9987
                Renzo Mischianti
                Keymaster

                  Hi Pim,
                  Wich platform do you use??
                  Bye Renzo

                  in reply to: PCF 8574 example from nopnop #9984
                  Renzo Mischianti
                  Keymaster

                    Hi Turnoff,
                    you can understand the syntax when you check the structure of the PCF8574 class:

                    
                    class PCF8574 {
                    [...]
                    		struct DigitalInput {
                    			uint8_t p0;
                    			uint8_t p1;
                    			uint8_t p2;
                    			uint8_t p3;
                    			uint8_t p4;
                    			uint8_t p5;
                    			uint8_t p6;
                    			uint8_t p7;
                    		} digitalInput;
                    [...]
                    }
                    

                    there is a structure DigitalInput declared inside the PCF8574 class declaration, so to reference the Object inside It you must use :: notation.

                    PCF8574::DigitalInput

                    I hope I was clear.

                    Bye Renzo

                    Renzo Mischianti
                    Keymaster

                      Hi Pedja,
                      You can use a pcf8591 that have 4 analog input and one analog output (256 position).

                      PCF8591 i2c Analog I/O Expander

                      You can connect the IC to the same i2c pin with a different address.

                      I think it’s sufficient to do the work.

                      Bye Renzo

                      Renzo Mischianti
                      Keymaster

                        Hi Pedja,

                        pcf8574 is a digital I/O expander, analogWrite work only for analog expander or PWM pin, so can’t work with pcf8574.

                        Bye Renzo

                        Renzo Mischianti
                        Keymaster

                          Hi Gilles,
                          I try to do a fix and i write here when ready.
                          Bye Renzo

                          in reply to: Applying TImeZone functionality (ESP8266 Ntp ) #9673
                          Renzo Mischianti
                          Keymaster

                            Hi Cameron,
                            I understand what you want to do, but It’s discouraged because you lost some information (GTM for example), but here the code modified.
                            I advise you to use strftime that offer a lot of features here a list.

                            I update local time directly when the value is returned because if you call the functione more than one time you apply N time the DST and you lost control of the time.

                            
                            		unsigned long epoch = tz.toLocal(timeClient.getEpochTime());
                            		setTime(epoch);
                            

                            and use a strftime like so

                            
                            	Serial.println(getEpochStringByParams(now(), "%H:%M:%S %d.%m.%Y It's a beautiful %A of %B"));
                            
                            

                            and the complete sketch
                            pay attention I add my timezone:

                            
                            
                            /*
                             * Simple NTP client update system time with DST applyed (discouraged)
                             * http://mischianti.org/
                             *
                             * The MIT License (MIT)
                             * written by Renzo Mischianti 
                             */
                            
                            #define DEBUG
                            
                            const char *ssid = "";
                            const char *password = "";
                            
                            #include 
                            // change next line to use with another board/shield
                            #include 
                            //#include  // for WiFi shield
                            //#include  // for WiFi 101 shield or MKR1000
                            #include 
                            #include 
                            #include 
                            #include     // https://github.com/JChristensen/Timezone
                            
                            /**
                             * Input time in epoch format and return tm time format
                             * by Renzo Mischianti 
                             */
                            static tm getDateTimeByParams(long time) {
                            	struct tm *newtime;
                            	const time_t tim = time;
                            	newtime = localtime(&tim);
                            	return *newtime;
                            }
                            /**
                             * Input tm time format and return String with format pattern
                             * by Renzo Mischianti 
                             */
                            static String getDateTimeStringByParams(tm *newtime, char *pattern =
                            		(char*) "%d/%m/%Y %H:%M:%S") {
                            	char buffer[90];
                            	strftime(buffer, 90, pattern, newtime);
                            	return buffer;
                            }
                            
                            /**
                             * Input time in epoch format format and return String with format pattern
                             * by Renzo Mischianti 
                             */
                            static String getEpochStringByParams(long time, char *pattern =
                            		(char*) "%d/%m/%Y %H:%M:%S") {
                            //    struct tm *newtime;
                            	tm newtime;
                            	newtime = getDateTimeByParams(time);
                            	return getDateTimeStringByParams(&newtime, pattern);
                            }
                            
                            WiFiUDP ntpUDP;
                            
                            // By default 'pool.ntp.org' is used with 60 seconds update interval and
                            // no offset
                            // NTPClient timeClient(ntpUDP);
                            
                            // You can specify the time server pool and the offset, (in seconds)
                            // additionaly you can specify the update interval (in milliseconds).
                            int GTMOffset = 0; // SET TO UTC TIME
                            NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", GTMOffset * 60 * 60,
                            		60 * 60 * 1000);
                            
                            // Central European Time (Frankfurt, Paris)
                            TimeChangeRule CEST = { "CEST", Last, Sun, Mar, 2, 120 }; // Central European Summer Time
                            TimeChangeRule CET = { "CET ", Last, Sun, Oct, 3, 60 }; // Central European Standard Time
                            Timezone tz(CEST, CET);
                            
                            
                            //// US Pacific Time Zone (Las Vegas, Los Angeles)
                            //TimeChangeRule usPDT = {"PDT", Second, Sun, Mar, 2, -420};
                            //TimeChangeRule usPST = {"PST", First, Sun, Nov, 2, -480};
                            //Timezone tz(usPDT, usPST);
                            
                            void setup() {
                            	Serial.begin(115200);
                            	WiFi.begin(ssid, password);
                            
                            	while (WiFi.status() != WL_CONNECTED) {
                            		delay(500);
                            		Serial.print(".");
                            	}
                            
                            	timeClient.begin();
                            	delay(1000);
                            	if (timeClient.update()) {
                            		Serial.print("Adjust local clock");
                            //		unsigned long epoch = timeClient.getEpochTime();
                            		unsigned long epoch = tz.toLocal(timeClient.getEpochTime());
                            		setTime(epoch);
                            	} else {
                            		Serial.print("NTP Update not WORK!!");
                            	}
                            
                            }
                            
                            
                            void loop() {
                            // I print the time from local clock but first I check DST
                            // to add hours if needed
                            //	Serial.println(getEpochStringByParams(tz.toLocal(now())));
                            	Serial.println(getEpochStringByParams(now(), "%H:%M:%S %d.%m.%Y It's a beautiful %A of %B"));
                            	Serial.print("MyCrummyCode:");
                            	digitalClockDisplay();
                            
                            	delay(1000);
                            }
                            
                            tmElements_t tm;
                            
                            time_t current_time() {
                            	return make_unixtime(tz.toLocal(second()), tz.toLocal(minute()),
                            			tz.toLocal(hour()), tz.toLocal(day()), tz.toLocal(month()),
                            			tz.toLocal(year()));
                            }
                            
                            time_t make_unixtime(uint8_t sec, uint8_t mn, uint8_t hr, uint8_t dy,
                            		uint8_t mon, uint16_t yr) {
                            	tm.Second = sec;
                            	tm.Hour = hr;
                            	tm.Minute = mn;
                            	tm.Day = dy;
                            	tm.Month = mon;
                            	tm.Year = yr - 1970;
                            	return makeTime(tm);
                            }
                            
                            void digitalClockDisplay() {
                            // digital clock display of the time
                            #ifdef DEBUG
                            		yield();
                            		Serial.print(hour());
                            		yield();
                            		printDigits(minute());
                            		yield();
                            		printDigits(second());
                            		yield();
                            		Serial.print(" ");
                            		yield();
                            		Serial.print(day());
                            		yield();
                            		Serial.print(".");
                            		yield();
                            		Serial.print(month());
                            		yield();
                            		Serial.print(".");
                            		yield();
                            		Serial.print(year());
                            		yield();
                            		Serial.print(" ");
                            		yield();
                            		Serial.println(dayStr(weekday()));
                            #endif
                            }
                            
                            void printDigits(int digits) {
                            // utility for digital clock display: prints preceding colon and leading 0
                            	yield();
                            	Serial.print(":");
                            	if (digits < 10)
                            		Serial.print('0');
                            	yield();
                            	Serial.print(digits);
                            }
                            
                            
                            

                            and here the result

                            
                            MyCrummyCode:7:26:58 3.2.2021 Wednesday
                            07:26:59 03.02.2021 It's a beautiful Wednesday of February
                            MyCrummyCode:7:26:59 3.2.2021 Wednesday
                            07:27:00 03.02.2021 It's a beautiful Wednesday of February
                            MyCrummyCode:7:27:00 3.2.2021 Wednesday
                            07:27:01 03.02.2021 It's a beautiful Wednesday of February
                            MyCrummyCode:7:27:01 3.2.2021 Wednesday
                            07:27:02 03.02.2021 It's a beautiful Wednesday of February
                            MyCrummyCode:7:27:02 3.2.2021 Wednesday
                            07:27:03 03.02.2021 It's a beautiful Wednesday of February
                            MyCrummyCode:7:27:03 3.2.2021 Wednesday
                            
                            

                            Bye Renzo

                            Attachments:
                            You must be logged in to view attached files.
                            in reply to: ESP32 S2 SAOLA 1R ND… IDE compiling Problems. #9665
                            Renzo Mischianti
                            Keymaster

                              Hi Rainer,
                              It’s stragne, check again all the steps, then try to enable verbose debug

                              File->Preferences->Show verbose output during:. Tick boxes for compilation and upload.

                              Arduino IDE options

                              And tell us the result.
                              Bye Renzo

                              in reply to: pcf8574 not work with multiple input pull up and output #9658
                              Renzo Mischianti
                              Keymaster

                                Hi Jorn,
                                to manage pull up and pull down change in debounce, you must specify (like the Arduino pin) if the initial state is in pull up or pull down.

                                By default It’s pull down.

                                The library has an internal state that memorizes the value change, and though you don’t use an interrupt you can read the button change.

                                So initialization of your pin to work must be

                                
                                unit->pinMode(3, INPUT_PULLUP);
                                

                                Bye Renzo

                                Renzo Mischianti
                                Keymaster

                                  Hi tpapas,

                                  glad to have been helpful.

                                  If you need more help write a topic.

                                  Bye Renzo

                                Viewing 15 posts - 841 through 855 (of 979 total)