网上有很多关于有线pos机终端,Arduino 使用 ENC28J60 有线网络模块的知识,也有很多人为大家解答关于有线pos机终端的问题,今天pos机之家(www.poszjia.com)为大家整理了关于这方面的知识,让我们一起来看下吧!
本文目录一览:
1、有线pos机终端
有线pos机终端
上图就是 ENC28J60 网络模块。惯例,看接线方法,接7根:Vcc —— 3.3V(注意电压!)GND —— GNDRESET —— RESET;CS —— 片选,与“ether.begin()”的第三个参数一致;下面的测试代码接D10;SI —— D11(MOSI口,见下图);SO —— D12(MISO口,见下图);SCK —— D13(SCK口,见下图);
写一段代码,当用网页访问网络模块的时候,显示开关状态。当直接访问 http://192.168.1.17 时,显示当前状态:OFF当带参数访问时:http://192.168.1.17/?ON 或 http://192.168.1.17/?OFF则显示参数状态。
库文件:https://github.com/jcw/ethercard
源代码:
#include <EtherCard.h>//首先,你需要包括EtherCard库,并定义一些变量:mac地址(mymac[]),IP地址(myip[])和用来存储传入和传出的数据缓冲(Ethernet::buffer[700])。static byte mymac[] = {0xDD,0xDD,0xDD,0x00,0x00,0x01}; //网卡MAC地址,mac地址第一字节必须是偶数。static byte myip[] = {192,168,1,17}; //网卡IP地址byte Ethernet::buffer[700]; //缓冲区大小char on[] = "ON";char off[] = "OFF";boolean relayStatus;char* relayLabel;char* linkLabel;void setup () {Serial.begin(9600);Serial.println("ENC28J60有线网络模块演示");//用begin()方法开始网络连接,需要3个参数,分别为缓冲大小、MAC地址和Arduino的片选(CS)引脚.//片选通常为10,这个参数可以不写,如果不写的话默认为8,所以要根据你的电路进行设置。if(!ether.begin(sizeof Ethernet::buffer, mymac, 10))Serial.println( "连接网络失败");elseSerial.println("连接网络成功");//用staticSetup()方法配置静态的IP地址,参数有3个,分别为ip地址、网关和DNS,IP地址是必须的,网关和DNS是可选的。大家看下这个函数的参数定义。if(!ether.staticSetup(myip))Serial.println("设置IP地址失败");elseSerial.println("设置IP地址成功");relayStatus = false;relayLabel = off;linkLabel = on;}void loop() {//在loop里面, 你只需要2条命令://packetReceive()方法: 从网络接收一个新传入的数据包;//packetLoop() 方法:对具体收到的信息作出回应,包含“ping” 请求(ICMP echo 请求)。word len = ether.packetReceive();word pos = ether.packetLoop(len);if(pos) {if(strstr((char *)Ethernet::buffer + pos, "GET /?ON") != 0) {relayStatus = true;relayLabel = on;linkLabel = off;} else if(strstr((char *)Ethernet::buffer + pos, "GET /?OFF") != 0) {relayStatus = false;relayLabel = off;linkLabel = on;}BufferFiller bfill = ether.tcpOffset();bfill.emit_p(PSTR("HTTP/1.0 200 OK\\""Content-Type: text/html\\Pragma: no-cache\\\\""<html><head><meta charset='UTF-8' meta name='viewport' content='width="360px",height="auto" />
margin:-100px 0 0 -100px'>""<div style='font:bold 14px verdana;text-align:center'>当前状态 $S</div>""<br><div style='text-align:center'>""<a href='/?$S'></a>""</div></div></body></html>"), relayLabel, linkLabel, linkLabel);ether.httpServerReply(bfill.position());}}以上就是关于有线pos机终端,Arduino 使用 ENC28J60 有线网络模块的知识,后面我们会继续为大家整理关于有线pos机终端的知识,希望能够帮助到大家!
