Решил поделиться своими приложениями под Андроид для тестирования и управления модулем esp8266 с Андроид. Они могут пригодиться когда комп по каким то причинам не очень удобно использовать или лень таскать как мне
Управление модулем esp8266 по COM порту AT-командами
Поддерживаются устройства и переходники USB-COM на чипах FT232RL(FTDI), CP2102(Silicon Lab), PL2303(PROLIFIC).
Андроид планшет должен иметь USB-HOST и версию не ниже 3.1. и разрешенные пермишены.
Если не работает,читаем что надо сделать.
https://play.google.com/store/apps/details?id=ru.shipov.termusb&hl=ru
Управление по TCP (TCP клиент)
Cоздаем на модуле TCP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermTCP&c=apps&hl=ru
Управление по UDP (UDP клиент)
Cоздаем на модуле UDP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermUDP&c=apps&hl=ru
Новая версия UDP клиента с возможностью записи макросов. Прогу делал под недавний проект, если не сложно отпишитесь что и как.
Внешний вид:
Рассмотрим применение программ относительно к моей задачи которую я недавно решал.
(Прошивка с AT командами и 9600 бод)
Нужно со смартфона по WIFI удаленно включать реле ,и получать данные о температуре с датчика DS18B20.
На uart порт модуля подключаю контроллер atmega168(c реле и ds18b20) и at командами создаю UDP сервер
Создаем мост UDP <--> COM на модуле:
void init_wifi(void)
{
//настроим UDP сервер на порту 7777
printf_P(PSTR("AT+RST\r\n"));
printf_P(PSTR("AT+CIPMUX=1\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPSERVER=1,7777\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPMUX=0\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPSTART=\"UDP\",\"192.168.0.255\",7777\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIFSR\r\n"));
_delay_ms(1000);
}
При этом создается мост между UDP портом 7777 модуля, и uart портом. Короче все что приходит по UDP попадает в контроллер, а что отсылается в uart отсылается по UDP.
Далее все просто посылаем команду с Андроид терминала TepmUDP "!GetC" и получаем ответ на Андроид с температурой: "!TEMP +28" или включаем реле "!SetR1" ответ реле "RELEON"
Вот как отрабатываются команды в контроллере:
//получить температуру
if(!memcmp_P(uart_rx_buf, PSTR("GetC"),4))
{ unsigned char buf[8]="!TEMP";
temp_read();
if(subzero) buf[5]='-';
else
buf[5]='+';
if(temp < 10) buf[6]='0';
else
buf[6]=(48+((temp/10)%10));
if(temp < 1) buf[7]='0';
else
buf[7]=(48+(temp%10));
// buf[8]='\r';
send_udp1(buf,8);
}
else
;
//====================================
if(!memcmp_P(uart_rx_buf, PSTR("SetR0"),5))
{
printf_P(PSTR("AT+CIPSEND=9\r\n"));
_delay_ms(200);
printf_P(PSTR("!LEDOFF\r\n"));
LEDOFF;
}
В качестве "макетки" контроллера использовал MK8900
http://masterkit.ru/shop/smarthome/smarthouse/1200515
(была под рукой,от предыдущей разработки)
Конечно могут быть использованы и разные "клоны" Ардуино.
После того как все отладил на TermUDP,то написал уже нужную программу под Андроид с "бантиками" и развел плату.
Управление модулем esp8266 по COM порту AT-командами
Поддерживаются устройства и переходники USB-COM на чипах FT232RL(FTDI), CP2102(Silicon Lab), PL2303(PROLIFIC).
Андроид планшет должен иметь USB-HOST и версию не ниже 3.1. и разрешенные пермишены.
Если не работает,читаем что надо сделать.
https://play.google.com/store/apps/details?id=ru.shipov.termusb&hl=ru
Управление по TCP (TCP клиент)
Cоздаем на модуле TCP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermTCP&c=apps&hl=ru
Управление по UDP (UDP клиент)
Cоздаем на модуле UDP сервер подключаемся к модулю по WIFI сети и начинаем управлять модулем командами.
https://play.google.com/store/search?q=TermUDP&c=apps&hl=ru
Новая версия UDP клиента с возможностью записи макросов. Прогу делал под недавний проект, если не сложно отпишитесь что и как.
Внешний вид:
Рассмотрим применение программ относительно к моей задачи которую я недавно решал.
(Прошивка с AT командами и 9600 бод)
Нужно со смартфона по WIFI удаленно включать реле ,и получать данные о температуре с датчика DS18B20.
На uart порт модуля подключаю контроллер atmega168(c реле и ds18b20) и at командами создаю UDP сервер
Создаем мост UDP <--> COM на модуле:
void init_wifi(void)
{
//настроим UDP сервер на порту 7777
printf_P(PSTR("AT+RST\r\n"));
printf_P(PSTR("AT+CIPMUX=1\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPSERVER=1,7777\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPMUX=0\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIPSTART=\"UDP\",\"192.168.0.255\",7777\r\n"));
_delay_ms(1000);
printf_P(PSTR("AT+CIFSR\r\n"));
_delay_ms(1000);
}
При этом создается мост между UDP портом 7777 модуля, и uart портом. Короче все что приходит по UDP попадает в контроллер, а что отсылается в uart отсылается по UDP.
Далее все просто посылаем команду с Андроид терминала TepmUDP "!GetC" и получаем ответ на Андроид с температурой: "!TEMP +28" или включаем реле "!SetR1" ответ реле "RELEON"
Вот как отрабатываются команды в контроллере:
//получить температуру
if(!memcmp_P(uart_rx_buf, PSTR("GetC"),4))
{ unsigned char buf[8]="!TEMP";
temp_read();
if(subzero) buf[5]='-';
else
buf[5]='+';
if(temp < 10) buf[6]='0';
else
buf[6]=(48+((temp/10)%10));
if(temp < 1) buf[7]='0';
else
buf[7]=(48+(temp%10));
// buf[8]='\r';
send_udp1(buf,8);
}
else
;
//====================================
if(!memcmp_P(uart_rx_buf, PSTR("SetR0"),5))
{
printf_P(PSTR("AT+CIPSEND=9\r\n"));
_delay_ms(200);
printf_P(PSTR("!LEDOFF\r\n"));
LEDOFF;
}
В качестве "макетки" контроллера использовал MK8900
http://masterkit.ru/shop/smarthome/smarthouse/1200515
(была под рукой,от предыдущей разработки)
Конечно могут быть использованы и разные "клоны" Ардуино.
После того как все отладил на TermUDP,то написал уже нужную программу под Андроид с "бантиками" и развел плату.
Вложения
-
232.2 KB Просмотры: 103