1.字幕留言器

本程式碼可以在同網域之下傳送留言訊息

格式如下

http://ip/say?A= (底線內寫下你想要留言的內容)

例如

http://192.168.1.94/say?A=HelloWorld

函式庫下載

Webduino 函式庫

1602 LCD I2C 函式庫

esp8266 函式庫大全

ESP8266端

#include <ESP8266WiFi.h> // 提供Wi-Fi功能的程式庫

#include <ESP8266WebServer.h> // 提供網站伺服器功能的程式庫

//////////////////////////////////////////////////////////////////////////////////

#define SSID "----"

#define PASSWORD "-----"

//////////////////////////////////////////////////////////////////////////////////

ESP8266WebServer server(80); // 宣告網站伺服器物件與埠號

String data;

// 定義處理首頁請求的自訂函式

void rootRouter() {

server.send(200, "text/html", "Hello from <b>ESP8266</b>!");

}

void setup() {

Serial.begin(9600);

WiFi.mode(WIFI_STA);

WiFi.begin(SSID, PASSWORD);

while (WiFi.status() != WL_CONNECTED) {delay(500);}

server.on("/index.html", rootRouter); // 處理首頁連結請求的事件

server.on("/", rootRouter);

server.on("/say", []() {

String data=server.arg("A");

String cmd =data;

Serial.print(cmd);

server.send(200, "text/html", "Jeux say <b>" + data + "</b><br>" );

});

server.onNotFound([](){ // 處理「找不到指定路徑」的事件

server.send(404, "text/plain", "File NOT found!");

});

server.begin();

Serial.println("HTTP server started.");

}

void loop() {

server.handleClient(); // 處理用戶連線

}

Arduino端

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,16,2); // 若LCD 無法啟用,請將0X3F 改為0X27

String cmd;

void lcd_disp(String data){

lcd.clear();

int cmd_length = data.length();

if(cmd_length<17){

for(int i=0 ; i<cmd_length ; i++){

lcd.setCursor(i,0);

lcd.print(data.charAt(i));

}}else{

for(int i=0 ; i<16 ; i++){

lcd.setCursor(i,0);

lcd.print(data.charAt(i));

}

for(int i=16 ; i<cmd_length ; i++){

lcd.setCursor(i-16,1);

lcd.print(data.charAt(i));

}}}

void setup() {

Serial.begin(9600);

lcd.init();

lcd.backlight();

lcd.clear();

}

void loop() {

if(Serial.available()){

cmd="";

while(Serial.available()){

char c = Serial.read();

cmd+= c;

delay(10);}

lcd_disp(cmd);

}}