Arduino Mega Server для ESP32

Модератор: Alex

serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для ESP32

Сообщение serghei » Ср янв 17, 2018 11:20 pm

BME_280 то же РАБОТАЕТ
СпойлерПоказать

Код: Выделить всё

2018-01-17 22:13:49 Module Temp... started
2018-01-17 22:13:49 Module LED... started
2018-01-17 22:13:49 Module BME... started
2018-01-17 22:13:49  Base Receiving
2018-01-17 22:13:49 Module nRF24... started
2018-01-17 22:13:49 Module Electro... started
2018-01-17 22:13:49 Module TLog... started
GLOBAL Init DONE (19s)

AMS WORK
2018-01-17 22:13:49 : 113276 (39%) 113276
Request: ->   2   1   0 255   1   0   0   0   0  
Answer:  <-   5   2 222 255   0 170   0   0   0  AMS DHT
ANSWER: 1 DONE
2018-01-17 22:13:50 tempSTR: 14.00
2018-01-17 22:13:50 tempHOM: 31.12
2018-01-17 22:13:50 tempWRM: 17.44
2018-01-17 22:13:50 tempB2: 38.81
312.06 520.29 33.78 15.40 0.60 
11.2 C , 56.5% ,736.1 mm.Hg.  // Данные BME_280
 
*** Сообщение запрещено. Сообщение похоже на спам. ***
Вложения
rbme.zip
(843 байт) 125 скачиваний
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для ESP32

Сообщение serghei » Ср янв 17, 2018 11:22 pm

Еще раз - BME_280 РАБОТАЕТ.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
olmoro
Сообщения: 40
Зарегистрирован: Пт окт 13, 2017 9:37 pm
Откуда: Выборг
Благодарил (а): 11 раз
Поблагодарили: 12 раз

Re: Arduino Mega Server для ESP32

Сообщение olmoro » Вс янв 21, 2018 11:06 am

serghei писал(а): ... I2C как бы работает , но не понятно как и в чем ошибка. 1WIRE_I2C мост DS2482 нормально работает.
Лог работы
СпойлерПоказать
  • AMS for ESP32 SD started...
    ...
    ...
    2018-01-17 17:29:36 Module LED... started
    ...
В титульном проекте на выводы "железного" I2C (IO21, IO22) модулем LEDS подключены светодиоды
#define LED_RED_PIN 21
#define LED_GREEN_PIN 22
запрограммированные, в отличие от выводов I2C, как цифровые:
pinMode(LED_GREEN_PIN, OUTPUT);
pinMode(LED_RED_PIN, OUTPUT);
а для нормальной работы I2C выводы должны быть настроены на работу с подтягивающими резисторами, что обеспечивает библиотека Wire.
При осциллографировании это хорошо заметно.
Отключение указанного модуля решает проблему только частично, так как обращения к RED и GREEN светодиодам имеются и в других модулях проекта. При работе под rtos для ESP32 это недопустимо. Конфликт должен быть разрешен тем или иным способом.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для ESP32

Сообщение serghei » Вс фев 04, 2018 9:59 pm

Alex писал(а):..может кто-нибудь составить короткую табличку-резюме с перечислением периферии (имеется в виду стандартный набор — датчики температуры, влажности и т. п.), которую удалось/не удалось подключить к ESP32
Маленькое послесловие.
Суммируя полученные знания по ESP32 понял простую вещь - такой подход программирования "в лоб" не срабатывает. И скорее всего из за того , что этот контроллер использует свою операционку Rtos. А она отдает ограниченное время на одну задачу.
Движок сервера то работает , а любое подключение датчиков превращается в правку библиотек (не всегда корректные).
Простые примеры тех же далласов требуют неимоверных усилий.

В результате появился целый зоопарк портабл- версий под каждый скетч.

Пытаюсь скомпилить простой тест для DS2423 счетчика. И не могу избежать конфликтов в библиотеках.
СпойлерПоказать

Код: Выделить всё

#include <OneWire.h>
#include <DS2423.h>
#include <string.h>
//arduino 0023

//  адрес моего счетчика DS2423
DeviceAddress counter = { 0x1D, 0xEF, 0xC3, 0x0F, 0x0, 0x0, 0x0, 0x38 };

