Загрузка страницы

Arduino МАЛЕНЬКОЕ ЧУДО nRF24L01 BLE Bluetooth low energy Smart Лайфхак Своими руками

Download - sketch.
https://yadi.sk/d/dv6qRGM63J4SDp
+ sketch оставлю в комментарии - под видео.
______.

(Получатель). Осипов Дмитрий Рафаэлович
(БИК или наименование банка получателя). 044525716
(ВТБ 24 (ПАО) Г.МОСКВА к/c:). 30101810100000000716
(Счет получателя). 30232810481100000009
(Назначение платежа).
Для зачисления на карту 4272290003079712 Осипов Дмитрий Рафаэлович
На счет моего мобильного телефона "МТС Moskva".
+7 (915) 001-17-12
https://www.paypal.me/1DmitryOsipov
______.

Вспомогательные видео.

Arduino nRF24L01 BLE Recv Send Bluetooth low energy Smart Лайфхак Своими руками
https://youtu.be/c8lWFAzINc8
Основу для sketch, брал здесь: http://doc.lijun.li/misc-nrf24-ble.html
______.
/* nRF24L01 BLE Transmitter Wireless Arduino Android iPhone v.1 20170511.*/

#include "SPI.h"
#define PIN_CE 9
#define PIN_CSN 10
#define MY_MAC_0 0x11
#define MY_MAC_1 0x22
#define MY_MAC_2 0x33
#define MY_MAC_3 0x44
#define MY_MAC_4 0x55
#define MY_MAC_5 0x66
uint8_t bleName[17];
bool macBool = 0;

uint8_t buf[32];
static const uint8_t chRf[] = {2, 26, 80};
static const uint8_t chLe[] = {37, 38, 39};
uint8_t ch = 0;

void btLeCrc(const uint8_t* data, uint8_t len, uint8_t* dst) {
uint8_t v, t, d;
while (len--) {
d = *data++;
for (v = 0; v < 8; v++, d >>= 1) {
t = dst[0] >> 7;
dst[0] <<= 1;
if (dst[1] & 0x80) dst[0] |= 1;
dst[1] <<= 1;
if (dst[2] & 0x80) dst[1] |= 1;
dst[2] <<= 1;

if (t != (d & 1)) {
dst[2] ^= 0x5B;
dst[1] ^= 0x06;
}
}
}
}

uint8_t swapbits(uint8_t a) {
uint8_t v = 0;
if (a & 0x80) v |= 0x01;
if (a & 0x40) v |= 0x02;
if (a & 0x20) v |= 0x04;
if (a & 0x10) v |= 0x08;
if (a & 0x08) v |= 0x10;
if (a & 0x04) v |= 0x20;
if (a & 0x02) v |= 0x40;
if (a & 0x01) v |= 0x80;
return v;
}

void btLeWhiten(uint8_t* data, uint8_t len, uint8_t whitenCoeff) {
uint8_t m;
while (len--) {
for (m = 1; m; m <<= 1) {
if (whitenCoeff & 0x80) {
whitenCoeff ^= 0x11;
(*data) ^= m;
}
whitenCoeff <<= 1;
}
data++;
}
}

static inline uint8_t btLeWhitenStart(uint8_t chan) {
return swapbits(chan) | 2;
}

void btLePacketEncode(uint8_t* packet, uint8_t len, uint8_t chan) {
uint8_t i, dataLen = len - 3;
btLeCrc(packet, dataLen, packet + dataLen);
for (i = 0; i < 3; i++, dataLen++)
packet[dataLen] = swapbits(packet[dataLen]);
btLeWhiten(packet, len, btLeWhitenStart(chan));
for (i = 0; i < len; i++)
packet[i] = swapbits(packet[i]);
}

uint8_t spi_byte(uint8_t byte) {
SPI.transfer(byte);
return byte;
}

void nrf_cmd(uint8_t cmd, uint8_t data) {
digitalWrite(PIN_CSN, LOW);
spi_byte(cmd);
spi_byte(data);
digitalWrite(PIN_CSN, HIGH);
}

void nrf_simplebyte(uint8_t cmd) {
digitalWrite(PIN_CSN, LOW);
spi_byte(cmd);
digitalWrite(PIN_CSN, HIGH);
}

void nrf_manybytes(uint8_t* data, uint8_t len) {
digitalWrite(PIN_CSN, LOW);
do {
spi_byte(*data++);
} while (--len);
digitalWrite(PIN_CSN, HIGH);
}

void setup() {
pinMode(PIN_CSN, OUTPUT);
pinMode(PIN_CE, OUTPUT);
pinMode(11, OUTPUT);
pinMode(13, OUTPUT);
digitalWrite(PIN_CSN, HIGH);
digitalWrite(PIN_CE, LOW);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
nrf_cmd(0x20, 0x12);
nrf_cmd(0x21, 0x00);
nrf_cmd(0x22, 0x00);
nrf_cmd(0x23, 0x02);
nrf_cmd(0x24, 0x00);
nrf_cmd(0x26, 0x06);
nrf_cmd(0x27, 0x3E);
nrf_cmd(0x3C, 0x00);
nrf_cmd(0x3D, 0x00);
nrf_cmd(0x31, 32);
nrf_cmd(0x22, 0x01);

buf[0] = 0x30;
buf[1] = swapbits(0x8E);
buf[2] = swapbits(0x89);
buf[3] = swapbits(0xBE);
buf[4] = swapbits(0xD6);
nrf_manybytes(buf, 5);
buf[0] = 0x2A;
nrf_manybytes(buf, 5);
}

