Forum Replies Created
-
AuthorPosts
-
Hi Mauelepilot,
to send email with MKR WiFi 1010 and WiFININA you must do some additional work.
I find this
https://gitlab.com/gratefulfrog/arduino-wifinina-gmail-smtp
seems you must enable 2 factor security and generate secret.
Give me a feedback if this can solve the problem
Bye RenzoIt’s very strange, I try to send an email now from an esp32 DEV KIT v1 and work correctly.
Please post your code, and in the file EMailSenderKey.h uncomment this line
//#define EMAIL_SENDER_DEBUG
and send the result (cover the login and passwd).
Thanks RenzoHi manuelpilot,
- please check is lessecureapp is activated,
- if you tried to spoof the sender address using google smtp (for instance, using FromAddress as something other than the name of my gmail account)
- check if you have some network limitation from firewall or VPN redirect.
Give me a feedback Bye Renzo
Hi John,
put all in DEBUG by uncommenting this line
// #define LoRa_E32_DEBUG
and check that the Serial is correct in this line
#define DEBUG_PRINTER Serial
Bye Renzo
26 November 2020 at 08:34 in reply to: EMailSender-master Library problem to manage email variable #8037Hi windip,
I think It’s better if you use an array of String instead of char*, in that situation you receive a warning like
ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
to manage this situation I use a simple String[].
This evening or tomorrow I’m going to release a new version (2.1.4) that can take a String[] or char* [] and convert It inside the library with a converter like
const char** toCharArray(String arr[], int num) { // If we ever alloc with new with have to delete const char** buffer = new const char*[num]; for(int i = 0; i < num; i++) { buffer[i] = arr[i].c_str(); } return buffer; }
and
const char** toCharArray(char* arr[], int num) { // If we ever alloc with new with have to delete const char** buffer = new const char*[num]; for(int i = 0; i < num; i++) { buffer[i] = arr[i]; } return buffer; }
I think It’s what you need.
Bye Renzo
Hi Poki,
if you have some exception on the behavior probably It’s the noise, the encoders have a lot of noise.
Try to change the algorithm, or add some capacitor to absorb It.
Bye RenzoHi Poki,
I checked and tested various encoder, and I have had multiple response different from different encoder.
So my solution to cover is this:#define BASIC_ENCODER_ALGORITHM // #define MISCHIANTI_ENCODER_ALGORITHM // #define SEQUENCE_ENCODER_ALGORITHM_REDUCED // #define SEQUENCE_ENCODER_ALGORITHM // #define POKI_ENCODER_ALGORITHM
I give the possibility to use different algorithm for different encoder like this
void updateEncoder(){ changed2 = pcf8574.readEncoderValueSequenceReduced(P6, P5, &encoderValue2); changed = pcf8574.readEncoderValue(encoderPinA, encoderPinB, &encoderValue, true); // int vale = pcf8574.readEncoderValue(encoderPinA, encoderPinB); // if (vale!=0){ // changed = true; // } // encoderValue = encoderValue + vale; bool val = pcf8574.digitalRead(P2); if (val!=valPrec){ changed = true; valPrec = val; encoderButtonVal = val; } bool val2 = pcf8574.digitalRead(P4); if (val2!=valPrec2){ changed2 = true; valPrec2 = val2; encoderButtonVal2 = val2; } }
With this solution I can use different modules and different encoders with succes.
Give me a feedbback.
Bye RenzoThere is another bug
byte encoderValues = B00000000;
must be
volatile byte encoderValues = B00000000;
Try It also please.
Thanks RenzoHi poki,
I had tested with 2 encoder and BASIC_ENCODER_ALGORITHM work fine for me, but with yours first encoder only increase.But I’m going to to do more test.
Bye Renzo
Hi Poki,
thanks for your solution, but your solution not work with my encoder, the first encoder only increment when rotate, the second work correctly.
I think there are some difference from the encoder, so I’m going to add you r algorithm to the library for all people that have your same type of encoder.
Now we have:#define POKI_ENCODER_ALGORITHM //#define BASIC_ENCODER_ALGORITHM //#define MISCHIANTI_ENCODER_ALGORITHM
Thanks for your support.
Hi poki,
change this lines// Select an algorithm to manage encoder progression #define BASIC_ENCODER_ALGORITHM //#define MISCHIANTI_ENCODER_ALGORITHM
comment MISCHIANTI_ENCODER_ALGORITHM and decomment BASIC_ENCODER_ALGORITHM, and give me a feedback.
Thanks Renzo
Hi Poky,
I never test the internal implementation with 2 encoder, It’s possible that there is a bug,to bypass the problem you can try to implement externally the management of 2 encoder, there is an example of external implementation on the relative tutorial
PCF8574 i2c digital I/O expander: Arduino, esp8266 and esp32, rotary encoder
But I try to fix as soon as possible.
Bye Renzo
Hehehhe,
no no, sorry, I did not understand, and I have not included examples that use pins different from the standard.
Instead of use this constructor
DHT12 dht12;
you can use this
DHT12 dht12(D1, D2);
and you can specify the alternati pins you want.
I think It’s what you need.
Bye Renzo
31 October 2020 at 09:50 in reply to: Send a simple mail including the value of a declared variable in the message #7478Hi Mohammed,
I use this declaration
uint8_t sdWrongReadNumber = 0;
You can find the complete sketch of the Power One aurora Inverter at this link.
GitHub repository of ABB Aurora inverter web interface.
If you need more info, ask.
Bye Renzo
Hi Dave,
I think you don’t need to use alternate pins, you can connect more than one device to the same 2 pins, you must only put the a different address.
Usually there is one master and one or multiple slaves on the line, although there can be multiple masters, but we’ll talk about that later.
Both masters and slaves can transmit or receive data, therefore, a device can be in one of these four states: master transmit, master receive, slave transmit, slave receive.
You must pay attention only if you manage i2c with interrupt.
Tell me if this can be a solution.
Bye Renzo
-
AuthorPosts