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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

ESP8266使用W5100及W5500以太網(wǎng)模塊

  • 概述
  • 程序
  • 連線
  • 結(jié)果
  • 經(jīng)驗(yàn)
  • 后記
  • ESP32+W5500

概述

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

程序

/*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連線不要發(fā)生錯誤一次成功

W5100ESP8266
+5V
NSSSS
MOMOSI
GNDGND
RSTGPIO4
SCKSCLK
MIMISO

結(jié)果


實(shí)驗(yàn)成功,可以使用以太網(wǎng)和ESP8266通訊了。

經(jīng)驗(yàn)

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

后記

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

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

ESP32+W5500

關(guān)于ESP32+W5500的server不能運(yùn)行解決了,可以使用ESP32和W5500實(shí)現(xiàn)有線以太網(wǎng)通訊。關(guān)鍵是庫函數(shù)有問題,在編譯時需要使用Server.h庫。我的庫的地址是在機(jī)器上的如下位置:

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

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

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。