OneWire ow(5);// подклчение сигнального провода 1-wire

ds2423 myCounter(&ow, counter);
void setup(void)
{
  // Для отладки включим отправку данных в COM порт

  Serial.begin(9600);
delay(2000);
}
void loop(void)
{ 
  // Счетчик показаний Холодной воды. цифры 163422/100 - это показания моего счетчик, соответственно вы ставите свои
  int a =((myCounter.readCounter(1)+163422)/100);
// Счетчик показаний горячей воды. цифры 94888/100 - это показания моего счетчик, соответственно вы ставите свои.
  int b =((myCounter.readCounter(2)+94888)/100); 
// выводим результат
  Serial.print("Counter A: ");
  Serial.println(a);
  Serial.print("Counter B: ");
  Serial.println(b);
 Serial.println();
 delay(5000); // это чтоб не рябило в глазах :)
}
Собственно конкретно этот код IDE 1.8.5 "сплющило". Микрухи пока в пути. Надо еще умудрится соединить его с AMS...
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server для ESP32

Сообщение ser009 » Пн фев 05, 2018 1:10 pm

Код: Выделить всё

unsigned int Start = 0; // начальное значение
boolean starting = false;  // добавить начальное значение
unsigned int CountFull = 0 // накопленный счетчик

if (starting == true){
CountFull = CountFull + Start;
starting = false;
} 
простой вариант

Данные можно заносить с веб странички + кнопку для добавления начального значения
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для ESP32

Сообщение serghei » Пн фев 05, 2018 1:27 pm

Пока жду микросхемы , хочу разобраться с кодом. Через прерывания на Меге все понятно и очень давно работает. А тут сам счетчик - это как тот же даллас-градусник. Так мало того , подключен через 1-wire мост. И что бы скомпилировать код градусников и счетчика , приходится использовать разные библиотеки OneWire. На Меге проще будет - там одна и та же библиотека.
А на 32-й стоит мост.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server для ESP32

Сообщение alexsis_76 » Вт фев 06, 2018 5:05 am

НУ А ПОЧЕМУ ИМЕННО ESP32,МОЖНО ЧЕГО ПОПРОЩЕ.
МОЖНО ИСПОЛЬЗОВАТЬ ПРЕРЫВАНИЕ ПО ВХОДУ,КАК ТАМ С ПРИОРИТЕТАМИ?
Аватара пользователя
ser009
Сообщения: 595
Зарегистрирован: Сб окт 13, 2012 9:55 am
Благодарил (а): 4 раза
Поблагодарили: 43 раза

Re: Arduino Mega Server для ESP32

Сообщение ser009 » Вт фев 06, 2018 5:10 am

Легкие пути это не для нас :)
alexsis_76
Сообщения: 791
Зарегистрирован: Пт янв 22, 2016 10:08 am
Благодарил (а): 6 раз
Поблагодарили: 63 раза

Re: Arduino Mega Server для ESP32

Сообщение alexsis_76 » Вт фев 06, 2018 5:12 am

ПОХОЖЕ НА ТО
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: Arduino Mega Server для ESP32

Сообщение serghei » Вт фев 06, 2018 9:46 am

Ответ прост , как мычание коровы - в наличие есть ГОТОВАЯ плата с кучей наворотов - 1Wire - I2C мост, сторожевой таймер, усилитель шины на 8 портов , на котором сидят 4 реле , RGB диод , зуммер, разведенный аналоговый вход для PowerMonitor , разъём для NRF24 , разъём для RTC и SD карта......
Корпус для этого хозяйства уже едет на почту.
С ESP32 все наработки для датчиков просто так не работают , потому что у контроллера абсолютно другая архитектура с двумя ядрами на борту и Rtos операционкой.
Тут нужен другой подход к программированию с разбиением на ядра и задачи ( 1 миллисекунда на задачу). Банальное обслуживание далласов разбивается на кучу задач , когда опрос одного прибора - это одна задача.
Примеры кода есть , но пока очень все сырое.

А в эту же плату хочу прицепить и далласовский счетчик. Но в лоб решить проблему не позволяют правленые библиотеки...
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить