最近在接触Arduino和ESP8266模块,比较基础的就是运用Arduino IDE软件、ESP8266模块和一款手机软件来控制8266测试板上的小灯亮灭。
项目软件:
Arduino IDE软件
下载地址:http://arduino.cc/en/Main/Software
手机APP (ios系统)
我用的ios系统中似乎不太方便下载netorch网络调试助手,所以我直接在App Store里下载了一个UDP/TCP/REST,效果都是一样的。
硬件设备:
1.ESP8266模块(种类很多,我用的是物联网测试板带-CH340G)
我这个测试板带里自带CH340,如果大家之前使用过51单片机的话,电脑里应该都有CH340的驱动,就不用重复安装了。
2.一根usb数据线(一定要具备传输数据的功能,不能只有供电作用)
3.一台笔记本电脑(我的是windows10系统)
Arduino程序
/*这篇把8266作为TCPcleint,加入手机创建的tcpServer中来控制一个继电器*/
#include <ESP8266WiFi.h>
const char *ssid = "WIFI_NAME";//这里是我的wifi,你使用时修改为你要连接的wifi ssid
const char *password = "WIFI_PASSWORD";//你要连接的wifi密码
const char *host = "192.168.*.*";//修改为手机的的tcpServer服务端的IP地址,即手机在路由器上的ip
WiFiClient client;
const int tcpPort = 8266;//修改为你建立的Server服务端的端口号
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
delay(10);
Serial.println();
Serial.println();
Serial.print("Connecting to ");//写几句提示
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)//WiFi.status() ,这个函数是wifi连接状态,返回wifi链接状态
//这里就不一一赘述它返回的数据了,有兴趣的到ESP8266WiFi.cpp中查看
{
delay(500);
Serial.print(".");
}//如果没有连通向串口发送.....
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());//WiFi.localIP()返回8266获得的ip地址
}
void loop()
{
while (!client.connected())//几个非连接的异常处理
{
if (!client.connect(host, tcpPort))
{
Serial.println("connection....");
//client.stop();
delay(500);
}
}
while (client.available())//available()同ARDUINO,不解释了
{
char val = client.read();//read()同arduino
if (val == 'a') { //pc端发送a和b来控制
digitalWrite(LED_BUILTIN, HIGH);
client.write("已关灯");
}
if (val == 'b')
{
digitalWrite(LED_BUILTIN, LOW);
client.write("已开灯");
}
}
}
这是我参考另一位博主的代码,非常通俗易懂可操作,其中需要大家修改的部分就是ssid:修改为自己手机热点名称,password:修改为手机热点密码,host修改为手机APP中显示的server端ip地址,tcpport修改为手机APP中server端口号。到这里程序部分就不用改动。
常见问题!!!
编译时出现No such file or directory
这是我第一次编译时出现的问题,也是非常困扰,在csdn上参考了四五篇文章最终得以解决。
我总结的解决步骤就是:
1.https://arduino.esp8266.com/stable/package_esp8266com_index.json
将上述网址复制到Arduino IDE中文件->首选项->附加开发板管理网址中,点击“好”
2.点击工具->管理库->搜索esp8266,下载库,在线下载会很慢,甚至会连续出现很多错误导致下载不了,这里我重复了很多次未能解决,然后试了试下载之前的版本(也没必要下载最新版本),最后很成功。
3.如何检查是否下载成功?
可以点开工具,下载成功的话开发板一栏可以选择Deneric ESP8266 Module,这就代表下载成功,然后点击编译,上传至ESP8266板子就可以了。
手机软件调试:
1.打开个人热点,让ESP8266连接成功。前提是程序中你得修改上述部分内容
2.打开TCP调试app
3.在server端检查ip与port是否与程序中一致,一致后可以在发送栏输入a(关闭),b(打开)来测试小灯。
祝大家好运!,如有侵权,请联系我删除。谢谢大家。