arduinoweb伺服器搭建
㈠ 如何用arino構建一個基於zigbee的網路
這里我們使用Arino Ethernet建立一個簡單網頁伺服器,當Arino伺服器接收到瀏覽器訪問請求時,即會發送響應消息,瀏覽器接收到響應消息,會將其中包含的HTML文本轉換為網頁顯示出來。
這樣就可以將感測器獲取到的信息顯示到網頁上,每個在該網路范圍內的計算機或其他移動設備,無論什麼平台都可以通過網頁瀏覽器了解到各感測器的數據。
[C++] 純文本查看 復制代碼
/*
OpenJumper WebServer Example
建立一個顯示感測器信息的Arino伺服器
[url=http://www.openjumper.com/]http://www.openjumper.com/[/url]
[url=http://x.openjumper.com/ethernet/]http://x.openjumper.com/ethernet/[/url]
*/
#include <SPI.h>
#include <Ethernet.h>
// 設定MAC地址、IP地址
// IP地址需要參考你的本地網路設置
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,177);
// 初始化Ethernet庫
// HTTP默認埠為80
EthernetServer server(80);
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 開始ethernet連接,並作為伺服器初始化
Ethernet.begin(mac, ip);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}
void loop() {
// 監聽客戶端傳來的數據
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
// 一個Http請求結尾必須帶有回車換行
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
// 如果收到空白行,說明http請求結束,並發送響應消息
if (c == '\n' && currentLineIsBlank) {
// 發送標準的HTTP響應
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>");
// 添加一個meta刷新標簽, 瀏覽器會每5秒刷新一次
// 如果此處刷新頻率設置過高,可能會出現網頁的卡死的狀況
client.println("<meta http-equiv=\"refresh\" content=\"5\">");
// 輸出每個模擬口讀到的值
for (int analogChannel = 0; analogChannel < 6; analogChannel++) {
int sensorReading = analogRead(analogChannel);
client.print("analog input ");
client.print(analogChannel);
client.print(" is ");
client.print(sensorReading);
client.println("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
// 已經開始一個新行
currentLineIsBlank = true;
}
else if (c != '\r') {
// 在當前行已經得到一個字元
currentLineIsBlank = false;
}
}
}
// 等待瀏覽器接收數據
delay(1);
// 斷開連接
client.stop();
Serial.println("client disonnected");
}
}
下載程序後,通過瀏覽器,訪問Arino Ethernet所在的IP地址(如程序中設定的IP地址為192.168.1.177),即可看到如圖10-11對應的網頁了。
在網頁中顯示了A0至A5所讀出的模擬值,你也可以通過修改以上程序,顯示其他類型的數據。
以上程序修改自Arino IDE自帶的Web Server常式,它是通過不斷刷新網頁來獲取Arino反饋來完成的。實際上,在當今web開發上,我們幾乎都是通過ajax不刷新網頁,來與伺服器通信的。這里我寫了一個ajax+arino web server的示例。
程序二
要製作這個項目,首先我們需要准備一個
該網頁HTML部分如下:
[HTML] 純文本查看 復制代碼
<!--常式網頁控制Arino -->
<!--奈何col 2014.12.24 v3.0 -->
<!--學了半小時js,求別吐槽 -->
<html>
<head>
<meta charset="UTF-8">
<title>OpenJumper!Arino Web Server</title>
<script type="text/javascript">
function send2arino(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
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();
}
function getBrightness(){
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
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,5000);
</script>
</head>
<body>
<div align="center">
<h1>Arino Web Server</h1>
<div>brightness:</div>
<div id="brightness">??</div>
<button id="light" type="button">Turn on</button>
<button type="button">About</button>
</div>
</body>
</html>
在該網頁中,第一個id為light的button標簽,用於控制開關燈。點擊後,會調用send2arino()函數,瀏覽器會以AJAX的方式向Arino伺服器發送含有"?on"或"?off"的GET請求。Arino伺服器通過判斷請求中的內容,做出開關燈動作。
而getBrightness()函數通過一個定時操作,每秒鍾運行一次,每次都以AJAX的方式向Arino伺服器發送含有"?getBrightness"的GET請求,Arino接收到該請求後,就會讀取感測器數據並返回給瀏覽器。同時getBrightness()函數會將id為brightness的div標簽中的內容更新為返回的數據。
此外我們將A0引腳連接光敏模塊,用於採集室內光線;D2引腳連接LED模塊。
示常式序代碼如下:
[C++] 純文本查看 復制代碼
/*
OpenJumper WebServer Example
[url=http://www.openjumper.com/ethernet/]http://www.openjumper.com/ethernet/[/url]
顯示室內照度+開關燈控制
通過手機、平板、計算機等設備訪問
Arino 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, ip);
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!Arino Web Server</title><script type=\"text/javascript\">");
client.println("function send2arino(){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>Arino Web Server</h1><div>brightness:</div><div id=\"brightness\">");
client.println(analogRead(Sensor));
client.println("</div><button id=\"light\" type=\"button\" onclick=\"send2arino()\">Turn on</button><button type=\"button\" onclick=\"alert('OpenJumper Web Server')\">About</button></div></body></html>");
}
下載程序,並將你的Arino接入到區域網中。現在你就可以通過瀏覽器訪問你的Arino了。頁面的中的亮度數據,每秒回更新一次,還可以通過「Turn on」、「Turn off」按鈕控制LED的開關。
需要注意的是Arino本身的存儲空間有限,存放和輸出網頁信息會消耗掉很多空間,因此在以上示常式序中,盡量將client.println()輸出的文本行數減少,可以節省一定的存儲空間。
在Arino Ethernet控制器及擴展板上通常都帶有SD卡槽,也可以嘗試將網頁數據放置在SD卡上,然後分段讀取,並通過Ethernet輸出,從而達到節省存儲空間的目的。
㈡ 新手求助Arino web server的問題,我有3個Mega3個XBEE,已經連好,1個m
需要幫你做設計嗎
㈢ 伺服器怎麼搭建
伺服器的搭建:
工具/原料:電腦:華碩筆記本、版本:win10(1803)、軟體:FlashFXP(5.4.0版本)
1、先登錄伺服器,找到(虛擬)主機管理。
㈣ win7如何搭建Web伺服器
區域網Web伺服器的主要功能是實現資源共享,同時藉助於區域網伺服器訪問頁面可有效的實現信息的同步下面我就如何在Windows7系統下搭建Web伺服器與大家交流一下。
win7 搭建Web伺服器 方法
1、打開控制面板,選擇 “程序”,雙擊“打開或關閉Windows服務”
2、在彈出的窗口中選擇“Internet信息服務”下面的所有選項,點擊確定
3、開始更新服務
4、更新完成後,打開瀏覽器,輸入“http://localhost/”回車,如果此時出現IIS7歡迎界面,說明Web伺服器已經搭建成功。
5、當web伺服器搭建成功後,把開發的網站安裝到Web伺服器的目錄中。一般情況下,當Web伺服器安裝完成後,會創建路徑“%系統根目錄%inetpub/wwwroot”,將已開發的網站復制到該路徑下。即可實現本地訪問該網站。
6、設置防火牆,讓區域網的 其它 計算機也能訪問本地網站資源。具體方法:打開控制面板,選擇“系統和安全”,點擊“允許程序通過Windows防火牆”,在彈出的對話框中勾選“萬維網服務HTTP”右側的兩個復選框,點擊“確定”退出。
在區域網中其它計算機上,打開瀏覽器,輸入 “http://Web伺服器的IP地址/”按回車鍵,就可以訪問伺服器上的資源”。
經過以上步驟設置後,區域網中的其它用戶就可以通過瀏覽器訪問你所共享的web資源了!
㈤ web伺服器怎麼搭建
1、首先在控制面板中打開「管理工具」,打開「Internet信息服務(IIS)管理器」;
2、點擊我們的伺服器,展開,然後右鍵點擊「應用程序池」,選擇「添加應用程序池」打開;
3、在彈出的對話框中填寫好應用程序池的名稱、.net版本、託管管道模式選擇「集成」,選好了之後點擊確定;
4、添加好了應用程序池之後,我們右擊這個應用程序池,選擇「高級設置」;
5、在彈出的對話框中,常規一欄中,在「啟動32位應用程序」處選擇「True」,然後點擊確定,這樣應用程序池就ok了;
6、然後我們右擊「網站」,選擇「添加網站」;
7、在彈出的對話框中,我們填入網站的名稱,應用程序池處就選擇剛才我們新建的那個應用程序池,然後選擇物理路徑,再把ip地址和的埠填上,主機名處我們填上域名,如果沒有就可以不填;
8、填寫完成之後,我們就點擊「確定
㈥ web伺服器是怎麼建立起來的 web伺服器建立方法簡述
1、點擊「Windows」鍵進入「開始」菜單,點擊「所有應用」,在所有應用菜單里點擊「Windows系統」里的「控制面板」
2、在控制面板對話框里點擊「程序」
3、在程序面板裡面點擊「啟用或關閉windows功能」
4、在「Windows功能」對話框里選中「Internet Information Services」,在Internet Information Services功能展開選擇框里根據你的需要選擇你需要的功能就行了,比如我不知道需要哪些功能所以全部選中反正不會出錯就好了,只要選中這些功能就行了。並點擊「確定」按鈕。
5、Windows功能開始下載並安裝你要的功能的程序,直到出現「Windows已完成請求的更改」,點擊重啟電腦
6、打開瀏覽器輸入localhost能打開,就說明安裝成功。
7、接下來我們要打開IIS管理器。桌面上右鍵點擊此電腦,管理。即可進入計算機管理在服務和應用程序里有IIS管理器,點擊 進入IIS管理器。
8、我們可以看到中間部分有很多圖標,找到ASP,點擊。
9、這一步是配置asp應用程序,找到啟用父路徑,選為True。
10、到這里IIS環境已經搭建好了,在瀏覽器里輸入localhost就可以看到iis的主頁了。想要添加網站程序可以點右側的高級設置,將物理路徑改成你的網站程序就能訪問了。
㈦ 如何設置Web伺服器
1、打開控制面板,選擇並進入「程序」,雙擊「打開或關閉Windows服務」,在彈出的窗口中選擇「Internet信息服務」下面所有地選項,點擊確定後,開始更新服務。
㈧ 如何使用arino提取網頁中的圖片並顯示在自己的網頁上
使用arino提取網頁中的圖片並顯示在自己的網頁上的方法:
1、設置screen.image(image, xPos, yPos);的參數:
image : a named instance of PImage.
xPos : int, location on the x-axis to start drawing
yPos : int, location on the y-axis to start drawing
2、舉例說明:
PImage logo;
void setup() {
// initialize the screen
EsploraTFT.begin();
// initialize the SD card
SD.begin(SD_CS);
// set the background the black
EsploraTFT.background(0, 0, 0);
// load the image into the named instance of PImage
logo = EsploraTFT.loadImage("arino.bmp");
// if it is a valid image file, turn the Esplora's LED green
if (logo.isValid()) {
Esplora.writeGreen(255);
}
else{
// if it is not valid, turn the LED red
Esplora.writeRed(255);
}
// draw the image on the screen starting at the top left corner
EsploraTFT.image(logo, 0, 0);
}
void loop() {
//循環處理另一個網頁上的圖片,存放到本網頁的固定位置
}