1

Topic: Индикатор статуса Вай фай

Добрый день. Посткажите как на Node Mcu v3 узнать статус подключения по вайфаю. Нужно на устройстве вывести физический светодиод, и зажигать его при подключенном вайфае. Может есть где то описание всех команд библиотеки remotexy?

2

Re: Индикатор статуса Вай фай

В структуре RemoteXY имеется поле connect_flag, которое как раз и показывает наличие подключения к устройству. Этого вам достаточно?

3

Re: Индикатор статуса Вай фай

Если нужно мониторить сам WiFi, вы можете использовать команду библиотеки ESP8266WiFi.h

int status = WiFi.status();

Что она возвращает - смотрите документацию по библиотеке.

4

Re: Индикатор статуса Вай фай

Спасибо, сейчас попробую. А где посмотреть документацию?

5

Re: Индикатор статуса Вай фай

Какие значения принимает переменная? Опытным путем выяснилось: 1 не подключено, 3 подключено.

6

Re: Индикатор статуса Вай фай

Ссылка на документацию к библиотеке esp8266wifi:
https://github.com/esp8266/Arduino/blob … /readme.md

7 (edited by jaymzys 2017-05-29 07:31:26)

Re: Индикатор статуса Вай фай

remotexy wrote:

В структуре RemoteXY имеется поле connect_flag, которое как раз и показывает наличие подключения к устройству. Этого вам достаточно?

Добрый день. Как понимаю, "connect_flag" принимает значение 1, если приложение RemoteXY установило связь с модулем ESP?
Я пытаюсь в коде использовать "connect_flag" для обновления значений в текстовых полях (RemoteXY.text) при запуске приложения. Но при компиляции, выходит ошибка ('connect_flag' was not declared in this scope). Хотя эта переменная ранее объявлена (uint8_t connect_flag;  // =1 if wire connected, else =0 ). В итоге, сейчас оставил только ежесекундное обновление состояния. Но, как понимаю, это не комильфо, ибо обновлять состояние полей мне надо только когда я запускаю приложение RemoteXY. Не подскажете, что это может быть?  Код ниже.

_________________________________________________________________________
if (((millis() - state_time) >= 1000) && (connect_flag != 1))
  {
    state_time = millis();  //актуализируем значение state_time
    state_send_func();      //вызываем функцию обновления строк состояния в RemoteXY
    time_send_func();       //вызываем функцию обновления строк времени и даты в RemoteXY
  }
__________________________________________________________________________

P.S. Вопрос следом. Поля обновляю из-за того, что управление происходит не только из приложения RemoteXY, а еще и кнопками на самом устройстве. Программе в wemosD1 это безразлично - соответствующее изменение состояния устройства происходит как при управлении из приложения, так и при управлении из интерфейса RemoteXY. Но вот текстовые поля в интерфейсе, об изменениях, проведенных при выключенном приложении не знают. Поэтому приходится периодически засылать текущее состояние устройства для верной индикации.    Такое решение вообще адекватно и оправдано, или в вашей программе есть какие-то инструменты для более простого решения этой задачи?

8

Re: Индикатор статуса Вай фай

jaymzys wrote:

Я пытаюсь в коде использовать "connect_flag" для обновления значений в текстовых полях (RemoteXY.text) при запуске приложения. Но при компиляции, выходит ошибка ('connect_flag' was not declared in this scope).

connect_flag это поле структуры RemoteXY. По этому надо использовать так:

if (RemoteXY.connect_flag!=0) {
}
jaymzys wrote:

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

Обновлять поля постоянно при изменении состояния вашего устройства - это вполне себе нормально если производительность контроллера позволяет. Ничего в этом не вижу плохого.

9

Re: Индикатор статуса Вай фай

Да, глупый я. Забыл про структуру. Спасибо за указание.

А насчет флага все таки. Он принимает значение 1, если я запустил RemoteXY на телефоне и соединился с контроллером?
Если я закрываю приложение, он принимает значение 0?

10

Re: Индикатор статуса Вай фай

jaymzys wrote:

А насчет флага все таки. Он принимает значение 1, если я запустил RemoteXY на телефоне и соединился с контроллером?
Если я закрываю приложение, он принимает значение 0?

Да, все верно.

11

Re: Индикатор статуса Вай фай

if (WiFi.status() != WL_CONNECTED) {
digitalWrite(ledPin, HIGH);
}
else digitalWrite(ledPin, LOW);

Вот так всё работает норм. Использую синий встроенный светодиод на самом модуле 8266. Когда есть соединение - он горит.
Единственно не удалось разобраться с индикацией соединения  облака и  ESP8266. Посмотреть это соединение можно на личной страничке на сайте, но это не всегда удобно.

12

Re: Индикатор статуса Вай фай

remotexy wrote:

Ссылка на документацию к библиотеке esp8266wifi:
https://github.com/esp8266/Arduino/blob … /readme.md

Ссылка не рабочая. Обновить бы...