Read timeout error remotexy

Read timeout error (Page 1) — Issues and Errors — RemoteXY community —

You are not logged in. Please login or register.

Active topics Unanswered topics

Pages 1

You must login or register to post a reply

1 2020-06-08 16:27:30

  • kartikpkr
  • New member
  • Offline
  • Registered: 2020-06-08
  • Posts: 3

Topic: Read timeout error

I face this issue while connecting the HC-05 module with my phone.

— Start connection
— Connecting to bluetooth device
— Bluetooth device connected
— Recieving GUI configuration
— Read timeout error
— Recieving GUI configuration, try 2
— Read timeout error
— Recieving GUI configuration, try 3
— Read timeout error
— Recieving GUI configuration, try 4
— Read timeout error
— Disconnect

After which a window pops up saying «Board Not Reply»

2 Reply by remotexy 2020-06-09 19:21:19

  • remotexy
  • remotexy
  • Administrator
  • Offline
  • Registered: 2016-10-27
  • Posts: 817

Re: Read timeout error

If you receive this specific error, check yourself on the list, going to the next point only after checking the previous one:

-your Arduino is not on;
-the required sketch has not been loaded into the Arduino;
-the RemoteXY library did not update, using old version of library;
-power is not supplied to the Bluetooth module, the power contacts may be reversed;
-RX and TX contacts of the Bluetooth module, or one of them are not connected to the controller, a bad contact;
-the RX and TX contacts of the Bluetooth module are not connected correctly, they may be interchanged, check the scheme (step 4);
-incorrect configuration settings or connection settings had been chosen before generating the source code;
-the data baud rate of HC-05 (06) module does not match which selected into the RemoteXY configuration (default 9600);
-the Bluetooth module is defective.

3 Reply by kartikpkr 2020-06-10 06:35:21

  • kartikpkr
  • New member
  • Offline
  • Registered: 2020-06-08
  • Posts: 3

Re: Read timeout error

remotexy wrote:

If you receive this specific error, check yourself on the list, going to the next point only after checking the previous one:

-your Arduino is not on;
-the required sketch has not been loaded into the Arduino;
-the RemoteXY library did not update, using old version of library;
-power is not supplied to the Bluetooth module, the power contacts may be reversed;
-RX and TX contacts of the Bluetooth module, or one of them are not connected to the controller, a bad contact;
-the RX and TX contacts of the Bluetooth module are not connected correctly, they may be interchanged, check the scheme (step 4);
-incorrect configuration settings or connection settings had been chosen before generating the source code;
-the data baud rate of HC-05 (06) module does not match which selected into the RemoteXY configuration (default 9600);
-the Bluetooth module is defective.

From the above points all of them except the last one (Bluetooth module may be defective) was checked and still the problem persists.

To check the bluetooth module. I connected the module to a power source and shorted the RX and TX pin on the module Then i connected the module to my phone and using a terminal app I sent a single character and I got the return value as the same character, which is what I suppose should happen when the data is sent and recieved properly by the module.

I am just a beginner and new to this field, so the problem can be something really basic.

Thanks for the reply

Posts: 3

Pages 1

You must login or register to post a reply

Содержание

  1. unstable work: Read timeout error Board not reply
  2. Posts: 9
  3. 1 Topic by Karens4 2021-04-09 21:13:15
  4. Topic: unstable work: Read timeout error Board not reply
  5. 2 Reply by salsedine 2021-04-11 15:09:41
  6. Re: unstable work: Read timeout error Board not reply
  7. 3 Reply by Karens4 2021-04-11 16:38:37
  8. Re: unstable work: Read timeout error Board not reply
  9. 4 Reply by remotexy 2021-04-12 04:47:11
  10. Re: unstable work: Read timeout error Board not reply
  11. 5 Reply by salsedine 2021-04-12 08:53:49 (edited by salsedine 2021-04-12 11:25:13)
  12. Re: unstable work: Read timeout error Board not reply
  13. 6 Reply by remotexy 2021-04-13 06:58:23
  14. Re: unstable work: Read timeout error Board not reply
  15. 7 Reply by salsedine 2021-04-13 18:22:33
  16. Re: unstable work: Read timeout error Board not reply
  17. 8 Reply by Karens4 2021-04-14 20:41:23
  18. Re: unstable work: Read timeout error Board not reply
  19. 9 Reply by remotexy 2021-04-15 03:47:12
  20. Re: unstable work: Read timeout error Board not reply
  21. Posts: 9
  22. Read timeout error
  23. Posts: 3
  24. 1 Topic by kartikpkr 2020-06-08 16:27:30
  25. Topic: Read timeout error
  26. 2 Reply by remotexy 2020-06-09 19:21:19
  27. Re: Read timeout error
  28. 3 Reply by kartikpkr 2020-06-10 06:35:21
  29. Re: Read timeout error
  30. Read timeout error
  31. Posts: 3
  32. 1 Topic by Frjlmkam56! 2022-03-28 20:15:09
  33. Topic: Read timeout error
  34. 2 Reply by Frjlmkam56! 2022-03-31 21:54:23
  35. Re: Read timeout error

unstable work: Read timeout error Board not reply

RemoteXY community → Software and RemoteXY library → unstable work: Read timeout error Board not reply

You must login or register to post a reply

Posts: 9

1 Topic by Karens4 2021-04-09 21:13:15

  • Karens4
  • New member
  • Offline
  • Registered: 2020-12-17
  • Posts: 3

Topic: unstable work: Read timeout error Board not reply

ru:
обнаружена нестабильная работа приложения, а именно после запуска esp, разных вариацый и через точку и через клиент локальной сети, через 2 — 7 мин происходит отключение приложения от esp.
так же esp перестает быть доступной в сети ,
но скетч работет на esp а RemoteXY pro(куплена на google play) ver.4.7.12 не может работать. ide FLProg 7.3.3 как мне быть ? помогите советом пожалуйста.

en:
unstable operation of the application was detected, namely after launching esp, different variants both through the point and through the client of the local network, after 2 — 7 minutes the application is disconnected from esp.
also esp is no longer available on the network,
but the sketch works on esp and RemoteXY pro (bought on google play) ver.4.7.12 cannot work. ide FLProg 7.3.3 what should I do? help with advice please.

2 Reply by salsedine 2021-04-11 15:09:41

  • salsedine
  • Member
  • Offline
  • Registered: 2020-04-19
  • Posts: 29

Re: unstable work: Read timeout error Board not reply

It is similar to my issue.
Yesterday i opened my garage using the app 4.7.14 + library 3.1.5 and Arduino UNO+esp8266-01, for the first time (on wednesday i turned off and on my platform and i never connected until yesterday). I tried 2 ways:

The first, after enabling the Wifi and the geolocalization, i let the app to connect to my AP but it failed after 4 attempts.

The second way worked, i connect to the AP and after i opened the app and it connected for 2 minutes (time needed to open my garage door).

Today my AP is disappeared, but my Arduino runs (as i posted in another topic).

I cannot understand why my AP is off. I know that the AP is setted up with AT commands and there i should find an answer (esp will reply to my AT commands??). Another test i will perform is to disconnect from the AP instead of turn off Wifi and geoloc..

3 Reply by Karens4 2021-04-11 16:38:37

  • Karens4
  • New member
  • Offline
  • Registered: 2020-12-17
  • Posts: 3

Re: unstable work: Read timeout error Board not reply

And the most offensive thing is that esp continues to work but the anamaalia with WiFi and the client and the point remain, I too like you gathered on the point but also the point disappeared. I’m stumped by this and decided to share the problem. By the way, the replacement of esp does not help, and with the food drawdowns no.

4 Reply by remotexy 2021-04-12 04:47:11

  • remotexy
  • Administrator
  • Offline
  • Registered: 2016-10-27
  • Posts: 808

Re: unstable work: Read timeout error Board not reply

1. Use the last library 3.x.x https://remotexy.com/en/library/
2. Enable debug mode in the library on Serial. Add the following code to the beginning of the program.

What do you see in the terminal?

5 Reply by salsedine 2021-04-12 08:53:49 (edited by salsedine 2021-04-12 11:25:13)

  • salsedine
  • Member
  • Offline
  • Registered: 2020-04-19
  • Posts: 29

Re: unstable work: Read timeout error Board not reply

1. Use the last library 3.x.x https://remotexy.com/en/library/
2. Enable debug mode in the library on Serial. Add the following code to the beginning of the program.

What do you see in the terminal?

Thanks for your reply, i’m just searching how enable the debug. On the UNO it is tricky to debug because the only serial port is used by my esp. i should enable a sw serial port. Anyway i’ll investigate

6 Reply by remotexy 2021-04-13 06:58:23

  • remotexy
  • Administrator
  • Offline
  • Registered: 2016-10-27
  • Posts: 808

Re: unstable work: Read timeout error Board not reply

Try setting the default baud rate of ESP to 19200 using AT commands (AT+UART_DEF). Connect it to the soft serial. And you get a free hard serial for debug

7 Reply by salsedine 2021-04-13 18:22:33

  • salsedine
  • Member
  • Offline
  • Registered: 2020-04-19
  • Posts: 29

Re: unstable work: Read timeout error Board not reply

