最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

用esp32基于micropython做一個紅外警戒器

2022-08-25 16:56 作者:洋洋柚Y  | 我要投稿

事情是這樣的,我們往往在愉快的玩耍的時候難以察覺到身后的危險。

有的時候,晚上玩的正嗨,突然,家長就進來了;或者,愉快聊天的時候,宿管老師直接來個突如其來的打擊。

對此,作為科技區(qū)的一員,我們有必要好好的幫同學(xué)們解決問題。

首先,我們考慮到用攝像頭(esp32cam),但用這種方式實在不劃算(資金不足),所以,我們還是用低調(diào)而不失風(fēng)采的紅外傳感器——HC-SR501人體紅外傳感器

HC-SR501人體紅外傳感器

(延時)最左邊的一定要扭到最小,另外一個是靈敏度(大家看著調(diào)),反應(yīng)模式(跳帽)調(diào)到單次探測。

目前市面上有很多種esp32開發(fā)板,但是燒錄固件也只要注意板子帶了多少內(nèi)存flash(以及是否有外掛的RAM)

不太一樣的esp32開發(fā)板

按照網(wǎng)上的流程《esp32燒錄micropython》之后,我們開始今天的重點。

我們要找一塊板子作為探測器,另一塊作為服務(wù)器。

將紅外傳感器和探測器連接。

連接

開發(fā)板==探測器

GND? ==?GND

GPIO12==?OUT

GPIO14== VCC(這里推薦直接接到開發(fā)板的VCC,此處偷懶,用GPIO14作為VCC)

然后寫入代碼:

======================================================================

main.py:

from machine import Pin

from wifi import do_connect

import time

import socket

import _thread

do_connect()

pwr = Pin(14,Pin.OUT)#如果紅外傳感器VCC接到開發(fā)板VCC上面,這就可以不用了。

pwr.on()

led = Pin(22,Pin.OUT)#板子上面指示燈的口子,如果想不亮,可以隨便找一個沒有被使用的口子

client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

serip = '192.168.4.1'

serport = 8818

def sentp(pin):

? ? while(True):

? ? ? ? time.sleep(0.1)

? ? ? ? putind = Pin(pin,Pin.IN)

? ? ? ? msg = putind.value()

? ? ? ? if(msg==1):

? ? ? ? ? ? led.on()

? ? ? ? ? ? break

for i in range(10):

? ? try:

? ? ? ? led.on()

? ? ? ? client.connect((serip,serport))

? ? ? ? led.off()

? ? ? ? def wiconet():

? ? ? ? ? ? while(True):

? ? ? ? ? ? ? ? client.send(b'1')

? ? ? ? ? ? ? ? time.sleep(1)

? ? ? ? #msg = client.recv(1024)

? ? ? ? #print(msg)

? ? ? ? _thread.start_new_thread(wiconet,())

? ? ? ? while(True):

? ? ? ? ? ? sentp(12)

? ? ? ? ? ? client.send(b'2')

? ? ? ? ? ? time.sleep(1)

? ? ? ? ? ? led.off()

? ? ? ? ? ? time.sleep(2)

? ? ? ? #client.close()

? ? except:

? ? ? ? print('fail')

? ? ? ? led.off()

? ? ? ? time.sleep(0.05)

? ? ? ? led.on()

? ? ? ? time.sleep(0.03)

? ? ? ? led.off()

======================================================================

wifi.py:

def do_connect():

? ? import time

? ? import network

? ? essid = "esper2"# 輸入wifi名字(晚點和服務(wù)器板子要一樣)

? ? password = "88888888"# 輸入password(晚點和服務(wù)器板子要一樣)

? ? wifi = network.WLAN(network.STA_IF)??

? ? if not wifi.isconnected():?

? ? ? ? wifi.active(True)

? ? ? ? wifi.connect(essid,password)

? ? ? ? import utime

? ? ? ? for i in range(2000):

? ? ? ? ? ? print('第{}次嘗試連接WIFI熱點'.format(i))

