Смарт цоколь для лампы REDMOND — добавляем в умный дом

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

В этом обзоре речь пойдет об смарт цоколе бренда REDMOND — SkySocket 202S. Попалась как то мне на глаза статья об схемотехнике данного цоколя, почитав обратил внимание что мозгами данного девайса является чип от компании Nordic Semiconductor 51 серии (nRF51822).

Основным моим хобби на данный момент является посторение умного дома. Строю потихоньку радиосеть из устройств на протоколе MySensors. Если коротко о данном протоколе, то пожалуй можно сказать что это очень простой и удобный протокол на основе которого за один час в Ardunno IDE можно собрать пару устройств из ардуино модулей и запустить свою первую радиосеть датчиков. В последнее время делаю девайсы для своей сети MySensors на радиомодулях nRF51822 и nRF52832, поэтому и обратил внимание на этот цоколь.

Фото 1

Фото 2

Купив его в интернет магазине (за вполне себе небольшие деньги в районе 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.

Фото Схемы


Телеграмм чат нашего сообщества mysensors, где все раскажут и помогут — https://t.me/mysensors_rus

Код Ардуино:

#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() {
}
Источник: https://habr.com/ru/post/450740/


Интересные статьи

Интересные статьи

Чтобы увеличить привлекательность смартфонов, производители ставят на них как можно больше разных программ. Это понятно. Просто берём и удаляем ненужное… Стоп. Оказывается, некотор...
Полтора года назад правительство США приняло решение ввести санкции против китайской компании Huawei. В итоге китайцы лишились доступа к большому количеству ресурсов, с ними оборв...
До настоящего времени продолжают выходить обзоры смартфонов, которые с лёгкой руки авторов называют аудиофильскими, меломанскими, иными словами речь о смартфонах с улучшенным качество...
Привет, Хабр! Сегодня мы перезапустили ICQ. Ключевые функции нового мессенджера основаны на технологиях искусственного интеллекта: система быстрых подсказок стикеров и текста Smart Reply для отве...
Не секрет, что производители смартфонов любят подсмотреть (и, что уж там, скопировать) друг у друга интересные решения. Особенно заметно это становится тогда, когда в исследовательских целях выну...