void loop() {
String str = "";
if (macBool)str = (String) "A0=" + analogRead(A0) + "-A1=" + analogRead(A1);
else str = (String) "A2=" + analogRead(A2) + "-A3=" + analogRead(A3);
str.toCharArray(bleName, sizeof(bleName));
delay(1);

for (ch = 0; ch < sizeof(chRf); ch++)
{
uint8_t i, L = 0;

buf[L++] = 0x42;
buf[L++] = 16 + 11;

buf[L++] = MY_MAC_0;
buf[L++] = MY_MAC_1;
buf[L++] = MY_MAC_2;
buf[L++] = MY_MAC_3;
buf[L++] = MY_MAC_4;
buf[L++] = macBool = !macBool;

buf[L++] = 2;
buf[L++] = 0x01;
buf[L++] = 0x06;

buf[L++] = sizeof(bleName);
buf[L++] = 0x08;

for (i = 0; i < sizeof(bleName) - 1; i++)buf[L++] = bleName[i];

buf[L++] = 0x55;
buf[L++] = 0x55;
buf[L++] = 0x55;

nrf_cmd(0x25, chRf[ch]);
nrf_cmd(0x27, 0x6E);

btLePacketEncode(buf, L, chLe[ch]);
nrf_simplebyte(0xE2);
nrf_simplebyte(0xE1);

digitalWrite(PIN_CSN, LOW);
spi_byte(0xA0);
for (i = 0 ; i < L ; i++) spi_byte(buf[i]);
digitalWrite(PIN_CSN, HIGH);

nrf_cmd(0x20, 0x12);
digitalWrite(PIN_CE, HIGH);
delay(2);
digitalWrite(PIN_CE, LOW);
}
delay(100);
}

Видео Arduino МАЛЕНЬКОЕ ЧУДО nRF24L01 BLE Bluetooth low energy Smart Лайфхак Своими руками канала Dmitry OSIPOV
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
12 мая 2017 г. 12:00:02
00:08:46
Другие видео канала
Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи)Подключение и настройка nRF24L01 к Arduino (модуль беспроводной связи)Arduino nRF24L01+ Соединяем несколько Arduino по радиоканалу multi Connect Transmitter ReceiverArduino nRF24L01+ Соединяем несколько Arduino по радиоканалу multi Connect Transmitter ReceiverУправление моторами с ArduinoУправление моторами с ArduinoArduino Поворотное устройство для камеры Android Bluetooth Servo Pan Tilt Лайфхак Своими рукамиArduino Поворотное устройство для камеры Android Bluetooth Servo Pan Tilt Лайфхак Своими рукамиDeel 12 - Arduino, gegevens doorsturen naar telefoon via Bluetooth, nRF24L01 module en Android AppDeel 12 - Arduino, gegevens doorsturen naar telefoon via Bluetooth, nRF24L01 module en Android AppArduino nRF24L01 BLE Recv Send Bluetooth low energy Smart Лайфхак Своими рукамиArduino nRF24L01 BLE Recv Send Bluetooth low energy Smart Лайфхак Своими руками🔊Беспроводная колонка своими руками🔊Беспроводная колонка своими рукамиУроки Ардуино. ПИД регуляторУроки Ардуино. ПИД регуляторРеализация приема-передачи данных по радиоканалу с помощью NRF24l01+ в программе FLProgРеализация приема-передачи данных по радиоканалу с помощью NRF24l01+ в программе FLProg#179 Was it worth waiting for Bluetooth? How Much Current Needs the ESP32 Bluetooth in BLE?#179 Was it worth waiting for Bluetooth? How Much Current Needs the ESP32 Bluetooth in BLE?🚗Bluetooth танк - powerbank своими руками🚗Bluetooth танк - powerbank своими руками10 Новых лайфхаков для телефона10 Новых лайфхаков для телефона🎒Вызов принят: рюкзак с дисплеем своими руками!🎒Вызов принят: рюкзак с дисплеем своими руками!nRF24L01 и Ардуино: побеждаем модульnRF24L01 и Ардуино: побеждаем модульЖучок - прослушка на Arduino + NRF24L01Жучок - прослушка на Arduino + NRF24L01use NRF as a BLE Module | Arduino NRF24L01 Bluetooth Low Energy Tutorialuse NRF as a BLE Module | Arduino NRF24L01 Bluetooth Low Energy TutorialБеспроводной термодатчик для метеостанции на Arduino своими рукамиБеспроводной термодатчик для метеостанции на Arduino своими рукамиHow To Build Custom Android App for your Arduino Project using MIT App InventorHow To Build Custom Android App for your Arduino Project using MIT App InventorTurn your HC-05 into a HID Bluetooth device (No Parallel Port Method)Turn your HC-05 into a HID Bluetooth device (No Parallel Port Method)Самая простая сигнализация для дома, дачи, гаража - своими руками Лайфхак GSM alarm HC-SR501 ArduinoСамая простая сигнализация для дома, дачи, гаража - своими руками Лайфхак GSM alarm HC-SR501 Arduino
Яндекс.Метрика