Wifi hodiny esp8266 + TM1650 + 8025T

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
johnyhol
Příspěvky: 33
Registrován: 07 pro 2017, 21:17
Reputation: 0

Re: Wifi hodiny esp8266 + TM1650 + 8025T

Příspěvek od johnyhol » 20 bře 2023, 18:46

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 
}

Uživatelský avatar
kiRRow
Příspěvky: 1152
Registrován: 07 kvě 2019, 07:03
Reputation: 0
Bydliště: Opava

Re: Wifi hodiny esp8266 + TM1650 + 8025T

Příspěvek od kiRRow » 20 bře 2023, 20:03

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

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 17 hostů