Arduino可以使用各种网络模块进行网络通信,其中包括以太网模块和Wi-Fi模块。以下是这两种模块的简要介绍以及基本的Arduino代码示例:

1. 以太网模块

以太网模块允许Arduino通过以太网进行有线网络通信。常见的以太网模块包括ENC28J60和W5100。

使用W5100以太网模块
#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };  // 替换为你的MAC地址
IPAddress ip(192, 168, 1, 177);  // 替换为你的IP地址
EthernetServer server(80);

void setup() {
  Serial.begin(9600);
  Ethernet.begin(mac, ip);
  server.begin();
}

void loop() {
  EthernetClient client = server.available();
  
  if (client) {
    Serial.println("Client connected");
    
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        client.print(c);  // 将接收到的数据返回给客户端
      }
    }
    
    Serial.println("Client disconnected");
  }
}

2. Wi-Fi模块

Wi-Fi模块允许Arduino通过Wi-Fi进行无线网络通信。常见的Wi-Fi模块包括ESP8266和ESP32。

使用ESP8266 Wi-Fi模块
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>

const char *ssid = "your-ssid";
const char *password = "your-password";

ESP8266WebServer server(80);

void setup() {
  Serial.begin(115200);

  // 连接到Wi-Fi网络
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");

  // 设置路由
  server.on("/", HTTP_GET, []() {
    server.send(200, "text/plain", "Hello, Arduino!");
  });

  server.begin();
}

void loop() {
  server.handleClient();
}

请注意,使用Wi-Fi模块时,确保连接到的网络正常运行,并且要根据你的网络配置调整代码中的SSID和密码等参数。阅读每个模块的规格和文档以确保正确连接和配置。


转载请注明出处:http://www.zyzy.cn/article/detail/11012/Arduino