diff --git a/include/config.h b/include/config.h index d34dd09..68ef223 100644 --- a/include/config.h +++ b/include/config.h @@ -3,6 +3,7 @@ #define PRESSURE_PIN A7 #define BUTTON_PIN A6 #define SROE_PIN A3 +#define SRCLR_PIN A2 #define STATUS_LED_1_PIN A0 // Error pump #define DISPLAY_ACTIVE_PIN 9 #define STATUS_LED_2_PIN 8 diff --git a/lib/Pump/pump.cpp b/lib/Pump/pump.cpp index 4072f8e..6029f4f 100644 --- a/lib/Pump/pump.cpp +++ b/lib/Pump/pump.cpp @@ -104,7 +104,7 @@ uint16_t Pump::getStatus() { bool Pump::checkSensors() { if (millis() - this->lastMillisCheckSensor < Pump::delayCheckSensor) - return; + return true; this->lastMillisCheckSensor = millis(); //TODO: read pressure diff --git a/lib/Pump/pump.h b/lib/Pump/pump.h index 678f218..3ef9ac8 100644 --- a/lib/Pump/pump.h +++ b/lib/Pump/pump.h @@ -50,7 +50,6 @@ class Pump { uint8_t flowPin; uint8_t ledPin; - uint16_t delayTimer = 1000; uint16_t flow; uint16_t pressure; diff --git a/lib/Valve/valve.cpp b/lib/Valve/valve.cpp index 3047038..ae89f43 100644 --- a/lib/Valve/valve.cpp +++ b/lib/Valve/valve.cpp @@ -81,7 +81,7 @@ uint16_t Valve::getTimeLeft(uint8_t valveNumber) { void Valve::setValve(uint8_t valveNumber, bool state) { if (this->valves[valveNumber].shiftRegister && this->shiftRegister) - this->shiftRegister->writePin(this->valves[valveNumber].pin, state); + this->shiftRegister->writePin(this->valves[valveNumber].pin, !state); else digitalWrite(this->valves[valveNumber].pin, state); } diff --git a/src/main.cpp b/src/main.cpp index 4cbb91a..5dce8e7 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -12,19 +12,25 @@ #define BUFFER_SIZE 128 -byte mac[] = { 0xC3, 0xF9, 0x7C, 0xB1, 0x8C, 0xF3 }; +byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; -// IPAddress ip(192, 168, 13, 0); -// IPAddress gateway(192, 168, 0, 1); -// IPAddress subnet(255, 255, 128, 0); +IPAddress ip(192, 168, 13, 0); +IPAddress subnet(255, 255, 128, 0); +IPAddress gateway(192, 168, 0, 1); +IPAddress dns(192, 168, 0, 1); +IPAddress server(192, 168, 1, 7); -IPAddress ip(192, 168, 178, 202); -IPAddress gateway(192, 168, 178, 1); -IPAddress subnet(255, 255, 255, 0); -IPAddress dns(192, 168, 178, 1); -IPAddress server(192, 168, 178, 35); +// IPAddress ip(192, 168, 178, 202); +// IPAddress gateway(192, 168, 178, 1); +// IPAddress subnet(255, 255, 255, 0); +// IPAddress dns(192, 168, 178, 1); +// IPAddress server(192, 168, 178, 35); // IPAddress server(91, 121, 93, 94); +const char mqttUser[] = "kleiax"; +const char mqttPass[] = "p?{$_~5%hBM7wrcFkr55KWr#"; +const char mqttId[] = "bewaesserungArduino123"; + ShiftRegister reg(RCLK_PIN, SRCLK_PIN, SRSER_PIN, 2); Pump pump(SSR_PIN, PRESSURE_PIN, INT_HALL_PIN, STATUS_LED_1_PIN); Valve valves; @@ -41,6 +47,12 @@ void setup() { Serial.begin(115200); Serial.println(F("Arduino Irrigation")); + pinMode(SROE_PIN, OUTPUT); + pinMode(SRCLR_PIN, OUTPUT); + digitalWrite(SROE_PIN, LOW); + digitalWrite(SRCLR_PIN, HIGH); + reg.writeByte(0, UINT8_MAX); + reg.writeByte(1, UINT8_MAX); valves.addShiftRegister(®); for (uint8_t i = 0; i < VALVE_COUNT; i++) valves.add(valvePins[i], true); @@ -49,7 +61,24 @@ void setup() { client.setServer(server, 1883); client.setCallback(callback); - Ethernet.begin(mac, ip, dns, gateway, subnet); + Ethernet.begin(mac, ip, dns, gateway, subnet); + Serial.print("Info: "); + Serial.println(Ethernet.localIP() ); + + // if (Ethernet.begin(mac) == 0) { + // Serial.println("Failed to configure Ethernet using DHCP"); + // } else { + // Serial.print(" DHCP assigned IP "); + // Serial.println(Ethernet.localIP()); + // Serial.println(Ethernet.subnetMask()); + // Serial.println(Ethernet.dnsServerIP()); + // Serial.println(Ethernet.gatewayIP()); + // } + // // give the Ethernet shield a second to initialize: + // delay(1000); + // Serial.print("connecting to "); + // Serial.println(server); + // Allow the hardware to sort itself out delay(1500); @@ -118,7 +147,7 @@ void reconnect() { char topic[64]; while (!client.connected()) { Serial.print("Attempting MQTT connection..."); - if (client.connect("arduinoClient")) { + if (client.connect(mqttId, mqttUser, mqttPass)) { Serial.println("connected"); sprintf(topic, "%s/info", mainTopic); client.publish(topic,"reconnect"); @@ -175,3 +204,4 @@ void sendInfo() { size_t n = serializeJson(doc, buffer); client.publish(topic, buffer, n); } +