Stránka 2 z 2

Re: Wifi hodiny esp8266 + TM1650 + 8025T

Napsal: 20 bře 2023, 18:46
od johnyhol
Tak jsem se k tomu dostal až teď a musím potvrdit že to funguje! Paráda, díky moc.

Tady je tedy funkční kód kdyby se to někomu hodilo:

Kód: Vybrat vše

#include <NTPClient.h>
#include <WiFiUdp.h>
#include <OneWire.h>
#include <CayenneMQTTESP8266.h>
#include <DallasTemperature.h>
#include <Wire.h>
#include <TM1650.h>

TM1650 d;

#define Teplota 13 // DS18B20
#define Dvere 12 // Dvere
#define Rele 14 // Rele

OneWire oneWire(Teplota);
DallasTemperature sensors(&oneWire);

char username[] = "";
char password[] = "";
char clientID[] = "";

const char* ssid = "";
const char* wifipassword = "";

const long utcOffsetInSeconds = 3600;

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", utcOffsetInSeconds);

void setup(){
  Serial.begin(9600);
  Wire.begin();
  d.init();
  timeClient.begin();
  pinMode(Dvere, INPUT);
  pinMode(Rele, OUTPUT);
  digitalWrite(Rele, LOW);
           
  Cayenne.begin(username, password, clientID,  ssid, wifipassword);
          
  sensors.begin();

}

void loop(){
  char waktu[5];
  timeClient.update(); 

  sprintf(waktu, "%02d%02d", timeClient.getHours(), timeClient.getMinutes());
  d.displayOn();
  d.setBrightness(1);
  d.displayString(waktu);
      
  for (int i = 1; i<2; i++) {
    d.setDot(i,true);
   }

  Cayenne.loop(); //spusteni Cayenne
}
///////////////
//--Teplota--//
///////////////
CAYENNE_OUT(1){
  // Send the command to get temperatures.
  sensors.requestTemperatures();
  
  Serial.print("Teplota: ");
  Serial.print(sensors.getTempCByIndex(0));  
  Serial.println("*C");
  
  // This command writes the temperature in Celsius to the Virtual Channel.
  Cayenne.celsiusWrite(1, sensors.getTempCByIndex(0));
}
/////////////
//--Dvere--//
/////////////
CAYENNE_OUT(2){
  
 if (digitalRead(Dvere) == LOW) {
     Cayenne.virtualWrite(2, 1, "digital_sensor", "d");
     Serial.println("Dvere: zavreno...");
  }
  else {
     Cayenne.virtualWrite(2, 0, "digital_sensor", "d");
     Serial.println("Dvere: otevreno..."); 
     }
}
////////////
//--Rele--//
////////////
CAYENNE_IN(3){
  // Write value to turn the relay switch on or off. This code assumes you wire your relay as normally open.
  //if (getValue.asInt() == 1) { //pokud je Cayenne zapnute sepni rele 
    if (getValue.asInt() == 1 && digitalRead(Dvere) == HIGH) { //pokud je Cayenne zapnute a dvere zavrene sepni rele
    digitalWrite(Rele, HIGH);
    Cayenne.virtualWrite(3, 1, "digital_sensor", "d"); 
    }
  else {
    digitalWrite(Rele, LOW);
    Cayenne.virtualWrite(3, 0, "digital_sensor", "d");
    }
}
/////////////
//--Wi-Fi--//
/////////////
CAYENNE_OUT_DEFAULT(){
  
Cayenne.virtualWrite(4, WiFi.RSSI()); //zobrazeni signalu WiFi 
}

Re: Wifi hodiny esp8266 + TM1650 + 8025T

Napsal: 20 bře 2023, 20:03
od kiRRow
není zač, jsem rád, že funguje. Jinak ten chatGPT openAI není marný, já bych si na to udělal funkci co by vracela řetězec. Pro mne je to rychlejší než hledat něco co to udělá za mne, ale jak vidíš, tak ještě rychlejší bylo se zeptat někoho chytřejšího než já :-D