测一测现在的温度

news/2024/11/30 1:31:58/

测一测现在的温度

目录

  • 测一测现在的温度
    • 一、Hello World
    • 二、使用DHT11测温

我们使用Mongoose OS + esp8266 + DHT11来做。

  • Mongoose OS:一个物联网固件开发框架。官方文档

  • esp8266:ESP8266是一款串口WiFi模块。

  • DHT11:一个温度传感器。

  • 固件:可以理解为一个电子产品的操作系统,是硬件最底层的软件。

  • 串口:直接看图

    在这里插入图片描述

    在这里插入图片描述

    可以一次性发送八位的数据,互不干扰,并口传输错误一位就要需要重新发送八位数据,串口传输错误一位只需要重新发送一位。

一、Hello World

  1. 下载mongoose OS的官方工具mos.exe,双击或是输入命令mos ui就可以启动它的UI界面。如果它没有启动,打开命令提示符,输入cd c:\mos然后mos --start-webview=false。关闭时需要关闭1992端口的服务(不然再次双击打不开ui界面)。

    在这里插入图片描述

  2. 用一根数据线(一定是要可以传输数据的数据线,有的线只能充电)连接esp8266,按照自己的需求安装相应的驱动。

    • 乐鑫主板的Silabs 驱动程序

    • 乐鑫开发板的CH43x 驱动程序

    • CC3200、CC3220 的FTDI 驱动程序

    安装驱动:1. 右键此电脑->管理->设备管理器->其他设备

    黄色感叹号的就是我们需要安装的驱动,安装完成可以在端口中看见设备在哪个端口。

  3. 打开mos,选择端口和型号,端口和型号按实际情况选择,我用的是esp8266 2m内存的所以选择esp8266 flash 2m。

  4. 在ui的下面有一行可以输入命令的文本框,输入mos clone https://github.com/mongoose-os-apps/demo-c app1克隆一个模板。克隆完成后我们可以在对应目录中看到一个app1的文件夹,该目录的src目录下的main.c就是我们的代码,mos.yml是配置文件,描述整个应用。

  5. 打开main.c,找到在这里插入图片描述

    修改为:

    在这里插入图片描述

  6. 在mos的ui界面中输入mos build编译代码。

  7. 漫长的等待后输入 mos flash将固件刷入。

  8. 成功后将会每秒输出一句hello world!

    在这里插入图片描述

二、使用DHT11测温

首先把我们的dht11连接到esp8266上,vcc或+ 连接3v的引脚, GND或- 连GND, DAT或out连IO引脚(IO几要记住,比如我接IO2引脚,待会儿就要去配置成IO2引脚)。

esp8266引脚图:

查看源图像

连接完成后我们只需要对hello world的程序稍作修改:

  1. 添加依赖:

    在mos.yml的libs下添加dht驱动的依赖(这些驱动可以在mongoose官网中找),如果需要rpc服务可以添加rpc依赖。

    libs:- location: https://github.com/mongoose-os-libs/boards- location: https://github.com/mongoose-os-libs/demo-bundle- location: https://github.com/mongoose-os-libs/rpc-service-config- location: https://github.com/mongoose-os-libs/rpc-service-fs- location: https://github.com/mongoose-os-libs/rpc-uart- location: https://github.com/mongoose-os-libs/wifi- location: https://github.com/mongoose-os-libs/dht
    
  2. 配置引脚,修改代码:

    在mos.yml中添加:

    config_schema:- ["app.pin", "i", 2, {title: "GPIO pin a sensor is attached to"}]#因为刚刚我是io2引脚,所以这里是2
    

    main.c:

    #include "mgos.h"
    #include "mgos_dht.h"static void timer_cb(void *dht) {LOG(LL_INFO, ("Temperature: %lf", mgos_dht_get_temp(dht)));
    }enum mgos_app_init_result mgos_app_init(void) {struct mgos_dht *dht = mgos_dht_create(mgos_sys_config_get_app_pin(), DHT11);mgos_set_timer(1000, true, timer_cb, dht);return MGOS_APP_INIT_SUCCESS;
    }
    

    看似复杂,实际上只有两个重要的函数:

    mgos_dht_create(mgos_sys_config_get_app_pin(), DHT11);

    mgos_dht_get_temp(dht)

    初始化dht以及获取温度。

  3. 编译&固件刷入

    在mos的ui界面中输入mos build 编译成功后输入mos flash刷入固件。

  4. 效果:

    在这里插入图片描述


http://www.ppmy.cn/news/645292.html

相关文章

【SA8295P 源码分析】33 - Android GVM USB 透传配置

【SA8295P 源码分析】33 - Android GVM USB 透传配置 1. Android 端配置 dts:以配置 USB1 为例2. QNX 端配置 linux-la.config:以配置 USB1 为例3. 在Android shell 中配置USB0 / USB1 的 Host/device 模式切换系列文章汇总见:《【SA8295P 源码分析】00 - 系列文章链接汇总》…

记录一次 vite 配置别名路径 打包时出错的bug

vite多页应用,由于在vite.config.ts中define中配置的常量pages,而路径别名也有pages,所有导致打包时替换路径出错,将pages常量注释掉就好了 export default defineConfig({root: getRoot(), // 项目根路径base: "/", // 公共基础路径envDir: resolve(__dirname), /…

雷神科技c++qt面试

一面 (30min): 应该是研发的负责人 腾讯出来的 问了一些项目 然后c的知识 malloc 与 new 区别 指针与引用区别 喜欢用指针还是引用作为参数的出参 哪些场景只能用指针作为参数 udp 与 tcp 区别 如果用udp 怎么实现类似tcp一样的稳定传输 排序…

SpringBoot入门-源码解析(雷神)

一、Spring Boot入门 视频学习资料(雷神): https://www.bilibili.com/video/BV19K4y1L7MT?p1 github: https://github.com/12722097458/springboot-20220403.git1、Spring Boot简介 简化Spring的一个框架; 是整个Spring技术栈的一个整合; 是…

雷神Springboot2笔记

1. 启动一个springboot项目 创建maven工程 在pom中引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency>创建主程序 /*** 主程序类* SpringBootApplicatio…

雷神加速器自动暂停

import requests import json import psutil import timeusername "" #密码得是加密后的 password "" #需要监控的游戏 process_name "cloudmusic.exe"session requests.Session() """ 获取token """ def ge…

Springboot学习笔记 | 尚硅谷雷神

一、springboot入门 1、导入依赖 导入springboot版本仲裁中心 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version><relativePath /&…

springboot尚硅谷雷神学习笔记

学习要求 熟悉Spring基础熟悉Maven使用 环境要求 Java8及以上Maven 3.3及以上&#xff1a;https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-system-requirements 学习资料 文档地址&#xff1a; https://www.yuque.…