Arduino使用Arduino IDE向ESP8266发送数据

时间:2016-11-26 09:23:18

标签: arduino esp8266 arduino-esp8266

目标:使用Arduino IDE通过ESP8266从Arduino Nano向互联网发送两个整数值

我是嵌入式编程的新手,目前正致力于通过esp8266从Arduino模拟引脚向在线数据库(IP地址,端口)发送一些整数值的项目。

此时我知道如何在ESP8266中将数据单独发送到客户端模式的IP保持ESP。但我不知道如何将Arduno Nano生成的数据传输到ESP8266。

#include <ESP8266WiFi.h>
#include<Wire.h>

const char *ssid = "SSID";
const char *password = "asdfghjkl";

const char* host = "192.222.43.1";
int portNum = 986;

WiFiClient client;
WiFiServer server(portNum);

void setup() {
  Serial.begin(115200);
  Wire.begin();
  delay(10);
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  Serial.println("WIFI OK");
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
  }
  Serial.println("Connected to Wifi");
}

String message="";

void loop() {  
message = "12,13"; // Message to be sent to ESP8266

  if(!client.connected())
      {
        client.connect(host,portNum);
      }
      if(message.length()>0)
      {
        Serial.println(message);
        client.println(message);

        message="";
    }

我可以理解我必须连接Arduino的ESP-RX引脚 - ESP来传递数据。但由于某种原因,我无法使其发挥作用。

如果有人能用一个简单的例子帮我理解这个过程,我真的很感激。

感谢。

PS:我必须使用Arduino的原因是因为我使用的传感器需要2个模拟引脚而ESP只有1个。

2 个答案:

答案 0 :(得分:1)

您将Arduino Tx连接到Esp Rx

您将ESP Tx连接到您的PC的串行设备(这样您就可以在终端窗口中阅读来自ESP的消息)

在ESP上,您使用已加载的Wire库。

使用Serial对象侦听ESP的Rx引脚上的传入数据。

void loop()
{
     while (Serial.available()) 
     {
         Do something;
     }
}

这与Arduino到Arduino串口通信完全相同,这里有一个很好的教程: Arduino to Arduino comms

警告:ESP使用3.3V,Arduinos在Tx和Rx引脚上使用5V。您不得让5v到达ESP的引脚,否则它可能会烧坏。

本教程显示了一个安全的接线图。 safe wiring diagram

答案 1 :(得分:-1)

1)试试这个样本:simple sample that looks good

2)循环函数中存在逻辑问题 a)您的信息将尽快发送出去,因为在您离开循环功能后,您将再次输入该功能 b)您不等待传入数据

我希望样本有所帮助:我没有尝试过,因为我直接使用AT命令。