Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.05.2013, 18:12   #21
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию беспроводной serial мост

А можно сделать такой беспроводный мост?
serial ----- arduino ---NRF24L01 --------- NRF24L01 --- arduino ---- serial
Меня интересует кто-то пробовал так делать. Поделились бы опытом, скетчем для ардуин.
andr128 вне форума   Ответить с цитированием
Старый 23.05.2013, 18:54   #22
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию

Я делал на RFM12B
Admin вне форума   Ответить с цитированием
Старый 23.05.2013, 19:26   #23
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Вот спасибо, то что надо!
andr128 вне форума   Ответить с цитированием
Старый 26.05.2013, 08:33   #24
Bulatovor
Senior Member
 
Регистрация: 20.01.2013
Адрес: Уфа
Сообщений: 444
Вес репутации: 799
Bulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond reputeBulatovor has a reputation beyond repute
По умолчанию

Протестировал библиотеку rf24network с RF2400 - работает!
Bulatovor вне форума   Ответить с цитированием
Старый 05.06.2013, 05:49   #25
aNurzhanov
Junior Member
 
Регистрация: 10.05.2013
Сообщений: 2
Вес репутации: 0
aNurzhanov is an unknown quantity at this point
Smile Что скажите про модули NRF24LE1?

http://www.ebay.com/itm/151004293962

Вот думаю прикупить модули NRF24LE1. НО! Вместо Arduino + NRF24l01

Я слышал что в умных домах не столько актуально использовать модули 2.4, т. к. на сегодняшний день практический все устройства работают на 2.4, Wifi, Bluetoch, и т. д.


Как считаете актуально использовать для квартиры такие модули?
Чем их можно заменить? Скажем 868 или 433 диапозон
aNurzhanov вне форума   Ответить с цитированием
Старый 05.06.2013, 12:11   #26
andr128
Senior Member
 
Аватар для andr128
 
Регистрация: 16.09.2012
Адрес: Irkutsk
Сообщений: 555
Вес репутации: 1604
andr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond reputeandr128 has a reputation beyond repute
По умолчанию

Хороший модуль, можно сказать почти самостоятельный контроллер, есть UART, АЦП.
Или вы переживаете за частотную сетку?
Ну во первых дальность на такой частоте (при такой мощности) не велика и вероятность поймать или создать помехи также мала.
2. Можно поменять канал если рядом работают близкие по частоте устройства
3. При такой высокой частоте можно разместить гораздо больше устройств в диапазоне, чем на 868 мгц, а тем более 433 мгц.
andr128 вне форума   Ответить с цитированием
Старый 16.08.2013, 12:25   #27
zito
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 8
Вес репутации: 0
zito is an unknown quantity at this point
По умолчанию

