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

vk

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

ТЕМА: Беспроводной радиомодуль nRF24L01+

Беспроводной радиомодуль nRF24L01+ 16 Июнь 2018 07:08 #22331

  • sergvnovg
  • sergvnovg аватар
  • Не в сети
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Не могу найти распиновку млдуля Беспроводной радиомодуль nRF24L01+ с однорядным разъемом с шагом 1.27мм
Вложения:
Администратор запретил публиковать записи гостям.

Беспроводной радиомодуль nRF24L01+ 16 Июнь 2018 09:03 #22332

  • Gorbunov
  • Gorbunov аватар
  • Не в сети
  • Захожу иногда
  • Сообщений: 41
  • Спасибо получено: 3
  • Репутация: 0
Администратор запретил публиковать записи гостям.
Спасибо сказали: sergvnovg

Беспроводной радиомодуль nRF24L01+ 17 Июнь 2018 03:38 #22333

  • sergvnovg
  • sergvnovg аватар
  • Не в сети
  • Новый участник
  • Сообщений: 2
  • Репутация: 0
Большое спасибо!
Администратор запретил публиковать записи гостям.

Беспроводной радиомодуль nRF24L01+ 10 Сен 2018 12:21 #22824

  • Genplane
  • Genplane аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Репутация: 0
Всем привет! Встала задача сделать спарку "Я - свой"
В машине находится "маячок" на Ардуино+nRF24L01+.Он постоянно кричит в эфир.
У ворот дома "слухач" на ESP8266+nRF24L01+. При приближении к дому за 50-100м "слухач" видит "маячок" и отправляет на сервер по wi-fi серию единичек. Ворота открываются (это сервер делает). При удалении (уезжаю) - маячок теряется и "слухач" отправляет серию нулей (ворота закрываются).
Это аналог системы доступа с активными метками.
Может кто делал подобное или подскажет, как реализовать, Сами пробовали писать скетчи для обоих модулей, но работает крайне нестабильно.
Администратор запретил публиковать записи гостям.

Беспроводной радиомодуль nRF24L01+ 12 Сен 2018 09:06 #22838

  • Genplane
  • Genplane аватар
  • Не в сети
  • Осваиваюсь на форуме
  • Сообщений: 32
  • Репутация: 0
Вот, на всякий случай, скетчи для этой пары.
#include <SPI.h>
#include <RF24.h>
RF24 radio(9, 10); // можно использовать любые
const uint32_t pipe = 123456789; // адрес
byte massiv[1];

int ledPin = 3;

void setup()
{
  Serial.begin(57600);
  Serial.println("Welcome!");
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, 0);
  radio.begin();
  delay(2000);
  radio.setDataRate(RF24_250KBPS); // скорость обмена данными RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
  radio.setCRCLength(RF24_CRC_16); // длинна контрольной суммы 8-bit or 16-bit
  radio.setPALevel(RF24_PA_MAX); // уровень питания усилителя RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH and RF24_PA_MAX
                                 // соответствует уровням:    -18dBm,      -12dBm,      -6dBM,           0dBm
  radio.setChannel(102);         // установка канала
  radio.setAutoAck(false);       // - автоответ.
  radio.powerUp();               // включение или пониженное потребление powerDown - powerUp
  radio.openWritingPipe(pipe); // открыть канал на отправку
}

void loop()
{
  massiv[0] = 255;
  digitalWrite(ledPin, 1);
  radio.write(massiv, 1);
  Serial.println("1 " + String(millis()));
  delay(1000);
  massiv[0] = 155;
  digitalWrite(ledPin, 0);
  radio.write(massiv, 1);
  Serial.println("0");
  delay(1000);
}
#include <ESP8266WiFi.h>
#include <PubSubClient.h>  //https://github.com/Imroy/pubsubclient
#include <SPI.h>
#include <RF24.h>

RF24 radio(4, 2);

const uint32_t pipe = 123456789;
byte massiv[4];

const char *ssid = "Igor";   //Имя вайфай точки доступа
const char *pass = "89062385350A";     //Пароль от точки доступа
String espName = "espDostupNRF"; //Имя самой esp8266. Используется для формирования записей MQTT