? ? ? ? ? ? if wifi.isconnected():

? ? ? ? ? ? ? ? break

? ? ? ? ? ? utime.sleep_ms(100)?

======================================================================

將這些代碼復(fù)制到探測器,記得保存。

至于服務(wù)器這邊,就簡單很多了。

做服務(wù)器的ESP32開發(fā)板

可以看到,在板子中間,正好有一個D2(GPIO2)的led接在上面。

我們用這個指示燈作為警告燈。

上代碼:

======================================================================

main.py:

import socket

import time

from machine import Pin

import re

def hotlink():

? ? try:

? ? ? ? import network

? ? ? ? hot = network.WLAN(network.AP_IF)

? ? ? ? hot.active(True)

? ? ? ? hot.config(essid='esper2')#與上面同步的WIFI名字

? ? ? ? hot.config(authmode=3, password='88888888')#與上面同步的WiFi密碼

? ? except:

? ? ? ? print('hotlink has fall')

while(True):

? ? try:

? ? ? ? hotlink()

? ? ? ? break

? ? except:

? ? ? ? time.sleep(1)

try:

? ? server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

? ? ip = '192.168.4.1'

? ? port = 8818

? ? server.bind((ip,port))

? ? server.listen(3)

? ? for i in range(100):

? ? ? ? tcp,user = server.accept()

? ? ? ? #for i in range(100):

? ? ? ? ? ?#tcp.send('OK')

? ? ? ? ? ?#time.sleep(0.1)

? ? ? ? while(True):

? ? ? ? ? ? msg = int(tcp.recv(1024))

? ? ? ? ? ? if(msg==2):

? ? ? ? ? ? ? ? for c in range(10):

? ? ? ? ? ? ? ? ? ? Pin(2,Pin.OUT).off()#這里是指示燈D2

? ? ? ? ? ? ? ? ? ? time.sleep(0.05)

? ? ? ? ? ? ? ? ? ? Pin(2,Pin.OUT).on()#這里也是指示燈D2

? ? ? ? ? ? ? ? ? ? time.sleep(0.05)

????????????????????Pin(2,Pin.OUT).off()#這里還是指示燈D2

? ? ? ? ? ? pass

? ? #tcp.close()

except:

? ? for e in range(5):

? ? ? ? Pin(2,Pin.OUT).off()

? ? ? ? time.sleep(0.1)

? ? ? ? Pin(2,Pin.OUT).on()

? ? ? ? time.sleep(0.1)

? ? ? ? Pin(2,Pin.OUT).off()

======================================================================

然后,先打開服務(wù)器esp32芯片供電,再打開探測器供電(注意順序),然后找個隱蔽而且是查崗人員必經(jīng)的地方,安裝好探測器。之后再測試一下(自己走過去看會不會發(fā)警告),然后,大家就可以......(懂得都懂)。

給大家看看效果:

沒有熱的物體(人)靠近

注意:如果探測器出現(xiàn)頻繁的錯誤警報,就先把探測器放那里不要動他,過幾分鐘他掃描完環(huán)境之后,基本上就會正常工作。

有熱點物體(人)靠近

到這里就要結(jié)束了,感謝大家的觀看,希望能有所幫助。

最后,祝大家玩的開心,上班摸魚不被抓,下課休息不累趴。



用esp32基于micropython做一個紅外警戒器的評論 (共 條)

分享到微博請遵守國家法律
突泉县| 浦东新区| 辉南县| 平远县| 海口市| 嘉禾县| 当雄县| 萨迦县| 凤山县| 界首市| 黄浦区| 家居| 定襄县| 枞阳县| 满洲里市| 保康县| 霞浦县| 沁源县| 扎鲁特旗| 渑池县| 海城市| 绥中县| 喀喇沁旗| 贵溪市| 阿克陶县| 惠来县| 成安县| 恭城| 福安市| 芒康县| 丹东市| 伊春市| 万源市| 图片| 乳源| 东阳市| 大新县| 宁远县| 彭水| 张家口市| 锦屏县|