Получение данных с сервера с использованием ESP8266 / Arduino Uno

Sachith спросил: 26 ноября 2017 в 05:03 в: automation

У меня Raspberry Pi работает как точка доступа Wi-Fi, а Arduino Uno пытается получить от него данные с помощью модуля ESP8266.

Это код моего приемника для Arduino:

#include <SoftwareSerial.h>
#include <SerialESP8266wifi.h>#define sw_serial_rx_pin 4 //  Connect this pin to TX on the esp8266
#define sw_serial_tx_pin 6 //  Connect this pin to RX on the esp8266
#define esp8266_reset_pin 5 // Connect this pin to CH_PD on the esp8266, not reset. (let reset be unconnected)SoftwareSerial swSerial(sw_serial_rx_pin, sw_serial_tx_pin);// the last parameter sets the local echo option for the ESP8266 module..
SerialESP8266wifi wifi(swSerial, swSerial, esp8266_reset_pin, Serial);//adding Serial enabled local echo and wifi debugString inputString;
boolean stringComplete = false;
unsigned long nextPing = 0;void setup() {
  inputString.reserve(20);
  swSerial.begin(9600);
  Serial.begin(9600);
  while (!Serial)
    ;
  Serial.println("Starting wifi");  wifi.setTransportToTCP();// this is also default
  // wifi.setTransportToUDP();//Will use UDP when connecting to server, default is TCP  wifi.endSendWithNewline(true); // Will end all transmissions with a newline and carriage return ie println.. default is true
  wifi.begin();
  wifi.connectToAP("RPi", "raspberry");
  wifi.connectToServer("192.168.50.1", "1234");
  wifi.send(SERVER, "ESP8266 test app started");
}void loop() {
  //Make sure the esp8266 is started..
  if (!wifi.isStarted())
    wifi.begin();  //Send what you typed in the arduino console to the server
  static char buf[20];
  if (stringComplete) {
    inputString.toCharArray(buf, sizeof buf);
    wifi.send(SERVER, buf);
    inputString = "";
    stringComplete = false;
  }  //Send a ping once in a while..
  if (millis() > nextPing) {
    wifi.send(SERVER, "Ping ping..");
    nextPing = millis() + 10000;
  }  //Listen for incoming messages and echo back, will wait until a message is received, or max 6000ms..
  WifiMessage in = wifi.listenForIncomingMessage(6000);
  if (in.hasData) {
    if (in.channel == SERVER)
      Serial.println("Message from the server:");
    else
      Serial.println("Message a local client:");
    Serial.println(in.message);
    //Echo back;
    wifi.send(in.channel, "Echo:", false);
    wifi.send(in.channel, in.message);
    nextPing = millis() + 10000;
  }  //If you want do disconnect from the server use:
  // wifi.disconnectFromServer();
}//Listen for serial input from the console
void serialEvent() {
  while (Serial.available()) {
    char inChar = (char)Serial.read();
    inputString += inChar;
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

Когда я выполняю, на последовательном мониторе отображается:

OK ARFa C⸮C⸮j⸮H⸮AT + AWJAP ="RPi", # raspberry"WIFI DISCONNECT WIFICONNECVED WIFI GOT IP

OK AT + CIFSR

+ CIFSR: STAIP,"192.168.50.13" + CIFQR: STAMAC,"2c: 3a: eAT + CIPSTART = 4,"TCP","192.0n8.50.1", 121l

Тип ссылки ERROR

ISC DHCP-сервер Raspberry Pi:

wlan0: STA 2c: 3a: e8: 4e: bf: 70 RADIUS: начало сеанса учета

Я также ссылался на эту тему SO , но не повезло.

0 ответов