const char *mqtt_server = "192.168.88.222"; //Имя или IP-адрес сервера MQTT
const int mqtt_port = 1883;                //Порт для подключения к серверу MQTT
const char *mqtt_user = "";                //Логин от сервера MQTT
const char *mqtt_pass = "";                //Пароль от сервера MQTT

#define BUFFER_SIZE 100

unsigned long timingIP, timingLed, timingUptime;

int intervalIP = 600;    //интервал отправки своего IP-адреса в секундах
int intervalLed = 10;    //интервал отправки состояния светодиода в секундах
int intervalUptime = 20; //интервал отправки uptime в секундах

bool LedState = false;
int led = 5;

// Функция получения данных от сервера

void callback(const MQTT::Publish& pub)
{
  String payload = pub.payload_string();
  if (String(pub.topic()) == espName + "/led") //проверяем из нужного ли нам топика пришли данные
  {
    int stled = payload.toInt(); //преобразуем полученные данные в тип integer
    digitalWrite(led, stled);    //включаем или выключаем светодиод в зависимости от полученных значений данных
  }
}

WiFiClient wclient;
PubSubClient client(wclient, mqtt_server, mqtt_port);

void setup() {
  Serial.begin(57600);
  Serial.println("Welcome!");
  pinMode(led, OUTPUT);  
  radio.begin();
  delay(2000);
  radio.setDataRate(RF24_250KBPS); // скорость обмена данными RF24_250KBPS, RF24_1MBPS или RF24_2MBPS
  radio.setCRCLength(RF24_CRC_16); // длинна контрольной суммы 8-bit or 16-bit
  radio.setPALevel(RF24_PA_MAX); // уровень питания усилителя RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH and RF24_PA_MAX
                                 // соответствует уровням:    -18dBm,      -12dBm,      -6dBM,           0dBm
  radio.setChannel(102);         // установка канала
  radio.setAutoAck(false);       // - автоответ.
  radio.powerUp();               // включение или пониженное потребление powerDown - powerUp
  radio.openReadingPipe(1,pipe); // открыть канал на приём
  radio.startListening(); // приём
}

void loop() {

 if(radio.available())
    {
      radio.read(massiv, 1);
      if(massiv[0] == 255)
        { ledSend();
        }
     }

  // подключаемся к wi-fi
  if (WiFi.status() != WL_CONNECTED) {
    Serial.println("Connecting to " + String(ssid) + "...");
    WiFi.begin(ssid, pass);
    if (WiFi.waitForConnectResult() != WL_CONNECTED) {
      return;
    }
    Serial.println("WiFi connected");
    Serial.println("IP address: " + WiFi.localIP().toString());
    Serial.println("Signal strength (RSSI): " + String(WiFi.RSSI()) + " dBm");
  }

  // подключаемся к MQTT серверу
  if (WiFi.status() == WL_CONNECTED) {
    if (!client.connected()) {
      Serial.println("Connecting to MQTT server");
      if (client.connect(MQTT::Connect("arduinoClient2")
                         .set_auth(mqtt_user, mqtt_pass))) {
        Serial.println("Connected to MQTT server");
        client.publish(espName + "/ip", WiFi.localIP().toString());
        client.set_callback(callback);
      } else {
        Serial.println("Could not connect to MQTT server");
      }
    }

    if (client.connected()) {
      client.loop();
      uptimeSend();
      ipSend();
    }
  }
}
//////////////////////////////////////////////////
void ipSend() {
  if (millis() - timingIP > intervalIP * 1000) {
    client.publish(espName + "/ip", WiFi.localIP().toString()); //отправляем наш IP-адрес
    Serial.println("IP address: " + WiFi.localIP().toString());
    timingIP = millis();
  }
}

void uptimeSend() {
  if (millis() - timingUptime > intervalUptime * 1000) {
    client.publish(espName + "/rssi", String(WiFi.RSSI())); //отправляем уровень сигнала
    client.publish(espName + "/uptime", String(millis()));  //отправляем uptime
    Serial.println("Signal strength (RSSI): " + String(WiFi.RSSI()) + " dBm");
    Serial.println("Uptime: " + String(millis()));
    timingUptime = millis();
  }
}

void ledSend() {
    client.publish(espName + "/led", String(1) + String(millis())); //отправляем состояние светодиода
    Serial.println("Led: 1");
}
Администратор запретил публиковать записи гостям.
Модераторы: FlyRouter
Время создания страницы: 0.124 секунд

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