Avläsning av S0 på elmätare via ESP8266
Re: Avläsning av S0 på elmätare via ESP8266
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??
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??
Re: Avläsning av S0 på elmätare via ESP8266
Hej!
Har du möjlighet att ladda upp ditt projekt kan jag titta på om jag ser nått fel.
Har du möjlighet att ladda upp ditt projekt kan jag titta på om jag ser nått fel.
Re: Avläsning av S0 på elmätare via ESP8266
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.
Edit: lade till "code"-taggar - hcb
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);
}
}
---------------------------------------------------------------------------------------------------------------------------------------
Re: Avläsning av S0 på elmätare via ESP8266
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
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
Re: Avläsning av S0 på elmätare via ESP8266
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
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
Re: Avläsning av S0 på elmätare via ESP8266
SSID, lösenord: "konstiga" tecken?
Kryptering: WEP, WPA etc. Prövat med att byta?
Trasig modul?
Kryptering: WEP, WPA etc. Prövat med att byta?
Trasig modul?
Re: Avläsning av S0 på elmätare via ESP8266
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.
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.
Re: Avläsning av S0 på elmätare via ESP8266
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
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
-
- 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
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
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
Re: Avläsning av S0 på elmätare via ESP8266
Nej!
Jag får ingen connect alltså ingen IP-adress.
Jag får ingen connect alltså ingen IP-adress.
-
- 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
Då borde den alltså stå still och printa ut detta:
Gör den det?
Kod: Markera allt
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Re: Avläsning av S0 på elmätare via ESP8266
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
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
Re: Avläsning av S0 på elmätare via ESP8266
Se om du kan välja mellan WPA, wpa2 eller WPA+WPA2 i accesspunkten/routern.
Prova isf att byta.
Prova isf att byta.
Re: Avläsning av S0 på elmätare via ESP8266
Ny Router från Comhem löste problemet.
Så nu gäller att komma vidare.
Lars
Så nu gäller att komma vidare.
Lars