上一篇文章已经介绍了 利用 ArduinoIDE开发ESP8266模块,这篇文章介绍一下arduino怎么通过ESP8266模块联网
ESP8266模块准备
1. 透传程序烧写
- 以下程序的主要功能是:
- 1. 通电自动连接指定wifi
- 2. 通过tcp协议连接指定服务器的指定端口
- 3. tcp连接断线重连
- 4. 10s自动发送心跳包
- #include <ESP8266WiFi.h>
-
- const char *ssid = "你的wifi";
- const char *password = "wifi密码";
-
- WiFiClient client;
- const char *host = "服务器";
- const int port = 0;
-
- void setupWifi() {
- delay(10);
- Serial.println();
- Serial.print("Connecting to ");
- Serial.println(ssid);
-
- WiFi.begin(ssid, password);
-
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
-
- Serial.println("");
- Serial.println("WiFi connected");
- Serial.println("IP address: ");
- Serial.println(WiFi.localIP());
- }
-
- void setup ( void ) {
- Serial.begin(9600);
- setupWifi();
- }
- int loopCount=0;
- void loop ( void ) {
- //断线重连
- while (!client.connected()){
- Serial.println("not connected");
- if (!client.connect(host, port)){
- Serial.println("connect server ....");
- delay(500);
- }
- }
- //透传
- while (client.available()){
- Serial.write(client.read());
- }
- while (Serial.available() > 0) {
- client.write(Serial.read());
- }
- //10s发送一次心跳包
- delay(500);
- loopCount++;
- if(loopCount == 20){
- client.println("ping");
- loopCount=0;
- }
- }
2. Arduino与ESP8266接线
- arduino采用软串口方式与ESP8266模块通信,
- 1. ESP 3.3v接arduino的3.3v电源
- 2. ESP EN(CH_PD)接 arduino的3.3v电源
- 3. ESP 的 TXD 接 arduino的10号引脚
- 4. ESP 的 RXD 接 arduino的11号引脚
- 5. ESP 的GND 接 arduino的GND
Arduino模块程序
-
- #include <SoftwareSerial.h>
-
- SoftwareSerial mySerial(10, 11); // RX, TX
-
- void setup() {
- Serial.begin(9600);
- mySerial.begin(9600);
- }
-
- void loop() {
- while(mySerial.available()){
- Serial.write(mySerial.read());
- }
- while(Serial.available()) {
- mySerial.write(Serial.read());
- }
- }
测试
- 下载个网络调试助手(USR-TCP232-Test-V1.3)
- 打开 tcp server设置号端口开始监听
- 现在 打开 arduino所在的串口,向串口发送数据 会被TCPServer收到,TCPServer发数据arduino的串口也会收到
总结
- 至此你的arduino已经可以进行网络通信了,接下来就可以利用这些加上一个云服务器就可以做些有趣的东西了。
- eg. 1. arduino接个继电器可以实现远程控制的灯,风扇,电饭锅。。。。
- 2. arduino接个l298n直流电机驱动,就可以控制电机正反转,电动窗帘,遥控车。。。
做这些东西的过程中 又 发现了一款 ESP-12E的模块,已经集成了wifi模块并且有10个io引脚可以控制,同样可以用ArduinoIDE开发,价格只要15块左右,打算买个玩玩。
还有一个MQTT协议算是一个比较成熟的做物联网的比较好的协议