Try setting the default baud rate of ESP to 19200 using AT commands (AT+UART_DEF). Connect it to the soft serial. And you get a free hard serial for debug

Yesterday and today i did 2 connections about 3 minutes and the AP is alive, no freeze no disconnections (not setted a debug yet) then tomorrow i’ll test again.

The only problem to debug is keeping a PC always connected to the UNO until something could happen after X days, i haven’t enough pins to connect a SD and save on it datas, https://i.postimg.cc/63ZZq42x/photo5884 … 061887.jpg, i’ll think something.

The only care i used is to disconnect from the AP before turn off wifi and geoloc. of the phone, i think it is not the definitive solution, the issue will pop up.

8 Reply by Karens4 2021-04-14 20:41:23

  • Karens4
  • New member
  • Offline
  • Registered: 2020-12-17
  • Posts: 3

Re: unstable work: Read timeout error Board not reply

1. Use the last library 3.x.x https://remotexy.com/en/library/
2. Enable debug mode in the library on Serial. Add the following code to the beginning of the program.

What do you see in the terminal?

Верисю библиотеки обновлял. Но проблему решило удаление библиотеки neopixel.

Ещё вопрос . а в будущем можно будет к задатчику задавать приделы не 0-100 а например 0-255?

9 Reply by remotexy 2021-04-15 03:47:12

  • remotexy
  • Administrator
  • Offline
  • Registered: 2016-10-27
  • Posts: 808

Re: unstable work: Read timeout error Board not reply

Ещё вопрос . а в будущем можно будет к задатчику задавать приделы не 0-100 а например 0-255?

Это планируется вместе с другими глобальными изменениями.
Однако я совсем не вижу в этом проблемы. Вы же можете просто умножить значение на 2.55 и получите от 0 до 255. Правда немного пострадает точность, но не думаю что бегунком можно так точно регулировать.

Posts: 9

You must login or register to post a reply

RemoteXY community → Software and RemoteXY library → unstable work: Read timeout error Board not reply

Источник

Read timeout error

You must login or register to post a reply

Posts: 3

1 Topic by kartikpkr 2020-06-08 16:27:30

  • kartikpkr
  • New member
  • Offline
  • Registered: 2020-06-08
  • Posts: 3

Topic: Read timeout error

I face this issue while connecting the HC-05 module with my phone.

— Start connection
— Connecting to bluetooth device
— Bluetooth device connected
— Recieving GUI configuration
— Read timeout error
— Recieving GUI configuration, try 2
— Read timeout error
— Recieving GUI configuration, try 3
— Read timeout error
— Recieving GUI configuration, try 4
— Read timeout error
— Disconnect

After which a window pops up saying «Board Not Reply»

2 Reply by remotexy 2020-06-09 19:21:19

  • remotexy
  • Administrator
  • Offline
  • Registered: 2016-10-27
  • Posts: 808

Re: Read timeout error

If you receive this specific error, check yourself on the list, going to the next point only after checking the previous one:

-your Arduino is not on;
-the required sketch has not been loaded into the Arduino;
-the RemoteXY library did not update, using old version of library;
-power is not supplied to the Bluetooth module, the power contacts may be reversed;
-RX and TX contacts of the Bluetooth module, or one of them are not connected to the controller, a bad contact;
-the RX and TX contacts of the Bluetooth module are not connected correctly, they may be interchanged, check the scheme (step 4);
-incorrect configuration settings or connection settings had been chosen before generating the source code;
-the data baud rate of HC-05 (06) module does not match which selected into the RemoteXY configuration (default 9600);
-the Bluetooth module is defective.

3 Reply by kartikpkr 2020-06-10 06:35:21

  • kartikpkr
  • New member
  • Offline
  • Registered: 2020-06-08
  • Posts: 3

Re: Read timeout error

If you receive this specific error, check yourself on the list, going to the next point only after checking the previous one:

-your Arduino is not on;
-the required sketch has not been loaded into the Arduino;
-the RemoteXY library did not update, using old version of library;
-power is not supplied to the Bluetooth module, the power contacts may be reversed;
-RX and TX contacts of the Bluetooth module, or one of them are not connected to the controller, a bad contact;
-the RX and TX contacts of the Bluetooth module are not connected correctly, they may be interchanged, check the scheme (step 4);
-incorrect configuration settings or connection settings had been chosen before generating the source code;
-the data baud rate of HC-05 (06) module does not match which selected into the RemoteXY configuration (default 9600);
-the Bluetooth module is defective.

From the above points all of them except the last one (Bluetooth module may be defective) was checked and still the problem persists.

To check the bluetooth module. I connected the module to a power source and shorted the RX and TX pin on the module Then i connected the module to my phone and using a terminal app I sent a single character and I got the return value as the same character, which is what I suppose should happen when the data is sent and recieved properly by the module.

I am just a beginner and new to this field, so the problem can be something really basic.

Источник

Read timeout error

You must login or register to post a reply

Posts: 3

1 Topic by Frjlmkam56! 2022-03-28 20:15:09

  • Frjlmkam56!
  • New member
  • Offline
  • From: USA
  • Registered: 2022-01-26
  • Posts: 4

Topic: Read timeout error

I am working on a stepper motor control program with RemoteXY using Visuino. If I use on (2) buttons I can connect to Bluetooth BLE on a ESP32 developer board. If I use (3) buttons I can still connect to my smartphone app. If I use (4) buttons I receive a Read timeout error when trying to connect Bluetooth BLE. My stepper program is written in Visuino, and was working. Just recently it has stopped working since the last Remotexy library update. Any help would be appreciated.

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

// RemoteXY connection settings
#define REMOTEXY_BLUETOOTH_NAME «RemoteXY»

// RemoteXY configurate
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = // 58 bytes
< 255,4,0,0,0,51,0,16,24,1,1,0,23,57,19,19,26,10,68,87,
78,0,1,0,3,34,19,19,26,10,76,70,84,0,1,0,23,13,19,19,
26,10,85,80,0,1,0,42,34,19,19,26,10,82,71,72,84,0 >;

// this structure defines all the variables and events of your control interface
struct <

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

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

void setup()
<
RemoteXY_Init ();

2 Reply by Frjlmkam56! 2022-03-31 21:54:23

  • Frjlmkam56!
  • New member
  • Offline
  • From: USA
  • Registered: 2022-01-26
  • Posts: 4

Re: Read timeout error

// Shared Component Member Variables

namespace ComponentVariables
<
class
<
public:
bool Value1 : 1;
bool Value2 : 1;
uint32_t Value3 : 4;
bool Value4 : 1;
bool Value5 : 1;
bool Value6 : 1;
bool Value7 : 1;
bool Value8 : 1;
bool Value9 : 1;
bool Value10 : 1;
bool Value11 : 1;
bool Value12 : 1;
bool Value13 : 1;
bool Value14 : 1;
bool Value15 : 1;
bool Value16 : 1;
bool Value17 : 1;
bool Value18 : 1;
uint32_t Value19 : 4;
int32_t Value20 : 1;
bool Value21 : 1;
bool Value22 : 1;
bool Value23 : 1;
bool Value24 : 1;
bool Value25 : 1;
bool Value26 : 1;
bool Value27 : 1;
bool Value28 : 1;

class Variable1
<
public:
inline static bool GetValue() < return BitFields.Value1; >
inline static void SetValue( bool AValue )

class Variable2
<
public:
inline static bool GetValue() < return BitFields.Value2; >
inline static void SetValue( bool AValue )

class Variable3
<
public:
inline static uint32_t GetValue() < return BitFields.Value3; >
inline static void SetValue( uint32_t AValue )

class Variable4
<
public:
inline static bool GetValue() < return BitFields.Value4; >
inline static void SetValue( bool AValue )

class Variable5
<
public:
inline static bool GetValue() < return BitFields.Value5; >
inline static void SetValue( bool AValue )

class Variable6
<
public:
inline static bool GetValue() < return BitFields.Value6; >
inline static void SetValue( bool AValue )

class Variable7
<
public:
inline static bool GetValue() < return BitFields.Value7; >
inline static void SetValue( bool AValue )

class Variable8
<
public:
inline static bool GetValue() < return BitFields.Value8; >
inline static void SetValue( bool AValue )

class Variable9
<
public:
inline static bool GetValue() < return BitFields.Value9; >
inline static void SetValue( bool AValue )

class Variable10
<
public:
inline static bool GetValue() < return BitFields.Value10; >
inline static void SetValue( bool AValue )

class Variable11
<
public:
inline static bool GetValue() < return BitFields.Value11; >
inline static void SetValue( bool AValue )

class Variable12
<
public:
inline static bool GetValue() < return BitFields.Value12; >
inline static void SetValue( bool AValue )

class Variable13
<
public:
inline static bool GetValue() < return BitFields.Value13; >
inline static void SetValue( bool AValue )

class Variable14
<
public:
inline static bool GetValue() < return BitFields.Value14; >
inline static void SetValue( bool AValue )

class Variable15
<
public:
inline static bool GetValue() < return BitFields.Value15; >
inline static void SetValue( bool AValue )

class Variable16
<
public:
inline static bool GetValue() < return BitFields.Value16; >
inline static void SetValue( bool AValue )

