Hello everyone
Just recently got my local server running (thanks Gunner).
i left it run overnight, and seemed fine, but then when i started to interact with it, locked up, and since has been unresponsive, working intermittently, not at all sometimes, etc.
I am using server-0.36.0, java 10 and a Mega 2560 with USB Serial link. I have simplified my code (and re-ran it to ensure the problem still exists) as shown below.
That said, I do think it is something related with the server. The code (full version) seemed to work fine with blynk cloud - but switched to local for latency / internet dependability reasons.
The blynk logs don’t seem to tell much, I can provide anytime. I should ask though, would the “best place to look” be in the blynk / postgres / stats / worker files? stats seems to have the most in it, but I am not sure how to use it in this case?
Appreciate your time in advance, thanks!
Sn00ky
/* Comment this out to disable prints and save space */
//#define BLYNK_PRINT Serial1
#include <avr/wdt.h>
#include <Arduino.h>
#include <TM1637Display.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include "Countimer.h"
#include <SimpleTimer.h>
#include <BlynkSimpleStream.h>
#include <WidgetRTC.h>
#include "HX711.h" //You must have this library in your arduino library folder
#define BLYNK_GREEN "#23C48E"
#define BLYNK_BLUE "#04C0F8"
#define BLYNK_YELLOW "#ED9D00"
#define BLYNK_RED "#D3435C"
#define BLYNK_DARK_BLUE "#5F7CD8"
#define BLYNK_GREY "#707172"
#define BLYNK_ORANGE "#d88e04"
#define BLYNK_WHITE "#ffffff"
#define relaypin1 24
#define relaypin2 26
#define relaypin3 28
#define relaypin4 30
#define relaypin5 32
#define relaypin6 34
#define relaypin7 36
#define relaypin8 38
#define alarmledpin 37
#define sonarpin 35
#define ONE_WIRE_BUS 22
#define TEMPERATURE_PRECISION 12
byte dssensorHLT[8] = { 0x28, 0xFF, 0x45, 0x8C, 0x88, 0x16, 0x3, 0x5B }; //2017-05-17 HLT
byte dssensorMLT[8] = { 0x28, 0xFF, 0x3F, 0x2D, 0x91, 0x16, 0x4, 0xEA }; //2017-05-31 MLT
byte dssensorILT[8] = { 0x28, 0xFF, 0x0E, 0x85, 0x90, 0x16, 0x5, 0xE3 }; //2017-05-31 Inline Sensor
byte dssensorRelay1[8] = { 0x28, 0xFF, 0xA1, 0x43, 0xA1, 0x16, 0x5, 0xFA }; //2017-05-21 Relay Sensor 1
byte dssensorRelay2[8] = { 0x28, 0xFF, 0x2D, 0x1E, 0xA1, 0x16, 0x4, 0x0B }; //2017-05-21 Relay Sensor 1
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);
//HLT Temperature
#define CLK 23
#define DIO 25
//MLT Temperature
#define CLK2 27
#define DIO2 29
//Inline Temperature
#define CLK3 31
#define DIO3 33
//Setup instances for each Display
TM1637Display displayHLT(CLK, DIO);
TM1637Display displayMLT(CLK2, DIO2);
TM1637Display displayILT(CLK3, DIO3);
//Blank display
uint8_t data[] = { 0x00, 0x00, 0x00, 0x00 };
//char auth[] = "*************************"; //BlynkCloud Token
//Blynk LOCAL Server Auth Code
char auth[] = "**********************************"; //Local Server 2018-05-02
BlynkTimer timer;
#define BlynkOutput //turn on or off blynk virtual writes
WidgetLED ledfan1(V8);
WidgetLED ledfan2(V9);
//WidgetRTC blynkrtc;
BLYNK_CONNECTED()
{
blynkrtc.begin(); //Blynk RTC Widget
Blynk.syncAll();
}
unsigned long millisloop;
unsigned long last;
int fanontemp = 82;
int relayalarmtemp = 100;
double HLTTemp, HLTTempSet, MLTTemp, ILTTemp, Relay1Temp, Relay2Temp;
double HLTThreshold = 0.25;
String HLTStatus = "N/A";
double mashTime, boilTime, finingsTime, hop1Time, hop2Time, hop3Time, hop4Time;
int mashTimeON, boilTimeON;
int testvalue = 1;
void setup()
{
blynksetup();
//setupdisplays();
//initializepins();
setuptempsensors();
timer.setInterval(790L, requestDSTemps);
timer.setInterval(800L, receiveDSTemps);
//timer.setInterval(1502L, Evaluate);
//timer.setInterval(5001L, fancheck);
//timer.setInterval(850L, blynkupdate1);
//timer.setInterval(5000L, blynkupdate2);
//timer.setInterval(10000L, timerupdate);
timer.setInterval(1000L, test);
}
void loop()
{
Blynk.run();
timer.run();
//looptimer();
}
void blynksetup()
{
//Start Blynk USB Serial
Serial.begin(9600);
Blynk.begin(Serial, auth);
}
void setupdisplays()
{
//Set display brightness
displayHLT.setBrightness(0x0f);
displayMLT.setBrightness(0x0f);
displayILT.setBrightness(0x0f);
}
void setuptempsensors()
{
//OneWire Dallas Temperature Library
sensors.begin();
sensors.setResolution(dssensorHLT, 12);
sensors.setResolution(dssensorMLT, 12);
sensors.setResolution(dssensorILT, 12);
sensors.setResolution(dssensorRelay2, 12);
sensors.setResolution(dssensorRelay2, 12);
}
void test()
{
Blynk.virtualWrite(V14, testvalue);
testvalue = testvalue + 1;
}
void requestDSTemps()
{
sensors.requestTemperatures();
}
void receiveDSTemps()
{
HLTTemp = DallasTemperature::toFahrenheit(sensors.getTempC(dssensorHLT));
MLTTemp = DallasTemperature::toFahrenheit(sensors.getTempC(dssensorMLT));
ILTTemp = DallasTemperature::toFahrenheit(sensors.getTempC(dssensorILT));
Relay1Temp = DallasTemperature::toFahrenheit(sensors.getTempC(dssensorRelay1));
Relay2Temp = DallasTemperature::toFahrenheit(sensors.getTempC(dssensorRelay2));
displayHLT.showNumberDec(HLTTemp); //Serial1.print("HLT Temp: "); Serial1.println(HLTTemp);
displayMLT.showNumberDec(MLTTemp); //Serial1.print("MLT Temp: "); Serial1.println(MLTTemp);
displayILT.showNumberDec(ILTTemp); //Serial1.print("ILT Temp: "); Serial1.println(ILTTemp);
}