用户
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索

85

主题

155

帖子

4万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
42477
2017-2-6 16:16:20 geeiot 管理员 楼主 01271
一、简单介绍
上一篇我们搭建了一个简单的智能家居的服务端。既然服务端有了,现在我们就来做一个简单的控制中心的demo。此示列的功能是可以接收远程命令,并通过命令控制台灯的开关。当然,也可以将收集到的温度、湿度、PM2.5等数据上传到服务器(但是这儿暂时就不做了)。然后有一个LED显示器来显示收到的命令。
使用的是arduino+esp8266为基础设备,esp8266作为客户端,连接到家里面的wifi,作为数据的接收和发送模块。arduino作为核心,处理收到的数据,并执行命令,然后控制gpio。这儿作为一个小台灯的控制器。
30751678779344524.jpg

二、基础知识储备
1、esp8266模块的使用
http://blog.csdn.net/mottled233/article/details/51112514
http://blog.csdn.net/mottled233/article/details/51318341
http://blog.csdn.net/mottled233/article/details/51318502
http://blog.csdn.net/mottled233/article/details/52792334

2、Arduino I2C2004 LED显示器的使用
http://www.arduino.cn/thread-6386-1-1.html

3、Arduino教程——DHT11数字温湿度传感器(本文没用到,扩展)
http://www.arduino.cn/thread-1429-1-2.html

4、Sharp GP2Y1010AU0F 空气质量传感器(本文没用到,扩展)
http://www.arduino.cn/thread-4327-1-1.html
http://www.tuicool.com/articles/zyYbqy

三、程序烧录
1、ESP8266程序
  1. #include <ESP8266WiFi.h>

  2. //wifi密码及ssid
  3. const char *ssid     = "Dragon";
  4. const char *password = "abc123456";
  5. //目标服务器ip即端口号
  6. const char *host = "192.168.1.106";
  7. const int tcpPort = 8787;

  8. WiFiClient client;//tcpclient实例

  9. void setup() {
  10.   //启动串口通信
  11.   Serial.begin(115200);
  12.   delay(10);
  13.   //连接到WiFi
  14.   WiFi.begin(ssid, password);
  15.   //处理未连接异常
  16.   while(WiFi.status() != WL_CONNECTED)
  17.   {
  18.     delay(1000);
  19.   }
  20. }

  21. void loop() {
  22.   //处理未连接到服务器异常
  23.   while(!client.connected())
  24.   {
  25.     if(!client.connect(host, tcpPort))
  26.     {
  27.       delay(1000);
  28.     }
  29.   }
  30.   //透传数据
  31.   while (client.available())//读取到的数据转发到到串口
  32.   {
  33.       uint8_t c = client.read();
  34.       Serial.write(c);
  35.   }
  36.   if (Serial.available())//串口读取到的转发到wifi,因为串口是一位一位的发送所以在这里缓存完再发送
  37.   {
  38.       size_t counti = Serial.available();
  39.       uint8_t sbuf[counti];
  40.       Serial.readBytes(sbuf, counti);
  41.       client.write(sbuf, counti);
  42.   }
  43. }
复制代码
2、Arduino控制中心程序
  1. 搞丢了,正在重新写。。。。
复制代码
四、通电测试

写的不是很详细,我慢慢完善




使用道具 举报 回复
发新帖
您需要登录后才可以回帖 登录 | 立即注册