学习目标:
- 实现用esp32作为web服务器,用网页控制超声波模块
学习内容:
- esp32联网
- esp32搭建Web服务器
- 网页前端设计
- 超声波模块的使用
具体实现过程:
1. 模块介绍:
1.1
![](https://i-blog.csdnimg.cn/blog_migrate/3cf143c323829fe30eacf4d7cd0e7780.png)
2.2
2. 接线
超声波 | esp32 |
---|---|
Vcc | 3V3 |
Trig | D17 |
Echo | D2 |
Gnd | Gnd |
esp32+超声波传感器测距,参考:https://blog.csdn.net/H_L_J_/article/details/123806233
3. 创建一个boot.py文件
try:
import usocket as socket
except:
import socket
from machine import Pin
import network
# 舵机用的串口
trig = Pin(17,Pin.OUT)
echo = Pin(2, Pin.IN)
trig.value(0)
echo.value(0)
# 手机开热点的热点名称,或路由器wifi名
ssid = ''
# 热点的密码,或路由器wifi密码
password = ''
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while station.isconnected() == False:
pass
print('Connection successful')
print(station.ifconfig())
参考网站 https://blog.csdn.net/H_L_J_/article/details/123840095?spm=1001.2014.3001.5501
4. 创建一个main.py
4.1 方法一,每点击一下start按钮就会测一次距
# 方法一
import time
flag = ''
value = ''
#构建函数
def measure():
#触发超声波模块测距
trig.value(1)
time.sleep_us(10)
trig.value(0)
#检测回响信号,为低时,测距完成
while(echo.value() == 0):
pass
#开始不断递增的微秒计数器 1
t1 = time.ticks_us()
#检测回响信号,为高时,测距开始
while(echo.value() == 1):
pass
#开始不断递增的微秒计数器 2
t2 = time.ticks_us()
#计算两次调用 ticks_ms(), ticks_us(), 或 ticks_cpu()之间的时间,这里是ticks_us()
# 这时间差就是测距总时间,在乘声音的传播速度340米/秒,除2就是距离。
t3 = time.ticks_diff(t2,t1)/10000
#返回一个值给调用方,不带表达式的return相当于返回 None。
#这里返回的是:开始测距的时间减测距完成的时间*声音的速度/2(来回)
return t3*340/2
# 网页显示的内容