> Без описания
Nikita71
Отправлено: 14 Июля, 2021 - 23:29:08
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




Nikita71, [14.07.21 23:17



CODE:

by Nikita71 14.07.2021


#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

#define SERVICE_UUID "63462a4a-c28c-4ffd-87a4-2d23a1c72581"
#define CHARACTERISTIC_UUID "70bc767e-7a1a-4304-81ed-14b9af54f7bd"

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;

bool deviceConnected = false;


class MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
BLEDevice::startAdvertising();
};

void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};


void setup() {
Serial.begin(115200);
BLEDevice::init("AtomFast");

pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());

BLEService *pService = pServer->createService(SERVICE_UUID);

pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_WRITE |
BLECharacteristic::PROPERTY_NOTIFY
);

pCharacteristic->addDescriptor(new BLE2902());

pService->start();

BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();



}

void loop() {

delay(1000);
if (deviceConnected){
BleSentData(12.34, 1000, 10, 100,26); // Мощность дозы в мкР/ч, доза в мкР/ч, число импульсов за последние 2 секунды, процент заряда батареи, температура.

}
}


void BleSentData (float RAD,float DOSERAD,uint16_t PULSE,uint8_t battery,uint8_t temperature){
uint8_t date[13] = { 0x00, // Флаги
0x83 ,0x3C ,0xBC ,0x40, // Доза в мЗв
0x79, 0xB0, 0xE3, 0x3F , // Мощность дозы в мкЗв/ч
0xA8 ,0x00 , // Число импульсов за последние 2 секунды
0x41, // Процент заряда батареи (0..100)
0x17 }; // Температура


*(float*)(&date[1]) = DOSERAD/100000.0; // доза в млР/ч
*(float*)(&date[5]) = RAD/100.0; // Мощность дозы в мкР/ч
*(uint16_t*)(&date[9]) = PULSE; // Число импульсов за последние 2 секунды
*(uint8_t*)(&date[11]) = battery; // Процент заряда батареи (0..100)
*(uint8_t*)(&date[12]) = temperature; // Температура


pCharacteristic->setValue( date, 13 ); // Отправка данных
pCharacteristic->notify();
}


(Отредактировано автором: 14 Июля, 2021 - 23:35:39)

 
 Top
ЗДЕСЬ МОГЛА БЫТЬ ВАША РЕКЛАМА
а пока можете посетить ресурс: блог сисадмина-пайщика




Убедительная просьба для всех. Загружайте пожалуйста фотографии в нашу фотогалерею по адресу http://rhbz.pw У кого нет учетной записи - отпишитесь в этой теме ЗДЕСЬ либо в ЛС к BON'у
BON Администратор
Отправлено: 15 Июля, 2021 - 22:12:52
Post Id



Главный админ


Off-line
Сообщений всего: 8314
Дата рег-ции: Июль 2010  
Откуда: USSR/Белгород
Репутация: 165




CODE:
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

#define SERVICE_UUID "63462a4a-c28c-4ffd-87a4-2d23a1c72581"
#define CHARACTERISTIC_UUID "70bc767e-7a1a-4304-81ed-14b9af54f7bd"


зачем так много кода в пустую оставлять? или это не закомментированный код?
 
 Top
Nikita71
Отправлено: 15 Июля, 2021 - 22:51:50
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




 BON пишет:
CODE:
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

#define SERVICE_UUID "63462a4a-c28c-4ffd-87a4-2d23a1c72581"
#define CHARACTERISTIC_UUID "70bc767e-7a1a-4304-81ed-14b9af54f7bd"


зачем так много кода в пустую оставлять? или это не закомментированный код?


он здесь как раз и нужен )
 
 Top
MadOrc
Отправлено: 16 Июля, 2021 - 19:30:45
Post Id



Участник


Off-line
Сообщений всего: 112
Дата рег-ции: Апр. 2021  
Откуда: Алма-Ата, Казахстан
Репутация: 15




 BON пишет:
или это не закомментированный код?

Нет Радость
# директива компилятору, в данном случае какие внешние исходники подключить и объявление статичных констант
// или /* code */ - комментирование
 
 Top
Maniak003
Отправлено: 16 Июля, 2021 - 19:33:44
Post Id



Прописавшийся на форуме


