【物联网创新实践】ESP32实验

范例

环境配置

Thonny配置

在这里插入图片描述

在这里插入图片描述

智能农业

LED



from machine import Pin
import time

LED=Pin(18,Pin.OUT)
KEY=Pin(0,Pin.IN,Pin.PULL_UP)
state=0

while True:
    if KEY.value()==0:
        time.sleep(0.5)
        if KEY.value()==0:
            state=not state
            LED.value(state)
            while not KEY.value():
                pass

在这里插入图片描述

PWD

'''
呼吸灯PWM
'''

from machine import Pin,Timer,PWM

pwm=PWM(Pin(18),20000,0)
tag=0
duty=0


def setLED(t):
    global duty,tag
    print('duty')
    print(duty)
    
    if (tag == 0):
        duty +=16
        if(duty >=1023):
            tag=1
        else:
            tag=0
    else:
        duty -=16
        if(duty <=0):
            tag=0
        else:
            tag=2
        
    pwm.duty(duty)
    
tim=Timer(1)
tim.init(period=10,mode=Timer.PERIODIC,callback=setLED)

try:
    while True:
        pass
except:
    tim.deinit()
    pwm.deinit()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

温湿度传感器

'''
温湿度传感器
'''
from machine import Pin
import dht
import time

sensor=dht.DHT11(Pin(16))
print('dht11_test')

while True:
    time.sleep(2)
    sensor.measure()
    print("temp=",sensor.temperature(),"摄氏度")
    print("humi=",sensor.humidity(),"%")

在这里插入图片描述

土壤湿度传感器

'''
土壤湿度传感器
'''
from machine import Pin,ADC

import time

adc_humi=ADC(Pin(35))
adc_humi.atten(ADC.ATTN_11DB)
adc_humi.width(ADC.WIDTH_9BIT)


while True:
    humi=adc_humi.read()
    print('土壤湿度',humi)
    if humi <= 300:
        print('土壤湿润')
    else:
        print('土壤干燥')
    time.sleep(1)

在这里插入图片描述
在这里插入图片描述

光照强度感应

'''
光照强度感应
'''
from machine import I2C,Pin

import time
import bh1750

i2c=I2C(scl=Pin(4),sda=Pin(17),freq=100000)


while True:
   bh_lux=bh1750.sample(i2c)
   print("bh_lux",bh_lux)
   time.sleep(5)
 

在这里插入图片描述

无线路由器连接


from machine import Pin

import time
import network
print('hi esp32-micropython')
LED=Pin(12,Pin.OUT)

count=0
wlan=network.WLAN(network.STA_IF)
wlan.active(True)
if not wlan.isconnected():
    print('connecting to wifi...')
    wlan.connect('biosheep','********')
    while not wlan.isconnected() and count < 20:
        LED.value(not LED.value())
        count +=1
        time.sleep(0.5)
if wlan.isconnected():
    LED.value(1)
    print('ip address',wlan.ifconfig()[0])
else:
    LED.value(0)
    print('wifi connect fail')

 

在这里插入图片描述

阿里云

IoT Studio

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

连接设备

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
安装传感器
在这里插入图片描述
在这里插入图片描述

web应用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
预览如下:
在这里插入图片描述

智能安防

声音传感器

from machine import Pin  
import  time

gan = Pin(2,Pin.IN)   
sheng=Pin(22,Pin.IN)

while True:
   value1 = gan.value()
   print("磁场",value1)
   value2 = sheng.value()
   print("声音",value2)   
   time.sleep(1)   #延时1秒,实现每1秒判断一次

在这里插入图片描述
在这里插入图片描述

电容触摸按键

from machine import Pin  
import time

led = Pin(18,Pin.OUT)    #在18脚外接一个led灯,也可利用板子自带led
touch = Pin(33,Pin.IN)   #定义33脚为触摸脚

while True:
   value = touch.value()
   print(value)   #打印出33脚感应的值 
   #若读取的值大于阀值,则为没触摸
   if value == 0 :
       led.value(0)
   else:
       led.value(1)  #触摸则灯亮
   
   time.sleep(1)   #延时1秒,实现每1秒判断一次触摸状态

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

