基于NodeMcu的远程天气预报获取及智能温度控制系统

所用模块及平台

1、NodeMcu开发板
2、blynk云平台
3、心知天气服务器
4、5v继电器
5、直流电机

功能流程图

在这里插入图片描述

功能描述

通过NodeMcu上打搭载的esp8266WiFi模块,将其接入互联网,从而接入blynk云平台,通过平台手机终端控制MCU开发板,实现远程控制,另外既然NodeMcu连上了互联网则可以访问心知天气(一个提供天气信息的平台)服务器,通过程序代码写入待查询地区,向心知天气服务器发出请求以获取天气预报,再利用Arduino的第三方json库将获取的数据进行解析,将需要显示的信息通过IIC通信发送给0.96OLED 屏幕,使其显示出来,我设置的是当读到温度大于20摄氏度时就自动触发继电器从而使直流电机开启,不仅可以通过温度控制,还能通过blynk终端远程向开发板发送命令从而控制直流电机从而达到双重控制。另外人性化交互设置就是当温度低于20摄氏度时,屏幕就会显示“It’s cold,plsease close the fan!”当未打开天气获取功能时,屏幕上温馨提示:“No open,please wait !”至于为什么全部都是英文我在总结中已经解释过了。

重要模块学习介绍

Nodemcu开发板
这是一块集成好的esp8266模块,上面有十个GPIO口,可以通过控制这些IO口来实现所需的功能,由于是集成好的班子,引脚与IO口之间就有一个映射,映射关系见下图:
在这里插入图片描述
其中我要介绍一下esp8266的工作模式的使用,这篇是我学习工作模式的参考
另外在arduino中对8266引脚进行操作时,不要看板子上写的那个号码,要看其对应的GPIO口号码,(这是我如果的一个坑)
关于8266先讲这么多,以后有新学再补充。
blynk云平台及终端的使用
我在整个项目中就只用了两个按钮控件如下图:在这里插入图片描述
关于blynk软件的使用参见我的上一篇博客blynk的使用
这里就不多说了。
1路继电器
我使用的是单组继电器,主要是因为NodeMcu板子最大输出电压是5v,直接用单片机给电机供电可能有时会烧坏板子,所以我就接了一个继电器,继电器的工作内容就相当一个开关,实现用小电流控制大电流,继电器和驱动就是把电机的电源独立出来,理论上讲只要有驱动单片机可以驱动汽车甚至货车的电机。其中继电器的触发方式有高电平触发和低电平触发两种,这里采用低电平触发,所以刚开始设置与其相连的单片机IO口为高电平,通过blyn控制单片机的高低电平来控制电机,其中继电器的的使用方式某宝上介绍的很详细:在这里插入图片描述
下面是电路图
在这里插入图片描述

差不多就这些了,下面附上部分截图:
在这里插入图片描述
在这里插入图片描述
代码

#include <SeeedOLED.h>
#include <avr/pgmspace.h>
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
#include <U8g2lib.h>
#include <BlynkSimpleEsp8266.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

#define LED D4
#define BLYNK_PRINT Serial
#define DEBUG //是否开启debug功能

#ifdef DEBUG
#define DebugPrintln(message)    Serial.println(message)
#else
#define DebugPrintln(message)
#endif

#ifdef DEBUG
#define DebugPrint(message)    Serial.print(message)
#else
#define DebugPrint(message)
#endif

#define WEATHER_CODE_DAY_SUN "0" //晴(国内城市白天晴)
#define WEATHER_CODE_NIGHT_SUN "1" //晴(国内城市夜晚晴)
#define WEATHER_CODE_DAY_SUN1 "2" //晴(国外城市白天晴)
#define WEA
  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值