Off-line
Сообщений всего: 334
Дата рег-ции: Янв. 2021  
Откуда: СПб, Россия
Репутация: 20




 MadOrc пишет:
и объявление статичных констант


Правильнее будет - макросов.
 
 Top
Nikita71
Отправлено: 10 Ноября, 2021 - 20:14:24
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




обнаружил что данный код не работает на версии 1.0.5 либы для есп32, для работи откатитесь до 1.0.4 (в менеджере библиотек)
 
 Top
Nikita71
Отправлено: 20 Ноября, 2021 - 17:33:50
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




CODE:

// created by Nikita71 20.11.2021 Arduino Ide ESP32(v1.0.4(ver Library))

#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>

#define SERVICE_UUID "63462a4a-c28c-4ffd-87a4-2d23a1c72581"
#define Dose_CHARACTERISTIC_UUID "70bc767e-7a1a-4304-81ed-14b9af54f7bd"

BLEServer* pServer = NULL;
BLECharacteristic* pCharacteristic = NULL;

bool deviceConnected = false;

class MyServerCallbacks: public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
BLEDevice::startAdvertising();
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};

void setup() {
Serial.begin(115200);
BLEDevice::init("AtomFast");

pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());

BLEService *pService = pServer->createService(SERVICE_UUID);

pCharacteristic = pService->createCharacteristic(
Dose_CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_NOTIFY
);

pCharacteristic->addDescriptor(new BLE2902());

pService->start();

BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
pAdvertising->setMinPreferred(0x12);
BLEDevice::startAdvertising();



}

void loop() {

delay(1000);
if (deviceConnected) {
BleSentData(12.34, 1000, 18.6, 20, 22); // Мощность дозы в мкР/ч, доза в мкР/ч, cps, процент заряда батареи, температура.
// *Если процент заряда больше чем 100, то загорается значок заряда акб.

}
}


void BleSentData (float RAD, float DOSERAD, float PULSE2, uint8_t battery, uint8_t temperature) {
uint8_t date[13] = { 0x00, // Флаги
0x00 , 0x00 , 0x00 , 0x00, // Доза в мЗв
0x00, 0x00, 0x00, 0x00 , // Мощность дозы в мкЗв/ч
0x00 , 0x00 , // cps
0x00, // Процент заряда батареи (0..100)
0x00 // Температура
};
if(battery > 100){
*(uint8_t*)(&date[0]) = 253;
}else{
*(uint8_t*)(&date[0]) = 0;
}
*(float*)(&date[1]) = DOSERAD / 100000.0; // доза в млР/ч
*(float*)(&date[5]) = RAD / 100.0; // Мощность дозы в мкР/ч
uint16_t PULSE = PULSE2*4; // костили
*(uint16_t*)(&date[9]) = PULSE/2; // CPS
*(uint8_t*)(&date[11]) = battery; // Процент заряда батареи (0..100)
*(uint8_t*)(&date[12]) = temperature; // Температура


pCharacteristic->setValue(date,13); // Отправка данных
pCharacteristic->notify();
}



Добавил отображение зарядки акб и стат погрешность теперь может отразить 0.5

Хотел сделать двух сторонюю связь, но не получилось. Методом научного тика выяснил что епс32 не хочет запускать блютуз если UUID F8DE242F-­8D84-­4C12­-9A2F­-9C64A31CA7CA
Если поставить другой, то все нормально, но для работы нужен именно этот. Кто сталкивался с этой проблемой отпишитесь плз как вы ее решили )
 
 Top
Maniak003
Отправлено: 21 Ноября, 2021 - 16:20:59
Post Id



Прописавшийся на форуме


Off-line
Сообщений всего: 334
Дата рег-ции: Янв. 2021  
Откуда: СПб, Россия
Репутация: 20




 Nikita71 пишет:
UUID F8DE242F-­8D84-­4C12­-9A2F­-9C64A31CA7CA


Вижу один сервис: 63462a4a-c28c-4ffd-87a4-2d23a1c72581

Одна характеристика для чтения: 70bc767e-7a1a-4304-81ed-14b9af54f7bd