class Variable17
<
public:
inline static bool GetValue() < return BitFields.Value17; >
inline static void SetValue( bool AValue )

class Variable18
<
public:
inline static bool GetValue() < return BitFields.Value18; >
inline static void SetValue( bool AValue )

class Variable19
<
public:
inline static uint32_t GetValue() < return BitFields.Value19; >
inline static void SetValue( uint32_t AValue )

class Variable20
<
public:
inline static int32_t GetValue() < return BitFields.Value20; >
inline static void SetValue( int32_t AValue )

class Variable21
<
public:
inline static bool GetValue() < return BitFields.Value21; >
inline static void SetValue( bool AValue )

class Variable22
<
public:
inline static bool GetValue() < return BitFields.Value22; >
inline static void SetValue( bool AValue )

class Variable23
<
public:
inline static bool GetValue() < return BitFields.Value23; >
inline static void SetValue( bool AValue )

class Variable24
<
public:
inline static bool GetValue() < return BitFields.Value24; >
inline static void SetValue( bool AValue )

class Variable25
<
public:
inline static bool GetValue() < return BitFields.Value25; >
inline static void SetValue( bool AValue )

class Variable26
<
public:
inline static bool GetValue() < return BitFields.Value26; >
inline static void SetValue( bool AValue )

class Variable27
<
public:
inline static bool GetValue() < return BitFields.Value27; >
inline static void SetValue( bool AValue )

class Variable28
<
public:
inline static bool GetValue() < return BitFields.Value28; >
inline static void SetValue( bool AValue )

// Arduino Constant Declarations

namespace VisuinoConstants
<
class FloatValue0
<
public:
inline static constexpr float GetValue() < return 80; >
>;

class FloatValue1
<
public:
inline static constexpr float GetValue() < return 250; >
>;

class TextValue1
<
public:
inline static constexpr const char *GetValue() < return «»; >
>;

class TextValue0
<
public:
inline static constexpr const char *GetValue() < return «GARAGE1»; >
>;

// Pin Call Declarations

namespace PinCalls
<
class PinCallerReceive0
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive1
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive2
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive3
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive4
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive5
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive6
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive7
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive8
<
public:
void Notify( void *_Data );

>;
class PinCallerReceive9
<
public:
void Notify( void *_Data );

namespace CallChains
<
class CheckPopulated1
<
public:
inline static uint32_t Count() < return 5; >
static void Call( bool & AIsPopulated );

>;
class GetSize1
<
public:
inline static uint32_t Count() < return 5; >
static void Call( int32_t AIndex, bool & AAlligned, int & AResult );

>;
class GetValue1
<
public:
inline static uint32_t Count() < return 0; >
static void Call( int32_t AIndex, uint8_t & AValue );

>;
class ApplyValues1
<
public:
inline static uint32_t Count() < return 0; >
static void Call( uint8_t * AValue );

// Arduino Board Declarations

namespace BoardDeclarations
<
namespace Types
<
typedef Mitov::SerialPort , // AfterSendingDelay
Mitov::ConstantProperty , // DataBits
Mitov::ConstantProperty , // Enabled
Mitov::ConstantProperty , // FEndTime
Mitov::ConstantProperty , // FSending
Mitov::GenericPin_NoImplementation , // OutputPin
Mitov::ConstantProperty , // Parity
Mitov::DigitalPin_NoImplementation , // SendingOutputPin
Mitov::ConstantProperty , // Speed
Mitov::ConstantProperty // StopBits
> SerialPort0;
> // Types

namespace Instances
<
Types::SerialPort0 SerialPort0;
> // Instances

namespace Types
<
typedef Mitov::ArduinoSerialInput_Binary > SerialPort0_Input_IOWByteStream_1;
> // Types

namespace Instances
<
Types::SerialPort0_Input_IOWByteStream_1 SerialPort0_Input_IOWByteStream_1;
> // Instances

namespace Types
<
typedef Mitov::ArduinoDigitalChannel , // InitialValue
Mitov::ConstantProperty , // IsAnalog
Mitov::ConstantProperty , // IsCombinedInOut
Mitov::ConstantProperty , // IsOpenDrain
Mitov::ConstantProperty , // IsOutput
Mitov::ConstantProperty , // IsPullDown
Mitov::ConstantProperty , // IsPullUp
Mitov::ConstantProperty , // IsRawInput
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
14 // PIN
> ArduinoDigitalChannel_14;
> // Types

namespace Instances
<
Types::ArduinoDigitalChannel_14 ArduinoDigitalChannel_14;
> // Instances

namespace Types
<
typedef Mitov::DigitalInput , // IsPullDown
Mitov::ConstantProperty , // IsPullUp
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
14 // PIN
> ArduinoAnalogInputChannel_AsDigital_14;
> // Types

namespace Instances
<
Types::ArduinoAnalogInputChannel_AsDigital_14 ArduinoAnalogInputChannel_AsDigital_14;
> // Instances

namespace Types
<
typedef Mitov::ESP32BluetoothLE , // ConnectedCountOutputPin
Mitov::ConstantPropertyString , // DeviceName
Mitov::TextPin_NoImplementation , // MACAddressOutputPin
Mitov::ConstantProperty , // MaximumTransmissionUnit
Mitov::ConstantProperty , // Security
Mitov::ESP32ServerImp, // Server
Mitov::ConstantProperty // TransmitPower
> TArduinoESP32BluetoothLEModule1;
> // Types

namespace Instances
<
Types::TArduinoESP32BluetoothLEModule1 TArduinoESP32BluetoothLEModule1;
> // Instances

namespace Types
<
typedef Mitov::ESP32BluetoothLEServer // Enabled
> TArduinoESP32BluetoothLEServer1;
> // Types

namespace Instances
<
Types::TArduinoESP32BluetoothLEServer1 TArduinoESP32BluetoothLEServer1;
> // Instances

namespace Declarations
<
namespace Types
<
typedef Mitov::ArduinoBluetoothLEUartService , // BufferSize
Mitov::ConstantProperty , // Enabled
Mitov::GenericPin_EmbeddedPinImplementation // OutputPin
> TArduinoBluetoothUartService1;
> // Types

namespace Instances
<
Types::TArduinoBluetoothUartService1 TArduinoBluetoothUartService1;
> // Instances

namespace Types
<
typedef Mitov::StepperMotor4Wire , // Enabled
Mitov::TypedVariable , // FStep
Mitov::ConstantProperty , // HalfStep
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_0
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_1
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_2
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_3
Mitov::TypedVariableValue , // Reversed
Mitov::StepperMotorSpeed, // Speed_Implementation
Mitov::ConstantPropertyFloat // StepsPerSecond
> TILT;
> // Types

namespace Instances
<
Types::TILT TILT;
> // Instances

namespace Types
<
typedef Mitov::Packet // Enabled
> >, // Checksum
Mitov::EmbeddedCallChain , // Elements_CheckPopulated
Mitov::EmbeddedCallChain , // Elements_Expand
Mitov::EmbeddedCallChain , // Elements_GetData
Mitov::EmbeddedCallChain , // Elements_GetSize
Mitov::TypedVariable , // FModified
Mitov::TypedVariable , // FNeedsNewSize
Mitov::TypedVariable , // FRefreshed
Mitov::NestedProperty , // Bytes
Mitov::EmbeddedCallChain , // Bytes_ApplyValues
Mitov::EmbeddedCallChain // Bytes_GetValue
> >, // HeadMarker
Mitov::ConstantProperty , // OnlyModified
Mitov::TypedPin_EmbeddedPinImplementation > // OutputPin
> Packet1;
> // Types

namespace Instances
<
Types::Packet1 Packet1;
> // Instances

namespace Types
<
typedef Mitov::PacketDigitalBinaryElement , // FBoolValue
Mitov::TypedVariable // FPopulated
> TArduinoDigitalBinaryPacketElement1;
> // Types

namespace Instances
<
Types::TArduinoDigitalBinaryPacketElement1 TArduinoDigitalBinaryPacketElement1 = Types::TArduinoDigitalBinaryPacketElement1( false );
> // Instances

namespace Types
<
typedef Mitov::PacketDigitalBinaryElement , // FBoolValue
Mitov::TypedVariable // FPopulated
> TArduinoDigitalBinaryPacketElement2;
> // Types

namespace Instances
<
Types::TArduinoDigitalBinaryPacketElement2 TArduinoDigitalBinaryPacketElement2 = Types::TArduinoDigitalBinaryPacketElement2( false );
> // Instances

namespace Types
<
typedef Mitov::PacketDigitalBinaryElement , // FBoolValue
Mitov::TypedVariable // FPopulated
> TArduinoDigitalBinaryPacketElement3;
> // Types

namespace Instances
<
Types::TArduinoDigitalBinaryPacketElement3 TArduinoDigitalBinaryPacketElement3 = Types::TArduinoDigitalBinaryPacketElement3( false );
> // Instances

namespace Types
<
typedef Mitov::PacketDigitalBinaryElement , // FBoolValue
Mitov::TypedVariable // FPopulated
> TArduinoDigitalBinaryPacketElement4;
> // Types

