Как TCP общаться ESP с использованием языка Arduino в качестве клиента с Raspberry Pi с использованием Python в качестве сервера, подключенного к тому же маршрутизатору через Wi-Fi - PullRequest
0 голосов
/ 09 мая 2019

Я устанавливаю соединение между raspberry pi и esp8266.Я хотел бы подключить esp8266 к Raspberry Pi в качестве сервера. Между ними нет никакой связи.Как я могу подключиться по TCP, когда подключен к одному и тому же маршрутизатору?

Я работаю над проектом, в котором esp взаимодействует с raspberry pi через WIFI.Сначала я подключил Raspberry Pi к ESP, и он работал хорошо.Поэтому я решил попробовать поменять соединение, подключив esp к raspberry pi, чтобы я мог подключить raspberry pi к нескольким esp.Я пытался связать свой собственный адрес, но продолжает выдавать ошибку.

код для Raspberry Pi

import socket

host = '192.168.42.1'
port = 8888

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(5)
print(socket.gethostname())


def Main():
    while True:
        print("listening to client....")
        conn, addr = s.accept()
        print("connected to: " + addr)
        print(conn)
    s.close()


if __name__ == '__main__':
    Main()

код ESP

#include <ESP8266WiFi.h>

#define SendKey 0  //Button to send data Flash BTN on NodeMCU
int ledPin = 5;

int port = 8888;  //Port number
IPAddress staticIP848_100(192,168,1,20);
IPAddress gateway848_100(192,168,1,1);
IPAddress subnet848_100(255,255,255,0);
WiFiServer server(port);

//Server connect to WiFi Network
const char *ssid = "MW40VD_19E7";  //Enter your wifi SSID
const char *password = "Cazp2x6U7t3A9jXg";  //Enter your wifi Password

int count=0;

void setup() 
{
  Serial.begin(115200);
  pinMode(SendKey,INPUT_PULLUP);  //Btn to send data
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
  Serial.println();

  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password); //Connect to wifi

  // Wait for connection  
  Serial.println("Connecting to Wifi");
  while (WiFi.status() != WL_CONNECTED) {   
    delay(500);
    Serial.print(".");
    delay(500);
  }

  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  WiFi.config(staticIP848_100, gateway848_100, subnet848_100);

  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());  
  server.begin();

Я ожидал, Pythonкод для запуска и esp8266 для подключения к Raspberry Pi, но на самом деле вывод

Traceback (most recent call last):
  File "tcpClient.py", line 7, in <module>
    s.bind((host, port))
OSError: [Errno 99] Cannot assign requested address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...