It is currently Thu Dec 13, 2018 3:05 am

НИЛ АСЭМ Научно - исследовательская лаборатория автоматизированных систем экологического мониторинга

Беспроводной контроль и мониторинг датчиков по Wi-Fi

by Admin » Tue Jan 09, 2018 4:12 pm

Цель исследования:
Изучить возможность применения нового Wi-Fi модуля ESP8266 для беспроводного контроля и мониторинга различных датчиков.

Задачи исследования:
- Создать отладочную плату устройства управления Wi-Fi - модулем, с возможностью подключения разных датчиков.
- Создать программатор для прошивки Wi-Fi модуля.
- Создать программное обеспечение нижнего уровня для микроконтроллера, управляющего модулем.
- Создать программное обеспечение верхнего уровня для компьютера, посредством которого будет управляться макет устройства и будет осуществляться регистрация полученных данных с датчика.

Архитектура модуля ESP8266:
Image

Технические характеристики модуля ESP8266:
ImageImage
Внешний вид и структурная схема модуля ESP8266

- Поддержка беспроводного стандарта 802.11 b/g/n;
- Поддержка 2 режима работы Wi-Fi Direct (P2P), soft-AP;
- Интегрирован стек протокол TCP/IP;
- Интегрированы TR переключатель, балун, LNA, усилитель и согласователь сети;
- Интегрированы PLLs, регуляторы, DCXO и блок управления питанием;
- Выходная мощность в режиме 802.11b: +19.5dBm;
- Поддержка подключения нескольких TCP Client;
- Ток утечки при отключение питания < 10 мкА;
- Интегрирован 32-бит микроконтроллер;
- Интерфейсы SDIO 1.1/2.0, SPI, UART;
- Технология STBC, 1×1 MIMO, 2×1 MIMO;
- A-MPDU и A-MSDU агрегация и 0.4мс защитный интервал;
- Прием/передача пакетов <2мс;
- Энергопотребление в режиме ожидания <1.0мВт(DTIM3).

Image
Распиновка модуля

Типовые сферы применения Wi-Fi-решений на базе ESP8266:
- Системы «Умный» дом
- Системы безопасности
- «Умные» выключатели и розетки
- Бытовая техника
- Датчики и детекторы
- Охранные сигнализации
- Пульты дистанционного управление и игрушки
- Мониторы и весы
- Mesh-сети
- Промышленный Wi-Fi
- Носимая электроника
- Устройства позиционирования по Wi-FI
- Защитные ID-метки
- Геолокационные Wi-Fi-маяки.

Программатор для Wi-Fi модуля:
Для прошивки ESP8266 необходим USB-UART переходник. ESP8266 необходимо обеспечить напряжение питания 3.3в и током 200..300мА. Питание 3.3в от USB-UART подключать не рекомендуется - модуль может работать не стабильно из-за нехватки тока. Рекомендуется использовать стабилизатор вида 1117.
При подключении ESP8266 к USB-UART, подключаем RX у USB-UART на TX ESP,а TX у USB-UART на RX ESP.
При этом нужно учитывать, что на RX модуля не должно попадать напряжение 5в, для этого на данном выводе модуля необходимо ограничить напряжение стабилитроном на 3.3в или использовать логический TTL-конвертор уровней. Порт GPIO 0 на время программирования, перед включением питания необходимо подключить к GND(земля). После успешной прошивки GPIO 0 можно отключить от GND. Разработанные схема программатора с топологией печатной платы приведены ниже:

Image Image Image Image
На рисунках приведены схема программатора с печатной платой и фото изготовленного устройства.

Джампер в нижнем положении переводит модуль в режим базовой прошивки, а в верхнем положении - в режим тестирования.

Обновление прошивки ESP8266 (перепрошивка):
Новый модуль может содержать прошивку любой версии, соответственно, как вариант, пользователь может перепрошить модуль нужной прошивкой или оставить имеющуюся и адаптироваться к её особенностям. На практике удобно пользоваться проверенной версией прошивки. Например, v0.9.4.2+AT+Firmware - версия является стабильной и полнофункциональной для применения, также содержит функцию автоматического определения скорости обмена данными, т.е. после прошивки, модуль будет сам подстраиваться под скорость обмена данными вашего микроконтроллера.

Для заливки прошивки в модуль наиболее удобной является утилита ESP8266 Flasher. Для прошивки необходимо подключить модуль через программатор к USB-UART переходнику, получить номер COM порта. Затем необходимо запустить утилиту ESP8266Flasher. В первом диалоговом окне утилиты выбрать COM - порт к которому подключен программатор:

Image
Первое диалоговое окно утилиты ESP8266Flasher

Во втором диалоговом окне утилиты необходимо указать путь к файлу прошивки:

Image
Второе диалоговое окно утилиты ESP8266Flasher

В третьем диалоговом окне программы следует указать скорость записи прошивки, обычно это 115200:

Image
Третье диалоговое окно утилиты ESP8266Flasher

После этого можно активировать процесс прошивки, нажав в первом диалоговом окне утилиты кнопку Flash(F).
Процесс прошивки длится несколько минут.

Отладочная плата устройства управления Wi-Fi - модулем:
Отладочная плата в своём составе несет: управляющий микроконтроллер в качестве CPU, разъём для подключения модуля ESP8266, разъём для подключения LCD монитора, разъём для подключения внешних датчиков.

ImageImage
Внешний вид разработанной отладочной платы

Отладочная плата изготовлена на одностороннем фольгированным текстолите, марки FR-4. Устройство имеет пять портов ввода-вывода для подключения различных датчиков посредством SPI, I2C, RS - интерфейсов. Порт RB0, - кроме всего прочего, является аналоговым входом 10-bit АЦП. Схема электрическая принципиальная устройства отладочной платы, а также структурная блок-схема используемого MCU 18F1320 приведены ниже на рисунках.

Image Image
Схема электрическая принципиальная устройства и структурная блок-схема CPU 18F1320

Из рисунков видно, что Wi-Fi модуль ESP8266 подключён к аппаратному RS-интерфейсу микроконтроллера 18F1320, используя соответствующие каналы: для RX - это порт RB1 микроконтроллера, а для TX - порт RB4, соответственно.
Управление Wi-Fi модулем, его настройку и инициализацию проводит микроконтроллер 18F1320 посредством специальной, прошитой в него программы. Помимо этого, микроконтроллер управляет подключаемыми датчиками и отвечает за процесс получения и преобразование результатов измерения. Формирует из полученных данных пакет и отсылает этот пакет через Wi-Fi модуль компьютеру. Передача данных от Wi-Fi модуля на Wi-Fi роутер компьютера осуществляется беспроводным образом.

Символьно-числовой LCD дисплей служит для отображения результатов измерения датчиков и поступающих устройству команд.

Программа нижнего уровня для микроконтроллера:
MCU PIC18F1320 - это 8-битный высокопроизводительный Flash-микроконтроллер с 7 каналами 10-разрядного аналого-цифрового преобразователя (A / D). Объём ПЗУ программ 8 кб, Объем EEPROM, - 256x8. Из периферии помимо модуля ADC, содержит один PWM и один аппаратный USART.

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

Управление Wi-Fi модулем осуществляется посредством AT-команд. Список и синтаксис этих команд зависит от прошивки самого модуля. Для первоначальной настройки модуля требуется послать ему несколько команд:

AT
=> проверка работоспособности модуля, в результате модуль должен ответить - OK, если всё нормально.

AT+RST
=> модуль выдаст версию прошивки и произведет системный сброс

AT+CWSAP=”ESP8266”,”88888888”,11,0
=> команда настройки точки доступа, 11 - канал, шифрование
0 – без шифрования
1 – без шифрования
2 – WPA
3 – WPA2
4 – WPA2

AT+CIPMUX=1
=> включить несколько соединений

AT+CIPSERVER=1,8888
=> запустить сервер с портом 8888

AT+CIFSR
=> узнать свой ip – адрес (192.168.4.1 - ?)
-------------------------------------------------------------------------------------------------------
После этих команд нужно проверить удаленный терминал: должна появиться сеть "ESP8266", указать на терминале полученный IP устройства и порт для передачи данных, в нашем случае это - 8888.
-------------------------------------------------------------------------------------------------------

AT+CIPSEND=0,1
=> отправить “0” – му клиенту 1 байт (здесь указывается длина отправляемого сообщения в байтах)
=> появляется запрос на отправку

При посылке с терминала данных на ESP, модуль выдаёт такое сообщение:
+IPD,0,1:___ => то, что послали с терминала на ESP


Это список главных команд для простейшего обмена данными между ESP8266 и терминалом. В программном выражении это может выглядеть, например, так:

Code: Select all
' настроим модуль ESP8266
Main1:
    HSerOut["AT", 13, 10]
    HSerIn [Wait ("OK"), dummy[0]]
    Print At 1,1,"AT"
    Print At 2,1,"OK"
 DelayMS 1000
 Cls
    HSerOut["AT+CWSAP=",34,"ESP8266",34,",",34,"88888888",34,",",11,",",0,13, 10 ]
    HSerIn 100,[Wait ("OK"), dummy[0]]
    Print At 1,1,"AT+CWJAP"
    Print At 2,1,"OK"
    DelayMS 1000
 Cls     
    HSerOut["AT+CIPMUX=1", 13, 10]
    HSerIn 100,[ Wait ("OK"),dummy[0]]
    Print At 1,1,"AT+CIPMUX=1"
    Print At 2,1,"OK"
    DelayMS 1000
 Cls
    HSerOut["AT+CIPSERVER=1,8888", 13, 10]
    HSerIn 100, [Wait ("OK"),dummy[0]]
    Print At 1,1,"AT+CIPSERVER=1,8888"
    Print At 2,1,"OK"
    DelayMS 1000
 Cls   
    HSerOut["AT+CIFSR", 13, 10]
    HSerIn 100,[Str dummy\16] ' 
    DelayMS 1000
    Print At 2,1,"IP"
    DelayMS 3000 


