Как отправить данные по tcp на ESP8266 с python? - PullRequest
0 голосов
/ 06 июня 2018

Я хочу отправить данные со своего компьютера на 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?

Ответы [ 2 ]

0 голосов
/ 09 августа 2019

Проверьте этот проект на github для связи между nodemcu и python по ip

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

0 голосов
/ 07 июня 2018

Хорошо, я сделал

.sendall(text.encode('utf-8')

и понял, что я забыл о '~', теперь все работает :)

...