Ключевое ?лово

vk

Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Железо для умного дома

ТЕМА: ESP8266 & "RF24 хаб"

ESP8266 & "RF24 хаб" 08 Апр 2016 21:14 #12036

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7197
  • Спасибо получено: 1114
  • Репутация: 194
В данный момент одновременная их работа не возможна , nrf24 работает по софт SPI.
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.
Спасибо сказали: RUS_D

ESP8266 & "RF24 хаб" 08 Апр 2016 22:37 #12037

  • RUS_D
  • RUS_D аватар
  • Не в сети
  • Пользователь заблокирован
  • Сообщений: 29
  • Спасибо получено: 5
  • Репутация: 1
Ок, значит прикрутим пока LCD2004
От RF24+Arduino пока не хочется отказываться - прикручено у меня там сейчас влажность, температура и счетчик гейгера, в планах освещенность, скорость и направление ветра (как механику доделаю).
Администратор запретил публиковать записи гостям.

ESP8266 & "RF24 хаб" 10 Май 2016 19:49 #12539

  • Lsar
  • Lsar аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 190
  • Спасибо получено: 15
  • Репутация: 1
Здравствуйте!
Всю голову сломал, заставляя спарится nrf+arduino и esp+nrf.
В одно время заработало, рано радовался. Выключил питание на первом передатчике включил другой передатчик. Ничего не передается, включил обратно первый, рабочий, тоже не передается. они такие капризные?! Провода и настройки не трогал.
/*
Пример работы клиента
*/
    /**
 *
 * Pins:
 * Hardware SPI:
 * MISO -> 12
 * MOSI -> 11
 * SCK -> 13
 *
 * Configurable:
 * CE -> 8
 * CSN -> 7
 *
 */
 /*                  Arduino      Sparkfun WRL-00691
*                  3V3 or 5V----VCC   (3.3V to 7V in)
*              pin D8-----------CE    (chip enable in)
*           SS pin D10----------CSN   (chip select in)
*          SCK pin D13----------SCK   (SPI clock in)
*         MOSI pin D11----------SDI   (SPI Data in)
*         MISO pin D12----------SDO   (SPI data out)
*                               IRQ   (Interrupt output, not connected)
*                  GND----------GND   (ground in)
and initialise the NRF24 object like this to explicitly set the SS pin NRF24 nrf24(8, 10);
*/
#define chclient 1 // номер клиента 1...
#define timesend 300 // интервал отправки данных,для обычных датчиков можно установить время выше.

#include <SPI.h>

#include "nRF24L01.h"
#include "RF24.h"

unsigned long time1=0;
unsigned long time2=0;

//
// Set up nRF24L01 radio on SPI bus plus pins 9 & 10

RF24 radio(8,10);
//

// 0 -прием , 1 -передача
const uint64_t pipes[2] = {0xF0F0F0F0E1LL,0xF0F0F0F0D2LL};
//

// структура отправляемых данных.Изменяемые данные.Размер структуры должен быть не больше 32 байт !
               typedef struct{
               byte identifier;// номер передатчика.МЕНЯТЬ НЕЛЬЗЯ
               int Analog;
               boolean test_data;
               unsigned int Error_Message; // счетчик ошибок
               unsigned long count;// счетчик передач для контроля качества канала
                }
nf1;
nf1 clientnf; 


void setup() {

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

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

radio.setRetries(15,15);

radio.openWritingPipe(pipes[1]); // Открываем канал передачи
//radio.openReadingPipe(1,pipes[0]); // Открываем канал приема  

clientnf.identifier = chclient;
}

byte errorstate;

void loop() {
//---------------------------------для чтения сенсоров--------------------------
  if ((millis()-time1) >= 1000) {     // обновляем сенсоры раз в секунду (1000млс)
//  тут будут опросы сенсоров

clientnf.Analog=analogRead(0); //пример передачи int данных
Serial.println (analogRead(0));
time1 = millis();
  }
//************************************************************************************************/
  if ((millis() - time2) >= timesend) {
 
  radio.stopListening();
  bool ok = radio.write( &clientnf, sizeof(clientnf) );
  Serial.println ("Otpravil");
  radio.startListening();
 
 
    time2 = millis();      
  }

} // конец loop
помогите советом
Администратор запретил публиковать записи гостям.

ESP8266 & "RF24 хаб" 10 Май 2016 19:51 #12540

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7197
  • Спасибо получено: 1114
  • Репутация: 194
radio.setAutoAck(false); раскаментировать. сравнить другие настройки
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.

ESP8266 & "RF24 хаб" 10 Май 2016 20:28 #12541

  • Lsar
  • Lsar аватар
  • Не в сети
  • Завсегдатай
  • Сообщений: 190
  • Спасибо получено: 15
  • Репутация: 1
Спасибо, вроде заработало. Правда до того :) Но после того как раскоментировал эту строку даже стабильнее и оба клиента сразу!
Как понял клиеты заметно глушат друг друга, даже если в разное время передают и esp8266 отдает предпочтение, тому кто первый включился.
Насколько должна быть разница во времени, чтоб 100% данных доходило?
Администратор запретил публиковать записи гостям.

ESP8266 & "RF24 хаб" 10 Май 2016 20:34 #12542

  • Adminhs
  • Adminhs аватар
  • Не в сети
  • Администратор
  • Сообщений: 7197
  • Спасибо получено: 1114
  • Репутация: 194
если передавать раз в минуту, то проблем обычно не бывает, если клиенты будут долбить 10 раз в секунду, то конечно будут проблемы
Основной канал проекта в Telegram t.me/wifi_iot
Администратор запретил публиковать записи гостям.
Спасибо сказали: Lsar
Модераторы: FlyRouter
Время создания страницы: 0.131 секунд

Home`s Smart © 2013-2016. г.Киров.
Цитирование материалов возможно только со ссылкой на сайт. Использование фотоматериалов только с разрешения авторов.