Как отправить данные через tcp на ESP8266 с python?
Я хочу отправить данные с моего компьютера на ESP8266 через TCP. Я хотел сделать это с Python. Я запрограммировал ESP на Arduino-языке с библиотеками для него, и получение просто:
while(client.available()){
String in = client.readStringUntil('~');
//i use '~' instead of '\n' as end character because i often can't send '\n' from tcp android apps
...
}
Я использую встроенную библиотеку сокетов для Python, вот как я пытаюсь отправить данные:
server_ip = '192.168.1.100'
server_port = 3000
soc = socket.socket()
soc.connect((server_ip, server_port))
soc.send("mydata")
но я все еще получаю сообщение об ошибке "TypeError: требуется байтоподобный объект, а не 'str'". Я пробовал.sendall и т. Д., И иногда они работают, но затем мой ESP по какой-то причине перезапускается, может быть, кодирование? Может ли кто-нибудь дать мне верный путь, чтобы просто отправить базовую строку, даже с символами только для ascii?
1 ответ
Хорошо я сделал
.sendall(text.encode('utf-8')
и понял, что забыл про '~', теперь все работает:)
Проверьте этот проект на github для связи между nodemcu и python через ip