namespace Instances
<
Types::TArduinoDigitalBinaryPacketElement4 TArduinoDigitalBinaryPacketElement4 = Types::TArduinoDigitalBinaryPacketElement4( false );
> // Instances

namespace Types
<
typedef Mitov::PacketDigitalBinaryElement , // FBoolValue
Mitov::TypedVariable // FPopulated
> TArduinoDigitalBinaryPacketElement5;
> // Types

namespace Instances
<
Types::TArduinoDigitalBinaryPacketElement5 TArduinoDigitalBinaryPacketElement5 = Types::TArduinoDigitalBinaryPacketElement5( false );
> // Instances

namespace Types
<
typedef Mitov::StepperMotor4Wire , // Enabled
Mitov::TypedVariable , // FStep
Mitov::ConstantProperty , // HalfStep
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_0
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_1
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_2
Mitov::DigitalPin_DirectBoardPinImplementation , // OutputPins_3
Mitov::TypedVariableValue , // Reversed
Mitov::StepperMotorSpeed, // Speed_Implementation
Mitov::ConstantPropertyFloat // StepsPerSecond
> PAN;
> // Types

namespace Instances
<
Types::PAN PAN;
> // Instances

namespace RemoteXY_Declarations
<
namespace _o_RemoteXY1
<
#pragma pack(push, 1)

// RemoteXY configurate
static uint8_t const PROGMEM Config[] =
<
15, 25, 1, 1, 0, 23, 64, 19, 19, 2, 31, 68, 87, 78, 0, 1, 0, 23, 19, 19, 19, 2, 31, 85, 80, 0, 1, 0, 1, 40, 19, 19, 2, 31, 76, 69, 70, 84, 0, 1, 0, 43, 40, 19, 19, 2, 31, 82, 73, 71, 72, 84, 0
>;

// this structure defines all the variables of your control interface
struct
<
// input variable
uint8_t switch_0; // =1 if switch ON and =0 if OFF
uint8_t switch_1; // =1 if switch ON and =0 if OFF
uint8_t switch_2; // =1 if switch ON and =0 if OFF
uint8_t switch_3; // =1 if switch ON and =0 if OFF

// output variable
>
RemoteXY;

class Access
<
public:
inline static uint8_t *GetConfig()
<
return (uint8_t*)Config;
>

inline static uint8_t *GetData()
<
return (uint8_t*)&RemoteXY;
>

namespace Types
<
typedef Mitov::MitovRemoteXY // FProtocolConnectedFlags
> RemoteXY1;
> // Types

namespace Instances
<
Types::RemoteXY1 RemoteXY1;
> // Instances

namespace Types
<
typedef Mitov::MitovRemoteXYDigitalOutput , // InitialValue
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
Mitov::ConstantProperty // UseInitialValueOnDisconnect
> TArduinoRemoteXYButtonElement1;
> // Types

namespace Instances
<
Types::TArduinoRemoteXYButtonElement1 TArduinoRemoteXYButtonElement1;
> // Instances

namespace Types
<
typedef Mitov::MitovRemoteXYDigitalOutput , // InitialValue
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
Mitov::ConstantProperty // UseInitialValueOnDisconnect
> TArduinoRemoteXYButtonElement2;
> // Types

namespace Instances
<
Types::TArduinoRemoteXYButtonElement2 TArduinoRemoteXYButtonElement2;
> // Instances

namespace Types
<
typedef Mitov::MitovRemoteXYDigitalOutput , // InitialValue
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
Mitov::ConstantProperty // UseInitialValueOnDisconnect
> TArduinoRemoteXYButtonElement3;
> // Types

namespace Instances
<
Types::TArduinoRemoteXYButtonElement3 TArduinoRemoteXYButtonElement3;
> // Instances

namespace Types
<
typedef Mitov::MitovRemoteXYDigitalOutput , // InitialValue
Mitov::DigitalPin_EmbeddedPinImplementation , // OutputPin
Mitov::ConstantProperty // UseInitialValueOnDisconnect
> TArduinoRemoteXYButtonElement4;
> // Types

namespace Instances
<
Types::TArduinoRemoteXYButtonElement4 TArduinoRemoteXYButtonElement4;
> // Instances

namespace Types
<
typedef Mitov::MitovRemoteXYProtpcol , // 0_INTERFACE
Declarations::Types::RemoteXY1, // 0_TYPE_OWNER
Declarations::Instances::RemoteXY1, // 1_NAME_OWNER
Mitov::DigitalPin_NoImplementation , // ConnectedOutputPin
0, // INDEX
Mitov::ConstantPropertyString // Password
> TArduinoRemoteXYProtocolSerial1;
> // Types

namespace Instances
<
Types::TArduinoRemoteXYProtocolSerial1 TArduinoRemoteXYProtocolSerial1;
> // Instances

namespace Types
<
typedef Mitov::BooleanOperation , // FModified
Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly > // OutputPin
> Or1;
> // Types

namespace Instances
<
Types::Or1 Or1;
> // Instances

namespace Types
<
typedef Mitov::BooleanOperation , // FModified
Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly > // OutputPin
> Or2;
> // Types

namespace Instances
<
Types::Or2 Or2;
> // Instances

namespace Types
<
typedef Mitov::BooleanOperation , // FModified
Mitov::DigitalPin_EmbeddedPinImplementation_ChangeOnly > // OutputPin
> Or3;
> // Types

namespace Instances
<
Types::Or3 Or3;
> // Instances

namespace TypeConverters
<
Mitov::Convert_BinaryToClock > Converter0;
Mitov::Convert_BinaryToClock > Converter1;
> // TypeConverters

namespace CallChains
<
void CheckPopulated1::Call( bool & AIsPopulated )
<
Declarations::Instances::TArduinoDigitalBinaryPacketElement1.CheckPopulated( AIsPopulated );
Declarations::Instances::TArduinoDigitalBinaryPacketElement2.CheckPopulated( AIsPopulated );
Declarations::Instances::TArduinoDigitalBinaryPacketElement3.CheckPopulated( AIsPopulated );
Declarations::Instances::TArduinoDigitalBinaryPacketElement4.CheckPopulated( AIsPopulated );
Declarations::Instances::TArduinoDigitalBinaryPacketElement5.CheckPopulated( AIsPopulated );
>

void GetData1::Call( uint8_t *& ADataStart, uint32_t & ADataIndex, uint8_t & AOffset )
<
Declarations::Instances::TArduinoDigitalBinaryPacketElement1.GetData( ADataStart, ADataIndex, AOffset );
Declarations::Instances::TArduinoDigitalBinaryPacketElement2.GetData( ADataStart, ADataIndex, AOffset );
Declarations::Instances::TArduinoDigitalBinaryPacketElement3.GetData( ADataStart, ADataIndex, AOffset );
Declarations::Instances::TArduinoDigitalBinaryPacketElement4.GetData( ADataStart, ADataIndex, AOffset );
Declarations::Instances::TArduinoDigitalBinaryPacketElement5.GetData( ADataStart, ADataIndex, AOffset );
>

void GetSize1::Call( int32_t AIndex, bool & AAlligned, int & AResult )
<
switch( AIndex )
<
case 0: Declarations::Instances::TArduinoDigitalBinaryPacketElement1.GetSize( AAlligned, AResult ); break;
case 1: Declarations::Instances::TArduinoDigitalBinaryPacketElement2.GetSize( AAlligned, AResult ); break;
case 2: Declarations::Instances::TArduinoDigitalBinaryPacketElement3.GetSize( AAlligned, AResult ); break;
case 3: Declarations::Instances::TArduinoDigitalBinaryPacketElement4.GetSize( AAlligned, AResult ); break;
case 4: Declarations::Instances::TArduinoDigitalBinaryPacketElement5.GetSize( AAlligned, AResult ); break;
>
>

void Expand1::Call( int32_t AIndex, uint8_t * const & AInBuffer, uint8_t * const & AOutBuffer, int & ASize, bool & AResult )
<
switch( AIndex )
<
case 0: Declarations::Instances::TArduinoDigitalBinaryPacketElement1.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;
case 1: Declarations::Instances::TArduinoDigitalBinaryPacketElement2.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;
case 2: Declarations::Instances::TArduinoDigitalBinaryPacketElement3.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;
case 3: Declarations::Instances::TArduinoDigitalBinaryPacketElement4.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;
case 4: Declarations::Instances::TArduinoDigitalBinaryPacketElement5.Expand( AInBuffer, AOutBuffer, ASize, AResult ); break;
>
>

void GetValue1::Call( int32_t AIndex, uint8_t & AValue )
<
>

void ApplyValues1::Call( uint8_t * AValue )
<
>

// Pin Call Declarations

namespace PinCalls
<
void PinCallerConverterReceive1( void *_Data );
void PinCallerConverterReceive2( void *_Data );
> // PinCalls

// Pin Call Implementations

namespace PinCalls
<
void PinCallerReceive1::Notify( void *_Data )
<
Declarations::Instances::TArduinoRemoteXYProtocolSerial1._DirectPinReceive( _Data );
>

void PinCallerReceive0::Notify( void *_Data )
<
Declarations::Instances::TArduinoDigitalBinaryPacketElement5.InputPin_o_Receive( _Data );
>

