智能家居获取mysql数据_自己动手实现智能家居之温湿度数据采集存储(DHT11,MySql)...

【前言】

一个热爱技术的人一定向往有一个科技感十足的环境吧,那何不亲自实践一下属于技术人的座右铭:“技术改变世界”。

就让我们一步步动手搭建一个属于自己的“智能家居平台”吧(不要对这个名词抬杠啦,技术在手,怎么设计实现因人而异),本文只做抛砖引玉,各路大神如果有更好的想法可以各显神通,当然能在评论区留下更好的想法让大家共同学习是再好不过啦。

在文章最后附有所有源代码,有需要的可以自行下载,感谢Star~

【系列目录】

【本节概要】

上一节我们介绍了树莓派以及树莓派的GPIO的简单使用,这一节基于上一节的知识点采集屋内的温度和湿度数据,并且构建python脚本将采集到的数据写入到mysql数据库持久化。

效果图:

94c9b829e3058f2b81a90e965e3a3f3c.png

那么接下来我们就一步步讲解这个折腾的过程...

【硬件采购】

”某宝“购买一个DHT11模块,大概¥6,为了方便线路灵活连接,我们购买了面包板和杜邦线若干。

2084d984dbdbccab5116e9a4a6498ee0.png

de55a4aec6aab62f59df91a8f5f68f69.png

f815fdf3d4d9d31105d697f0d8f35cf6.png

硬件采购完毕,我们开始搞软件部分~~~

【DHT11模块获取温湿度】

DHT11硬件接口

DHT11有三个IO接口,一个VCC(正极)接3.3v,一个GND接GND,剩下一个DATA接树莓派的任意一个GPIO。在设备上有印刷的字体标明了引脚,可以根据指示接到树莓派上。

使用开源类库Adafruit_DHT获取温湿度

读取温度和湿度我们可以使用已经封装好的开源库:Adafruit_DHT

import Adafruit_DHT

#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将esp8266采集到的温湿度数据上传到MySQL数据库中,可以按照以下步骤进行: 1. 连接esp8266和传感器:使用esp8266连接温湿度传感器,采集数据。 2. 连接WiFi网络:使用esp8266连接WiFi网络,确保可以访问互联网。 3. 连接MySQL数据库:在互联网上创建一个MySQL数据库,并使用esp8266连接到该数据库。 4. 创建数据表:在MySQL数据库中创建一个数据表,用于存储温湿度数据。 5. 编写代码:使用Arduino IDE编写代码,实现esp8266采集温湿度数据并上传到MySQL数据库中。 下面是一个简单的示例代码: ```c++ #include <ESP8266WiFi.h> #include <MySQL_Connection.h> #include <MySQL_Cursor.h> #include <DHT.h> #define DHTPIN D4 // 温湿度传感器连接的引脚 #define DHTTYPE DHT11 // 温湿度传感器类型 #define WIFI_SSID "your_ssid" // WiFi网络名称 #define WIFI_PASSWORD "your_password" // WiFi网络密码 #define MYSQL_HOST "your_mysql_host" // MySQL数据库主机地址 #define MYSQL_PORT 3306 // MySQL数据库端口号 #define MYSQL_USER "your_mysql_user" // MySQL数据库用户名 #define MYSQL_PASSWORD "your_mysql_password" // MySQL数据库密码 #define MYSQL_DATABASE "your_mysql_database" // MySQL数据库名称 DHT dht(DHTPIN, DHTTYPE); WiFiClient client; MySQL_Connection conn((Client *)&client); void setup() { Serial.begin(9600); delay(100); // 连接WiFi网络 WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } // 连接MySQL数据库 Serial.println("Connecting to MySQL database..."); if (conn.connect(MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD)) { Serial.println("Connected to MySQL database!"); } else { Serial.println("Failed to connect to MySQL database."); while (1); } // 创建数据表 Serial.println("Creating table..."); MySQL_Cursor *cursor = new MySQL_Cursor(&conn); cursor->execute("CREATE TABLE IF NOT EXISTS temperature_humidity (id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY, temperature FLOAT, humidity FLOAT)"); delete cursor; // 初始化温湿度传感器 dht.begin(); } void loop() { // 采集温湿度数据 float temperature = dht.readTemperature(); float humidity = dht.readHumidity(); // 将数据上传到MySQL数据库中 if (conn.connected()) { Serial.println("Inserting data into MySQL database..."); char query[128]; sprintf(query, "INSERT INTO temperature_humidity (temperature, humidity) VALUES (%f, %f)", temperature, humidity); MySQL_Cursor *cursor = new MySQL_Cursor(&conn); cursor->execute(query); delete cursor; Serial.println("Data inserted into MySQL database!"); } else { Serial.println("Failed to insert data into MySQL database."); } delay(10000); // 每10秒钟采集一次数据 } ``` 在这个示例中,我们使用了ESP8266WiFi、MySQL_Connection和MySQL_Cursor库来连接WiFi网络和MySQL数据库,并且使用DHT库来读取温湿度传感器的数据。在setup()函数中,我们连接WiFi网络和MySQL数据库,并创建一个名为“temperature_humidity”的数据表。在loop()函数中,我们采集温湿度数据,并将其插入到MySQL数据库中。 请确保在使用该示例代码前,已经将所有的配置信息(如WiFi网络名称、密码、MySQL数据库主机地址、用户名、密码和数据库名称)替换为自己的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值