Repeater NightLamp, set kuhlight
This commit is contained in:
@@ -12,6 +12,7 @@ const char* mqtt_server = "192.168.1.250";
|
|||||||
#define LED_WRK (14)
|
#define LED_WRK (14)
|
||||||
#define SENS (4)
|
#define SENS (4)
|
||||||
#define LAMP (5)
|
#define LAMP (5)
|
||||||
|
#define LED_MS (300)
|
||||||
|
|
||||||
AsyncMqttClient mqttClient;
|
AsyncMqttClient mqttClient;
|
||||||
Ticker mqttReconnectTimer;
|
Ticker mqttReconnectTimer;
|
||||||
@@ -24,7 +25,8 @@ unsigned long cRun = 0;
|
|||||||
unsigned long lastSense;
|
unsigned long lastSense;
|
||||||
uint16_t nSec = 0;
|
uint16_t nSec = 0;
|
||||||
//uint8_t lamp, lampP;
|
//uint8_t lamp, lampP;
|
||||||
uint8_t light;
|
uint8_t lightk;
|
||||||
|
unsigned long led_ms;
|
||||||
|
|
||||||
bool switchLight(uint8_t nLamp, int state, bool pub);
|
bool switchLight(uint8_t nLamp, int state, bool pub);
|
||||||
void connectToWifi();
|
void connectToWifi();
|
||||||
@@ -88,11 +90,12 @@ void setup() {
|
|||||||
|
|
||||||
Serial.println("Connect to WiFi");
|
Serial.println("Connect to WiFi");
|
||||||
connectToWifi();
|
connectToWifi();
|
||||||
|
led_ms = millis();
|
||||||
lastSense = millis();
|
lastSense = millis();
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
static bool led_wrk = false;
|
//static bool led_wrk = false;
|
||||||
ArduinoOTA.handle();
|
ArduinoOTA.handle();
|
||||||
|
|
||||||
if(digitalRead(SENS) == 0){
|
if(digitalRead(SENS) == 0){
|
||||||
@@ -104,23 +107,30 @@ void loop() {
|
|||||||
if(cRun + 999 < millis()){
|
if(cRun + 999 < millis()){
|
||||||
cRun = millis();
|
cRun = millis();
|
||||||
nSec++;
|
nSec++;
|
||||||
led_wrk = !led_wrk;
|
//led_wrk = !led_wrk;
|
||||||
digitalWrite(LED_WRK, led_wrk);
|
//digitalWrite(LED_WRK, led_wrk);
|
||||||
if(nSec > 59){
|
if(nSec > 59){
|
||||||
if(mqttClient.connected()){
|
if(mqttClient.connected()){
|
||||||
char v[11];
|
char v[11];
|
||||||
ultoa(millis(), v, 10);
|
ultoa(millis(), v, 10);
|
||||||
|
digitalWrite(LED_WRK, LOW);
|
||||||
|
led_ms = millis();
|
||||||
mqttClient.publish("/home/kuh/ltblmillis", 0, false, v);
|
mqttClient.publish("/home/kuh/ltblmillis", 0, false, v);
|
||||||
}
|
}
|
||||||
nSec = 0;
|
nSec = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(led_ms + LED_MS <= millis()) digitalWrite(LED_WRK, HIGH);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool switchLight(uint8_t nLamp, int state, bool pub)
|
bool switchLight(uint8_t nLamp, int state, bool pub)
|
||||||
{
|
{
|
||||||
digitalWrite(nLamp, state);
|
digitalWrite(nLamp, state);
|
||||||
if (pub) mqttClient.publish("/home/kuh/lighttbl", 1, false, state ? "true" : "false");
|
if (pub){
|
||||||
|
digitalWrite(LED_WRK, LOW);
|
||||||
|
led_ms = millis();
|
||||||
|
mqttClient.publish("/home/kuh/lighttbl", 1, false, state ? "true" : "false");
|
||||||
|
}
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,7 +154,8 @@ void onWifiDisconnect(const WiFiEventStationModeDisconnected& event) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onMqttConnect(bool sessionPresent) {
|
void onMqttConnect(bool sessionPresent) {
|
||||||
mqttClient.subscribe("/home/kuh/lighttbl", 1);
|
mqttClient.publish("/home/kuh/lighttbl_set", 1, false, digitalRead(LAMP) == 1 ? "true" : "false");
|
||||||
|
mqttClient.subscribe("/home/kuh/lighttbl_set", 1);
|
||||||
mqttClient.publish("/home/kuh/lighttbl", 1, false, digitalRead(LAMP) == 1 ? "true" : "false");
|
mqttClient.publish("/home/kuh/lighttbl", 1, false, digitalRead(LAMP) == 1 ? "true" : "false");
|
||||||
digitalWrite(LED_MQ, HIGH);
|
digitalWrite(LED_MQ, HIGH);
|
||||||
}
|
}
|
||||||
@@ -157,8 +168,11 @@ void onMqttDisconnect(AsyncMqttClientDisconnectReason reason) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
|
void onMqttMessage(char* topic, char* payload, AsyncMqttClientMessageProperties properties, size_t len, size_t index, size_t total) {
|
||||||
if(strcmp(topic, "/home/kuh/lighttbl") == 0){
|
char pl[6];
|
||||||
if (strcmp("true", payload) == 0) switchLight(LAMP, 1, false);//lStat2 = true;
|
strncpy(pl, payload, len);
|
||||||
else switchLight(LAMP, 0, false);//lStat2 = false;
|
pl[len] = '\0';
|
||||||
|
if(strcmp(topic, "/home/kuh/lighttbl_set") == 0){
|
||||||
|
if (strcmp("true", pl) == 0) switchLight(LAMP, 1, true);//lStat2 = true;
|
||||||
|
else switchLight(LAMP, 0, true);//lStat2 = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,6 +9,8 @@
|
|||||||
// Enable and select radio type attached
|
// Enable and select radio type attached
|
||||||
#define MY_RADIO_RF24
|
#define MY_RADIO_RF24
|
||||||
#define MY_RF24_CHANNEL (105)
|
#define MY_RF24_CHANNEL (105)
|
||||||
|
#define MY_RF24_PA_LEVEL RF24_PA_MAX
|
||||||
|
#define MY_REPEATER_FEATURE
|
||||||
#include <MySensors.h>
|
#include <MySensors.h>
|
||||||
|
|
||||||
#define RELAY_PIN 3 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
|
#define RELAY_PIN 3 // Arduino Digital I/O pin number for first relay (second on pin+1 etc)
|
||||||
|
|||||||
Reference in New Issue
Block a user