void PinCallerReceive2::Notify( void *_Data )
<
BoardDeclarations::Instances::SerialPort0_Input_IOWByteStream_1.InputPin_o_Receive( _Data );
>

void PinCallerReceive3::Notify( void *_Data )
<
Declarations::Instances::TArduinoDigitalBinaryPacketElement1.InputPin_o_Receive( _Data );
TypeConverters::Converter0.Convert( _Data, PinCallerConverterReceive1 );
Declarations::Instances::Or1.InputPins_o_Receive( 0, _Data );
Declarations::Instances::Or3.InputPins_o_Receive( 0, _Data );
>

void PinCallerConverterReceive1( void *_Data )
<
Declarations::Instances::TILT.StepInputPin_o_Receive( _Data );
>
void PinCallerReceive4::Notify( void *_Data )
<
Declarations::Instances::TArduinoDigitalBinaryPacketElement2.InputPin_o_Receive( _Data );
Declarations::Instances::TILT.Reversed().InputPin_o_Receive( _Data );
Declarations::Instances::Or1.InputPins_o_Receive( 1, _Data );
Declarations::Instances::Or3.InputPins_o_Receive( 1, _Data );
>

void PinCallerReceive5::Notify( void *_Data )
<
Declarations::Instances::PAN.Reversed().InputPin_o_Receive( _Data );
Declarations::Instances::TArduinoDigitalBinaryPacketElement3.InputPin_o_Receive( _Data );
Declarations::Instances::Or2.InputPins_o_Receive( 0, _Data );
Declarations::Instances::Or3.InputPins_o_Receive( 2, _Data );
>

void PinCallerReceive6::Notify( void *_Data )
<
TypeConverters::Converter1.Convert( _Data, PinCallerConverterReceive2 );
Declarations::Instances::TArduinoDigitalBinaryPacketElement4.InputPin_o_Receive( _Data );
Declarations::Instances::Or2.InputPins_o_Receive( 1, _Data );
Declarations::Instances::Or3.InputPins_o_Receive( 3, _Data );
>

void PinCallerConverterReceive2( void *_Data )
<
Declarations::Instances::PAN.StepInputPin_o_Receive( _Data );
>
void PinCallerReceive7::Notify( void *_Data )
<
Declarations::Instances::TILT.Enabled().InputPin_o_Receive( _Data );
>

void PinCallerReceive8::Notify( void *_Data )
<
Declarations::Instances::PAN.Enabled().InputPin_o_Receive( _Data );
>

void PinCallerReceive9::Notify( void *_Data )
<
BoardDeclarations::Instances::ArduinoDigitalChannel_14.DigitalInputPin_o_Receive( _Data );
>

namespace ComponentsHardware
<
void SystemUpdateHardware()
<
>
> // ComponentsHardware

//The setup function is called once at startup of the sketch
void setup()
<
BoardDeclarations::Instances::TArduinoESP32BluetoothLEModule1.SystemInit();
BoardDeclarations::Instances::TArduinoESP32BluetoothLEServer1.SystemInit();
BoardDeclarations::Instances::ArduinoDigitalChannel_14.SystemInit();
Declarations::Instances::TArduinoBluetoothUartService1.SystemInit();
BoardDeclarations::Instances::SerialPort0.SystemInit();
BoardDeclarations::Instances::ArduinoAnalogInputChannel_AsDigital_14.SystemInit();
BoardDeclarations::Instances::ArduinoDigitalChannel_14.SystemStart();
BoardDeclarations::Instances::TArduinoESP32BluetoothLEModule1.SystemStart();
BoardDeclarations::Instances::TArduinoESP32BluetoothLEServer1.SystemStart();
Declarations::Instances::TArduinoBluetoothUartService1.SystemStart();
BoardDeclarations::Instances::ArduinoAnalogInputChannel_AsDigital_14.SystemStart();
Declarations::Instances::Packet1.SystemStart();
Declarations::Instances::TArduinoRemoteXYButtonElement1.SystemStart();
Declarations::Instances::TArduinoRemoteXYButtonElement2.SystemStart();
Declarations::Instances::TArduinoRemoteXYButtonElement3.SystemStart();
Declarations::Instances::TArduinoRemoteXYButtonElement4.SystemStart();
Declarations::Instances::TArduinoRemoteXYProtocolSerial1.SystemStart();
Declarations::Instances::Or1.SystemStart();
Declarations::Instances::Or2.SystemStart();
Declarations::Instances::Or3.SystemStart();
>

Источник

Продолжаем изучать сервис RemoteXY (предыдущая статья), в этой статье будут рассмотрены способы подключения различных модулей связи к ардуино и работы с ними в сервисе RemoteXY. 

Конфигурация подключения

Способы подключения я буду демонстрировать на примере Arduino Nano и NodeMCU v3, в качестве модулей связи будут применяться Bluetooth модуль HC-05, Wi-Fi модуль ESP-01 и встроенный в NodeMCU модуль ESP-12.

Сразу опишу все преимущества и недостатки каждого типа подключения.

Bluetooth

Недостатки:

  • малый радиус действия (около 10 метров);
  • зачастую планшеты на android, не имеющие слота под SIM карту, так же не имеют и bluetooth модуля.

Преимущества:

  • мобильное устройство может быть одновременно соединено с несколькими bluetooth устройствами;
  • при этом не теряется связь с сетью интернет при подключении через wi-fi или мобильную сеть.

Wi-Fi как клиент

Преимущества:

  • не теряется связь с сетью интернет при подключении к ней через wi-fi;
  • больший радиус связи, чем у bluetooth;
  • модуль связи wi-fi есть во всех смартфонах и планшетах;
  • можно настроить роутер для доступа к контролеру с любой точки планеты (этот способ связи я не буду рассматривать, так как я им сам не пользовался, а давать непроверенную информацию мне не позволяет моя совесть).

Недостатки:

  • необходим wi-fi роутер как точка доступа.

Wi-Fi как точка доступа

Преимущества:

  • автономная работа без роутера.

Недостатки:

  • невозможно одновременное подключение к контролеру и к сети интернет ни через сотовую связь, ни через другие сети Wi-Fi.

Таким образом у каждого способа связи есть свои преимущества

Bluetooth

Соединение по bluetooth настраивается при помощи модулей связи HC-05 и HC-06 для Android и модуля HC-10 для iOS и осуществляется по протоколу UART. Подключаться можно как через Hardware Serial, так и через Software Serial. Рассмотрим оба способа.

bt_hs.png
Hardware Serial

Аппаратные порты протокола UART выведены на 0 (RX) и 1(TX)  выводы для плат UNO, Leonardo, Pro Mini, Nano, MICRO и 0 и 1 (Serial), 19 и 18 (Serial 1), 17 и 16 (Serial 2), 15 и 14 (Serial 3) для платы MEGA.

Чтобы настроить онлайн редактор на bluetooth соединение в панели настроек и свойств необходимо выбрать пункт «конфигурация» и нажать на любой пункт этого меню. Откроется меню конфигурации, в котором поочередно надо установить параметры: тип соединения, используемый контроллер, модуль связи и среда программирования. После необходимо нажать кнопку «Применить» и окно закроется.

config_menu.png

Далее необходимо перейти в пункт «Подключение модуля» в панели настроек и свойств, установить интерфейс подключения «Hardware Serial», скорость обмена и порт.

bt_hs_conf.png

Выпадающий список портов будет содержать только один пункт для всех плат кроме MEGA. Для плат MEGA будет доступно четыре аппаратных порта.

mega_ports.gif

Ввиду того, что аппаратный порт Serial используется для программирования arduino, необходимо отсоединять bluetooth модуль на время программирования. Для плат Mega этот вопрос строит не так остро, так как на выбор предоставлено четыре порта.

Software Serial

bt_ss.png

Подключение через Software Serial позволяет использовать отличные от аппаратных порты. Но с некоторыми ограничениями, которые связанны с поддержкой прерываний.

Так для плат UNO и Nano для RX нельзя использовать вывод 13. Для Mega для RX можно использовать только выводы 8, 10, 11, 12, 13, 14,15, 50, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69. Для Leonardo и Micro для RX можно использовать только выводы 8, 9, 10, 11, 14,15, 16. Так же невозможна работа на скоростях выше 19200 бит/сек. Стоит заметить, что в онлайн редакторе интерфейса все эти ограничения учтены, и сам редактор вам просто не даст поставить значения скорости выше 19200, и предложит на выбор только подходящие выводы с учетом выбранной платы. Так зачем же я упомянул все эти ограничения? Ограничения на выбор портов можно обойти, когда онлайн редактор сгенерирует исходный код, ведь там номера портов указаны черным по белому.

// настройки соединения
#define REMOTEXY_SERIAL_RX 50 #define REMOTEXY_SERIAL_TX 51 #define REMOTEXY_SERIAL_SPEED 9600

Подключение Bluetooth модуля к смартфону. И вот тут-то можно исправить и номера выводов и скорость, и в итоге получить не работающее устройство.  Вообще я не рекомендую править что-либо в исходном коде, начиная от комментария «RemoteXY include library» до «END RemoteXY include». Ну и еще одно ограничение: некоторые библиотеки (например, библиотека Servo) используют те же прерывания, что и Software Serial. Это может привести к непредсказуемой или неправильной работе устройства и потере связи по bluetooth.

