Problema wifi esp8266 nodemcu

Salve, ho un errore quando cerco di compilare il codice che contiene le info del wifi e del serve mqtt:

Arduino:1.8.8 (Windows 7), Scheda:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Enabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

Opzioni di compilazione cambiate, ricompilo tutto
Temperature_sensor_mqtt:38:4: error: 'WiFi' does not name a type

    WiFi.begin(ssid, password); //begin WiFi connection

    ^

Temperature_sensor_mqtt:41:3: error: expected unqualified-id before 'while'

   while (WiFi.status() != WL_CONNECTED) {

   ^

Temperature_sensor_mqtt:46:2: error: 'Serial' does not name a type

  Serial.println("");

  ^

Temperature_sensor_mqtt:47:2: error: 'Serial' does not name a type

  Serial.print("Connected to ");

  ^

Temperature_sensor_mqtt:48:2: error: 'Serial' does not name a type

  Serial.println(ssid);

  ^

Temperature_sensor_mqtt:49:2: error: 'Serial' does not name a type

  Serial.print("IP address: ");

  ^

Temperature_sensor_mqtt:50:2: error: 'Serial' does not name a type

  Serial.println(WiFi.localIP());

  ^

Temperature_sensor_mqtt:51:2: error: 'Serial' does not name a type

  Serial.print("connecting to MQTT broker...");

  ^

Temperature_sensor_mqtt:52:2: error: 'client' does not name a type

  client.begin("192.168.0.107", WiFiclient);

  ^

Temperature_sensor_mqtt:53:11: error: expected constructor, destructor, or type conversion before ';' token

  connect();

           ^

Temperature_sensor_mqtt:55:1: error: expected declaration before '}' token

 } 

 ^

exit status 1
'WiFi' does not name a type

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

Considerato che sono abbastanza nuovo nel mondo, non riesco a capire dove e come metterci mano. Le librerie incluse sono correttamente installate, così come è installato l'esp8266

Qualche aiuto o qualche "consiglio"?

Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :slight_smile:

P.S.: Ti ricordo che, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Patrick_M:
Buongiorno,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie. :slight_smile:

P.S.: Ti ricordo che, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Fatto

Due cose ...

  1. Nell'IDE, nelle preferenze, metti il segno di spunta per "Mostra un output dettagliato" sia per la compilazione che per il caricamento (... così avrai maggiori dettagli sull'errore).

  2. Metti il codice che stai utilizzando (...mi raccomando, in conformità al regolamento, punto 7, il codice va racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra).

Guglielmo

gpb01:
Due cose ...

  1. Nell'IDE, nelle preferenze, metti il segno di spunta per "Mostra un output dettagliato" sia per la compilazione che per il caricamento (... così avrai maggiori dettagli sull'errore).

  2. Metti il codice che stai utilizzando (...mi raccomando, in conformità al regolamento, punto 7, il codice va racchiuso tra i tag CODE che, in fase di edit, ti inserisce il bottone </> ... primo a sinistra).

Guglielmo

Salve, grazie delle dritte!

Allora l'errore dettagliato è questo:

Arduino:1.8.8 (Windows 7), Scheda:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Enabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"


Temperature_sensor_mqtt:38:4: error: 'WiFi' does not name a type

    WiFi.begin(ssid, password); //begin WiFi connection

    ^

Temperature_sensor_mqtt:41:3: error: expected unqualified-id before 'while'

   while (WiFi.status() != WL_CONNECTED) {

   ^

Temperature_sensor_mqtt:46:2: error: 'Serial' does not name a type

  Serial.println("");

  ^

Temperature_sensor_mqtt:47:2: error: 'Serial' does not name a type

  Serial.print("Connected to ");

  ^

Temperature_sensor_mqtt:48:2: error: 'Serial' does not name a type

  Serial.println(ssid);

  ^

Temperature_sensor_mqtt:49:2: error: 'Serial' does not name a type

  Serial.print("IP address: ");

  ^

Temperature_sensor_mqtt:50:2: error: 'Serial' does not name a type

  Serial.println(WiFi.localIP());

  ^

Temperature_sensor_mqtt:51:2: error: 'Serial' does not name a type

  Serial.print("connecting to MQTT broker...");

  ^

Temperature_sensor_mqtt:52:2: error: 'client' does not name a type

  client.begin("192.168.0.107", WiFiclient);

  ^

Temperature_sensor_mqtt:53:11: error: expected constructor, destructor, or type conversion before ';' token

  connect();

           ^

Temperature_sensor_mqtt:55:1: error: expected declaration before '}' token

 } 

 ^

