全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 通信网络 >

ENC28J60以太网模块与Arduino的连接方案介绍

时间:2020-11-01 10:38

人气:

作者:admin

标签: 控制器IC 

导读:在本篇文章中,我们将学习如何将ENC28J60以太网模块与Arduino Web服务器进行连接,以在LAN局域网或无线网络中的计算机与Arduino之间建立通信。我们将ENC28J60以太网控制器与Arduino连接,以便...

在本篇文章中,我们将学习如何将ENC28J60以太网模块与Arduino Web服务器进行连接,以在LAN局域网或无线网络中的计算机与Arduino之间建立通信。我们将ENC28J60以太网控制器与Arduino连接,以便我们的Arduino成为该网络的成员之一。一旦完成,arduino可以控制该网络中的事物,或者arduino可以由该网络的其他设备控制。 ENC28J60以太网模块与Arduino的连接将进一步为我们提供在Arduino上自由使用互联网。

ENC28J60以太网模块简介

ENC28J60以太网模块使用Microchip ENC28J60独立式以太网控制器IC,具有许多功能,可满足大多数网络协议要求。该板通过标准SPI接口直接连接到大多数微控制器,传输速度高达20MHz。

该以太网网模块是向基于微控制器的产品和项目添加LAN连接的最简单方法。

1.使用此模块为您的产品启用以太网接口。它可与任何工作于3. 3V或5V的微控制器一起使用。

2.该模块工作在3.3V电压下,并与5V接口兼容。

3.使用SPI进程与其他连接。

4.托管Web服务器,对模块执行ping操作或通过Internet将其添加到家庭自动化中。

5.该模块的核心是Microchip的ENC28J60以太网控制器。

6.使用集成磁性装置的RJ45网口可以减小电路板的尺寸。

框图和连接方式:

以下是一个简单的框图,介绍了Arduino和ENC28J60模块如何与路由器和计算机连接。

路由器应与LAN连接,并应具有多个输入输出端口。从路由器将一根以太网电缆连接到计算机系统,将另一根以太网电缆连接到ENC28J60模块。同样,ENC28J60模块连接到Arduino。 Arduino和ENC28J60之间的连接如下。

如何将ENC28J60以太网模块与Arduino Web服务器连接:

1.从此处下载ENC28J60库:ENC28J60库

2.将库文件添加到您的Arduino IDE库中:

3.添加完成后,打开示例,然后从 Master Library中选择以下示例:

4.编译代码,然后将代码上传到Arduino UNO开发板:

5.打开串口监视器并复制IP地址:

6. 打开网络浏览器并粘贴IP地址,然后按下Enter:

Arduino连接ENC28J60以太网模块的示例代码:

#include

#define STATIC 0 // set to 1 to disable DHCP (adjust myip/gwip values below)

#if STATIC

// ethernet interface ip address

static byte myip[] = { 192,168,1,200 };

// gateway ip address

static byte gwip[] = { 192,168,1,1 };

#endif

// ethernet mac address - must be unique on your network

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };

byte Ethernet::buffer[500]; // tcp/ip send and receive buffer

const char page[] PROGMEM =

"HTTP/1.0 503 Service Unavailable "

"Content-Type: text/html "

"Retry-After: 600 "

" "

""

""</p> <p > "Service Temporarily Unavailable"</p> <p > ""

""

"

This service is currently unavailable

"

"

"

"The main server is currently off-line.
"

"Please try again later."

"

"

""

""

;

void setup(){

Serial.begin(57600);

Serial.println(" [backSoon]");

if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)

Serial.println( "Failed to access Ethernet controller");

#if STATIC

ether.staticSetup(myip, gwip);

#else

if (!ether.dhcpSetup())

Serial.println("DHCP failed");

#endif

ether.printIp("IP: ", ether.myip);

ether.printIp("GW: ", ether.gwip);

ether.printIp("DNS: ", ether.dnsip);

}

void loop(){

// wait for an incoming TCP packet, but ignore its contents

if (ether.packetLoop(ether.packetReceive())) {

memcpy_P(ether.tcpOffset(), page, sizeof page);

ether.httpServerReply(sizeof page - 1);

}

}
编辑:hfy

温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信