1

Topic: Пример для двух потоков подключения ESP8266 и HM-10

Выложите, как пример для "новой" библиотеки, подключение для двух потоков
на модулях ESP8266 Wi-Fi и модуле HM-10  для кнопки Button   
   Для чего это мне надо?
Мною разработан и изготовлен контроллер для "древнего" газового котла отопления в своем частном доме.
Почему "древний"?
  Это типовой котел с автоматикой 630 Eurosit. Никакой обвязки для подключения к системам контроля и управления
в нем не предусмотрено.
   Контроллер выполнен на Arduino Promini. В состав контроллера входит  девять датчиков температуры DS18B20.
Датчики осуществляют мониторинг температуры в комнатах дома, на улице, температуру горячей  и "холодной" воды в обратке
системы отопления.
Коме этого происходит вычисление текущего расхода потребляемого природного газа.
Собственно контролер эксплуатируется с 2016 г. Позволяет объективно оценивать ситуацию с текущим потреблением
природного газа и при необходимости изменять настройку газового котла.
  В качестве "сервера" для хранения данных и вывода их на монитор применил мультимедийную андроидную приставку для телевизора
типа X96 Mini (Андроид 7.0)
Приставка постоянно включена в сеть. Подключение выполнено по USB протоколу.
  В связи с этим было бы очень интересным выполнить подключение по двум потокам:
1. Первый поток переводиться на блютуз через модуль JDY-31 (HM-10) для подключения например к смартфону, используется периодически
2. Создать второй поток по домашней сети Ehernet через модуль ESP-01 WiFi для постоянного подключения
  Раздельно я это смог сделать, но выполнить в одной прошивки не получается.

2

Re: Пример для двух потоков подключения ESP8266 и HM-10

Если вы предполагаете использовать один и тот же интерфейс из двух потоков, тогда:
1. Сконфигурируйте проект для ESP8266 Wi-Fi.
2. Что бы добавить HM-10 или любое устройство которое использует Serial напрямую, добавьте одну строчку кода:
Для аппаратного Serial:

void setup() {
  RemoteXY_Init ();
  remotexy->addConnection (new CRemoteXYStream_HardSerial (&Serial2, 9600));  // added line, serial, Speed
}

Для программного Serial:

void setup() {
  RemoteXY_Init ();
  remotexy->addConnection (new CRemoteXYStream_SoftSerial (10,11, 9600));  // added line, RX, TX, Speed
}

3

Re: Пример для двух потоков подключения ESP8266 и HM-10

Спасибо. Буду пробовать

4

Re: Пример для двух потоков подключения ESP8266 и HM-10

По рекомендация топика "Read timeout error, Write error: Broken pipe" удалось запустить
скетч для Arduino Pro mini с ESP-01 соединение по Ethernet Wi-Fi на скорости 115200 бод. Скетч выложен в этом же топике.
Для организации второго потока для модуля блютуз НМ-10 добавил строчку в код  скетча

void setup() {
  RemoteXY_Init ();
  remotexy->addConnection (new CRemoteXYStream_SoftSerial (10,11, 9600));  // added line, RX, TX, Speed
}
При компиляции скетча получил сообщение об ошибке.

exit status 1
expected type-specifier before 'CRemoteXYStream_SoftSerial'
Что сделано неверно?

5

Re: Пример для двух потоков подключения ESP8266 и HM-10

Если вы хотите использовать SoftSerial, то вам необходимо подключить библиотеку SoftwareSerial перед подключением RemoteXY:

#include <SoftwareSerial.h>
#include <RemoteXY.h>

6 (edited by bukinay1 2021-04-06 07:41:08)

Re: Пример для двух потоков подключения ESP8266 и HM-10

Если вы хотите использовать SoftSerial, то вам необходимо подключить библиотеку SoftwareSerial перед подключением RemoteXY:

#include <SoftwareSerial.h>
#include <RemoteXY.h>

Результат тот же:

exit status 1
expected type-specifier before 'CRemoteXYStream_SoftSerial'

    Для того, что бы можно было разобраться с многопоточным подключением, еще раз раз прошу
выложите полный скетч, как пример для новой библиотеки
подключение для двух потоков:
Первый поток: Arduino с модулем ESP-01 соединение по Ethernet Wi-Fi
Второй: модуль блютуз НМ-10

7

Re: Пример для двух потоков подключения ESP8266 и HM-10

Вот этот код. Проверьте что у вас действительно цепляется новая библиотека а не старая.

/*
   -- New project --
   
   This source code of graphical user interface 
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 2.4.3 or later version 
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.7.12 or later version;
     - for iOS 1.4.7 or later version;
    
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.    
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// RemoteXY select connection mode and include library 
#define REMOTEXY_MODE__ESP8266_HARDSERIAL

#include <SoftwareSerial.h>
#include <RemoteXY.h>

// RemoteXY connection settings 
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 115200
#define REMOTEXY_WIFI_SSID "YOUR_SSID"
#define REMOTEXY_WIFI_PASSWORD "YOUR_PASS"
#define REMOTEXY_SERVER_PORT 6377


// RemoteXY configurate  
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
  { 255,1,0,0,0,13,0,11,13,0,
  1,0,43,23,12,12,2,31,88,0 };
  
// this structure defines all the variables and events of your control interface 
struct {

    // input variables
  uint8_t button_1; // =1 if button pressed, else =0 

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0 

} RemoteXY;
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////



void setup() 
{
  RemoteXY_Init (); 
  remotexy->addConnection (new CRemoteXYStream_SoftSerial (10,11, 9600));  // added line, RX, TX, Speed
  
  // TODO you setup code
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  
  // TODO you loop code
  // use the RemoteXY structure for data transfer
  // do not call delay() 


}