Программа верхнего уровня для компьютера (терминала):
Результатом первичной инициализации и настройки Wi-Fi - модуля микроконтроллером является создание новой Wi-Fi - сети с именем, примененным в настройках (в нашем случае это - "ESP8266"). Сеть эту можно увидеть на любом гаджете или терминале, имеющим Wi-Fi - модем. Остается задача подключиться к этой сети для обмена данными между устройствами по Wi-Fi. Чтобы терминальная программа могла подключиться к сети необходимо указать ей IP - адрес конкретного устройства к которому нужно подключиться и порт, по которому будет идти обмен данными. В нашем случае в сети только одна макетная плата с Wi-Fi - модулем, поэтому IP будет 192.168.4.1 (получен в результате выполнения команды "AT+CIFSR" - модулем), а порт - 8888 ("AT+CIPSERVER=1,8888"). Дальше следует стандартное подключение, например, в простейшем случае на VBasic это будет выглядеть так:

Image
Внешний вид формы для отладочной программы

Процедура подключения к сети:

Code: Select all
Winsock1.RemoteHost = "192.168.4.1" ' Устанавливаем IP вписанный в текстовое поле
Winsock1.RemotePort = "8888" ' Устанавливаем порт
Winsock1.Connect ' Соеденяемся

Процедура чтения данных состоит из нескольких строк кода:

Code: Select all
Dim DD As String ' Объявляем переменную для работы со строками
Winsock1.GetData DD ' Записываем в переменную текст, который был послан Сервером

Процедура записи данных (передачи) тоже не отличается сложностью:

Code: Select all
Dim S As String ' Объявляем переменную для работы со строками
Winsock1.SendData S 'Посылаем серверу текст, содержащийся в переменной S


Пример использования:
В качестве примера использования созданной отладочной платы построим устройство дистанционного контроля температуры сушильного (муфельного) шкафа.

Image
Схема подключения термопары к отладочной плате Wi-Fi модуля.

Устройство должно не только фиксировать температуру в виде графика, занося значения в таблицу, но и управлять нагревом шкафа. В качестве датчика температуры используем термопару К-типа. Внешний вид работающего устройства представлен ниже на фотографии:

Image
Wi-FI управляемый контроллер температуры сушильного шкафа.

Верхняя строка дисплея отображает достигнутую температуру, а нижняя - установленную. Знак (!) сигнализирует, что температура выше установленной. Установка температуры в нижней строке осуществляется дистанционно с управляющего терминала, на нем же происходит фиксация хода температуры во времени графическим и табличным образом. Внешний вид управляющей программы терминала приведён ниже:

Image Image
Терминальная программа управления Wi-FI контроллером температуры сушильного шкафа.

На рисунках показаны два состояния: слева зеленый прямоугольник свидетельствует о том, что установленная температура в 28.50 С - не достигнута, а справа, случай когда достигнутая температура выше установленной (26.50 С), о чем сигнализирует окраска прямоугольной области в красный цвет.

Диапазон измеряемых температур данным устройством лежит в пределах от 0 до 1024 С. Температурный ход нагрева сушильного шкафа до установленной температуры представлен на нижнем левом изображении:

Image Image
Фото работающего Wi-FI - термостата: слева - терминальная часть, справа - отладочная плата с термопарой и релейным устройством на сушильном шкафе.

Выводы:
Цели и задачи работы по изучению технических возможностей нового WI-Fi-модуля ESP8266 выполнены полностью. Создана отладочная плата для управления различными периферийными устройствами посредством радиоканала по Wi-Fi. Детализирован протокол связи и управления модулем, создано соответствующее программное обеспечение как для управляющего микроконтроллера, так и компьютерного терминала. Возможности модуля показаны на примере созданного беспроводного устройства контроля температуры сушильного шкафа. Мощности передатчика модуля достаточно для построения стабильной сети на открытой местности радиусом >100 м. При построении беспроводной сети в здании, сеть охватывает 3-5 этажей в радиусе, приблизительно 50 метров.

Модуль прекрасно подходит как для систем автоматизации научного эксперимента, так и для промышленных применений в дистанционном контроле технических установок и процессов в них.

Литература
1. Моисеев Д.Н. Беспроводной контроль научного оборудования и мониторинг датчиков по Wi-Fi с помощью модуля ESP8266. ООО “НИЛ АСЭМ”, Тула, Россия // Автоматика и программная инженерия. 2018. №1(23). С. 9-19.



На главную
Admin
Site Admin
 
Posts: 209
Joined: Wed Sep 20, 2017 9:55 am

Return to Промежуточные исследования и разработки

cron

User Menu

Login