Вот интересно – не прошло и полугода, как эти модулей становится все меньше и меньше в продаже (например, модуль с USB вообще исчез). Где их покупать, если их закладывать в серийно выпускаемое устройство, может кто знает ? Тоже самое с модулями RFM23 – вообще больше не выпускают ((( А по моему отличный модуль по отличной цене был….
zito вне форума   Ответить с цитированием
Старый 16.08.2013, 15:58   #28
Kondor
Banned
 
Регистрация: 16.08.2013
Сообщений: 110
Вес репутации: 0
Kondor is infamous around these partsKondor is infamous around these parts
По умолчанию

Цитата:
Сообщение от zito Посмотреть сообщение
Вот интересно – не прошло и полугода, как эти модулей становится все меньше и меньше в продаже (например, модуль с USB вообще исчез). Где их покупать, если их закладывать в серийно выпускаемое устройство, может кто знает ? Тоже самое с модулями RFM23 – вообще больше не выпускают ((( А по моему отличный модуль по отличной цене был….
Вот поэтому я использую трансиверы от TI CC1101, CC430
Kondor вне форума   Ответить с цитированием
Старый 09.09.2013, 16:05   #29
zito
Junior Member
 
Регистрация: 16.08.2013
Сообщений: 8
Вес репутации: 0
zito is an unknown quantity at this point
По умолчанию

Цитата:
Сообщение от Kondor Посмотреть сообщение
Вот поэтому я использую трансиверы от TI CC1101, CC430
Интересно, подскажите - используете готовые модули или сами на плате разводите cc1101 и радиочасть ? Какая антена и какая дальность связи ?
zito вне форума   Ответить с цитированием
Старый 24.02.2014, 18:36   #30
juroku
Junior Member
 
Регистрация: 24.12.2013
Сообщений: 14
Вес репутации: 0
juroku is an unknown quantity at this point
По умолчанию Re: Бюджетные, беспроводные модули INHAOS RF-2400

Задал вопрос в друго теме но нашол по конкретней.Подскажит� � как подправить код master arduino+nrf24 для управления через tl-w703n код взял от сюда http://homes-smart.ru/index.php/obor...l01-i-nrf24le1
PHP код:
#include <Ethernet.h>
#include <SPI.h>
#include <Arduino.h>
#include "WebServer.h"
#include "nRF24L01.h"
#include "RF24.h"

#define ch_max 2 // количество клиентов nRF

uint8_t chsl=0// запоминаем канал

#define ch_len 32
byte nfserver[ch_max][5]; // массив для отправки

// вариант структуры номер 1
typedef struct{
  
uint8_t identifier;// номер передатчика.МЕНЯТЬ НЕЛЬЗЯ

  
int Analog;
  
uint8_t test_data;
  
int Error_Message// счетчик ошибок
  
long count;// счетчик передач для контроля качества канала
#if nofloat
int temperature_Sensor//передаём температуру.
int Humidity_Sensor;// передаём влажность
#else
 
float temperature_Sensor;// передаём температуру.
 
float Humidity_Sensor;// передаём влажность
#endif
}
nf1;
// вариант структуры номер 2
typedef struct{
  
uint8_t identifier;// номер передатчика.МЕНЯТЬ НЕЛЬЗЯ
  
int Analog;
  
int Error_Message// счетчик ошибок
  
long count;// счетчик передач для контроля качества канала
}
nf3;
// задаем каждому клиенту структуру:
nf1 clientnf1
nf1 clientnf2;
nf3 clientnf3;


RF24 radio(46,53); // для Arduino MEGA
// RF24 radio(9,10); // Для остальных
//--
// настройка IP адрес ,шлюз,DNS:
byte mac[] = { 0xDE0xAD0xBE0xE40xDE0x33 }; // MAC-адрес нашего устройства
byte ip[] = { 19216810170 };
byte subnet[] = { 255255255};
byte gateway[] = { 19216810,};
byte dns_server[] = { 19216811};
// ip-адрес удалённого сервера
byte rserver[] = { 1921681154 };

#define VERSION_STRING "0.1"

P(Page_info) = "<html><head><title>controller " VERSION_STRING "</title></head><body>\n";
P(location_info) = "server room";

P(version_info) = VERSION_STRING ". Compile date: " __DATE__ " "__TIME__;

String url String(25);
int maxLength=25// Максимальная длинна строки запроса

#define MAX_COMMAND_LEN             (10)
#define MAX_PARAMETER_LEN           (10)
#define COMMAND_TABLE_SIZE          (8)
#define PREFIX ""

WebServer webserver(PREFIX80);

#define NAMELEN 32
#define VALUELEN 32

char gCommandBuffer[MAX_COMMAND_LEN 1];
char gParamBuffer[MAX_PARAMETER_LEN 1];
long gParamValue;

typedef struct {
  
char const    *name;
  
void          (*function)(WebServer &server);
command_t;

command_t const gCommandTable[COMMAND_TABLE_SIZE] = { // таблица команд

  
{"cmdnrf",     cmdnrf, },
  {
"cmdnrfoff",     cmdnrfoff, },
  {
"cmdnrfon",     cmdnrfon, },
  {
"chselect",chselect, },
  {
"val1",     val1, },
  {
"val2",     val2, },
  {
"val3",     val3, },
  {
"val4",     val4, },

//  {NULL,      NULL }
};
//------Заполнение массива для отправки--------
void chselect(WebServer &server) {
  
nfserver[chsl-1][0]=gParamValue;
  
chsl=gParamValue
}
void val1    (WebServer &server) {nfserver[chsl-1][1]=gParamValue;}
void val2    (WebServer &server) {nfserver[chsl-1][2]=gParamValue;}
void val3    (WebServer &server) {nfserver[chsl-1][3]=gParamValue;}
void val4    (WebServer &server) {nfserver[chsl-1][4]=gParamValue;}


 
//**********************************************************************/
void cliProcessCommand(WebServer &server)
{
  
int bCommandFound false;
  
int idx;

  
gParamValue strtol(gParamBufferNULL0);  // Convert the parameter to an integer value. If the parameter is empty, gParamValue becomes 0.
  
for (idx 0gCommandTable[idx].name != NULLidx++) {  // Search for the command in the command table until it is found or the end of the table is reached. If the command is found, break out of the loop.
    
if (strcmp(gCommandTable[idx].namegCommandBuffer) == 0) {
      
bCommandFound true;
      break;
    }
  }

  if (
bCommandFound == true) {  // Если команда найдена (в массиве команд), то выполняем ее. Если нет - игнорируем
    
(*gCommandTable[idx].function)(server);
  }
  else { 
// Command not found
    
server.print("ERROR: Command not found");
  }
}
/*******************************************************************/
/* Загрузка массива для отправки */
void sendcmd (byte ch,byte data1,byte data2,byte data3,byte data4){
/* порядок команд: номер канала,дата1(10 - управление выходами),дата2 (номер выхода) ,дата3 (состояние 1 или 0) */
  
nfserver[ch-1][0]=ch;
nfserver[ch-1][1]=data1;
nfserver[ch-1][2]=data2;
nfserver[ch-1][3]=data3;
nfserver[ch-1][4]=data4
}

/***************************************************************************************/
/* Обработчики команд */
bool stpin1=0;
bool stpin2=0;

void cmdnrf(WebServer &server) { // пример последовательного вкл/выкл

if (gParamValue==1) {
stpin1=!stpin1;
sendcmd(1,10,0,stpin1,0);
}

if (
gParamValue==2) {
stpin2=!stpin2;
sendcmd(2,10,6,stpin2,0);
}


}

void cmdnrfon(WebServer &server) { // команда на включение

if (gParamValue==1sendcmd(1,10,0,1,0);
if (
gParamValue==2sendcmd(2,10,6,1,0);
}

void cmdnrfoff(WebServer &server) { // команда на выключение

if (gParamValue==1sendcmd(1,10,0,0,0);
if (
gParamValue==2sendcmd(2,10,6,0,0);
}
/**********************************************************************************************************************
* Разбор запроса
**/
void parsedRequest(WebServer &serverWebServer::ConnectionType typechar *url_tailbool tail_complete)
{
  
URLPARAM_RESULT rc;
  
char name[NAMELEN];
  
int  name_len;
  
char value[VALUELEN];
  
int value_len;

  
server.httpSuccess();  // this line sends the standard "we're all OK" headers back to the browser

  /* if we're handling a GET or POST, we can output our data here.
     For a HEAD request, we just stop after outputting headers. */
  
if (type == WebServer::HEAD)
    return;

  if (
strlen(url_tail))
    {
    while (
strlen(url_tail)) // Разбор URI на составные части (выборка параметров)
      
{
      
rc server.nextURLparam(&url_tailnameNAMELENvalueVALUELEN);
      if (
rc == URLPARAM_EOS) {
  
//      server.printP(Params_end);
      
}
       else 
// Получили параметр (name) и его значение (value)
        
{
        
// Выполняем команды
        
strcpy (gCommandBuffername); // параметры (значение)
        
strcpy (gParamBuffervalue); // команда
        
cliProcessCommand(server);
        }
      }
    }


}

//--

void stateRequest(WebServer &serverWebServer::ConnectionType typechar *url_tailbool tail_complete)
{


server.print("identifier:");
server.print(clientnf1.identifier);

server.print(" Analog:");
server.print(clientnf1.Analog);

server.print(" test_data:");
server.print(clientnf1.test_data);

server.print(" count:");
server.print(clientnf1.count);

server.print(" Error_Message:");
server.print(clientnf1.Error_Message);

server.print(" temp:");
server.print(clientnf1.temperature_Sensor);

server.print(" Humidity:");
server.println(clientnf1.Humidity_Sensor);


server.print("identifier:");
server.print(clientnf2.identifier);

server.print(" Analog:");
server.print(clientnf2.Analog);

server.print(" test_data:");
server.print(clientnf2.test_data);

server.print(" count:");
server.print(clientnf2.count);

server.print(" Error_Message:");
server.print(clientnf2.Error_Message);

server.print(" temp:");
server.print(clientnf2.temperature_Sensor);

server.print(" Humidity:");
server.print(clientnf2.Humidity_Sensor);
}

/**********************************************************************************************************************
* Главная страница
**/
void infoRequest(WebServer &serverWebServer::ConnectionType typechar *url_tailbool tail_complete)
{
  
server.printP(Page_info);
  
server.print("IP:");
  
server.print(Ethernet.localIP());
  
server.print("<br>Location:");
  
server.printP(location_info);
  
  
server.print("<hr><a href='/state'>nRF devices</a>");
  
server.print("<hr>Version info: ");
  
server.printP(version_info);
 
}

void setup() {
  
    
Ethernet.begin(macipdns_servergatewaysubnet); // Инициализируем Ethernet Shield

  
webserver.setDefaultCommand(&infoRequest); // дефолтная страница вывода (информация о контроллере)
  
webserver.addCommand("command", &parsedRequest); // команды
  
webserver.addCommand("state", &stateRequest); // выдать состояния всех устройств

  
webserver.begin();
  
  
radio.begin();
  
// выбор скорости
//  radio.setDataRate(RF24_250KBPS);
   
radio.setDataRate(RF24_1MBPS);
// radio.setDataRate(RF24_2MBPS);
   
  
radio.setPALevel(RF24_PA_MAX);
  
radio.setChannel(25); //тут установка канала
  
radio.setCRCLength(RF24_CRC_16);

// radio.setAutoAck(false); // выключить аппаратное потверждение

radio.setRetries(15,15);

  
radio.openWritingPipe(0xF0F0F0F0E1LL);
  
radio.openReadingPipe(1,0xF0F0F0F0D2LL);
  
radio.startListening();
}

int pipewr=0;

void loop() {
  
  
char buff[64];
  
int len 64;
  
webserver.processConnection(buff, &len);  // process incoming connections one at a time forever
  

       
byte pipe 0;
      if ( 
radio.available(&pipe) ) {
  
   
char tempdata[ch_len];   
    
    
bool done false;
        
    while (!
done)
    {
    
done radio.read( &tempdatach_len );

// описываем каждого клиента,назначем каждому свою структуру
switch(tempdata[0]){
case 
1  :
memcpy(&clientnf1,tempdatasizeof(clientnf1));
    break;
    
case 
2   :
memcpy(&clientnf2,tempdatasizeof(clientnf2));
    break;
    
case 
3   :
memcpy(&clientnf3,tempdatasizeof(clientnf3));
    break;
    
  }

    }

    
radio.stopListening();

    
radio.write( &nfserver[pipewr], sizeof(nfserver[pipewr]) );   

    
radio.startListening();
    
        
pipewr++;
        if ( 
pipewr ch_max pipewr 0;
  }
  

juroku вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 4 (пользователей: 0 , гостей: 4)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:56. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика