wifi配网(esp8266和esp32)-http get和post方式

wifi配网(esp8266和esp32)-http get和post方式

通过http get和post方式来给esp芯片配网

步骤:
开机,指示灯亮起后(需要灯闪烁3下后),需在3s内(超过3s则会正常启动),按一下按键(注:切记按键时长一定要小于3s,建议按一下按键松开即可),则进入wifi配网模式,此时指示灯快闪。

配网时,热点ap信息如下:
ssid:qytech
password:12345678
IP address:192.168.4.1
请用手机或电脑浏览器,连接该ap,使用浏览器192.168.4.1后,输入内容登录。

适用:esp8266,esp8285芯片,esp32芯片
注意:esp32芯片支持蓝牙和wifi。为了和蓝牙配网区分,wifi配网时,需要按键大于3s且小于6s。

get方式

1)get请求格式

不带wifi校验

​ http://192.168.4.1/handleWifiInfo?ssid=yourWifiSsid&password=yourWifiPassword

​ 带wifi校验

​ http://192.168.4.1/handleWifiInfo?ssid=yourWifiSsid&password=yourWifiPassword&wifiCheck=1

2)设备使用接收到的wifi配置信息连接wifi,并返回响应(json格式)
{"status":200,"productId":"ssa10ads","deviceId":"BCDDC2575959","ip":"(IP unset)","tSPort":10058,"hSPort":80,"udpPort":8888}

字段说明:
​      status:值含义,请参考 话题和消息约定>code定义 章节
​      productId: 产品id,用于mqtt话题前缀productTopicPrefix
​      deviceId: 设备id,用户消息订阅,鉴权等等
​      ip: 设备ip,参数wifiCheck=1时,校验wifi成功会返回设备分配的ip
​      tSPort: tcp server端口号
​      hSPort: http server端口号
​      udpPort: udp端口号
get结果截图

不带wifi校验

在这里插入图片描述

带wifi校验

在这里插入图片描述

post方式

post /handleWifiInfo HTTP/1.1
Host: ${服务器ip}
Content-Type: application/json
body: 
{
    "ssid": "HBJX", 
    "password": "Passw0rd!",
    "wifiCheck": 1
}
1)post请求格式

不带wifi校验

http://192.168.4.1/handleWifiInfo

{
"ssid": "HBJX", 
"password": "Passw0rd!"
}

带wifi校验

http://192.168.4.1/handleWifiInfo

{
    "ssid": "HBJX", 
    "password": "Passw0rd!",
    "wifiCheck": 1
}
2)设备使用接收到的wifi配置信息连接wifi,并返回响应(json格式)
{"status":200,"productId":"ssa10ads","deviceId":"BCDDC2575959","ip":"192.168.0.109","tSPort":10058,"hSPort":80,"udpPort":8888}

字段说明:
​      status:值含义,请参考 话题和消息约定>code定义 章节
​      productId: 产品id,用于mqtt话题前缀productTopicPrefix
​      deviceId: 设备id,用户消息订阅,鉴权等等
​      ip: 设备ip,参数wifiCheck=1时,校验wifi成功会返回设备分配的ip
​      tSPort: tcp server端口号
​      hSPort: http server端口号
​      udpPort: udp端口号
post结果截图

不带wifi校验

在这里插入图片描述

