Browse Source

try and fix freeze

main
Hendrik Langer 5 years ago
parent
commit
af526bdca6
  1. 21
      src/main.cpp

21
src/main.cpp

@ -37,7 +37,7 @@ const char* mqttusername PROGMEM = "esp-weatherstation";
const char* mqttpassword PROGMEM = PWD_MQTT; const char* mqttpassword PROGMEM = PWD_MQTT;
constexpr unsigned int postingInterval = 60000; //Uploadintervall in Millisekunden constexpr unsigned int postingInterval = 60000; //Uploadintervall in Millisekunden
constexpr unsigned int dhcp_interval = 3*60*1000; constexpr unsigned int dhcp_interval = 60*60*1000;
uint32_t loop_count = 0; uint32_t loop_count = 0;
@ -88,6 +88,10 @@ ADC_MODE(ADC_VCC);
ESP8266WiFiMulti wifiMulti; ESP8266WiFiMulti wifiMulti;
HTTPClient httpclient;
WiFiClientSecure net;
MQTTClient mqttclient(MQTT_MAX_PACKET_SIZE);
os_timer_t Timer1; os_timer_t Timer1;
RunningAverage geigeraverage(10); RunningAverage geigeraverage(10);
@ -333,7 +337,6 @@ void ICACHE_FLASH_ATTR sendValues() {
int httpCode = 0; int httpCode = 0;
for (int tries=0; tries<3 && httpCode != HTTP_CODE_CREATED; tries++) { for (int tries=0; tries<3 && httpCode != HTTP_CODE_CREATED; tries++) {
HTTPClient httpclient;
char url[100]; char url[100];
sprintf(url, "http://%s/boxes/%s/data", server, SENSEBOX_ID); sprintf(url, "http://%s/boxes/%s/data", server, SENSEBOX_ID);
@ -357,9 +360,6 @@ void ICACHE_FLASH_ATTR sendValues() {
} }
WiFiClientSecure net;
MQTTClient mqttclient(MQTT_MAX_PACKET_SIZE);
net.setInsecure(); net.setInsecure();
mqttclient.begin(mqttserver, 8883, net); mqttclient.begin(mqttserver, 8883, net);
int tries = 0; int tries = 0;
@ -400,10 +400,10 @@ void ICACHE_FLASH_ATTR sendValues() {
} }
// geiger event when gpio pulled low (called vin on board) // geiger event when gpio pulled low (called vin on board)
/*void ICACHE_RAM_ATTR ISR_geiger_impulse() { void ICACHE_RAM_ATTR ISR_geiger_impulse() {
geiger_counts++; geiger_counts++;
DEBUG_MSG("X"); //DEBUG_MSG("X\n");
}*/ }
void setup() { void setup() {
@ -428,11 +428,10 @@ void setup() {
dht.begin(); dht.begin();
pinMode(GEIGER_PIN, INPUT); pinMode(GEIGER_PIN, INPUT);
//attachInterrupt(digitalPinToInterrupt(GEIGER_PIN), ISR_geiger_impulse, FALLING);
geigeraverage.clear(); geigeraverage.clear();
//WiFi.persistent(false); // don't load and save credentials to flash WiFi.persistent(false); // don't load and save credentials to flash
WiFi.mode(WIFI_STA); WiFi.mode(WIFI_STA);
wifiMulti.addAP("nether.net", PWD_NETHERNET); wifiMulti.addAP("nether.net", PWD_NETHERNET);
wifiMulti.addAP("LNet", PWD_LNET); wifiMulti.addAP("LNet", PWD_LNET);
@ -444,6 +443,7 @@ void setup() {
} }
void loop() { void loop() {
attachInterrupt(digitalPinToInterrupt(GEIGER_PIN), ISR_geiger_impulse, FALLING);
unsigned long currentMillis = rtcMillis(); unsigned long currentMillis = rtcMillis();
if ((currentMillis - previousMillis) >= postingInterval) { if ((currentMillis - previousMillis) >= postingInterval) {
previousMillis = currentMillis; previousMillis = currentMillis;
@ -457,6 +457,7 @@ void loop() {
DEBUG_MSG("heap: %d\n", ESP.getFreeHeap()); DEBUG_MSG("heap: %d\n", ESP.getFreeHeap());
delay(10); delay(10);
detachInterrupt(digitalPinToInterrupt(GEIGER_PIN));
lightsleep(); lightsleep();
delay(10); // debounce? delay(10); // debounce?
} }

Loading…
Cancel
Save