Avläsning av S0 på elmätare via ESP8266

Berätta om dina pågående projekt.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Trevligt projekt!

Försöker lära mig lite inom det här området men har kanske åldern och min dåliga Engelska mot mig.
Har kollat lite på Youtub och försöker få fart på en ESP8266 NodeMcu enhet köpt på kjell.com men lyckas inte få den att logga in i mitt nätverk som är ett 2,4GHz nät.
Kör Arduino 1.8.1.
Har inkluderat det här i Inställningar http://arduino.esp8266.com/stable/packa ... index.json.
I Boards manager har jag valt NodeMcu 1.0.
Har laddat ned koden från denna sida
http://www.instructables.com/id/Quick-S ... /?ALLSTEPS.
Har laddat ned biblioteken för alla #include.
Ändrat SSID och password till det som gäller min gateway.
Koden för blink får jag att funka, hämtad från länken ovan.
Koden för ESP8266 WiFi får jag inte att funka, enheten loggar inte in i mitt nät.
Vid kompileringen får jag inga felmeddelanden (vid första försöket av kompilering blir det några varningar men de kommer inte vid ett nytt försök).

Med seriell monitor ser man att den väntar på inloggning.
Kollar i PC-n scanna av i nätverksinställningar så finns det en enhet som heter ESP_014 som är den enheten som skall logga in.

Finns det någon vänlig själ som kan hjälpa mig??
Användarvisningsbild
pstrand
Inlägg: 373
Blev medlem: 6 november 2010, 09:51:33
Skype: p.a.strand
Ort: Ljungsbro

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av pstrand »

Hej!

Har du möjlighet att ladda upp ditt projekt kan jag titta på om jag ser nått fel.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Här är en annan källkod jag testat med och ger samma resultat. Har hittat den på ett forum.
Har även kollat i min gateway under LAN IP där dyker en inte heller upp.
Har även kollat att det går att pinga den IP adress som kommer upp då jag scannar med PC-n mitt nät och hittar enheten där.

Kod: Markera allt

--------------------------------------------------------------------------------------------------------------------------------
/*
*  IVT 490 serial to MQTT

*/
 
#include <ESP8266WiFi.h>
#include <SoftwareSerial.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>

const char* ssid = "Mittnät"; // WIFI-network
const char* password = "Mittpassord"; // WIFI-password
IPAddress MQTTserver(192, 168, 2, 191); // IP to MQTT-server
 
String inputString;
boolean stringComplete = false;
char inChar;
int counter;
int commaPosition;
float ivt[50];
 
WiFiClient wclient;
PubSubClient client(MQTTserver, 1883, wclient);
 
SoftwareSerial swSer(14, 12, false, 128);
 
float stringToFloat(String input){
  String stringTemp = input;
  char stfarray[stringTemp.length() + 1];
  stringTemp.toCharArray(stfarray, sizeof(stfarray));
  float stf = atof(stfarray);
  stringTemp = "";
  memset(stfarray, 0, sizeof stfarray);
  return stf; 
}
 
void setup_wifi() {
 
  delay(10);
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  WiFi.begin(ssid, password);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
 
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
}
 
 
void setup() {
    Serial.begin(115200);
    swSer.begin(9600);
    delay(10);
    
    setup_wifi();
}
 
void reconnect() {
  // Loop until we're reconnected
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    // Attempt to connect
    if (client.connect("ESP8266Client")) {
      Serial.println("connected");
      // Once connected, publish an announcement...
      client.publish("outTopic", "hello world");
      // ... and resubscribe
      client.subscribe("inTopic");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      // Wait 5 seconds before retrying
      delay(5000);
    }
  }
}
 
 
void mqttCommand(char* payload) {
  Serial.println("Publishing command");
  Serial.println(payload);
  client.publish("/ivt/output", payload); //MQTT-topic
  }
 
void fetchSerial ()
{
  while(swSer.available() > 0)
  {
    inChar = swSer.read();
    if(inChar != 32){
      inputString += inChar;
    }
    
    delay(2);
  }
  inChar = '0';
  Serial.println(inputString);
  stringComplete = true;
}
 
