2021-9-21 esp32 micropython 网络服务器 (硬件作品)

这篇是一个硬件作品,由于这个只做了一只如果长时间不用一些东西会忘记,如果时间太长忘的太多想配置使用的时候就会很痛苦,不用了又很浪费,所以单独开贴记录下关键部分以及用它做的一些软硬件布置。

.
硬件:esp32主控 , 锂电500MA,四路按键,0.96OLED 屏幕一块,串口转485一块,微型开关1个
首先记录引脚位置如下:

sc1=22 sda=19 txd=23 rxd=18

io1 =25 io2=14 io3=27 io4=26

使用了以上资源后 硬件具备的基本能力为:
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()

记录完毕下面是一个网络扩展记录

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

esp32的网络功能

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方法传数据

个人看法:以上部分是ESP32的网络连接功能以及get方法传数据的一种写法,用格式化将数据拼接进去操作相对简单。在嵌入式设备进行网络通信时比较主流的是MQTT订阅式 、长链接以及 485,无线协议 等等都是可以的。我在制作一些一些小型系统时觉得32的网络模块很适合使用网页请求进行数据交换,主要是和服务器耦合度低便于维护虽然安全性差但是硬件系统普遍是局域系统安全真不是主要问题,没人持续维护才是每日常态。。。

你可能感兴趣的:(micropython,python)