Skip to content

ESP8266 based device for remote control PC via the serial port and power button

License

Notifications You must be signed in to change notification settings

dima-ch/esp-serial-terminal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

esp-serial-terminal

ESP8266 WiFi - RS232 мост. Дополнительная функция - управление реле. Применимо для замыкания контактов кнопки питания ПК. Разработано для реализации удаленного терминала для домашнего сервера. Позволяет работать с системой до загрузки сетевых интерфейсов и возможности использования SSH/VNC. Например, управление grub, ввод пароля от зашифрованного корневого раздела, решение проблем отказа монтирования ФС, или просто ttyS консоль.

Прошивка форкнута от ESP8266-transparent-bridge project. Использовалась ESP8266 KiCAD библиотека techinc-kicad-lib.

Собранная прошивка в [релизах] (https://github.com/dima-ch/esp-serial-terminal/releases).

#Аппаратная часть На текущий момент аппаратная часть доступна для модуля ESP8266 ESP-03. Схема и печатная плата в формате KiCAD лежат в каталоге schematic. GPIO2 модуля подключен к светодиоду индикации. GPIO14 подключен к реле. Выбран GPIO14 поскльку логический уровень на нем не прыгает при включение ESP8266.

#Индикация

  • Светодиод моргает во время работы
  • Когда подключен клиент светодиод моргает медленнее

Подключение удобно производить клиентами telnet. ConnectBot для Android работает с настройками по умолчанию, утилита Linux telnet требует переменной окружения export TERM=VT100, параметра -8 и выполнения после подключения ^]mode character.

#Конфигурация Следует убедиться, что в коде установлен #define CONFIG_DYNAMIC

Конфигурационные и управляющие AT команды

+++AT                                    # вывод в ответ OK
+++AT PWBTN <duration: SHORT, LONG, HARDRESET>
										 # Управление контактами реле: SHORT - замыкание на 0.5с, LONG - на 4с, HARDRESET - 4c, пауза в 1c, затем 0.5с
+++AT MODE                               # вывод текущего режима
+++AT MODE <mode: 1= STA, 2= AP, 3=both> # установка режима
+++AT STA                                # вывести текущий ssid и пароль подключения к точке доступа
+++AT STA <ssid> <password>              # установить ssid и пароль к точке доступа
+++AT AP                                 # вывести текущие настройки точки доступа
+++AT AP <ssid>                          # установить режим открытой точки доступа с указанным ssid
+++AT AP <ssid> <pw> [<authmode> [hide-ssid [<ch>]]]]
										 # установить параметры точки доступа, authmode:1= WEP,2= WPA,3= WPA2,4= WPA+WPA2, 
										 # hide-ssid:1-hide, 0-show(not hide), channel: 1..13
+++AT BAUD                               # вывести текущие настройки UART
+++AT BAUD <baud> [data [parity [stop]]] # установить битрейт и опционально data bits = 5/6/7/8 , parity = N/E/O, stop bits = 1/1.5/2
+++AT PORT                               # вывести текущей TCP порт
+++AT PORT <port>                        # установить TCP порт (перезагрузка)
+++AT FLASH                              # вывод настроек сохранения
+++AT FLASH <1|0>                        # 1: изменение настроек UART (++AT BAUD ...) сохраняется (по умолчанию), 0: изменения не сохраняются
+++AT RESET                              # программная перезагрузка

В случае успеха все команды возвращают "OK" или соответствующий вывод. На заметку, пароль и ssid не могут содержать пробелов.

Пример конфигурирования. telnet используется без ключей и настроек в отличие от режима работы. Если нет ответа на команду +++AT при ручном вводе, рекомендую вставлять команду в терминал из буфера обмена.

user@host:~$ telnet 192.168.1.197
Trying 192.168.1.197...
Connected to 192.168.1.197.
Escape character is '^]'.
+++AT MODE
MODE=3
OK
+++AT AP
SSID=ESP_9E2EA6 PASSWORD= AUTHMODE=0 IS_HIDDEH_SSID=0 CHANNEL=3
OK
+++AT AP newSSID password
OK
+++AT AP
SSID=newSSID PASSWORD=password AUTHMODE=2 IS_HIDDEH_SSID=0 CHANNEL=3
OK
+++AT AP ESP_9E2EA6
OK
+++AT AP
SSID=ESP_9E2EA6 PASSWORD= AUTHMODE=0 CHANNEL=3
OK
^]c

telnet> c
Connection closed.

Прошивка:

esptool.py --port /dev/ttyXXX write_flash 0x00000 0x00000.bin 0x40000 0x40000.bin
...
или с использованием ESP8266Flasher.exe из https://github.com/nodemcu/nodemcu-flasher с
0x00000.bin по адресу 0x00000
0x40000.bin по адресу 0x40000

Дополнительно см. [ESP8266-transparent-bridge project](https://github.com/beckdac/ESP8266-transparent-bridge)

#TODO
* ошибка на печатной плате и схеме, перепутаны пины DB9
* уменьшение клиентов до 2 и увеличение буфера отправки

About

ESP8266 based device for remote control PC via the serial port and power button

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •