RSS блога
Подписка
Смарт цоколь для лампы REDMOND - добавляем в умный дом
В этом обзоре речь пойдет об смарт цоколе бренда REDMOND — SkySocket 202S. Попалась как то мне на глаза статья об схемотехнике данного цоколя, почитав обратил внимание что мозгами данного девайса является чип от компании Nordic Semiconductor 51 серии (nRF51822).
Основным моим хобби на данный момент является посторение умного дома. Строю потихоньку радиосеть из устройств на протоколе MySensors. Если коротко о данном протоколе, то пожалуй можно сказать что это очень простой и удобный протокол на основе которого за один час в Ardunno IDE можно собрать пару устройств из ардуино модулей и запустить свою первую радиосеть датчиков. В последнее время делаю девайсы для своей сети MySensors на радиомодулях nRF51822 и nRF52832, поэтому и обратил внимание на этот цоколь.
Купив его в интернет магазине (за вполне себе небольшие деньги в районе 700 рублей) и разобрав увидел что на плате удобно выведены 4 контакта для програмирования. Недолго думая достал свой китайский программатор ST-LINK и мультметр и занялся прозвонкой платы что бы набросать схему устройства. В процессе составления схемы устройства стало ясно что используются всего 4 пина на модуле, кнопка на пине p0.27, биззер на пине p0.26, семисторное реле на пине p0.16 и схема детектора ноля на пине p0.00. За 20 минут набросал програмку в Arduino IDE ( писал выше с MySensors это очень просто и быстро), подключил програматор ST-LINK и о чудо компиляция, загрузка, програматор перестал помигивать и загорелся зеленым цветом, значит прошивка загрузилась. Сразу же открыл браузер, открыл Мажордомо, в модуле MySensors уже отображался новый девайс в сети — REDMOND nRF51 1.0. Осталось только создать объекты, сделать кнопки, что сразу же и сделал. И того через полтора часа уже управлял лампочкой в данном цоколе по протоколу MySensors.
Схема:
Код Программы для Arduino IDE
Пролоджение — Смарт Розетка REDMOND
Основным моим хобби на данный момент является посторение умного дома. Строю потихоньку радиосеть из устройств на протоколе MySensors. Если коротко о данном протоколе, то пожалуй можно сказать что это очень простой и удобный протокол на основе которого за один час в Ardunno IDE можно собрать пару устройств из ардуино модулей и запустить свою первую радиосеть датчиков. В последнее время делаю девайсы для своей сети MySensors на радиомодулях nRF51822 и nRF52832, поэтому и обратил внимание на этот цоколь.
Купив его в интернет магазине (за вполне себе небольшие деньги в районе 700 рублей) и разобрав увидел что на плате удобно выведены 4 контакта для програмирования. Недолго думая достал свой китайский программатор ST-LINK и мультметр и занялся прозвонкой платы что бы набросать схему устройства. В процессе составления схемы устройства стало ясно что используются всего 4 пина на модуле, кнопка на пине p0.27, биззер на пине p0.26, семисторное реле на пине p0.16 и схема детектора ноля на пине p0.00. За 20 минут набросал програмку в Arduino IDE ( писал выше с MySensors это очень просто и быстро), подключил програматор ST-LINK и о чудо компиляция, загрузка, програматор перестал помигивать и загорелся зеленым цветом, значит прошивка загрузилась. Сразу же открыл браузер, открыл Мажордомо, в модуле MySensors уже отображался новый девайс в сети — REDMOND nRF51 1.0. Осталось только создать объекты, сделать кнопки, что сразу же и сделал. И того через полтора часа уже управлял лампочкой в данном цоколе по протоколу MySensors.
Схема:
Код Программы для Arduino IDE
#define BUTTON_PIN 27
#define BIZZER_PIN 26
#define ZERO_CROSS_PIN 0
#define RELAY_PIN 16
boolean iswitch = 1;
boolean flag_button = 0;
static uint32_t previousMillis;
//#define MY_DEBUG
#define MY_DISABLED_SERIAL
#define MY_RADIO_NRF5_ESB
//#define MY_PASSIVE_NODE
#define MY_NODE_ID 200
#define MY_PARENT_NODE_ID 0
#define MY_PARENT_NODE_IS_STATIC
//#define MY_TRANSPORT_UPLINK_CHECK_DISABLED
#define MY_REPEATER_FEATURE
#define RELAY_ID 1
#include <MySensors.h>
MyMessage lMsg(RELAY_ID, V_STATUS);
void preHwInit() {
pinMode(BUTTON_PIN, INPUT_PULLUP);
pinMode(BIZZER_PIN, OUTPUT);
pinMode(ZERO_CROSS_PIN, INPUT);
pinMode(RELAY_PIN, OUTPUT);
}
void before()
{
//delay(2000);
while (digitalRead(ZERO_CROSS_PIN) != 0) {
//digitalWrite(RELAY_PIN, iswitch);
//wait(200);
}
digitalWrite(RELAY_PIN, iswitch);
}
void presentation()
{
sendSketchInfo("REDMOND nRF51", "1.0");
wait(100);
present(RELAY_ID, S_BINARY, "LIGHT SWITCH");
}
void setup()
{
myTone(800, 50);
delay(70);
myTone(1500, 150);
delay(30);
wait(500);
send(lMsg.set(iswitch));
wait(100);
}
void loop()
{
if (digitalRead(BUTTON_PIN) == LOW && flag_button == 0) {
flag_button = 1;
previousMillis = millis();
wait(20);
myTone(800, 50);
delay(100);
//myTone(1500, 200);
//delay(30);
}
if (digitalRead(BUTTON_PIN) == LOW && flag_button == 1) {
}
if (digitalRead(BUTTON_PIN) == HIGH && flag_button == 1) {
if ((millis() - previousMillis > 0) && (millis() - previousMillis <= 3000)) {
flag_button = 0;
myTone(800, 50);
delay(70);
myTone(1500, 150);
delay(30);
iswitch = !iswitch;
while (digitalRead(ZERO_CROSS_PIN) != 0) {
//iswitch = !iswitch;
}
digitalWrite(RELAY_PIN, iswitch);
myTone(1500, 150);
delay(30);
wait(100);
send(lMsg.set(iswitch));
wait(300);
}
if (millis() - previousMillis > 3000)
{
flag_button = 0;
wait(100);
}
}
}
void receive(const MyMessage & message) {
if (message.type == V_STATUS) {
if (message.sensor == RELAY_ID) {
if (mGetCommand(message) == 1) {
if (message.isAck()) {
//AckG = 1;
} else {
//
iswitch = !iswitch;
while (digitalRead(ZERO_CROSS_PIN) != 0) {
//iswitch = !iswitch;
}
digitalWrite(RELAY_PIN, iswitch);
wait(200);
myTone(800, 50);
delay(70);
myTone(1500, 150);
delay(30);
wait(100);
send(lMsg.set(iswitch));
wait(1000);
}
}
if (mGetCommand(message) == 2) {
}
}
}
/*
if (message.isAck()) {
(message.sensor == LIGHT_SENS_ID) {
}
(message.sensor == TEMP_INT_ID) {
}
}
*/
}
void myTone(uint32_t j, uint32_t k) {
j = 500000 / j;
k += millis();
while (k > millis()) {
digitalWrite(BIZZER_PIN, HIGH); delayMicroseconds(j);
digitalWrite(BIZZER_PIN, LOW ); delayMicroseconds(j);
}
}
void playSound() {
}
Пролоджение — Смарт Розетка REDMOND
Самые обсуждаемые обзоры
+73 |
3703
145
|
+53 |
3870
69
|
+35 |
2978
56
|
Стоит дома PLC Loxone, управляет инженерией, но там все ясно и мало что прирукожопить стороннего можно.
Вам плюсую!
А то общий вид есть, схема есть, даже программа какая-то есть, а дальше обзор обрывается, ощущение будто черновик случайно выложили или рекламу канала делали.