python单片机串口采集温湿度并录入数据库

一、环境配置及软硬件

  • 环境配置及软件
  1. eclipse
  2. Keil5
  3. mysql
  4. Navicat
  5. Eclipse配置python开发环境

相关参考:
Eclipse下配置python环境.
pip升级安装难题.
windows环境下安装pymysql.
Python MySQL - mysql-connector 驱动.
(本人配置时主要参考了这些,以外的自身以前配置过,其他的软件安装过程请自行搜索。)

  • 硬件
  1. STM32F103系列单片机(野火mini)
  2. 温湿度传感器AHT20
  3. 杜邦线

二、代码

  • 单片机上要烧入的温湿度模块main.c代码:
#include "led.h"
#include "usart.h"
#include "temhum.h"

 int main(void)
 {
   	 	
    u32 CT_data[2]={
   0};
    volatile float  hum=0,tem=0;   
    int q=0;		
     
    delay_init();	    	 //延时函数初始化	  
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
    uart_init(115200);	 //串口初始化为115200
    LED_Init();			     //LED端口初始化
    temphum_init();     //ATH20初始化    
	
	while(1)
	{
   
        AHT20_Read_CTdata(CT_data);       //不经过CRC校验,直接读取AHT20的温度和湿度数据 

        hum = CT_data[0]*100*10/1024/1024;  //计算得到湿度值(放大了10倍)
        tem = CT_data[1]*200*10/1024/1024-500;//计算得到温度值(放大了10倍)
        if(q%2==0)
		  printf("%.1f%",(hum/10));
		if(q%2!=0)
          printf("%.1f",(tem/10));
        
        //延时2s,LED闪烁提示串口发送状态
        LED=0;
        delay_ms(1000);
        LED=1;
        delay_ms(1000);
		    q=q+1;
	 }
  • 2
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,你需要一个传感器来获取温湿度数据。一些常用的传感器包括DHT11、DHT22和AM2302等。你还需要一个microcontroller将传感器读数并将其发送到网络上。 以下是一个示例代码,使用ESP8266 microcontroller和DHT11传感器来获取温湿度数据,并将其插入到MySQL数据库中。 ```python import pymysql.cursors import machine import dht import time import network # 连接WiFi网络 ssid = "your_SSID" password = "your_PASSWORD" station = network.WLAN(network.STA_IF) station.active(True) station.connect(ssid, password) while not station.isconnected(): pass print("WiFi已连接") # 连接MySQL数据库 connection = pymysql.connect(host='your_host', user='your_user', password='your_password', db='your_database', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor) # 初始化DHT11传感器 d = dht.DHT11(machine.Pin(2)) while True: # 读取温湿度数据 d.measure() temperature = d.temperature() humidity = d.humidity() # 插入数据到MySQL数据库 try: with connection.cursor() as cursor: sql = "INSERT INTO `temperature_humidity` (`temperature`, `humidity`) VALUES (%s, %s)" cursor.execute(sql, (temperature, humidity)) connection.commit() print("数据插入成功") except: print("数据插入失败") # 等待1分钟 time.sleep(60) ``` 在这个示例中,我们使用`network`模块连接到WiFi网络,并使用`pymysql`模块连接到MySQL数据库。我们还使用`dht`模块初始化DHT11传感器,并使用`time`模块等待1分钟,以便我们可以获取温湿度数据的定期更新。 在插入数据到数据库时,我们使用`try`和`except`语句来处理任何可能的错误,例如网络连接中断或数据库插入失败。 请注意,此示例代码仅供参考,你需要根据自己的具体情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值