日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ESP32和ESP8266使用W5100和W5500以太网模块

發布時間:2023/12/29 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ESP32和ESP8266使用W5100和W5500以太网模块 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ESP8266使用W5100及W5500以太網模塊

  • 概述
  • 程序
  • 連線
  • 結果
  • 經驗
  • 后記
  • ESP32+W5500

概述

實驗項目,希望用一個以太網模塊來實現以太網通訊,沒有使用WiFi網絡,而是用連線的以太網。
采用一個ESP8266模塊做主處理器,采用Arduino IDE做開發環境。首先選擇了一個W5500模塊連接以太網。結果通過SPI連接W5500,不成功。程序跑不起來。也沒有添加其他的庫,感覺現在的Arduino不是很友好,下載程序非常慢。就上某寶又購買了一個W5100模塊。(因為看Ethernet.h和Ethernet.cpp發現庫與W5100模塊兼容。這次實驗,一切正常,在這里分享一下使用情況。

程序

/*A simple server that answer the ping message. Using an ESP8266 . *//* Circuit:* Ethernet shield attached to pins : * D6: GPIO12 - MISO* D7: GPIO13 - MOSI* D8: GPIO15 - CS* D5: GPIO14 - SCLK*/#include <SPI.h> #include <Ethernet.h>#define MACADDRESS 0xDE, 0xAD, 0xBE, 0xEF, 0xDE, 0xED IPAddress ip(192,168,6,29); IPAddress gateway(192, 168, 6, 1); IPAddress subnet(255, 255, 255, 0);// telnet defaults to port 23 EthernetServer server(23);#define RST 4 //W5100 RST void setup() {pinMode(BUILTIN_LED, OUTPUT);Ethernet.init(5); // 初始化Ethernet板子pinMode(RST, OUTPUT); digitalWrite(RST,HIGH); //Reset this moduledelay(200); digitalWrite(RST,LOW); delay(200);digitalWrite(RST,HIGH); delay(200); Serial.begin(115200);Serial.println();byte mac[] = { MACADDRESS };Ethernet.begin(mac, ip, gateway, subnet); // print your local IP address:Serial.print("My IP address: ");Serial.println(Ethernet.localIP());server.begin(); }void loop() { }

連線


模塊和ESP8266連線不要發生錯誤一次成功

W5100ESP8266
+5V
NSSSS
MOMOSI
GNDGND
RSTGPIO4
SCKSCLK
MIMISO

結果


實驗成功,可以使用以太網和ESP8266通訊了。

經驗

使用W5500不知道為啥總是死機。沒有任何反應。看門狗都不起作用。用ESP32和W5500作了試驗,ESP32無法作主機,原因是采用的庫是C:\安裝Arduino IDE\libraries\Ethernet目錄下的頭文件問題,不能使用EthernetServer myServer(23); 定義變量。編譯不能通過。還有一個經驗是當不清楚SPI的接線時可以用打印的方法獲取SPI的端口。
這幾天又試驗了ESP32使用W5500的情況,ESP32可以作client,和server進行通訊,但不知道為啥還是不能作server。

后記

最近有網友討論ESP8266和W5500的板子通訊的事,實驗了一下。可以用ESP8266連接W5500實現以太網有線通訊,只要在初始化程序中增加Ethernet.init(5);這個命令選擇GPIO5作為片選信號。還要注意:

  • 不能使用默認的GPIO15作為片選CS信號,如果用GPIO15的話會出現死機現象。可能和我們的板子GPIO15連接的一個10KΩ的接地電阻有關。
  • 片選信號選擇其他的可以通訊并實現TCP等的傳輸。
  • 在初始化中添加Ethernet.Inti(5); 就可以,這個CS可以任意選

ESP32+W5500

關于ESP32+W5500的server不能運行解決了,可以使用ESP32和W5500實現有線以太網通訊。關鍵是庫函數有問題,在編譯時需要使用Server.h庫。我的庫的地址是在機器上的如下位置:

把這個頭文件中改成如下形式就可以編譯并使用W5500通訊了。

class Server: public Print { public://virtual void begin(uint16_t port=0) =0; modified by CAI at 2021-12-13virtual void begin() = 0; };

總結

以上是生活随笔為你收集整理的ESP32和ESP8266使用W5100和W5500以太网模块的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。