И несколько характеристик для записи:
2e95d467-4db7-4d7f-9d82-4cd5c102fa05
3f71e820-1d98-46d4-8ed6-324c88428868c
57f7031f-03c1-4016-8749-baabaa58612d
bb6c9c06-c37d-49b0-94cf-83623622573b
e2423a67-7541-4080-8b5a-59449454a873
ea50cfcd-ac4a-4a48-bf0e-879e548ae157
f8de242f-8d84-4c12-9a2f-9c64a31ca7ca

Нужно для записи и чтения использовать разные характеристики. Т.е. из характеристики Dose_CHARACTERISTIC_UUID, читаем, а в какую то из перечисленных пишем. В характеристику для чтения писать нельзя.

(добавлено)
И еще, Вы уверены, что можно писать раз в секунду ? Мне помнится, что АтомФаст не очень быстро выполняет изменения настроек. Видимо нужно дожидаться подтверждения ?

(Отредактировано автором: 21 Ноября, 2021 - 16:27:41)

 
 Top
Nikita71
Отправлено: 21 Ноября, 2021 - 18:12:33
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2






кажется все правильно сделал, вот пример с ca73b3ba-39f6-4ab3-91ae-186dc9577d99, но для работы нужен F8DE242F8D844C129A2F9C64A31CA7CA, но увы, с ним плата не хочет стартовать. (не хочет влючать блютуз)


только что зашел в serial порт, а там esp32 в бесконечной перезагрузке.

CODE:

Rebooting...
ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8

Brownout detector was triggered

ets Jun 8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x4000c2af PS : 0x00060f30 A0 : 0x800da52b A1 : 0x3ffc7650
A2 : 0x3ffc767e A3 : 0x00000000 A4 : 0x00000012 A5 : 0x3ffc767e
A6 : 0x3ffba6b8 A7 : 0xff000000 A8 : 0x00000000 A9 : 0x3ffc7650
A10 : 0x3ffc3d08 A11 : 0x3ffc76cc A12 : 0x0000000d A13 : 0x00000001
A14 : 0x00060f20 A15 : 0x00000000 SAR : 0x00000008 EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000000 LBEG : 0x4000c2e0 LEND : 0x4000c2f6 LCOUNT : 0x00000000

ELF file SHA256: 0000000000000000

Backtrace: 0x4000c2af:0x3ffc7650 0x400da528:0x3ffc7660 0x400d2865:0x3ffc76c0 0x400d5f57:0x3ffc7700 0x400d166d:0x3ffc7740 0x400d77de:0x3ffc7790 0x4008ff56:0x3ffc77b0



похоже на ошибку по питанию, но не понятно почему на другом UUID ее нет


 Цитата:

Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.


вот тоже не понятная ошибка, откуда она вообще могла взяться )

(Отредактировано автором: 21 Ноября, 2021 - 18:21:07)

 
 Top
Maniak003
Отправлено: 21 Ноября, 2021 - 18:53:14
Post Id



Прописавшийся на форуме


Off-line
Сообщений всего: 334
Дата рег-ции: Янв. 2021  
Откуда: СПб, Россия
Репутация: 20




Характеристика ca73b3ba-39f6-4ab3-91ae-186dc9577d99 служит для чтения . Прибор при помощи этой характеристики передает данные в приложение на смартфон.

Характеристика f8de242f-8d84-4c12-9a2f-9c64a31ca7ca служит для записи. Прибор получает данные из приложения.

Нужно использовать обе характеристики если требуется обмен в обе стороны.

У меня к сожалению сейчас нет подходящего контроллера, что бы проверить...
 
 Top
Nikita71
Отправлено: 21 Ноября, 2021 - 19:08:04
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




 Maniak003 пишет:
Характеристика ca73b3ba-39f6-4ab3-91ae-186dc9577d99 служит для чтения . Прибор при помощи этой характеристики передает данные в приложение на смартфон.

Характеристика f8de242f-8d84-4c12-9a2f-9c64a31ca7ca служит для записи. Прибор получает данные из приложения.

Нужно использовать обе характеристики если требуется обмен в обе стороны.

У меня к сожалению сейчас нет подходящего контроллера, что бы проверить...



 Nikita71 пишет:




как тут ? только другой UUID


по докам f8de242f-8d84-4c12-9a2f-9c64a31ca7ca Read/write

AtomServiceBLE4-v.0.2:
http://forum.rhbz.org/rd.php?htt...ceBLE4-v_0_2.rar


