15608854882
发表于 2016-12-11 13:32
奈何col 发表于 2016-12-11 11:18
看懂这个例程就行啦
动态的显示 像在串口显示器那样
奈何col
发表于 2016-12-11 14:18
15608854882 发表于 2016-12-11 13:32
动态的显示 像在串口显示器那样
看懂这个例程,几乎和例程一样
15608854882
发表于 2016-12-11 14:33
奈何col 发表于 2016-12-11 14:18
看懂这个例程,几乎和例程一样
恩恩 我刚刚弄出来了动态显示但是 值是不对的 温度是-112直接插到开发板上的时候是实际的温度值 插到扩展板上 扩展板在插到开发板 温度值是负的
15608854882
发表于 2016-12-12 22:14
人呢
烈火
发表于 2017-1-4 18:23
本帖最后由 烈火 于 2017-1-4 18:28 编辑
楼主你好,本人小白,我用你的第二个代码烧进arduino后(只是把DHCP设置IP改成了自动获取IP,其他不变,如下:
上传完成后,能够读出自动获取的IP,浏览器输入IP后串口也显示new client!。但是浏览器确是一片空白,为什么呢?
D:\1.png
/*
OpenJumper WebServer Example
http://www.openjumper.com/ethernet/
显示室内照度+开关灯控制
通过手机、平板、计算机等设备访问
Arduino Server,就看到当前室内光线照度
在A0引脚连接光敏模块,用于采集室内光线;在2号引脚连接LED模块。
奈何col 2014.12.25
*/
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//IPAddress ip(192,168,1,177);
EthernetServer server(80);
EthernetClient client;
String readString="";
int Light=2;
int Sensor=A0;
void setup() {
Serial.begin(9600);
//初始化Ethernet通信
Ethernet.begin(mac);
server.begin();
pinMode(Light,OUTPUT);
Serial.print("Server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// 监听连入的客户端
client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = false;
while (client.connected()) {
if (client.available()) {
char c = client.read();
readString += c;
if (c == '\n') {
Serial.println(readString);
//检查收到的信息中是否有”on”,有则开灯
if(readString.indexOf("?on") >0) {
digitalWrite(Light, HIGH);
Serial.println("Led On");
break;
}
//检查收到的信息中是否有”off”,有则关灯
if(readString.indexOf("?off") >0) {
digitalWrite(Light, LOW);
Serial.println("Led Off");
break;
}
//检查收到的信息中是否有”getBrightness”,有则读取光敏模拟值,并返回给浏览器
if(readString.indexOf("?getBrightness") >0) {
client.println(analogRead(Sensor));
break;
}
//发送HTML文本
SendHTML();
break;
}
}
}
delay(1);
client.stop();
Serial.println("client disonnected");
readString="";
}
}
// 用于输出HTML文本的函数
void SendHTML()
{
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html><head><meta charset=\"UTF-8\"><title>OpenJumper!Arduino Web Server</title><script type=\"text/javascript\">");
client.println("function send2arduino(){var xmlhttp;if (window.XMLHttpRequest)xmlhttp=new XMLHttpRequest();else xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");element=document.getElementById(\"light\");if (element.innerHTML.match(\"Turn on\")){element.innerHTML=\"Turn off\"; xmlhttp.open(\"GET\",\"?on\",true);}else{ element.innerHTML=\"Turn on\";xmlhttp.open(\"GET\",\"?off\",true); }xmlhttp.send();}");
client.println("function getBrightness(){var xmlhttp;if (window.XMLHttpRequest)xmlhttp=new XMLHttpRequest();else xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\");xmlhttp.onreadystatechange=function(){if (xmlhttp.readyState==4 && xmlhttp.status==200)document.getElementById(\"brightness\").innerHTML=xmlhttp.responseText;};xmlhttp.open(\"GET\",\"?getBrightness\",true); xmlhttp.send();}window.setInterval(getBrightness,1000);</script>");
client.println("</head><body><div align=\"center\"><h1>Arduino Web Server</h1><div>brightness:</div><div id=\"brightness\">");
client.println(analogRead(Sensor));
client.println("</div><button id=\"light\" type=\"button\" onclick=\"send2arduino()\">Turn on</button><button type=\"button\" onclick=\"alert('OpenJumper Web Server')\">About</button></div></body></html>");
}
烈火
发表于 2017-1-4 18:49
本帖最后由 烈火 于 2017-1-4 18:51 编辑
另,这是我前几天在您写的《Arduino程序设计基础》这本书上看到的,照着写的程序,(和上面的大同小异,如下:),这个程序可以在web端显示,串口也能检测到IP,但是也是点击turn on按键LED和串口都没有反应呢。硬件是:Arduino UNO和Ethernet W5100扩展板。
#include "SPI.h"
#include "Ethernet.h"
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
EthernetServer server(80);
EthernetClient client;
String readString = "";
int Light = 2;
int Sensor = A0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Ethernet.begin(mac);
server.begin();
pinMode(Light, OUTPUT);
Serial.print("Server IP is:");
Serial.println(Ethernet.localIP());
}
void loop()
{
// put your main code here, to run repeatedly:
client = server.available();
if (client)
{
Serial.println("new client!");
// SendHTML();
while (client.connected())
{
if (client.available())
{
char c = client.read();
readString += c;
if (c == '\n')
{
Serial.println(readString);
if (readString.indexOf("? on") > 0)
{
digitalWrite(Light, HIGH);
Serial.println("LED ON");
break;
}
if (readString.indexOf("? off") > 0)
{
digitalWrite(Light, LOW);
Serial.println("LED OFF");
break;
}
if (readString.indexOf("? getBrightness") > 0)
{
client.println(analogRead(Sensor));
break;
}
SendHTML();
break;
}
}
}
delay(1);
client.stop();
Serial.println("client disconnected");
readString = "";
}
}
void SendHTML()
{
client.println("HTTP/1.1 200 OK");
client.println("Content - Type:text/html");
client.println("Connection: close");
client.println("");
client.println("<! DOCTYPE HTML>");
client.println("<html><head><meta charset = \"UTF - 8\"><title>LED</title>");
client.println("<script type = \"text/javacript\">");
client.println("funciton send2arduino(){ var xmlhttp; if(window.XMLHttpRequest) xmlhttp=new XMLHttpRequest(); else xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\"); element = document.getElementById(\"light\"); if(element.innerHTML.match(\"Turn on\")) { element.innerHTML=\"Turn off\"; xmlhttp.open(\"GET\",\"? on\",true); } else { element.innerHTML=\"Turn on\"; xmlhttp.open(\"GET\",\"? off\",true); } xmlhttp.send(); }");
client.println("function getBrightness(){ var xmlhttp; if(window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject(\"Microsoft.XMLHTTP\"); } xmlhttp.onreadystatechange=function() { if(xmlhttp.readState==4 && xmlhttp.status==200) { document.getElementById(\"brightness\").innerHTML=xmlhttp.responseText } } xmlhttp.open(\"GET\",\"? getBrightness\",true); xmlhttp.send(); }");
client.println("window.setInterval(getBrightness,1000);");
client.println("</script>");
client.println("</head><body><div align= \"center\"><h1>LED</h1><div>brightness:</div>");
client.println("<div id=\"brightness\">");
client.println(analogRead(Sensor));
client.println("</div>");
client.println("<button id=\"light\" type=\"button\" onclick=\"send2arduino()\">Turn on</button>");
client.println("</div></body></html>");
}
奈何col
发表于 2017-1-4 20:09
烈火 发表于 2017-1-4 18:49
另,这是我前几天在您写的《Arduino程序设计基础》这本书上看到的,照着写的程序,(和上面的大同小异,如 ...
换chrome
烈火
发表于 2017-1-4 20:36
奈何col 发表于 2017-1-4 20:09
换chrome
我换成chrome了,但是结果web页面直接把源码显示出来了。下图左边是360浏览器显示,右边是chrome显示。
奈何col
发表于 2017-1-4 20:57
烈火 发表于 2017-1-4 20:36
我换成chrome了,但是结果web页面直接把源码显示出来了。下图左边是360浏览器显示,右边是chrome显示。
...
F12看看有无报错,然后对应报错修改。应该都是浏览器的问题,如果没有报错的话,我也不知道咋改了
烈火
发表于 2017-1-4 21:16
奈何col 发表于 2017-1-4 20:57
F12看看有无报错,然后对应报错修改。应该都是浏览器的问题,如果没有报错的话,我也不知道咋改了 ...
chrome把代码都识别到body里面了,好奇怪呀。
页:
1
2
3
4
5
6
7
[8]
9
10
11
12