Поддерживаю. Делитесь наработками сразу.Ivan писал(а):Кому интересно, нарисую схему и скетч.
mysensors
-
- Сообщения: 3006
- Зарегистрирован: Чт авг 21, 2014 8:28 am
- Откуда: Киров, Россия
- Благодарил (а): 400 раз
- Поблагодарили: 1753 раза
- Контактная информация:
Re: mysensors
MajorDoMo (GitHub) на Cubietruck. ОС Debian 7 (wheezy) (kernel 3.4.105) с переносом на HDD.
Мой CONNECT | Блоги | Telegram
Мой CONNECT | Блоги | Telegram
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: mysensors
Где взял схему от дребезга не помню Но было что-то типа как здесь http://www.niva-faq.msk.ru/tehnika/elek ... /cop_3.gif
То есть подтягивающий резистор на питание, и параллельно кнопке конденсатор.
Ардуина Pro Mini 3.3 - с удаленными светодиодами и регулятором.
Засунул все в корпус PowerBank - описывал выше.
Как привязывать к МД и реализовать запрос у МД предыдущего статуса, описывал тоже выше
Скетч прилогаю
PS. Наверно по каждому устройству нужно писать статью, с полным описанием, куда чего
То есть подтягивающий резистор на питание, и параллельно кнопке конденсатор.
Ардуина Pro Mini 3.3 - с удаленными светодиодами и регулятором.
Засунул все в корпус PowerBank - описывал выше.
Как привязывать к МД и реализовать запрос у МД предыдущего статуса, описывал тоже выше
Скетч прилогаю
PS. Наверно по каждому устройству нужно писать статью, с полным описанием, куда чего
- Вложения
-
- GazCounter.zip
- (2.76 КБ) 259 скачиваний
- Рейтинг: 2.33%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
-
- Сообщения: 92
- Зарегистрирован: Ср ноя 19, 2014 4:15 pm
- Откуда: Альметьевск
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: mysensors
Сколько ищу и не могу найти как запустить mgtt_daemon.php , без него никак.
Rasberry PI + arduino mega 2560
-
- Сообщения: 28
- Зарегистрирован: Сб мар 30, 2013 7:34 am
- Благодарил (а): 3 раза
- Поблагодарили: 4 раза
Re: mysensors
Под windows проверьте наличие файла mqtt.bat по адресу \_majordomo\htdocs\scripts , а рядом и mqtt_daemon.php
Запускаем вручную или добавьте команды в start.bat
Запускаем вручную или добавьте команды в start.bat
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: mysensors
Если последняя версия. То mqtt с основным циклом запускается. Только настроить нужно опции сервера, на закладке mqtt
- Рейтинг: 1.16%
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
-
- Сообщения: 92
- Зарегистрирован: Ср ноя 19, 2014 4:15 pm
- Откуда: Альметьевск
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: mysensors
Переименовал mqtt_daemon.php в cycle_mqtt_daemon.php для автозапуска. Часть циклов закрывается после запуска, в том числе и mqtt . Интересно для чего это реализовано ?
Rasberry PI + arduino mega 2560
-
- Сообщения: 50
- Зарегистрирован: Пт янв 17, 2014 1:47 am
- Откуда: Карпинск, Свердловская область
- Благодарил (а): 135 раз
- Поблагодарили: 12 раз
Re: mysensors
Приветствую всех. Тоже пытаюсь построить что-нибудь умное. Хочу попросить помощи, если это возможно. На сайте mysensors есть светодиодный диммер, но он для одного цвета, может быть есть люди которые смогут его переписать для rgb ленты, т.е. 3 каналов. Понятно, что нужно объявить в коде 3 V_Dimmer и это проходит, но отчёт о состоянии приходит обратно всегда для одного канала. Управлять этим диммером пытаюсь через MqTT гейт.
Во вложении попытка переписать код, но работает это не совсем корректно (Этот код также взят с форума искомого сайта)
Может быть также получится этот заодно и оптимизировать.
Во вложении попытка переписать код, но работает это не совсем корректно (Этот код также взят с форума искомого сайта)
СпойлерПоказать
Код: Выделить всё
/***
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* version 2 as published by the Free Software Foundation.
*
* DESCRIPTION
* This sketch provides a Dimmable LED Light using PWM and based Henrik Ekblad
* <henrik.ekblad@gmail.com> Vera Arduino Sensor project.
* Developed by Bruce Lacey, inspired by Hek's MySensor's example sketches.
*
* The circuit uses a MOSFET for Pulse-Wave-Modulation to dim the attached LED or LED strip.
* The MOSFET Gate pin is connected to Arduino pin 3 (LED_PIN), the MOSFET Drain pin is connected
* to the LED negative terminal and the MOSFET Source pin is connected to ground.
*
* This sketch is extensible to support more than one MOSFET/PWM dimmer per circuit.
*
* REVISION HISTORY
* Version 1.0 - February 15, 2014 - Bruce Lacey
* Version 1.1 - August 13, 2014 - Converted to 1.4 (hek)
*
***/
#define SN "MultiDimmableLED"
#define SV "1.2"
#include <MySensor.h>
#include <SPI.h>
#define LED_BLUE 5 // Arduino pin attached to MOSFET Gate pin
#define LED_RED 6
#define LED_GREEN 7
#define FADE_DELAY 10 // Delay in ms for each percentage fade up/down (10ms = 1s full-range dim)
MySensor gw(9,10);
static int currentLevel_B = 0;
static int currentLevel_R = 0;
static int currentLevel_G = 0;
// Current dim level...
MyMessage dimmerMsg_B(1, V_DIMMER);
MyMessage lightMsg_B(1, V_LIGHT);
MyMessage dimmerMsg_R(2, V_DIMMER);
MyMessage lightMsg_R(2, V_LIGHT);
MyMessage dimmerMsg_G(3, V_DIMMER);
MyMessage lightMsg_G(3, V_LIGHT);
/***
* Dimmable LED initialization method
*/
void setup()
{
Serial.println( SN );
gw.begin( incomingMessage_B );
gw.begin( incomingMessage_R );
gw.begin( incomingMessage_G );
// Register the LED Dimmable Light with the gateway
gw.present( 1, S_DIMMER );
gw.present( 2, S_DIMMER );
gw.present( 3, S_DIMMER );
gw.sendSketchInfo(SN, SV);
// Pull the gateway's current dim level - restore light level upon sendor node power-up
gw.request( 1, V_DIMMER );
gw.request( 2, V_DIMMER );
gw.request( 3, V_DIMMER );
}
/***
* Dimmable LED main processing loop
*/
void loop()
{
gw.process();
}
void incomingMessage_B(const MyMessage &message) {
if (message.type == V_LIGHT || message.type == V_DIMMER) {
// Retrieve the power or dim level from the incoming request message
int requestedLevel_B = atoi( message.data );
// Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
requestedLevel_B *= ( message.type == V_LIGHT ? 100 : 1 );
// Clip incoming level to valid range of 0 to 100
requestedLevel_B = requestedLevel_B > 100 ? 100 : requestedLevel_B;
requestedLevel_B = requestedLevel_B < 0 ? 0 : requestedLevel_B;
fadeToLevel_B( requestedLevel_B );
// Inform the gateway of the current DimmableLED's SwitchPower1 and LoadLevelStatus value...
gw.send(lightMsg_B.set(currentLevel_B > 0 ? 1 : 0));
// hek comment: Is this really nessesary?
gw.send(dimmerMsg_B.set(currentLevel_B));
}
}
void incomingMessage_R(const MyMessage &message) {
if (message.type == V_LIGHT || message.type == V_DIMMER) {
// Retrieve the power or dim level from the incoming request message
int requestedLevel_R = atoi( message.data );
// Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
requestedLevel_R *= ( message.type == V_LIGHT ? 100 : 1 );
// Clip incoming level to valid range of 0 to 100
requestedLevel_R = requestedLevel_R > 100 ? 100 : requestedLevel_R;
requestedLevel_R = requestedLevel_R < 0 ? 0 : requestedLevel_R;
fadeToLevel_R( requestedLevel_R );
// Inform the gateway of the current DimmableLED's SwitchPower1 and LoadLevelStatus value...
gw.send(lightMsg_R.set(currentLevel_R > 0 ? 1 : 0));
// hek comment: Is this really nessesary?
gw.send(dimmerMsg_R.set(currentLevel_R));
}
}
void incomingMessage_G(const MyMessage &message) {
if (message.type == V_LIGHT || message.type == V_DIMMER) {
// Retrieve the power or dim level from the incoming request message
int requestedLevel_G = atoi( message.data );
// Adjust incoming level if this is a V_LIGHT variable update [0 == off, 1 == on]
requestedLevel_G *= ( message.type == V_LIGHT ? 100 : 1 );
// Clip incoming level to valid range of 0 to 100
requestedLevel_G = requestedLevel_G > 100 ? 100 : requestedLevel_G;
requestedLevel_G = requestedLevel_G < 0 ? 0 : requestedLevel_G;
fadeToLevel_G( requestedLevel_G );
// Inform the gateway of the current DimmableLED's SwitchPower1 and LoadLevelStatus value...
gw.send(lightMsg_G.set(currentLevel_G > 0 ? 1 : 0));
// hek comment: Is this really nessesary?
gw.send(dimmerMsg_G.set(currentLevel_G));
}
}
/***
* This method provides a graceful fade up/down effect
*/
void fadeToLevel_B( int toLevel_B ) {
int delta = ( toLevel_B - currentLevel_B ) < 0 ? -1 : 1;
while ( currentLevel_B != toLevel_B ) {
currentLevel_B += delta;
analogWrite( LED_BLUE, (int)(currentLevel_B / 100. * 255) );
delay( FADE_DELAY );
}
}
/***
* This method provides a graceful fade up/down effect
*/
void fadeToLevel_R( int toLevel_R ) {
int delta = ( toLevel_R - currentLevel_R ) < 0 ? -1 : 1;
while ( currentLevel_R != toLevel_R ) {
currentLevel_R += delta;
analogWrite( LED_RED, (int) (currentLevel_R / 100. * 255) );
delay( FADE_DELAY );
}
}
void fadeToLevel_G( int toLevel_G ) {
int delta = ( toLevel_G - currentLevel_G ) < 0 ? -1 : 1;
while ( currentLevel_G != toLevel_G ) {
currentLevel_G += delta;
analogWrite( LED_GREEN, (int)(currentLevel_G / 100. * 255) );
delay( FADE_DELAY );
}
}
-
- Сообщения: 1473
- Зарегистрирован: Сб окт 12, 2013 11:03 pm
- Благодарил (а): 49 раз
- Поблагодарили: 327 раз
Re: mysensors
Есть 2 способа
1. Сделать каждый цвет как переменную VAR1 VAR2 VAR3. И отсылать отдельно
2. Передавать в одной цифре. Каждый бай отдельно цвет. Упаковать и распаковать думаю проблем не составит
Укажите диапазон 1 цвета
1. Сделать каждый цвет как переменную VAR1 VAR2 VAR3. И отсылать отдельно
2. Передавать в одной цифре. Каждый бай отдельно цвет. Упаковать и распаковать думаю проблем не составит
Укажите диапазон 1 цвета
Linux, Raspberry PI, MySensors
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4
Connect: http://connect.smartliving.ru/profile/53
Мои проекты: http://smartliving.ru/profile/4