效果說明:用HTML制作一個簡易網頁,網頁上有兩個按鈕ON,OFF。 建立Arduino和所制作的網頁之間的通訊,但按下ON時,廣告燈閃爍,當按下OFF時,廣告燈熄滅。 電路圖:
圖片1.png (78.1 KB, 下載次數: 53)
下載附件
2020-5-5 09:43 上傳
代碼: - #include<EtherCard.h>
- #include<SPI.h>
- static byte myip[] = {192,168,43,21};//設置本機同網段ip【根據你自己的IP設置】
- static byte gwip[] = {192, 168, 43, 1};
- static byte mymac[] = {0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0x95};
- byte Ethernet::buffer[700];
- BufferFiller bfill;
- int LED_PIN[] = {2, 3, 4, 5};
- int cnt = 0;
- boolean flag = false;
- char *on = "ON";
- char *off = "OFF";
- char *statusLabel;
- char *buttonLabel;
- void light_on()//設置開燈
- {
- if (cnt % 2 == 0)
- {
- for (int i = 0; i < 4; i++)
- {
- digitalWrite(LED_PIN[ i], HIGH);
- delay(100);
- }
- }
- else
- {
- for (int i = 0; i < 4; i++)
- {
- digitalWrite(LED_PIN[ i], LOW);
- delay(100);
- }
- }
- }
- void light_off()//設置關燈
- {
- for (int i = 0; i < 4; i++)
- {
- digitalWrite(LED_PIN[ i], LOW);
- }
- }
- void setup()
- {
- Serial.begin(9600);
- if (!ether.begin(sizeof Ethernet::buffer, mymac, 10))
- Serial.println("Failed to access Ethernet controller");
- if (!ether.staticSetup(myip, gwip))
- Serial.println("Failed to set IP address");
- ether.printIp("LocalIP: ", ether.myip);
- ether.printIp("GWIP: ", ether.gwip);
- Serial.println();
- for (int i = 0; i < 4; i++)
- {
- pinMode(LED_PIN[ i], OUTPUT);
- }
- }
- void loop()
- {
- word len = ether.packetReceive();
- word pos = ether.packetLoop(len);
- if (pos)
- {
- char *data = (char *)Ethernet::buffer + pos;
- if (strstr(data, "GET /?status=ON") != 0)
- {
- Serial.println("Received ON ");
- flag = true;
- }
- if (strstr(data, "GET /?status=OFF") != 0)
- {
- Serial.println("Received OFF ");
- flag = false;
- }
- if (flag)
- {
- statusLabel = on;
- buttonLabel = off;
- }
- else
- {
- statusLabel = off;
- buttonLabel = on;
- }
- bfill = ether.tcpOffset();
- bfill.emit_p(PSTR("HTTP/1.0 200 OK\r\n"
- "Content-Type: text/html\r\nPragma: no-cache\r\n\r\n"
- "<html><head><title>WebLed</title></head>"
- "<body>LED燈 Status: $S "
- "<a href=\"/?status=$S\"><input type=\"button\" value=\"$S\"></a>"
- "</body></html>"),
- statusLabel, buttonLabel, buttonLabel);
- ether.httpServerReply(bfill.position());
- }
- if (flag)
- {
- light_on();
- }
- else
- {
- light_off();
- }
- cnt += 1;
- }
復制代碼
效果:
圖片2.png (682.45 KB, 下載次數: 59)
下載附件
2020-5-5 09:47 上傳
網頁控制led.zip
(36.41 KB, 下載次數: 15)
2020-5-5 09:49 上傳
點擊文件名下載附件
源代碼已轉二進制文件 下載積分: 黑幣 -5
|