witam potrzebuję plik bin z tego kodu czy ktoś pomoże?
#include <WiFi.h>
#include <Wire.h>
#include <SuplaDevice.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <MAX6675.h>
// Ustawienia WiFi
const char* ssid = "Your_SSID"; // Podaj nazwę swojej sieci WiFi
const char* password = "Your_PASSWORD"; // Podaj hasło do swojej sieci WiFi
// Dane logowania do Supla
const char* SUPLA_SERVER = "supla.pl"; // Możesz użyć własnego serwera, jeśli go masz
const char* SUPLA_EMAIL = "[email protected]"; // Adres e-mail
const char* SUPLA_PASSWORD = "your_password"; // Hasło
// Ustawienia DS18B20 (czujniki temperatury)
#define ONE_WIRE_BUS 4 // Pin, do którego podłączony jest czujnik
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
// Ustawienia OLED
#define SCREEN_WIDTH 128 // Szerokość ekranu OLED
#define SCREEN_HEIGHT 64 // Wysokość ekranu OLED
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
// Ustawienia MAX6675 (pomiar temperatury spalin)
#define MAX6675_CS 5 // Pin CS (Chip Select)
#define MAX6675_CLK 18 // Pin CLK
#define MAX6675_DO 19 // Pin DO
MAX6675 thermocouple(MAX6675_CLK, MAX6675_CS, MAX6675_DO);
// Przekaźniki
#define RELAY1_PIN 13 // Przekaźnik 1 (pompka obiegowa)
#define RELAY2_PIN 12 // Przekaźnik 2 (dmuchawa)
#define RELAY3_PIN 14 // Przekaźnik 3 (zawór ciepłej wody)
#define RELAY4_PIN 27 // Przekaźnik 4 (alarm)
// Przycisk
#define BUTTON_MENU_PIN 32 // Przycisk Menu
#define BUTTON_TEMP_UP_PIN 33 // Przycisk + (zwiększ temperaturę)
#define BUTTON_TEMP_DOWN_PIN 34 // Przycisk - (zmniejsz temperaturę)
#define BUTTON_MAN_AUTO_PIN 35 // Przycisk MANUAL/AUTO
SuplaDevice device;
// Parametry sterowania
int tempCO = 50; // Temperatura CO
int tempCWU = 40; // Temperatura CWU
int tempAlarm = 90; // Temperatura alarmu
int tempDiff = 5; // Delta termostatu
bool isManualMode = false; // Tryb manualny/automatyczny
void setup() {
// Inicjalizacja seriala
Serial.begin(115200);
// Łączenie z WiFi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// Logowanie do Supla
device.setServer(SUPLA_SERVER); // Adres serwera Supla
device.setLogin(SUPLA_EMAIL, SUPLA_PASSWORD); // Login (adres e-mail i hasło)
device.begin();
// Inicjalizacja czujników
sensors.begin();
// Inicjalizacja OLED
if (!display.begin(SSD1306_I2C_ADDRESS, SCREEN_WIDTH, SCREEN_HEIGHT)) {
Serial.println(F("OLED failed"));
while (true);
}
display.clearDisplay();
// Inicjalizacja przekaźników
pinMode(RELAY1_PIN, OUTPUT);
pinMode(RELAY2_PIN, OUTPUT);
pinMode(RELAY3_PIN, OUTPUT);
pinMode(RELAY4_PIN, OUTPUT);
// Inicjalizacja przycisków jako wejścia
pinMode(BUTTON_MENU_PIN, INPUT_PULLUP);
pinMode(BUTTON_TEMP_UP_PIN, INPUT_PULLUP);
pinMode(BUTTON_TEMP_DOWN_PIN, INPUT_PULLUP);
pinMode(BUTTON_MAN_AUTO_PIN, INPUT_PULLUP);
}
void loop() {
// Odczyt temperatury z czujników
sensors.requestTemperatures();
float tempCOValue = sensors.getTempCByIndex(0); // Czujnik CO
float tempCWUValue = sensors.getTempCByIndex(1); // Czujnik CWU
// Odczyt temperatury spalin
float tempSpalin = thermocouple.readCelsius();
// Sterowanie przekaźnikami
if (tempCOValue > tempCO) {
digitalWrite(RELAY1_PIN, HIGH); // Pompka włączona
} else {
digitalWrite(RELAY1_PIN, LOW); // Pompka wyłączona
}
if (tempCOValue > (tempCO + tempDiff)) {
digitalWrite(RELAY2_PIN, HIGH); // Dmuchawa włączona
} else if (tempCOValue < tempCO) {
digitalWrite(RELAY2_PIN, LOW); // Dmuchawa wyłączona
}
if (tempCOValue < 40) {
digitalWrite(RELAY3_PIN, LOW); // Zawór CWU zamknięty
} else {
digitalWrite(RELAY3_PIN, HIGH); // Zawór CWU otwarty
}
if (tempSpalin > tempAlarm) {
digitalWrite(RELAY4_PIN, HIGH); // Alarm włączony
} else {
digitalWrite(RELAY4_PIN, LOW); // Alarm wyłączony
}
// Odczyt stanu przycisków
if (digitalRead(BUTTON_MENU_PIN) == LOW) {
// Menu (przykład: zmiana trybu pracy lub innych akcji)
Serial.println("Menu button pressed");
// Możesz zaimplementować zmianę trybu menu
}
if (digitalRead(BUTTON_TEMP_UP_PIN) == LOW) {
// Zwiększ temperaturę CO
Serial.println("Increase temperature");
tempCO += 1; // Zwiększ temperaturę o 1 stopień
}
if (digitalRead(BUTTON_TEMP_DOWN_PIN) == LOW) {
// Zmniejsz temperaturę CO
Serial.println("Decrease temperature");
tempCO -= 1; // Zmniejsz temperaturę o 1 stopień
}
if (digitalRead(BUTTON_MAN_AUTO_PIN) == LOW) {
// Zmiana trybu pracy na Manualny/Automatyczny
Serial.println("Switch MANUAL/AUTO");
isManualMode = !isManualMode; // Przełącz tryb ręczny/automatyczny
}
// Wyświetlanie danych na OLED
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 0);
display.print("Temp CO: ");
display.println(tempCOValue);
display.print("Temp CWU: ");
display.println(tempCWUValue);
display.print("Temp Spalin: ");
display.println(tempSpalin);
display.display();
// Utrzymanie połączenia z serwerem Supla
device.loop();
delay(200); // Opóźnienie 200 ms, aby przyciski były odpowiednio odczytywane
}