Данная инструкция для владельцев устройств, работающих под управлением операционной системы android.

  • Перейти в настройки устройства, выбрать пункт «bluetooth», включить его. Начнется поиск доступных bluetooth устройств.

Screenshot_2017-01-30-02-24-38.png

  • Выбирать необходимое устройство из списка, дождаться запроса пароля, ввести пароль и нажать «ОК»

Screenshot_2017-01-30-02-25-17.png

  • Устройство появится в списке подключенных устройств
  • Перейти в программу RemoteXY, нажать на + в правом верхнем углу

Screenshot_2017-01-30-02-25-59.png

  • Выбрать тип подключаемого устройства

Screenshot_2017-01-30-02-26-05.png

  • Выбрать устройство из списка доступных устройств

Screenshot_2017-01-30-02-26-15.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Screenshot_2017-01-30-02-26-22.png

Практическое задание

Создать интерфейс со следующими параметрами:

  • Соединение – bluetooth;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – HC-05 (для владельцев устройств с iOS – HC-10);
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial 1);
  • Скорость обмена – 9600.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

Далее необходимо провести сопряжение bluetooth модуля с вашим мобильным устройством, подключить программу RemoteXY к устройству. Если при нажатии на кнопку загорается светодиод на плате контроллера, значит всё сделано правильно.

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Wi-Fi как точка доступа

Подключение модуля ESP-01 производится аналогично модулю Bluetooth, так как оба вида модулей работают по протоколу UART. Подключение абсолютно аналогично, как для Software Serial, так и для Hardware Serial, со всеми ограничениями, описанными в разделе о подключении по Bluetooth.

Исключение составляет конфигурация подключения. Рассмотрим подключение модуля ESP-01 к arduino Mega2560 в качестве точки доступа.

В выпадающем меню «Подключение модуля» кроме пунктов интерфейс подключения, порт Serial/контакты TX/RX и скорость обмена появляются еще четыре пункта, характерных только для подключения устройства как точки доступа.

Имя (SSID) – имя точки доступа, к которой будет подключаться смартфон. Доступ к контроллеру может быть защищен паролем, если не стоит галочка «открытая точка». Пункт «Порт» можно не трогать, так как он по умолчанию устанавливается таким же в программе RemoteXY, его смена может потом привести к неожиданным последствиям при подключении к контроллеру (если пользователь забудет, какой порт указал при наладке устройства).

wf_ss_conf.png

Отдельно стоит коснуться конфигурации устройств, построенных на модуле ESP-12: WeMos D1, D1 R2, D1 mini и NodeMCU v2, v3. Так как модуль связи встроен в эти платы, в меню «Подключение модуля» отсутствуют настройки интерфейса подключения.

NodeConf1.png

Стоить заметить, что на изображении выше, подключение питания модуля ESP-01 подключено к выводу 3V3 на плате arduino nano. Тем не менее, мощность стабилизатора, установленного на плате nano, может не хватать для работы модуля ESP-01. Поэтому необходимо подключать его к внешнему источнику питания напряжением 3,3 вольта.

Подключение Wi-Fi модуля в режиме точки доступа к смартфону.

Для подключения Wi-Fi модуля в режиме точки доступа к смартфону необходимо:

  • Перейти в настройки смартфона – беспроводные сети –Wi-Fi и убедиться, что созданная точка доступа находится в списке доступных устройств

Screenshot_2017-01-31-01-48-18.png

  • Выбрать необходимую точку доступа и, если требуется, ввести пароль, нажать кнопку «подключить»

Screenshot_2017-01-31-23-16-42.png

  • Войти в программу RemoteXY и нажать + в правом верхнем углу

Screenshot_2017-01-30-02-25-59.png

  • Выбрать «Wi-Fi точка доступа»

Screenshot_2017-01-31-23-09-02.png

  • В появившемся списке доступных сетей выбрать необходимую сеть

Screenshot_2017-01-31-23-12-47.png

  • В некоторых случаях программа вновь может запросить пароль точки доступа, необходимо ввести его вновь и нажать подключить

Screenshot_2017-01-31-23-34-07.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Практическое задание

Закрепим полученные знания на практике.

Первая часть задания: создать соединение со следующими параметрами:

  • Соединение — Wi-Fi access point;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – ESP8266 Wi-Fi module;
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial2);
  • Скорость обмена – 115200;
  • Имя (SSID) – оставить по умолчанию;
  • Пароль – оставить по умолчанию;
  • Порт – оставить по умолчанию.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

Далее необходимо подключить смартфон к созданной точке доступа, подключить программу RemoteXY к устройству. Если при нажатии на кнопку загорается светодиод на плате контроллера, значит всё сделано правильно.

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Третья часть задания: изменить проект для подключения платы NodeMCU.

Wi-Fi как клиент

Режим работы в качестве клиента требует, что бы устройство подключалось к существующей точке доступа Wi-Fi. Возможен доступ к контроллеру, как из локальной сети, так и по сети интернет. Для подключения к контроллеру из сети интернет возможно лишь при правильной настройке маршрутизатора. Этот способ подключения я не буду рассматривать, рассмотрю лишь способ подключения по локальной сети.

При этом физически подключение модуля ESP-01 в качестве клиента существующей сети Wi-Fi к arduino не отличается от рассмотренного выше примера подключения модуля ESP-01 в качестве точки доступа, со всеми ограничениями, рассмотренными ранее.

Пример конфигурации для arduino и ESP-01

esp_conf.png

В выпадающем меню «Подключения модуля», кроме уже знакомых пунктов интерфейса подключения, порта Serial, контактов, порта и скорости обмена, появились пункты характерные для подключения модуля ESP-01 в качестве клиента:

  • Имя (SSID) — имя точки доступа, к которой необходимо подключить модуль ESP-01
  • Пароль — пароль точки доступа, к которой необходимо подключить модуль ESP-01 (если пароль не используется, то необходимо оставить строку пустой)

Так же приведу конфигурацию для платы NodeMCU v3.

tcp_node1.png

Подключение Wi-Fi модуля как клиента существующей точки доступа Wi-Fi к смартфону.

Первым делом надо узнать IP-адрес модуля ESP-01 в локальной сети. Для этого необходимо использовать сканер сети. Я использую программу Network Scanner для android.

Приведу пример работы с этой программой:

  • Открыть программу Network Scanner

net_scan.png

  • Дождаться окончания сканирование локальной сети

2017_02_01_00_23_08.png

  • Выбрать необходимое устройство из списка

2017_02_01_00_22_30.png

Далее необходимо запустить программу RemoteXY и дальнейшие шаги выполнять в ней:

  • Нажать + в верхнем правом углу

Screenshot_2017-01-30-02-25-59.png

  • Из списка выбрать «Ethernet»

Screenshot_2017-02-01-00-33-00.png

  • Ввести IP-адрес, полученный в программе Network Scanner

Screenshot_2017-02-01-00-33-22.png

  • Устройство подсоединено, сразу открывается интерфейс устройства.

Практическое задание

Закрепим полученные знания на практике.

Первая часть задания: создать соединение со следующими параметрами:

  • Соединение — Ethernet TCP/IP;
  • Устройство – на ваш выбор (я буду использовать Mega);
  • Модуль – ESP8266 Wi-Fi module;
  • Среда программирования – ArduinoIDE;
  • Интерфейс подключения – Hardware Serial;
  • Порт – Serial (владельцы Mega могут попробовать любой другой доступный порт, я буду использовать Serial2);
  • Скорость обмена – 115200;
  • Имя (SSID) – имя вашей точки доступа;
  • Пароль – пароль вашей точки доступа;
  • Порт – оставить по умолчанию.

Разместить на рабочем поле редактора кнопку, свойства кнопки не менять. Исходный код скомпилировать в ArduinoIDE и загрузить в контроллер.

Далее необходимо подключить смартфон к той же сети что и контроллер, просканировать локальную сеть для получения IP- адреса, подключить программу RemoteXY к устройству. Если при нажатии на кнопку загорается светодиод на плате контроллера, значит всё сделано правильно.

Вторая часть задания: изменить проект так, что бы он использовал Software Serial, использовать выводы на свое усмотрение.

Третья часть задания: изменить проект для подключения платы NodeMCU.

P.S. Использование смартфона в качестве точки доступа

Все современные смартфоны могут выступать в качестве точки доступа Wi-Fi. В начале этой главы я рассматривал достоинства и недостатки различных способов подключения устройства к смартфону. Так для способа Wi-Fi как точка доступа я указал недостаток: «невозможно одновременное подключение к контролеру и к сети интернет, ни через сотовую связь, ни через другие сети Wi-Fi». Использование смартфона, как точки доступа Wi-Fi, позволяет обойти это ограничение, при этом соединение между контроллером и смартфоном будет прямое, а доступ к сети интернет посредством сотовой связи останется доступным.

Для подключения контроллера к смартфону необходимо (все настройки смартфона показаны на примере смартфона под управлением ОС Android версии 5.1.1):

  • Перейти в настройки смартфона, далее «точка доступа и модем» , «мобильная точка доступа»;

