这篇是一个硬件作品,由于这个只做了一只如果长时间不用一些东西会忘记,如果时间太长忘的太多想配置使用的时候就会很痛苦,不用了又很浪费,所以单独开贴记录下关键部分以及用它做的一些软硬件布置。
.
硬件:esp32主控 , 锂电500MA,四路按键,0.96OLED 屏幕一块,串口转485一块,微型开关1个
首先记录引脚位置如下:
使用了以上资源后 硬件具备的基本能力为:
1、独立电池供电
2、四路按键呼叫响应
3、屏幕显示
4、485通讯硬件配置
目前已经烧写到内部的程序如下
# sc1=22 sda=19 txd=23 rxd=18 io1 =25 io2=14 io3=27 io4=26
from KEY4 import key #自制按键类
import struct,time # 封包解包
from WENSHIDU import WenShiDu # 自制485 温湿度通信类
from machine import UART,I2C,Pin
import Relay as R #自制485继电器通信类
import time
from ftime import ftime_df #自制非阻塞时间定时器类
'''
以下为一个特定功能,重新开发时可无视以下内容
'''
import random
from machine import UART,I2C,Pin
u1=UART(1,9600,tx=23,rx=18)
wenshi=WenShiDu(u1)
relayAll=R.relay(u1)
import ssd1306
i2c = I2C(scl=Pin(22), sda=Pin(19), freq=100000)
lcd = ssd1306.SSD1306_I2C(128, 64, i2c)
lcd.text('system ....ok',0,0,1)
lcd.show()
io = key()
io.ioNum()
jdq=R.relay(u1)
time_0=ftime_df(10)
while 1:
if io.ioNum()== 1:
jdq.onoFF(10,0,1)
elif io.ioNum()==2:
jdq.onoFF(10,1,1)
elif io.ioNum()== 3:
jdq.onoFF(10,2,1)
elif io.ioNum()== 4:
for i in range(3):
jdq.onoFF(10,i,0)
time.sleep_ms(120)
elif io.ioNum()== 0:
pass
if time_0.time_dif() ==1:
lcd.fill(0)
lcd.text(str(wenshi.readWSD(20)),0,0,1)
time_0=ftime_df(5)
time.sleep(1)
lcd.text(str(wenshi.readWSD(5)),0,20,1)
lcd.show()
=====================================================================
import network
wl=network.WLAN(network.STA_IF)
wl.active(True)
wl.connect('网络名称','网络密码')
wl.isconnected()#这里是判断网络连接状态,如果掉线记得重连
#以上是联网部分,下面是与服务器通信部分
import urequests as requests
cc=requests.get("http://IP/test%s"%"?a=1&&b=6").text #get方法传数据