Arduino使用ESP8266模塊聯網

上一篇文章已經介紹了 利用 ArduinoIDE開發ESP8266模塊,這篇文章介紹一下arduino怎麼經過ESP8266模塊聯網web

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());
  } 
}

測試

  1. 下載個網絡調試助手(USR-TCP232-Test-V1.3)
  2. 打開 tcp server設置號端口開始監聽
    這裏寫圖片描述
  3. 如今 打開 arduino所在的串口,向串口發送數據 會被TCPServer收到,TCPServer發數據arduino的串口也會收到

這裏寫圖片描述

總結

至此你的arduino已經能夠進行網絡通訊了,接下來就能夠利用這些加上一個雲服務器就能夠作些有趣的東西了。
eg. 1. arduino接個繼電器能夠實現遠程控制的燈,風扇,電飯鍋。。。。
    2. arduino接個l298n直流電機驅動,就能夠控制電機正反轉,電動窗簾,遙控車。。。

作這些東西的過程當中 又 發現了一款 ESP-12E的模塊,已經集成了wifi模塊而且有10個io引腳能夠控制,一樣能夠用ArduinoIDE開發,價格只要15塊左右,打算買個玩玩。服務器

還有一個MQTT協議算是一個比較成熟的作物聯網的比較好的協議網絡

相關文章
相關標籤/搜索