2017_02_01_02_09_33.png

 2017_02_01_02_09_38.png

  • Включить точку доступа, название сети и пароль использовать при настройке подключения модуля в редакторе интерфейса;

2017_02_01_02_09_43.png

  • Загрузить исходный код программы в контроллер, дождаться, когда модуль ESP-01 появится в списке подключенных устройств;

2017_02_01_02_11_41.png

  • Выбрать модуль ESP-01 из списка, появится окно с данными подключения, использовать IP-адрес в программе RemoteXY.

2017_02_01_02_15_36.png

В операционных системах Android других версий интерфейс может отличаться, но порядок действий остается тем же.

P.P.S. В этой статье я не описал только один способ подключения, по глобальной сети, с настройкой роутера, виртуальными серверами и пробросом портов, того самого способа, который дает возможность подключаться к ардуино из любой точки планеты где есть интернет.  Все рассмотренные способы предоставляют только локальный доступ, в небольшом радиусе действия.

Пока статья писалась, автор RemoteXY добавил функцию облачного сервера для связи смартфона и ардуино через интернет из любой точки мира. Теперь нет необходимости пробрасывать порты, устанавливать виртуальные сервера и прочее, теперь доступ к ардуино по интернет можно настроить намного проще.

Теги:

Подскажите, в сем может быть проблема, сделал на сайте код заполнять своими доработками не стал, хотел проверить исправность WiFi модуля, подключил как в статье, залил скетч. На устройстве появилась сеть AI-THINKER_(не помню), к которой не получается подключится. Что делать? Вот данные по прошивке с модуля.
AT+GMRAT version:0.40.0.0(Aug 8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04

Код Ниже.

//////////////////////////////////////////////
// RemoteXY include library //
// use library version 2.2.2 or up //
// use ANDROID app version 3.5.1 or up //
//////////////////////////////////////////////

/* определение режима соединения и подключение библиотеки RemoteXY */
[HASHTAG]#define[/HASHTAG] REMOTEXY_MODE__ESP8266POINT_HARDSERIAL

[HASHTAG]#include[/HASHTAG] <RemoteXY.h>

/* настройки соединения */
[HASHTAG]#define[/HASHTAG] REMOTEXY_SERIAL Serial
[HASHTAG]#define[/HASHTAG] REMOTEXY_SERIAL_SPEED 115200
[HASHTAG]#define[/HASHTAG] REMOTEXY_WIFI_SSID «RemoteXY»
[HASHTAG]#define[/HASHTAG] REMOTEXY_WIFI_PASSWORD «12345678»
[HASHTAG]#define[/HASHTAG] REMOTEXY_SERVER_PORT 6377

/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
{ 2,27,121,0,5,0,1,2,0,21
,35,22,11,2,79,78,0,79,70,70
,0,4,128,14,15,35,12,2,66,1
,28,51,7,16,2,66,4,46,36,13
,17,2,67,4,3,55,18,5,2,11
,67,4,44,56,18,5,2,11,65,6
,28,77,9,9,2,66,4,3,36,13
,16,2,129,0,7,28,18,6,9,208
,146,208,186,208,187,209,142,209,135,208
,184,209,130,209,140,32,209,135,208,176
,208,185,208,189,208,184,208,186,0,129
,0,24,68,15,6,9,208,146,208,190
,208,180,208,176,0 };

/* структура определяет все переменные вашего интерфейса управления */
struct {

/* input variable */
unsigned char switch_1; /* =1 если переключатель включен и =0 если отключен */
signed char slider_1; /* =0..100 положение слайдера */

/* output variable */
signed char level_1; /* =0..100 положение уровня */
signed char level_3; /* =0..100 положение уровня */
char text_1[11]; /* =строка оканчивающаяся нулем UNICODE */
char text_2[11]; /* =строка оканчивающаяся нулем UNICODE */
unsigned char led_1_r; /* =0..255 яркость красного цвета индикатора */
unsigned char led_1_g; /* =0..255 яркость зеленого цвета индикатора */
signed char level_2; /* =0..100 положение уровня */

/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */

} RemoteXY;

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

[HASHTAG]#define[/HASHTAG] PIN_SWITCH_1 13

void setup()
{
RemoteXY_Init ();

pinMode (PIN_SWITCH_1, OUTPUT);

// TODO you setup code

}

void loop()
{
RemoteXY_Handler ();

digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);

// TODO you loop code
// используйте структуру RemoteXY для передачи данных

  1. доброго времени суток Уважаемые форумчане ! столкнулся с большой проблемой для меня — использую сервис RemoteXY — все отлично сделал проект — все работает, но вот захотелось мне чтоб при нажатии кнопки — воспроизводилось звуковое уведомление ! сделал — но звук воспроизводится пока держу нажатой кнопку ! хочется чтоб звук воспроизводился допустим 4 секунды. но никак не могу разобраться с этим(( в написании я — полный ноль (( может кто поможет в реализации моей задумки? что не так в коде? код прилагаю :

    /*
       — фары JEEP —

     
       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.5.1 or later version;
         — for iOS 1.4.1 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
    #define REMOTEXY_MODE__ESP8266_HARDSERIAL_POINT

    #include <RemoteXY.h>

    // настройки соединения
    #define REMOTEXY_SERIAL Serial
    #define REMOTEXY_SERIAL_SPEED 115200
    #define REMOTEXY_WIFI_SSID «JEEP»
    #define REMOTEXY_WIFI_PASSWORD «87654321»
    #define REMOTEXY_SERVER_PORT 6377

    // конфигурация интерфейса
    #pragma pack(push, 1)
    uint8_t RemoteXY_CONF[] =
      { 255,12,0,2,0,19,1,10,187,0,
      1,0,4,37,12,12,2,31,208,146,
      208,155,208,149,208,146,208,158,0,1,
      0,17,23,12,12,2,31,208,146,208,
      146,208,149,208,160,208,165,0,1,0,
      17,50,12,12,2,31,208,146,208,157,
      208,152,208,151,0,1,0,31,37,12,
      12,2,31,208,146,208,159,208,160,208,
      144,208,146,208,158,0,1,0,58,36,
      12,12,2,31,208,146,208,155,208,149,
      208,146,208,158,0,1,0,71,22,12,
      12,2,31,208,146,208,146,208,149,208,
      160,208,165,0,1,0,84,36,12,12,
      2,31,208,146,208,159,208,160,208,144,
      208,146,208,158,0,1,0,71,50,12,
      12,2,31,208,146,208,157,208,152,208,
      151,0,1,9,4,2,12,12,134,31,
      208,146,208,154,208,155,0,1,9,30,
      2,12,12,134,31,208,161,208,146,208,
      149,208,162,0,1,9,57,2,12,12,
      134,31,208,161,208,146,208,149,208,162,
      0,1,9,83,2,12,12,134,31,208,
      146,208,154,208,155,0,129,0,12,16,
      21,6,17,208,155,208,149,208,146,208,
      144,208,175,0,129,0,65,16,24,6,
      17,208,159,208,160,208,144,208,146,208,
      144,208,175,0,129,0,42,23,15,6,
      1,74,69,69,80,0,69,1,5,3,
      10,10 };

     
    // структура определяет все переменные и события вашего интерфейса управления
    struct {

        // input variables
      uint8_t button_1; // =1 если кнопка нажата, иначе =0
      uint8_t button_2; // =1 если кнопка нажата, иначе =0
      uint8_t button_3; // =1 если кнопка нажата, иначе =0
      uint8_t button_4; // =1 если кнопка нажата, иначе =0
      uint8_t button_5; // =1 если кнопка нажата, иначе =0
      uint8_t button_6; // =1 если кнопка нажата, иначе =0
      uint8_t button_7; // =1 если кнопка нажата, иначе =0
      uint8_t button_8; // =1 если кнопка нажата, иначе =0
      uint8_t button_9; // =1 если кнопка нажата, иначе =0
      uint8_t button_10; // =1 если кнопка нажата, иначе =0
      uint8_t button_11; // =1 если кнопка нажата, иначе =0
      uint8_t button_12; // =1 если кнопка нажата, иначе =0

        // output variables
      int16_t sound_1; // =0 нет звука, иначе ID звука, для примера 1001, смотри список звуков в приложении
        // other variable
      uint8_t connect_flag;  // =1 if wire connected, else =0

    } RemoteXY;
    #pragma pack(pop)

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

    #define PIN_BUTTON_1 5
    #define PIN_BUTTON_2 4
    #define PIN_BUTTON_3 7
    #define PIN_BUTTON_4 6
    #define PIN_BUTTON_5 11
    #define PIN_BUTTON_6 10
    #define PIN_BUTTON_7 12
    #define PIN_BUTTON_8 13
    #define PIN_BUTTON_9 2
    #define PIN_BUTTON_10 3
    #define PIN_BUTTON_11 8
    #define PIN_BUTTON_12 9

    void setup()
    {
      RemoteXY_Init ();

     
      pinMode (PIN_BUTTON_1, OUTPUT);
      pinMode (PIN_BUTTON_2, OUTPUT);
      pinMode (PIN_BUTTON_3, OUTPUT);
      pinMode (PIN_BUTTON_4, OUTPUT);
      pinMode (PIN_BUTTON_5, OUTPUT);
      pinMode (PIN_BUTTON_6, OUTPUT);
      pinMode (PIN_BUTTON_7, OUTPUT);
      pinMode (PIN_BUTTON_8, OUTPUT);
      pinMode (PIN_BUTTON_9, OUTPUT);
      pinMode (PIN_BUTTON_10, OUTPUT);
      pinMode (PIN_BUTTON_11, OUTPUT);
      pinMode (PIN_BUTTON_12, OUTPUT);

     
      // TODO you setup code

     
    }

    void loop()
    {
      RemoteXY_Handler ();

     
      digitalWrite(PIN_BUTTON_1, (RemoteXY.button_1==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_2, (RemoteXY.button_2==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_3, (RemoteXY.button_3==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_4, (RemoteXY.button_4==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_5, (RemoteXY.button_5==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_6, (RemoteXY.button_6==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_7, (RemoteXY.button_7==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_8, (RemoteXY.button_8==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_9, (RemoteXY.button_9==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_10, (RemoteXY.button_10==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_11, (RemoteXY.button_11==0)?LOW:HIGH);
      digitalWrite(PIN_BUTTON_12, (RemoteXY.button_12==0)?LOW:HIGH);

      uint32_t start_time = 0;

      if (RemoteXY.sound_1 == 0) {  // если мелодия в данный момент не играет
        if (RemoteXY.button_1 != 0) {  // если кнопка нажата
          start_time = millis ();  // запоминаем время когда начали проигрывание
          RemoteXY.sound_1 = 1;  // и запускаем проигрывание
         }
      }
      else {  // иначе молодия играет
        if (millis () start_time  >= 4000 ) {   // если время проигрывания 4 секунды уже истекло
          RemoteXY.sound_1 = 0;  // останавливаем проигрывание мелодии в RemoteXY
        }
      }
    }

     
      // TODO you loop code
      // используйте структуру RemoteXY для передачи данных
      // не используйте функцию delay()

  2. вот тут нужно взводить флаг.
    Далее в цикле loop сделать отдельный if для флага, если он взведен, то воспроизводим мелодию сколько нужно. По окончанию мелодии обязательно сбросить флаг.


    PreD3D и NikitOS нравится это.

  3. Не сочтите за наглость( , не могли бы Вы дописать чего не хватает ? Если конечно Вас не затруднит..

  4. С самому не интересно разобраться?

  5. имхо, в этом коде RemoteXY.sound_1 уже работает как флаг, если я правильно понял идею ТС
    В этом случае достаточно statr_time обозначить как static

    Последнее редактирование: 6 май 2020

  6. Я извиняюсь, но с RemoteXY я не работал, поэтому не буду писать код, который не могу проверить. Тем более, что выше уже начали предлагать другие варианты

  7. наконец то сделал чтоб звук отыгрывал сколько нужно. Всем огромнейшее спасибо за помощь и подсказки !

400 — Bad Request (Некорректный запрос)

«Плохой запрос». Этот ответ означает, что сервер не понимает… Читать далее

Подробнее

401 — Unauthorized (Не авторизован)

«Неавторизовано». Для получения запрашиваемого ответа нужна … Читать далее

Подробнее

402 — Payment Required (Необходима оплата)

«Необходима оплата». Этот код ответа зарезервирован для буду… Читать далее

Подробнее

403 — Forbidden (Запрещено)

«Запрещено». У клиента нет прав доступа к содержимому, поэто… Читать далее

Подробнее

404 — Not Found (Не найдено)

«Не найден». Сервер не может найти запрашиваемый ресурс. Код… Читать далее

Подробнее

405 — Method Not Allowed (Метод не поддерживается)

«Метод не разрешен». Сервер знает о запрашиваемом методе, но… Читать далее

Подробнее

406 — Not Acceptable (Неприемлемо)

Этот ответ отсылается, когда веб сервер после выполнения ser… Читать далее

Подробнее

407 — Proxy Authentication Required (Необходима аутентификация прокси)

Этот код ответа аналогичен коду 401, только аутентификация т… Читать далее

Подробнее

408 — Request Timeout (Истекло время ожидания)

Ответ с таким кодом может прийти, даже без предшествующего з… Читать далее

Подробнее

409 — Conflict (Конфликт)

Этот ответ отсылается, когда запрос конфликтует с текущим со… Читать далее

Подробнее

410 — Gone (Удалён)

Этот ответ отсылается, когда запрашиваемый контент удален с … Читать далее

Подробнее

411 — Length Required (Необходима длина)

Запрос отклонен, потому что сервер требует указание заголовк… Читать далее

Подробнее

412 — Precondition Failed (Условие ложно)

Клиент указал в своих заголовках условия, которые сервер не … Читать далее

Подробнее

413 — Request Entity Too Large (Полезная нагрузка слишком велика)

Размер запроса превышает лимит, объявленный сервером. Сервер… Читать далее

Подробнее

414 — Request-URI Too Long (URI слишком длинный)

URI запрашиваемый клиентом слишком длинный для того, чтобы с… Читать далее

Подробнее

415 — Unsupported Media Type (Неподдерживаемый тип данных)

Медиа формат запрашиваемых данных не поддерживается сервером… Читать далее

Подробнее

416 — Requested Range Not Satisfiable (Диапазон не достижим)

Диапозон указанный заголовком запроса Range не может бы… Читать далее

Подробнее

417 — Expectation Failed (Ожидание не удалось)

Этот код ответа означает, что ожидание, полученное из заголо… Читать далее

Подробнее

418 — I’m a teapot (Я — чайник)

I’m a teapot — Этот код был введен в 1998 году как одна из т… Читать далее

Подробнее

419 — Authentication Timeout (not in RFC 2616) (Обычно ошибка проверки CSRF)

Authentication Timeout (not in RFC 2616) — Этого кода нет в … Читать далее

Подробнее

420 — Enhance Your Calm (Twitter) (Подождите немного (Твиттер))

Возвращается Twitter Search и Trends API, когда клиент отпра… Читать далее

Подробнее

421 — Misdirected Request (Неверный запрос)

Misdirected Request — запрос был перенаправлен на сервер, не… Читать далее

Подробнее

422 — Unprocessable Entity (Необрабатываемый экземпляр)

Запрос имел правильный формат, но его нельзя обработать из-з… Читать далее

Подробнее

423 — Locked (Заблокировано)

Целевой ресурс из запроса заблокирован от применения к нему … Читать далее

Подробнее

424 — Failed Dependency (Невыполненная зависимость)

Не удалось завершить запрос из-за ошибок к предыдущем запрос… Читать далее

Подробнее

425 — Too Early (Слишком рано)

Too Early — сервер не готов принять риски обработки «ранней … Читать далее

Подробнее

426 — Upgrade Required (Необходимо обновление)

Указание сервера, клиенту, обновить протокол. Заголовок отве… Читать далее

Подробнее

428 — Precondition Required (Необходимо предусловие)

Precondition Required — сервер указывает клиенту на необходи… Читать далее

Подробнее

429 — Too Many Requests (Слишком много запросов)

Too Many Requests — клиент попытался отправить слишком много… Читать далее

Подробнее

430 — Would Block (Будет заблокировано)

Код состояния 430 would Block — это код, который сервер мог … Читать далее

Подробнее

431 — Request Header Fields Too Large (Поля заголовка запроса слишком большие)

Request Header Fields Too Large — Превышена допустимая длина… Читать далее

Подробнее

434 — Requested host unavailable (Запрашиваемый адрес недоступен)

Сервер к которому вы обратились недоступен… Читать далее

Подробнее

444 — No Response (Nginx) (Нет ответа (Nginx))

Код ответа Nginx. Сервер не вернул информацию и закрыл соеди… Читать далее

Подробнее

449 — Retry With (Повторить с…)

Retry With — возвращается сервером, если для обработки запро… Читать далее

Подробнее

450 — Blocked by Windows Parental Controls (Microsoft) (Заблокировано родительским контролем Windows (Microsoft))

Расширение Microsoft. Эта ошибка возникает, когда родительск… Читать далее

Подробнее

451 — Unavailable For Legal Reasons (Недоступно по юридическим причинам)

Unavailable For Legal Reasons — доступ к ресурсу закрыт по ю… Читать далее

Подробнее

499 — Client Closed Request (Клиент закрыл соединение)

Нестандартный код состояния, представленный nginx для случая… Читать далее

Подробнее

Recommend Projects

  • React photo

    React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo

    Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo

    Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo

    TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo

    Django

    The Web framework for perfectionists with deadlines.

  • Laravel photo

    Laravel

    A PHP framework for web artisans

  • D3 photo

    D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Visualization

    Some thing interesting about visualization, use data art

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo

    Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo

    Microsoft

    Open source projects and samples from Microsoft.

  • Google photo

    Google

    Google ❤️ Open Source for everyone.

  • Alibaba photo

    Alibaba

    Alibaba Open Source for everyone

  • D3 photo

    D3

    Data-Driven Documents codes.

  • Tencent photo

    Tencent

    China tencent open source team.

Понравилась статья? Поделить с друзьями:
  • Read only file system mac os как исправить
  • Read only file system linux как исправить флешка
  • Read only file system error на андроиде что делать
  • Read only file system error linux
  • Read only file system error android что делать