void splitString ()
{ 
  commaPosition = inputString.indexOf(';');
  while(commaPosition >= 0)
  {
    commaPosition = inputString.indexOf(';');
    if(commaPosition != -1)
    {
      ivt[counter] = stringToFloat(inputString.substring(0,commaPosition));
      inputString = inputString.substring(commaPosition+1, inputString.length());    
    }
    else
    {
      if(inputString.length() > 0){
        ivt[counter] = stringToFloat(inputString.substring(0,commaPosition));
      }
    }
    counter++;
  }
  counter = 0;
  inputString = "";
  commaPosition = 0;
 
  StaticJsonBuffer<800> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["framledn"] = ivt[1];
  root["ute"] = ivt[2];
  root["tappvarmv"] = ivt[3];
  root["varmev1"] = ivt[4];
  root["varmev2"] = ivt[5];
  root["inne"] = ivt[6];
  root["hetgas"] = ivt[7];
  root["egtemp"] = ivt[8];
  root["tryckvakt"] = ivt[9];
  root["hogtryck"] = ivt[10];
  root["lagtryck"] = ivt[11];
  root["egsemester"] = ivt[12];
  root["kompressor"] = ivt[13];
  root["schuntoppen"] = ivt[14];
  root["schuntstangd"] = ivt[15];
  root["cirkpump"] = ivt[16];
  //root["18"] = ivt[17];
  root["larm"] = ivt[18];
  //root["20"] = ivt[19];
  //root["21"] = ivt[20];
  //root["22"] = ivt[21];
  root["bvframledning"] = ivt[22];
  //root["24"] = ivt[23];
  //root["25"] = ivt[24];
  //root["26"] = ivt[25];
  //root["27"] = ivt[26];
  //root["28"] = ivt[27];
  //root["29"] = ivt[28];
  root["extravv1"] = ivt[29];
  root["extravv2"] = ivt[30];
  root["extravv3"] = ivt[31];
  //root["33"] = ivt[32];  
  root["elpatron"] = ivt[33];
  //root["35"] = ivt[34];
  root["extravv4"] = ivt[35];
  //root["37"] = ivt[36];
  //root.prettyPrintTo(Serial);
 
  char buffer[800];
  root.printTo(buffer, sizeof(buffer));
 
  memset(ivt, 0, sizeof ivt);
  stringComplete = false;
 
  Serial.println(buffer);
  mqttCommand(buffer);
}
 
 
void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
  if(swSer.available() > 0)
  {
    fetchSerial();
  }
 
  if(stringComplete == true){
    delay(10);
    splitString();
    delay(50);
  }
}
---------------------------------------------------------------------------------------------------------------------------------------
Edit: lade till "code"-taggar - hcb
Användarvisningsbild
pstrand
Inlägg: 373
Blev medlem: 6 november 2010, 09:51:33
Skype: p.a.strand
Ort: Ljungsbro

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av pstrand »

Jag får upp detta:

Connecting to SPACOMPUTING2
......
WiFi connected
IP address:
192.168.0.41
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Attempting MQTT connection...failed, rc=-2 try again in 5 seconds
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Mycket Tack!!
Detta bevisar ju att det måste vara något med mitt nätverk troligtvis något i inställningarna, har provat med att disable Security options i Routern utan bättre resultat.
Så nu har jag ingen ide om vad mer jag kan göra.
Lars
Användarvisningsbild
pstrand
Inlägg: 373
Blev medlem: 6 november 2010, 09:51:33
Skype: p.a.strand
Ort: Ljungsbro

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av pstrand »

SSID, lösenord: "konstiga" tecken?
Kryptering: WEP, WPA etc. Prövat med att byta?
Trasig modul?
Användarvisningsbild
bruka
Inlägg: 243
Blev medlem: 29 augusti 2011, 08:06:27
Ort: Hälsingland

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av bruka »

Det kanske ligger kvar av NodeMCUs firmware i botten som ställer till det?
Har haft problem med det nån gång och fått lägga in en "blank.bin" för att tömma den helt, men det ska även gå att göra det om man kopplar ihop rx och tx och tryck reset (gpio 03 och 01) Sitter bredvid 3,3 volt och gnd. Kolla i serialmonitor när den gått klart


Jag använder Esp Easy som visserligen är Arduinokod från början men finns som färdigkompilerade bin filer på http://www.letscontrolit.com/wiki/index.php/ESPEasy

Edit, glömde en mening.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Har testat med tre olika enheter "NodeMcu"!
SSID och password innehåller bara a-f, A-F, 0-9!
Provat med reset-knappen då TX o RX är byglade!
Utan inloggning!

Security Options
Detta är Enable "WPA2-PSK(Wi-Fi Protected Access 2 Pre-Shared Key)"
Om jag ändrar Security Options är det väl risk att jag tappar kontakten med alla andra enheter i mitt nätverk?

Fler idéer?
Lars
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av danielr112 »

Lite osäker på vad som skedde ovan men fick du IP? isåfall är du kopplad mot nätet.


kör en enkel sketch och connecta till wifi samt vänta tills det är gjort och printa sedan ut ipt. Om det går prova pinga från annan enhet.

/D
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Nej!
Jag får ingen connect alltså ingen IP-adress.
danielr112
Inlägg: 8051
Blev medlem: 18 januari 2009, 00:48:24
Ort: Alvesta, Småland

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av danielr112 »

Då borde den alltså stå still och printa ut detta:

Kod: Markera allt

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Gör den det?
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Ja precis så beter den dig!
Lars
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Tack för all hjälp!
Nu har jag lokaliserat problemet till min router från Comhem, åkte till min grabb för att prova mot deras nätverk och den loggade in direkt. Får kontakta Comhem.

Är ju nybörjare och har väl dåligt självförtroende och tror att problemet är jag själv.

Lars
Användarvisningsbild
Hedis
Inlägg: 2488
Blev medlem: 8 december 2003, 15:10:44
Ort: Vänersborg
Kontakt:

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Hedis »

Se om du kan välja mellan WPA, wpa2 eller WPA+WPA2 i accesspunkten/routern.
Prova isf att byta.
Drivmedel
Inlägg: 56
Blev medlem: 29 oktober 2011, 13:40:18
Ort: Lund Södra Sandby

Re: Avläsning av S0 på elmätare via ESP8266

Inlägg av Drivmedel »

Ny Router från Comhem löste problemet.
Så nu gäller att komma vidare.
Lars
Skriv svar