当前位置:   article > 正文

Arduino使用ESP8266模块联网

arduino tcp断线重连

上一篇文章已经介绍了 利用 ArduinoIDE开发ESP8266模块,这篇文章介绍一下arduino怎么通过ESP8266模块联网

ESP8266模块准备

1. 透传程序烧写

  1. 以下程序的主要功能是:
  2. 1. 通电自动连接指定wifi
  3. 2. 通过tcp协议连接指定服务器的指定端口
  4. 3. tcp连接断线重连
  5. 4. 10s自动发送心跳包
  1. #include <ESP8266WiFi.h>
  2. const char *ssid = "你的wifi";
  3. const char *password = "wifi密码";
  4. WiFiClient client;
  5. const char *host = "服务器";
  6. const int port = 0;
  7. void setupWifi() {
  8. delay(10);
  9. Serial.println();
  10. Serial.print("Connecting to ");
  11. Serial.println(ssid);
  12. WiFi.begin(ssid, password);
  13. while (WiFi.status() != WL_CONNECTED) {
  14. delay(500);
  15. Serial.print(".");
  16. }
  17. Serial.println("");
  18. Serial.println("WiFi connected");
  19. Serial.println("IP address: ");
  20. Serial.println(WiFi.localIP());
  21. }
  22. void setup ( void ) {
  23. Serial.begin(9600);
  24. setupWifi();
  25. }
  26. int loopCount=0;
  27. void loop ( void ) {
  28. //断线重连
  29. while (!client.connected()){
  30. Serial.println("not connected");
  31. if (!client.connect(host, port)){
  32. Serial.println("connect server ....");
  33. delay(500);
  34. }
  35. }
  36. //透传
  37. while (client.available()){
  38. Serial.write(client.read());
  39. }
  40. while (Serial.available() > 0) {
  41. client.write(Serial.read());
  42. }
  43. //10s发送一次心跳包
  44. delay(500);
  45. loopCount++;
  46. if(loopCount == 20){
  47. client.println("ping");
  48. loopCount=0;
  49. }
  50. }

2. Arduino与ESP8266接线

  1. arduino采用软串口方式与ESP8266模块通信,
  2. 1. ESP 3.3v接arduino的3.3v电源
  3. 2. ESP EN(CH_PD)接 arduino的3.3v电源
  4. 3. ESP 的 TXD 接 arduino的10号引脚
  5. 4. ESP 的 RXD 接 arduino的11号引脚
  6. 5. ESP 的GND 接 arduino的GND

Arduino模块程序

  1. #include <SoftwareSerial.h>
  2. SoftwareSerial mySerial(10, 11); // RX, TX
  3. void setup() {
  4. Serial.begin(9600);
  5. mySerial.begin(9600);
  6. }
  7. void loop() {
  8. while(mySerial.available()){
  9. Serial.write(mySerial.read());
  10. }
  11. while(Serial.available()) {
  12. mySerial.write(Serial.read());
  13. }
  14. }

测试

  1. 下载个网络调试助手(USR-TCP232-Test-V1.3)
  2. 打开 tcp server设置号端口开始监听
    这里写图片描述
  3. 现在 打开 arduino所在的串口,向串口发送数据 会被TCPServer收到,TCPServer发数据arduino的串口也会收到

这里写图片描述

总结

  1. 至此你的arduino已经可以进行网络通信了,接下来就可以利用这些加上一个云服务器就可以做些有趣的东西了。
  2. eg. 1. arduino接个继电器可以实现远程控制的灯,风扇,电饭锅。。。。
  3. 2. arduino接个l298n直流电机驱动,就可以控制电机正反转,电动窗帘,遥控车。。。

做这些东西的过程中 又 发现了一款 ESP-12E的模块,已经集成了wifi模块并且有10个io引脚可以控制,同样可以用ArduinoIDE开发,价格只要15块左右,打算买个玩玩。

还有一个MQTT协议算是一个比较成熟的做物联网的比较好的协议

转载于:https://www.cnblogs.com/A-yes/p/9894147.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1013191
推荐阅读
相关标签
  

闽ICP备14008679号