Uso la libreria ESP8266WiFi alla versione 1.0 nella cartella: C:\Users\SPR\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\ESP8266WiFi 
Uso la libreria arduino-mqtt-master alla versione 2.4.1 nella cartella: C:\Users\SPR\Documents\Arduino\libraries\arduino-mqtt-master 
Uso la libreria SHT1x-master nella cartella: C:\Users\SPR\Documents\Arduino\libraries\SHT1x-master (legacy)
Uso la libreria Wire alla versione 1.0 nella cartella: C:\Users\SPR\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0-beta2\libraries\Wire 
exit status 1
'WiFi' does not name a type

Ho dovuto eliminare una parte dell'errore che racchiudeva tutti i percorsi perchè superava enormemente il numero di caratteri.

Mentre il codice scritto (o almeno copiato in buona parte) è il seguente, ovviamente adattato alle mie esigenze:

/*NodeMCU temperature and umidity
 * 
 * by LF
 */

#include <ESP8266WiFi.h>
#include <MQTT.h>
#include <MQTTClient.h>
#include <SHT1x.h>
#include <Wire.h>
 
const char* ssid     = "ToF-SIMS2";
const char* password = "ruthenium2016";
 
WiFiClient WiFiclient;
MQTTClient client;

unsigned long lastMillis = 0;

String page = "";
String text = "";
String data;

// Specify data and clock connections and instantiate SHT1x object
#define dataPin  2 //D4
#define clockPin 0 //D3
SHT1x sht1x(dataPin, clockPin);

float temp_c;
float humidity;

void setup()
{
   Serial.begin(115200); // Open serial connection to report values to host
   Serial.println("Starting up");
   }
 
   WiFi.begin(ssid, password); //begin WiFi connection
 
   // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
  delay(500);
  Serial.print("."); 
}

 Serial.println("");
 Serial.print("Connected to ");
 Serial.println(ssid);
 Serial.print("IP address: ");
 Serial.println(WiFi.localIP());
 Serial.print("connecting to MQTT broker...");
 client.begin("192.168.0.107", WiFiclient);
 connect();

} 

void connect() {
 while (!client.connect("Temperature_sensor1", "sensors_mqtt", "sensors_mqtt")) {
   Serial.print(".");
   delay(1000);
 }
 
 Serial.println("\nconnected!");
 client.subscribe("Temperature and humidity data");
}

void loop()
{
  
  // Read values from the sensor
  temp_c = sht1x.readTemperatureC();
  humidity = sht1x.readHumidity();
    
  client.loop();
  if(!client.connected()) {
   connect();
  }
 
  if(millis() - lastMillis > 2000) {
   lastMillis = millis();
   client.publish("Temperature_sensor1/temperature", (String)temp_c);
   client.publish("Temperature_sensor1/humidity", (String)humidity);
   }
}

Spero possiate darmi una mano =)
Grazie in anticipo

comunque, ho risolto, una parentesi mancante ahah

mmmm hai provato a premere ctrl+t dentro all'ide?

ti accorgeresti che ci sono un sacco di parentesi graffe chiuse a sproposito e conseguentemente pezzi di programma che si trovano orfani di setup
inoltre...
WiFi non è mai stato definito (a meno che non sia interno alle librerie MQTT...) :wink:

WiFiClient WiFiclient;
MQTTClient client;

p.s. scrivevo prima dell'ultimo commento...
ancora una ne hai aggiunta!! :smiley: :smiley:

Patrick_M:
mmmm hai provato a premere ctrl+t dentro all'ide?

ti accorgeresti che ci sono un sacco di parentesi graffe chiuse a sproposito e conseguentemente pezzi di programma che si trovano orfani di setup
inoltre...
WiFi non è mai stato definito (a meno che non sia interno alle librerie MQTT...) :wink:
p.s. scrivevo prima dell'ultimo commento...
ancora una ne hai aggiunta!! :smiley: :smiley:

SISI le ho sistemate. wifi dovrebbe essere dentro la libreria esp.
Ora sto tribolando tra publisher e subscribe per far comunicare il node e il raspberry. ma questa è un'altra storia