New answers tagged

0

First, I think the protocol is slightly different probably. The first byte is 71. The next byte seems to be the number of bytes that follow (C8 hex is 200). The last byte is the checksum. So you need to check for 71, when that is received you can read the next byte (number of bytes), the data, and the checksum. So the code should be something like: void ...


0

I think you'll need to modify your Google Script for that Sheet so that whatever function you are invoking to GET row data takes in an additional parameter for the row value. Then just add the Javascript logic within that function for retrieving the data at that passed-in row index to be returned. Does that make sense?


-1

You can use Software serial for this. and assign pins like SoftwareSerial mySerial(2, 3); // RX, TX This is a link for better understanding https://www.arduino.cc/en/Tutorial/SoftwareSerialExample


1

No. Those three devices are I2C devices, not SPI devices. Using that is no different to using three individual sensors all wired to the same I2C bus.


1

If you are using fauxmoESP library version 3.0 and above your device will not be detected by alexa, i dont know why this is. You may degrade fauxmoESp version to 2.4.0 so that your issue ie. .onSetState will be resolved. Are you able to connect wifi?


0

You use pins #define BME_SCK 12 //Connected SCL to IO12 #define BME_MISO 15 //Connected SDO to IO15 #define BME_MOSI 13 //Connected SDA to IO13 #define BME_CS 14 //Connected CS to IO14 for software SPI, but the esp32 can use any set of pins for hardware SPI. And your set of pins are even the dedicated mux pins for SPI2 (they have the direct connection ...


1

GPIO12 must not be pulled high during boot. It's possible there's a pull-up resistor on the BME680 breakout board you're using that's pulling SCK high and interfering with the boot process. I would avoid using GPIO12 here. If you're out of pins on the ESP32 you can connect the BME680 via I2C rather than SPI. I2C only needs SDA and SCK (and power and ground, ...


1

Why shouldn't i power ESP8266 WiFi module directly from arduino nano 3.3V rail? The 3.3V rail of the Arduino is not meant to provide much current. The onboard regulator is a simple linear voltage regulator, which will dissipate the extra power as heat. As you draw more current through it, it will get hotter and finally get fried, as it cannot dissipate the ...


3

You must use a WiFi (2.4 GHz) antenna. From the picture in your post, you have one of the esp8266 modules with a "built-in" antenna implemented via traces on the PCB. You cannot add an external antenna without removing the old one first, and even that will be very dodgy - you'll likely render your esp8266 useless for any purpose. Instead, you could get an ...


0

This little device is really good and easy to set up. https://www.dfrobot.com/product-1121.html You can use a pin and set it to ground with a resistor between to change songs if you don't need something fancy.


1

By adding strings together you are actually adding together the addresses in memory where those strings are. Instead you need to create a new empty buffer and fill it with the contents of the other strings. char buffer4[32]; // <-- Enough room for both strings and a NULL character strcpy(buffer4, mqtt_topic); // Copy in the first string strcat(buffer4,...


0

Finally it is working by setting baud rate to 9600 and shortening the GET URL. Maybe there is a length restriction in the library.


1

See Guide to PROGMEM on ESP8266 and Arduino IDE. Since you put your char array into PROGMEM, special functions must be used to load it from flash into RAM; so to load it into a String object, the FlashHelper class must be used. You can simply use the macro FPSTR(progmem_ptr). #include <Arduino.h> void setup() { Serial.begin(115200); Serial....


2

John Romkey provided you an excellent answer. I am adding this just to provide another perspective, hopefully complementary. Interrupts are meant to handle the most time-critical tasks. Those tasks that cannot wait for the next loop() iteration, such as counting a pulse from an encoder, or getting a byte out of the UART receive buffer. If you delay them too ...


2

Interrupts happen all the time and code works just fine without locking them out. It doesn't matter if it's at the exact moment that a function is saving something - a properly written interrupt handler will save any necessary state so that whatever was interrupted can continue without problems. If it doesn't, the software will crash hard. You should lock ...


0

The old WiFiEsp by Bruno Poltaruri library can't do much with larger data received. The AT firmware sends all the data at once and the serial RX buffer overflows. It works better with 9600 baud which slows down the AT firmware. It is hard to receive more data over network with AT firmware without UART hardware flow control and Arduino AVR boards don't have ...


1

In general there is several ways to do it, none of them is the perfect one... pointer to mqtt at global scope Adafruit_MQTT_Client * mqtt_ptr; and initialize it by mqtt_ptr = new Adafruit_MQTT_Client(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); in setup. Then you have to use arrow operator instead dot to access its methods. Or you can ...


3

What's your last error message? no matching function for call to 'PubSubClient::publish(const char [11], String&)' Read the documentation for the publish() method in PubSubClient: int publish (topic, payload) Publishes a string message to the specified topic. Parameters topic - the topic to publish to (const char[]) payload - ...


2

The sketch in the question is not for NodeMCU. It is for Arduino with esp8266 wired on pins 9 and 10. But the error in title is a current error for esp8266 Arduino boards package 2.6.0. The EspSoftwareSerial bundled with the esp8266 Arduino boards package version 2.6.0 has a compatibility breaking change. The problem was immediately reported and the ...


0

Yes it's possible. Try this one tutorial. https://circuits4you.com/2019/01/10/esp8266-nodemcu-https-secured-get-request/


0

Not sure if it possible in your case, but you might send and ID with it which you increase every time the button has been (really) clicked (thus not refreshed). On the receiver side, check if the ID is already received, if yes, do not execute it.


0

From what I see, this is a pulse sensor that work with light. It emits a bright light beam, that is reflected by the pulsing blood. To work, it must send the light directed to your veins. It should work well on your finger, because the probability to target a vein directly is much greater with a small finger then e.g. a wide wrist. Also the veins in your ...


Top 50 recent answers are included