您当前的位置: 首页 >  服务器

跋扈洋

暂无认证

  • 5浏览

    0关注

    221博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Web 服务器远程控制硬件(Arduino)

跋扈洋 发布时间:2020-11-16 10:08:40 ,浏览量:5

Web 服务器远程控制硬件(Arduino)
  • 程序流程
  • 程序
  • 后续

程序流程
  1. 定义热点名和密码
  2. 设置IP地址 IPAddress sip(192,168,1,29)
  3. 设置模式 WiFiServer server(80)
  4. 串口初始化
  5. GPIO初始化 pinMode(LED,OUTPUT) digitalWrite(LED,LOW)
  6. 打开WiFi,连接到设置的IP WiFi.begin(ssid,password) WiFi.config(sip,sip1,sip2);
  7. 连接热点 while(WiFi.status()!=WL_CONNECTED) 等待 跳出循环,则连接成功
  8. 打开服务器 server.begin()
  9. 打印IP地址 WiFi.localIP()
  10. 检查是否有客户端连接 WiFiClient client=server.available(); client=1;则有
  11. 等待客户端发送数据 while(!client.available()) delay(1);
  12. 读取请求 String rep=client.readStringUntil(’\r’); Serial.println(rep) client.flush()
程序
#define LED 16
#define KEY 0
#include 
const char* ssid="STM32L476";
const char* password="284122348";
IPAddress sip(192,168,1,29);
IPAddress sip1(192,168,1,1);
IPAddress sip2(255,255,255,0);
WiFiServer server(80);	//设置服务器端口为80
void setup() {
  Serial.begin(115200);
  delay(10);
  pinMode(LED,OUTPUT);
  digitalWrite(LED,LOW);
  //连接网络
  Serial.println();
  Serial.println();
  Serial.print("connexting to");
  Serial.println(ssid);
  WiFi.begin(ssid,password);
  WiFi.config(sip,sip1,sip2);
  while(WiFi.status()!=WL_CONNECTED)
  {
    delay(500);
    Serial.print(".");
  }
 Serial.println("");
 Serial.println("WiFi connected");
 //开始服务
 server.begin();
 Serial.println("Server started");
 Serial.println(WiFi.localIP());//IP地址
}
void loop() {
WiFiClient client=server.available();
if(!client){
  return;
}
  Serial.println("new client");
  while(!client.available())
  {
    delay(1);
  }
  String rep=client.readStringUntil('\r');
  Serial.println(rep);
  client.flush();
  //请求匹配
  int val;
  if(rep.indexOf("/gpio/0")!=-1)
  val=0;
  else if(rep.indexOf("/gpio/1")!=-1)
  val=1;
  else
  {
    Serial.println("invalid request");
    client.stop();
    return ;
  }
  digitalWrite(LED,val);
  client.flush();
  String s="HTTP/1.1 200 OK\r\nContent - Type:text/html\r\n\r\n\r\n\r\nGPIO is now";
  s+=(val)? "high":"low";
  s+="\n";
  client.print(s);
  delay(1);
  Serial.println("Client disconnected");
}
后续

如果想了解更多物联网、智能家居项目知识,可以关注我的项目实战专栏。 或者关注公众号。

编写不易,感谢支持。

关注
打赏
1663745539
查看更多评论
立即登录/注册

微信扫码登录

0.0923s