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
}