超声波传感器

'''
超声波检测

'''

from machine import Pin
import time
# HC-SR04超声波模块测距原理是:给模块1个最少10us的高电平,模块接受到高电平后开始发射8个40KHz的声波,
# echo脚会由0变为1,MCU开始计时,当超声波模块接收到返回的声波时,echo由1变为0,MCU停止计时,
# 这时间差就是测距总时间,在乘声音的传播速度340米/秒,除2就是距离。

#定义IO口模式,以及初始状态
trig = Pin(23,Pin.OUT)
echo = Pin(21, Pin.IN)
trig.off()
echo.off()

#构建函数
while True:
    trig.on()
    time.sleep_us(10)
    trig.off()
    while(echo.value() == 0):
        pass
    t1 = time.ticks_us()
    while(echo.value() == 1):
        pass
    t2 = time.ticks_us()
    t3 = time.ticks_diff(t2,t1)/10000
    echo_dis=t3*340/2
    print("echo_dis=",echo_dis)
    time.sleep(1)

在这里插入图片描述
在这里插入图片描述

蜂鸣器

'''
蜂鸣器
日期:2021.05
作者:Ashton
'''

from machine import Pin, PWM
import time

Beep = PWM(Pin(5), freq=0, duty=512)  #在同一语句下创建和配置PWM

#蜂鸣器发出频率 200Hz 响声
Beep.freq(200)
time.sleep_ms(1000)

#蜂鸣器发出频率 400Hz 响声
Beep.freq(400)
time.sleep_ms(1000)

#蜂鸣器发出频率 600Hz 响声
Beep.freq(600)
time.sleep_ms(1000)

#蜂鸣器发出频率 800Hz 响声
Beep.freq(800)
time.sleep_ms(1000)

#蜂鸣器发出频率 1000Hz 响声
Beep.freq(1000)
time.sleep_ms( 1000)

#停止
Beep.deinit()

在这里插入图片描述

智能家居

光敏电阻

'''
光敏传感器检测

'''

from machine import Pin,ADC
import time

#初始化ADC,Pin是35,开启11DB衰减,量程增至0-3.3V
adc_lux = ADC(Pin(34))
adc_lux.atten(ADC.ATTN_11DB)    # set 11dB input attenuation (voltage range roughly 0.0v - 3.6v)
adc_lux.width(ADC.WIDTH_9BIT)   # set 9 bit return values (returned range 0-511)

while True:
    lux = adc_lux.read()
    if 0 <= lux <= 270:
        print('光亮较强')

    else:
        print('光亮较差')
    time.sleep(1)

在这里插入图片描述
在这里插入图片描述

释热传感器

from machine import Pin
import time

Human = Pin(15,Pin.IN,Pin.PULL_UP)  #构建人体红外对象
led = Pin(18,Pin.OUT)  #构建 led 对象, GPIO1,输出

def fun(Human):  #当检测到人时,板载LED灯亮起
    print("有人")
    led.value(1)
    time.sleep(1)
    led.value(0)
    
Human.irq(fun,Pin.IRQ_RISING)  #定义中断,上升沿触发

在这里插入图片描述
在这里插入图片描述

烟雾浓度

在这里插入图片描述
在这里插入图片描述

智能物流

加速度传感器

from machine import I2C,Pin
import mpu6050
import time
i2c = I2C(scl=Pin(4), sda=Pin(17), freq=100000)

while True:
    accelerometer = mpu6050.accel(i2c)
    acc=accelerometer.get_values()
    #print(accelerometer.get_values())
    print("acc=",acc)
    time.sleep(5)


在这里插入图片描述
在这里插入图片描述

振动传感器

from machine import Pin  
import time

zhen = Pin(19,Pin.IN)   #定义19脚为震动传感器对象

while True:
   value = zhen.value()
   print(value)   #打印出19脚感应的值
   if value==1:
       print('有振动')
   else:
       print('无振动')
   time.sleep(1)   #延时1秒,实现每1秒判断一次触摸状态

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值