智能家居实验代码
遥控器控制风扇和蜂鸣器
#include <IRremote.hpp>
/*
* IRremote: IRrecvDemo -demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009,Copyright 2009 Ken Shirriff.
*/
#include <IRremote.h>
int recvPin = 2; //红外接收器连接11号引脚
boolean flag = true;
boolean flag1 = true;
IRrecv myIRrecv(recvPin);
decode_results results; // 用于存储接收红外编码信息的结构体对象
void setup() {
Serial.begin(9600); // 初始化串口通信
myIRrecv.enableIRIn(); // 初始化红外解码
}
void loop() {
if (myIRrecv.decode(&results)) { //检查是否接收到编码信息
Serial.print("the keycode is:");
Serial.println(results.value);
if(results.value == 16753245){//灯
if(flag == true){
digitalWrite(4, HIGH);
flag = !flag;
}else{
digitalWrite(4, LOW);
flag = !flag;
}
// Serial.print("the keycode is:");
// Serial.println(results.value);
}else if(results.value == 16769565){//蜂鸣器
if(flag1 == true){
digitalWrite(A2, LOW);
flag1 = !flag1;
}else{
digitalWrite(A2, HIGH);
flag1 = !flag1;
}
}else{
Serial.println("no");
}
delay(500);
myIRrecv.resume(); // 接收下一个编码
}
}
超声波测距
const int TrigPin = 8;
const int EchoPin = 9;
float distance;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("Sensor Value:");
}
void loop()
{
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
distance = pulseIn(EchoPin, HIGH) / 58.0;
Serial.print("Distance=");
Serial.print(distance);
Serial.println("cm");
delay(200);
}
测距, 测温, 测湿,测光, 测声, 显示屏显示
#include <DFRobot_SSD1306_I2C.h> //导库
// 创建对象
DFRobot_SSD1306_I2C oled12864; //创建oled对象
int dist=100;//记录超声波测的距离
int light=A1;//光感引引脚
int sy=A2;
int j=A6;
int l=A2;
int humity = A5;//湿度引脚
const int TrigPin = 2;
const int EchoPin = 5;
// 主程序开始
void setup() {
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("Sensor Value:");
oled12864.begin(0x3c);//定义地址
Serial.begin(9600);
pinMode( light,INPUT);
pinMode( sy,INPUT);
pinMode( j,OUTPUT);
pinMode( l,INPUT);
}
void loop() {
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
dist = pulseIn(EchoPin, HIGH) / 58.0;
//dist is distanse
int num=analogRead(light);
oled12864.setCursorLine(1);
oled12864.printLine(String("light:") + String(num) + String("cd"));//1022
int x=analogRead(sy);
oled12864.setCursorLine(2);
oled12864.printLine(String("noisy:") + String(x) + String("hz"));//声音
oled12864.setCursorLine(3);
oled12864.printLine(String("distance :") + String(dist) + String("cm"));//距离
delay(3000);
oled12864.fillScreen(0);//清屏
oled12864.setCursorLine(1);
float numn=1.0*(analogRead(l)-32)*5/9;
oled12864.printLine(String("Tempera:") + String(numn) + String("c"));//温度
oled12864.setCursorLine(2);
int humi = analogRead(humity);
oled12864.printLine(String("humidity:") + String(humi) + String("rh"));//湿度
delay(1000);
oled12864.fillScreen(0);
//oled12864.setRotaion(eROTATION_180);//旋转180°
//oled12864.setRotaion(eROTATION_0);//旋转0°
delay(2000);
oled12864.fillScreen(0);
}
本文作者:小染のblog
本文链接:https://www.cnblogs.com/xiaoranya/p/16425583.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步