栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Python

任务提醒摆件关联传感器调查

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

任务提醒摆件关联传感器调查

1.采集超声波测距传感器的距离数据,合并到串口输出;

2.采集温湿度传感器的温湿度数据,合并到串口输出;

输出方式(串口 波特率:115200):1秒左右输出一次

1.通过主控ESP8266板卡的CP2102芯片,直接通过USB线(供电+串口通信),接收串口数据;

2.通过外接供电的CH340芯片,通过USB接收串口数据;

3.直接连接板卡的串口引脚RX(绿线)/TX(黄线),和接收串口数据板卡的TX/RX反接,再通过串口不定长接收,以换行符区分来接收字段;

串口输出格式:

串口助手获取的数据:

Distance:174.20(cm);Humidity:46.00(%);Temperature:26.80(*C);

python  serial模块读取readline:

[22:25:52] b'Distance:174.45(cm);Humidity:45.00(%);Temperature:26.80(*C);rn'

图片展示:

CH340:

超声波测距模块:

DHT11温湿度传感器:

ESP8266 arduino源码:

#include "DHT.h"
#include 

float distance;
#define echo 15                         //echO接D8脚
#define trig 13                         //echO接D7脚
#define LEDOUT 2                         //D4
#define DHTPIN 0
#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE, 15);

void setup() {
  // put your setup code here, to run once:
  // Start Serial  
  Serial.begin(115200); 
  dht.begin();
  pinMode(LEDOUT,OUTPUT);
  digitalWrite(LEDOUT,HIGH);
  pinMode(echo,INPUT);                       //设置echo为输入脚
  pinMode(trig,OUTPUT);                      //设置trig为输出脚
  Serial.print("GET_DATA_"); 
  Serial.println("BEGIN:");
}

void loop() {

  // put your main code here, to run repeatedly:
  digitalWrite(trig,HIGH);
  delayMicroseconds(1);
  digitalWrite(trig,LOW); 
  distance  = pulseIn(echo,HIGH);             //计数接收高电平时间
  distance  = distance*340/2/10000;           //计算距离 1:声速:340M/S  2:实际距离为1/2声速距离 3:计数时钟为1US//温补公式:c=(331.45+0.61t/℃)m•s-1 (其中331.45是在0度)
  delay(130);                                  //单次测离完成后加30mS的延时再进行下次测量。防止近距离测量时,测量到上次余波,导致测量不准确。

  // Reading temperature and humidity
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Display data
  Serial.print("Distance:");
  Serial.print(distance);
  Serial.print("(cm);");
  Serial.print("Humidity:"); 
  Serial.print(h);
  Serial.print("(%);");
  Serial.print("Temperature:"); 
  Serial.print(t);
  Serial.println("(*C);");

  delay(670);

  digitalWrite(LEDOUT,LOW);
  // Wait a few seconds between measurements.
  delay(70);
  digitalWrite(LEDOUT,HIGH);
  delay(100);
  digitalWrite(LEDOUT,LOW);
  delay(30);
  digitalWrite(LEDOUT,HIGH);

}

 python串口读取源码:

import serial#导入模块
import time

if __name__ == '__main__':
    ser = serial.Serial('COM4', 115200) #来设置波特率,当然还有专门的函数
    print(ser.isOpen()) #看看这个串口是否已经被打开
    while 1:
        data = ser.readline() #是读一行,以/n结束,要是没有/n就一直读,阻塞。
        time1 = "[" + time.strftime('%H:%M:%S', time.localtime(time.time())) + "] "
        print(time1 + str(data))

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1037077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号