plik bin

robi05
Posts: 176
Joined: Wed Mar 13, 2024 7:47 pm
Has thanked: 1 time
Been thanked: 6 times

Post

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
}
User avatar
klew
Posts: 13911
Joined: Thu Jun 27, 2019 12:16 pm
Location: Wrocław
Has thanked: 136 times
Been thanked: 137 times

Post

robi05 wrote: Wed Feb 19, 2025 9:15 pm witam potrzebuję plik bin z tego kodu czy ktoś pomoże?
To nie ma prawa zadziałać. Skąd to wziąłeś?
Najlepsze suple dla Twojego domu :mrgreen:
User avatar
vajera
Posts: 7293
Joined: Wed Oct 31, 2018 7:58 am
Location: Biedrusko
Has thanked: 291 times
Been thanked: 161 times

Post

Czyżby ChatGPT?
Bramka Zigbee <=> SUPLA
Więcej informacji tutaj:
https://forum.supla.org/viewforum.php?f=127
FAQ https://forum.supla.org/viewtopic.php?t=17277

Return to “Pomoc”