с этим +- все понятно, непонятно почему есп32 уходит в бесконечную перезагрузку ...

(Отредактировано автором: 21 Ноября, 2021 - 19:32:05)

 
 Top
Nikita71
Отправлено: 21 Ноября, 2021 - 19:26:54
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




.

(Отредактировано автором: 21 Ноября, 2021 - 19:31:17)

 
 Top
Maniak003
Отправлено: 22 Ноября, 2021 - 08:57:51
Post Id



Прописавшийся на форуме


Off-line
Сообщений всего: 334
Дата рег-ции: Янв. 2021  
Откуда: СПб, Россия
Репутация: 20




Brownout detector was triggered -- это однозначно говорит о проблеме питания. Попробуйте использовать usb кабель с более толстыми жилами или заведите питание на плату напрямую. Только опять не забывайте про заземление, к usb блокам питания - это тоже относится в полной мере.
 
 Top
Nikita71
Отправлено: 22 Ноября, 2021 - 16:47:40
Post Id



Частый гость


Off-line
Сообщений всего: 95
Дата рег-ции: Сент. 2020  
Откуда: Україна Київ
Репутация: 2




поменял все буквы в UUID на маленькиє и заработало, но не надолго, теперь при активном f8de242f-8d84-4c12-9a2f-9c64a31ca7ca приложении атом фаст вылетает. удалил PROPERTY_READ тепер есп32 вылетает )




Brownout detector was triggered ошибка так и осталась, хотя я подключил 5в от бп.
Попробую другой стаб на 3.3 поставить ...

(Отредактировано автором: 22 Ноября, 2021 - 16:58:59)

 
 Top
Maniak003
Отправлено: 22 Ноября, 2021 - 17:08:05
Post Id



Прописавшийся на форуме


Off-line
Сообщений всего: 334
Дата рег-ции: Янв. 2021  
Откуда: СПб, Россия
Репутация: 20




 Nikita71 пишет:
поменял все буквы в UUID на маленькиє и заработало, но не надолго, теперь при активном f8de242f-8d84-4c12-9a2f-9c64a31ca7ca приложении атом фаст вылетает. удалил PROPERTY_READ тепер есп32 вылетает


Вы создали вторую характеристику ? Покажите текущий исходник.
 
 Top
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Самодельные дозиметрические приборы »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 

> Похожие темы: ProtonBridge2(ESP32) или используем приложение AtomSwift в самодельном дозиметре на esp32
Темы Форум Информация о теме Обновление
Дозиметр МКС-85 «Школьник»
Информация о дозиметре МКС-85 «Школьник»
Российские современные дозиметрические приборы Ответов: 6
Автор темы: gad969
11 Октября, 2016 - 12:42:25
Автор: gad969
radcomm RC2
Что известно о дозиметре
Американские дозиметрические приборы Ответов: 7
Автор темы: Ilya
09 Февраля, 2018 - 07:15:00
Автор: Ilya
Электроприводы
фото часто используемых электроприводов пост тока
Всякая разная электронная аппаратура и оборудование Ответов: 19
Автор темы: _Dovnar
23 Февраля, 2023 - 11:04:17
Автор: BON
DIY-дозиметр-приставка на основе CCFL-инвертора + приложение для Android-смартфона
Самодельные дозиметрические приборы Ответов: 98
Автор темы: Dreamy
23 Февраля, 2017 - 08:52:13
Автор: shodan
ProtonBridge или используем приложение AtomSwift в самодельном дозиметре
Разработка дешевого UART-BT4.0-AtomSwift моста
Самодельные дозиметрические приборы Ответов: 36
Автор темы: Syph3r
12 Февраля, 2024 - 07:41:46
Автор: Syph3r
SFIORA classic vibro что можете сказать об этом дозиметре
Стои ли его покупать
Российские современные дозиметрические приборы Ответов: 14
Автор темы: mirag
31 Октября, 2017 - 16:04:47
Автор: AndreySkv
 

Яндекс.Метрика

Вся информация является собственностью www.rhbz.org и охраняется законом об авторском праве.
Копирование материалов условно разрешено
Copyright © 2010 - 2024 rhbz.org

Powered by ExBB

[Script Execution time: 0.2234]     [ Gzipped ]