Как отправить данные через 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

https://github.com/wahajmurtaza/NodeMCU-Python-Wifi

Другие вопросы по тегам