ESP32和ESP8266使用W5100和W5500以太网模块
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ā)生錯誤一次成功
| +5V | |
| NSS | SS |
| MO | MOSI |
| GND | GND |
| RST | GPIO4 |
| SCK | SCLK |
| MI | MISO |
結(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通訊了。
總結(jié)
以上是生活随笔為你收集整理的ESP32和ESP8266使用W5100和W5500以太网模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫入门实例八之股票数据定向
- 下一篇: 计算机等级考试java题型_计算机等级考