IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 智能浇花系统(ESP8266+APP Inventor+DHT11) -> 正文阅读

[嵌入式]智能浇花系统(ESP8266+APP Inventor+DHT11)

利用ESP8266读DHT11温湿度

首先,本项目是以以下四篇文章作为参考(基本就是按照这个来的,稍微修改了一些)
链接如下
【巴法云】开源安卓App控制ESP8266,通过MQTT协议,APP Inventor 开发
利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示
ESP8266读DHT11温湿度,开发微信小程序实时显示
利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示

闲聊:我在帮我室友做毕设的时候发现的,他的题目就是这个智能浇花系统,大概就是一个测温湿度还有一个就是驱动这个电机浇水,这个确实挺简单的,之前APP端准备用易安卓写,但想着有没有现成的(O(∩_∩)O哈哈~),结果还真找到了。
也有好长一段时间没有写过博客了,之前由于大四实习一直没有功夫去弄这个,现在换了一份轻松点的工作,终于可以静下心来进行学习了。在找到这一份工作之前也经历了一些变故,也实实在在的影响到了我,但回过头来还是发现,人在学习的时候是心情最安静也是最舒服的,希望大家一起共勉!!!

好了,废话不多说,先测试DHT11,首先arduino IDE上得装一个库Simple DHT传感器库
在这里插入图片描述
测试程序:

#include <SimpleDHT.h>

// for DHT11, 
//      VCC: 5V or 3V
//      GND: GND
//      DATA: 2
int pinDHT11 = D4;
SimpleDHT11 dht11(pinDHT11);

void setup() {
  Serial.begin(115200);
}

void loop() {
  // start working...
  Serial.println("=================================");
  Serial.println("Sample DHT11...");
  
  // read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
    return;
  }
  
  Serial.print("Sample OK: ");
  Serial.print((int)temperature); Serial.print(" *C, "); 
  Serial.print((int)humidity); Serial.println(" H");
  
  // DHT11 sampling rate is 1HZ.
  delay(1500);
}

上传到APP端

整体代码:
链接:https://pan.baidu.com/s/1DnC44mvc_GDg0oMtgqZA9A?pwd=wrwh
提取码:wrwh
包括arduino和APP Inventor代码
在这里插入图片描述
ESP8266的 D4引脚慎用,我感觉没其他引脚控制稳定,D4引脚为NodeMCU控制那个蓝灯的那个对应引脚
同时ESP8266给其他元器件供电时,选用RX,TX旁边的3V3 GND ,之前选择EN旁边的GND和VCC容易供电不稳

巴法云提供得代码是把数据通过TCP上传到服务器,然后用微信小程序显示与控制,还有一个版本是用APP Inventor显示但没有控制,我就是把这个APP Inventor添加了一个控制的作用,即通过APP给硬件发消息

详细看看逻辑设计,
在这里插入图片描述
框框中,我改变了之前只订阅一个主题的情况,修改为订阅temp和dian,这样APP既可以接收到temp发来的消息,也能通过dian发给硬件端消息(注意cmd=1,而不是cmd=3,具体看下面消息格式就懂了)

我还加了下面两个东西

当按钮被按下时,像APP发送以下消息,为什么要以这种格式发呢?看下面就知道了
在这里插入图片描述
这个topic后面接的‘dian’是因为我设置的收消息的topic叫这个名字,各位需要根据自己设计的进行更改

之前巴法云的APP Inventor设计的topic固定为‘temp’,我修改为订阅了两个topic,然后像专门收消息的topic发送开关指令即可实现相应开关状态。

下面是巴法云的TCP创客云的消息格式

TCP服务器地址IP: bemfa.com 服务器端口:8344
订阅主题,单次最多订阅八个主题(可以订阅多个,虽然是废话)
cmd=1&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=xxx1,xxx2,xxx3,xxx4\r\n
正常返回:
cmd=1&res=1

发布信息格式
cmd=2&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=light002&msg=off\r\n
正常返回:
cmd=2&res=1(不发送也返回这个玩意)

订阅主题,并获取一条历史消息
cmd=3&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=light002\r\n
正常返回:
cmd=3&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=light002&msg=on

获取一次时间
cmd=7&uid=xxxxxxxxxxxxxxxxxxxxxxx&type=1\r\n
正常返回:
2021-06-11 16:39:27

获取一次已发消息
cmd=9&uid=7d54f85af42976ee3c2693e6xxxxxxxx&topic=light002\r\n
正常返回:
cmd=9&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=light002&msg=on

发送心跳
ping\r\n
正常返回:
cmd=0&res=1

在这里插入图片描述
通过上述可以看出
我们发送需要发送
cmd=2&uid=xxxxxxxxxxxxxxxxxxxxxxx&topic=light002&msg=off\r\n
这个字符串
其中只有‘&msg=off’会被处理,前面都是前缀会被自动省略
在这里插入图片描述
这是arduino代码里面接收TCP发送的字符串,我们设置检测到&msg=on就打开反之则关闭

硬件端

在这里插入图片描述
抽水泵用继电器连接着,这里没有画出来,除了DHT11以外都是NodeMCU上自带的,不用管

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 11:35:52  更:2022-05-05 11:38:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 3:47:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码