带wifi校验

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
2022 / 01/ 30: 新版esptool 刷micropython固件指令不是 esptool.py cmd... 而是 esptool cmd... 即可;另外rshell 在 >= python 3.10 的时候出错解决方法可以查看:  已于2022年发布的: 第二章:修复rshell在python3.10出错 免费内容: https://edu.csdn.net/course/detail/29666 micropython语法和python3一样,编写起来非常方便。如果你快速入门单片机玩物联而且像轻松实现各种功能,那绝力推荐使用micropython。方便易懂易学。 同时如果你懂C语音,也可以用C写好函数并编译进micropython固件里然后进入micropython调用(非必须)。 能通过WIFI(2.1章),也能通过sim卡使用2G/3G/4G/5G联(4.5章)。 为实现语音控制,本教程会教大家使用tensorflow利用神经络训练自己的语音模型并应用。为实现通过页控制,本教程会教大家linux(debian10 nginx->uwsgi->python3->postgresql)站前后台入门。为记录单片机传输过来的数据, 本教程会教大家入门数据库。  本教程会通过通俗易懂的比喻来讲解各种原理与思路,并手把手编写程序来实现各项功能。 本教程micropython版本是 2019年6月发布的1.11; 更多内容请看视频列表。  学习这门课程之前你需要至少掌握: 1: python3基础(变量, 循环, 函数, 常用库, 常用方法)。 本视频使用到的零件与淘宝上大致价格:     1: 超声波传感器(3)     2: MAX9814麦克风放大模块(8)     3: DHT22(15)     4: LED(0.1)     5: 8路5V低电平触发继电器(12)     6: HX1838红外接收模块(2)     7:红外发射管(0.1),HX1838红外接收板(1)     other: 电表, 排线, 面包板(2)*2,ESP32(28)  
要使用 ESP32-CAM 和 Arduino Uno 实现摄像头功能,需要完成以下步骤: 1. 连接 ESP32-CAM 到 Arduino Uno 将 ESP32-CAM 连接到 Arduino Uno 的引脚上。连接方式如下: - ESP32-CAM VCC 引脚 -> Arduino Uno 5V 引脚 - ESP32-CAM GND 引脚 -> Arduino Uno GND 引脚 - ESP32-CAM U0T 引脚 -> Arduino Uno RX 引脚 - ESP32-CAM U0R 引脚 -> Arduino Uno TX 引脚 2. 置 Arduino IDE 环境 在 Arduino IDE 中,需要安装 ESP32 开发板支持库以及 ESP32-CAM 库。在“文件”->“首选项”中添加以下址到“附加开发板管理器址”中: ``` https://dl.espressif.com/dl/package_esp32_index.json ``` 然后在“工具”->“开发板”->“开发板管理器”中安装 ESP32 开发板支持库和 ESP32-CAM 库。 3. 上传代码 将以下代码上传到 Arduino Uno 中: ``` #include "esp_camera.h" #include <WiFi.h> // Replace with your network credentials const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; // IP address to send captured images IPAddress server(192, 168, 1, 100); WiFiClient client; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); // Initialize camera camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = 5; config.pin_d1 = 18; config.pin_d2 = 19; config.pin_d3 = 21; config.pin_d4 = 36; config.pin_d5 = 39; config.pin_d6 = 34; config.pin_d7 = 35; config.pin_xclk = 0; config.pin_pclk = 22; config.pin_vsync = 25; config.pin_href = 23; config.pin_sscb_sda = 26; config.pin_sscb_scl = 27; config.pin_pwdn = 32; config.pin_reset = -1; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; // Init with high specs to pre-allocate larger buffers if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } // Camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } // Drop down frame size for higher initial frame rate sensor_t * s = esp_camera_sensor_get(); s->set_framesize(s, FRAMESIZE_QVGA); // Set up HTTP client if (client.connect(server, 80)) { Serial.println("Connected to server"); } } void loop() { // Take a photo camera_fb_t * fb = esp_camera_fb_get(); if (!fb) { Serial.println("Camera capture failed"); return; } // Send photo to server if (client.connected()) { client.write("POST /upload HTTP/1.1\r\n"); client.write("Host: 192.168.1.100\r\n"); client.write("Content-Type: image/jpeg\r\n"); client.write("Content-Length: " + String(fb->len) + "\r\n"); client.write("\r\n"); client.write(fb->buf, fb->len); client.write("\r\n"); Serial.println("Photo sent to server"); } else { Serial.println("Server disconnected"); } // Free memory esp_camera_fb_return(fb); delay(5000); } ``` 将代码中的以下内容替换为你的络凭证: ``` const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; ``` 将以下内容替换为你的服务器 IP 地址: ``` IPAddress server(192, 168, 1, 100); ``` 上传代码后,打开串口监视器并等待 ESP32-CAM 连接到 Wi-Fi 络。然后它会自动拍摄照片并将其发送到指定的服务器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心之雅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值