首页 > 其他分享 >从零开始设计一个ESP-32 for PC联动装置

从零开始设计一个ESP-32 for PC联动装置

时间:2022-10-19 19:25:18浏览次数:40  
标签:__ ESP 32 get PC str psutil display SerialBT

硬件准备:ESP32-WROOM-32开发板

     SSD1306显示器(不带驱动板) 

     嘉立创打板,工程文件地址:lanzouw.com/i9XhY0e6qhuj    密码:5ykd

     下单板子并且根据工程文件下单元件。

     焊接。

拿出ESP32-WROOM-32开发板,用Arduino.exe烧录程序。

#include "SSD1306.h"
#include <Arduino.h>
#include "BluetoothSerial.h"

#if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED)
#error Bluetooth is not enabled! Please run `make menuconfig` to and enable it
#endif


SSD1306 display(0x3c, 25, 26);
String str="";
RTC_DATA_ATTR int bootCount = 0;
const int potpin = 34;
int potValue = 0;
BluetoothSerial SerialBT;

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
  SerialBT.begin("ESP32test"); //Bluetooth device name
  SerialBT.printf("ESP32 is restart now! It's the %d time\r\n", ++bootCount);
  display.init();
  display.setFont(ArialMT_Plain_16);
  Serial.begin(115200); //set up serial library baud rate to 9600
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  str = "";
  while (SerialBT.available() > 0)
  {
    display.clear();
    str += char(SerialBT.read());   // read是剪切,而不是复制
    display.drawString(15, 42 , "light:   " + String(potValue));
    delay(10);  // 延时2
  }
  potValue = analogRead(potpin);
  SerialBT.println(potValue);
  display.drawString(15, 3, str);
  display.drawRect(0, 0, 128, 64);
  display.drawHorizontalLine(0, 21, 128);
  display.drawHorizontalLine(0, 42, 128);
  display.display();
  digitalWrite(LED_BUILTIN, LOW);
  delay(100);
}

烧录好之后打开PC蓝牙,连接“ESP32test”。

PC上运行以下python程序:

import serial
import time
import psutil


def get_cpu():
    psutil.cpu_percent(None)  # 第一次返回的结果是0
    time.sleep(0.5)
    return psutil.cpu_percent(None)


def get_ram():
    return psutil.virtual_memory().percent


def poweroffSchedule(text):
    ser = serial.Serial('com5', 115200, parity='E', stopbits=1, bytesize=8, timeout=0.5)
    ser.write(text.encode("gbk"))
    print('光照强度:' + ser.readline().decode('utf-8'))
    # ser.close()

if __name__ == "__main__":
    # for i in li:
    while True:
        poweroffSchedule('CPU:' + ' ' + str(get_cpu()) + '%\r\n' + 'RAM:' + ' ' + str(get_ram()) + '%')

        time.sleep(1)

 成品如下:

标签:__,ESP,32,get,PC,str,psutil,display,SerialBT
From: https://www.cnblogs.com/ff888/p/16807426.html

相关文章

  • 云图说|AppCube零代码,开启无码新生活
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请​​单......
  • 云图说|AppCube零代码,开启无码新生活
    阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说)、深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云。更多精彩内容请单击......
  • ARM 笔记(1019)-- STM32部分--15 通用定时器的输出比较
    12.7通用定时器的输出比较我们不用滴答时钟,不用延时法,能不能实现呼吸灯?在工业控制中,很多场合需要产生PWM信号,那PWM信号如何产生?我们可以用定时器的输出比较功能实现上述......
  • esp32-s3-st7796-lvgl8
    1、先按照文档步骤,将基础框架搭建好https://blog.csdn.net/qq_20540901/article/details/1236086552、然后遇到一些花屏、显示不正确等等问题,使用以下的sdkconfig创建默......
  • [NepCTF2022]signin
    signin题目fromCrypto.Util.numberimportgetStrongPrime,bytes_to_longfromgmpy2importpowmod,is_prime,invert,bit_length,next_primefromFLAGimportflag......
  • grpc - 使用
    GRPC-使用protobuf定义protobuf,并将protobuf文件,通过java的plugin打包生成java-grpc相关文件。参照:grpc-protobufmvn依赖<dependency><groupId>com.goo......
  • 基于OPC的UG与PLC通信
    基于OPC的UG与PLC通信对于软件连接用三菱plc控制ug运动1.需要的工具UG12(及以上版本才具有机电概念设计模块)MXOPCServer6.04软件GXWorks22.ug建模将刚体、运动副、位置......
  • vite..config.ts中Cannot find module 'path' or its corresponding type declaration
    ts中引入path模块出错Cannotfindmodule'path'oritscorrespondingtypedeclarations.解决方法第一步npminstall-D@types/node第二步在tsconfig.json中添加......
  • GD32开发学习-字符串发送
    1背景串口打印输出的时候出现首字母丢失的情况;2分析参考stm32固件库开发的相关例程,判断问题应该如下:printf: /*等待发送完毕*/ while(USART_GetFlagStatus(DE......
  • go 和 elixir 的 grpc 通信
    步骤准备安装protoc-gen-elixirmixescript.installhexprotobuf具体步骤创建项目mixnewappdemo编写pb文件helloword.protosyntax="proto3";optionj......