I have a problem.
I connected my NANO with Node MCU 0.9 (esp8266). via rx and tx and gnd.
And I use thingspeak library .
Then I put voltage sensor in node mcu
now ,
temperature1 = field 1.
temperature2 = field 2.
temperature3 = field 3.
voltage = field 4.
here's code for node mcu.
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ThingSpeak.h>
#define ANALOG_IN_PIN A0
const char *ssid = "************";
const char *password = "****************";
const char *thingSpeakApiKey = "47JIN--------IOA";
const unsigned long myChannelNumber = 2535942;
float R1 = 30000.0;
float R2 = 7500.0;
float ref_voltage = 5.0;
WiFiClient client;
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
ThingSpeak.begin(client);
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
float temperature1, temperature2, temperature3, voltage;
if (Serial.available() >= 16) {
temperature1 = Serial.parseFloat();
temperature2 = Serial.parseFloat();
temperature3 = Serial.parseFloat();
while (Serial.available() > 0) {
Serial.read();
}
int adc_value = analogRead(ANALOG_IN_PIN);
float adc_voltage = (adc_value * ref_voltage) / 1024.0;
float in_voltage = adc_voltage * ((R1 + R2) / R2);
Serial.print("Input Voltage = ");
Serial.println(in_voltage, 2);
Serial.println("Updating ThingSpeak fields");
ThingSpeak.setField(1, temperature1);
ThingSpeak.setField(2, temperature2);
ThingSpeak.setField(3, temperature3);
ThingSpeak.setField(4, in_voltage);
int response = ThingSpeak.writeFields(myChannelNumber, thingSpeakApiKey);
if (response == 200) {
Serial.println("Data sent to ThingSpeak successfully");
} else {
Serial.println("Failed to send data to ThingSpeak");
}
} else {
Serial.println("WiFi not connected, Retrying...");
WiFi.begin(ssid, password);
}
delay(2000);
}}
The nano tells correct reading
but node mcu on thingspeak have errors


