基于wemos的火焰报警和阿里云远程控制板载灯

4 篇文章 3 订阅
3 篇文章 0 订阅

1硬件
Wemos WIFI、红外火焰传感器、杜邦线、面包板
在这里插入图片描述
火焰传感器,由各种燃烧生成物、中间物、高温气体、碳氢物质以及无机物质为主体的高温固体微粒构成的。根据这个,可以把火焰传感器分为远红外火焰传感器和紫外火焰传感器。本设计使用红外火焰传感器,利用红外线对火焰非常敏感的特点,使用特制的红外线接收管来检测火焰,然后把火焰的亮度转化为高低变化的电平信号,输入到中央处理器,中央处理器根据信号的变化做出相应的程序处理。实物如下图。

在这里插入图片描述

2接线

wemos 火焰传感器 面包板 蜂鸣器
A0        A0      
GND              -+5V              +极
A12                    S
还有火焰传感器和蜂鸣器的正负极都要
分别接到面包板正负极。     

3代码

#include <ESP8266WiFi.h> //安装esp8266板子
static WiFiClient espClient;
#include <ArduinoJson.h>
#include <AliyunIoTSDK.h>//引入阿里云库 iot sdk
AliyunIoTSDK iot;//定义阿里云
/*替换成阿里云的设备三信息*/
#define PRODUCT_KEY "a1ZubG3Nqoa"
#define DEVICE_NAME "led1"
#define DEVICE_SECRET "371b8c6fd5391a85297b741e7b75e348"
#define REGION_ID "cn-shanghai"
//连接wifi,密码和账号
#define WIFI_SSID "llmmhh"
#define WIFI_PASSWD "66666666"

const int Flame=A0; //定义火焰传感器数字接口为模拟A0接口
const int Buzzer=12;    //定义蜂鸣器接口为数字12接口
int val;        //定义数字变量val
int Sensor_threshold = 900; //火焰传感器阀值为30,可自行调节
 
void wifiInit(const char *ssid, const char *passphrase)
{
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, passphrase);
    WiFi.setAutoConnect (true);
    WiFi.setAutoReconnect (true);
    while (WiFi.status() != WL_CONNECTED)
    {
        delay(1000);
        Serial.println("WiFi not Connect");//连接到wifi
    }
    Serial.println("Connected to AP");
}
 
void setup()
{
    pinMode(LED_BUILTIN, OUTPUT);    
   pinMode(Buzzer,OUTPUT); //定义蜂鸣器为输出接口
   
    Serial.begin(115200); //设定波特率为115200 
 
    wifiInit(WIFI_SSID, WIFI_PASSWD);
  //初始化 iot,需传入 wifi 的 client,和设备产品信息
    AliyunIoTSDK::begin(espClient, PRODUCT_KEY, DEVICE_NAME, DEVICE_SECRET, REGION_ID);
   
    // 绑定属性回调
    AliyunIoTSDK::bindData("LightSwitch", powerCallback);
}

 //火焰传感器核心代码,输出数值
unsigned long lastMsMain = 0;
void loop()
{
  val=analogRead(A0) ;//读取火焰传感器的模拟值 
    AliyunIoTSDK::loop();//回路,一直读
    if (millis() - lastMsMain >= 5000)
    {
        lastMsMain = millis();
    }
    
  Serial.println(val); //输出模拟值,并将其打印出来
  if(val<=Sensor_threshold)          //当模拟值大于阀值时蜂鸣器鸣响
  { 
    digitalWrite(Buzzer,HIGH); //蜂鸣器高电平触发
  } else 
  { 
    digitalWrite(Buzzer,LOW);
  }
  delay(2000);//串口端输出火焰传感器数值间隔频率
}
 
 //控制灯核心代码部分,开关灯实现
void powerCallback(JsonVariant p)
{
    int PowerSwitch = p["LightSwitch"];
    if (PowerSwitch == 1)
    {
        Serial.println("Switch=1  from huasheng");
        digitalWrite(LED_BUILTIN, LOW);   //开灯 Turn the LED on (Note that LOW is the voltage level
 
    }
    else
    {
        Serial.println("Switch=0  from huasheng");
        digitalWrite(LED_BUILTIN, HIGH);  // 关灯 Turn the LED off by making the voltage HIGH
    }
}

4实现流程
实现流程就不详细讲了,上一篇有说。
下面自己搞的程序流程图
在这里插入图片描述

5效果图
接好线将wemose板子通过USB线与电脑相连,在Arduino中选择上传,打开串口,可以看到串口显示火焰传感器的模拟值,当用火靠近传感器时,数值变小,蜂鸣器发出哔哔声。
在这里插入图片描述
在这里插入图片描述

火焰报警
阿里云网页端已经建好了开关按钮,当点击开时等灯亮,关时板子的灯熄灭
在这里插入图片描述

在这里插入图片描述

6、总结
本次设计令我最烦恼的事情还是我电脑本来装好的阿里云库又没了,呜呜后来大佬又帮我装好了一次,但是重启了一次又没了,绝望到不想搞了,最后是借来了同学的电脑才做好的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lululylu6666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值