树莓派+arduino实现简单物联网开发(二)WiFi模块的配置esp8266

树莓派+arduino实现简单的全平台物联网开发(二)WiFi模块的配置esp8266

说明:

其实单纯的控制台灯的话只要树莓派+esp8266就够了,但为了以后拓展可能所以我加了arduino。在这我先把WiFi拿出来讲,因为毕竟通信不出问题才好办事嘛。

设计思路:

arduino–>WiFi模块–>树莓派的服务器–>客户端—>返回数据—>控制台灯

烧写程序:

在这里我们不用原厂的固件,而是自己写代码控制

第一步:

下载相关开发工具:
幸运的是 esp8266支持arduino ide开发。

下载地址:ardunio下载地址

第二步:

现在下载完ide并不能用来开发esp8266,需要下载相应的库才行,我一开始也是掉进了这个坑,打开arduino单击文件,选择首选项,打开设置界面
树莓派+arduino实现简单物联网开发(二)WiFi模块的配置esp8266_第1张图片

在网址里填写 http://arduino.esp8266.com/stable/package_esp8266com_index.json 这个网址,然后好的保存,之后单击工具,找到开发版管理,他会自动下载索引,之后搜索esp8266,你就可以看到这个库了,点击安装。

树莓派+arduino实现简单物联网开发(二)WiFi模块的配置esp8266_第2张图片

之后选择esp的开发版,就可以了(注意,如果之前步骤不执行是不会有对应的开发版型号的)

树莓派+arduino实现简单物联网开发(二)WiFi模块的配置esp8266_第3张图片

第三步:

好了·软件环境搭好了,接下来就是板子连接电脑了,这里需要一根ttl转接线,淘宝9.9包邮自己找去吧,买回来后记得安装好驱动,首先百度了一个esp的引脚图

树莓派+arduino实现简单物联网开发(二)WiFi模块的配置esp8266_第4张图片

这张图片很清楚了说明接线方式

 8266的引脚              ttl转接线的引脚

CH_PD 和 VCC  ——————>   VCC(3.3v)

    TXD       ——————>    RXD

    RXD       ——————>   TXD

GND 和 GPIO0  ——————>   GND

!!!!!注意重点  GPIO0在烧写时候要接GND,工作时候要悬空!!!!!

这里我说明一个问题哈,一个是线不要接错,然后在连接电脑时候总是莫名的烧不进去,要多试很多次才好,可能是我的线接触不好的关系,还有一个就是我的接3.3v电他并不工作,我也很疑惑,最后接了5v的才好使,买了2个都这样,对于板子没有备用的不要贸然尝试,烧坏不管。

这里可以用串口调试工具测试一下,输入指令AT,看看是否有OK返回。

第四步:

写代码:

这里由于数据分析操作由arduino执行,所以这部分写成透传模式就可以了。就是把服务器获取的数据不做任何处理的通过串口传给arduino。

示例代码:


#include 

const char *ssid     = "MERCURY_E400";//wifi ssid
const char *password = "12345";//WiFi密码
const char *addr = "192.168.1.108";//目标服务器ip
const int clPort = 7888;//端口号
WiFiClient client;//tcpclient实例

void setup() {
  Serial.begin(115200);
  delay(10);
  //连接到WiFi
  WiFi.begin(ssid, password);
  while(WiFi.status() != WL_CONNECTED)
  {
    Serial.println("wifi connect faile"); //处理未连接异常
    delay(100);
  }
}

void loop() {

  while(!client.connected())
  {
        Serial.println("unconnect server"); //处理未连接到服务器异常
    if(!client.connect(addr, clPort))
    {
          Serial.println("connect faile");
      delay(500);
    }
  }
  //透传数据
  while (client.available())//读取到的数据转发到到串口
  {
      uint8_t c = client.read();
      Serial.write(c);
  }
  if (Serial.available())//串口读取到的转发到wifi,因为串口是一位一位的发送所以在这里缓存完再发送
  {
      size_t counti = Serial.available();
      uint8_t sbuf[counti];
      Serial.readBytes(sbuf, counti);
      client.write(sbuf, counti);
  }

}

这里用到了服务器,关于这方面我的以后文章会去讲,这里主要说明一下WiFi连接和透传方面的内容,ok,把这个程序上传后,他就可以像介质一样让我们的ardunio和服务器进行无线通信了。

本文到这里结束,下篇文章聊聊板子和arduino的连接

你可能感兴趣的:(物联网开发)