@DJONvl said in livolo Glass Panel Touch Light Wall Switch + arduino 433Mhz:
сегодня доделал Livolo+esp8266 пришлось помучаться с программой и схемой питания но все заработало[0_1485259118390_livolo_esp.mp4](Uploading 100%)
@DJONvl said in livolo Glass Panel Touch Light Wall Switch + arduino 433Mhz:
сегодня доделал Livolo+esp8266 пришлось помучаться с программой и схемой питания но все заработало[0_1485259118390_livolo_esp.mp4](Uploading 100%)
сегодня доделал Livolo+esp8266 пришлось помучаться с программой и схемой питания но все заработало[0_1485259118390_livolo_esp.mp4](Uploading 100%)
новая схема силовой платы
https://geektimes.ru/post/258366/ здесь описание библиотеки для эмуляции радио протокола, если получится ее использовать то можно будет подключиться к светодиодам для получения статуса, а управлять с ее помощью
к сожалению не говорю по английски, вот код для ясности
#include <SPI.h>
#include <MySensor.h>
#include <Bounce2.h>
#define sensor_PIN 6
#define RELAY_PIN A3 // Arduino Digital I/O pin number for relay
#define BUTTON_PIN 5 // Arduino Digital I/O pin number for button
#define CHILD_ID 1 // Id of the sensor child
#define RELAY_ON 1
#define RELAY_OFF 0
Bounce debouncer = Bounce();
int oldValue=0;
bool state;
bool sens;
MySensor gw;
MyMessage msg(CHILD_ID,V_LIGHT);
void setup()
{
delay(2400);
gw.begin(incomingMessage, AUTO, true);
// Send the sketch version information to the gateway and Controller
// gw.sendSketchInfo("Livolo", "1.0");
// Setup the button
pinMode(BUTTON_PIN,INPUT);
pinMode(sensor_PIN,INPUT);
// Activate internal pull-up
digitalWrite(BUTTON_PIN,HIGH);
// After setting up the button, setup debouncer
debouncer.attach(BUTTON_PIN);
debouncer.interval(5);
// Register all sensors to gw (they will be created as child devices)
gw.present(CHILD_ID, S_LIGHT);
delay(1400);
// Make sure relays are off when starting up
digitalWrite(RELAY_PIN, RELAY_OFF);
// Then set relay pins in output mode
pinMode(RELAY_PIN, OUTPUT);
// Set relay to last known state (using eeprom storage)
// state = gw.loadState(CHILD_ID);
//digitalWrite(RELAY_PIN, state?RELAY_ON:RELAY_OFF);
state=false;
}
/*
* Example on how to asynchronously check for new messages from gw
*/
void loop()
{
gw.process();
//debouncer.update();
// Get the update value
int value =digitalRead(sensor_PIN);
if (value==1){
state=true;
}else{
state=false;
}
if (value != oldValue) {
gw.send(msg.set(state), true); // Send new state and request ack back
}
oldValue = value;
}
void incomingMessage(const MyMessage &message) {
if (message.type == V_LIGHT) {
// Change relay state
bool instate = message.getBool();
while(instate!=state){
digitalWrite(RELAY_PIN, RELAY_ON);
delay(60);
digitalWrite(RELAY_PIN, RELAY_OFF);
delay(60);
int value =digitalRead(sensor_PIN);
if (value==1){
state=true;
}else{
state=false;
}
}
}
}
это моя переделка китайского Livolo arduino+nrf24, красным на фото отмечено куда ставить перемычки на плату для повышения мощности блока питания в режиме ожидания,
Look this Controller, MySensors adapter for him,