树莓派DIY之无线感应报警
fp=fopen("/sys/class/thermal/thermal_zone0/temp","r"); //读取树莓派温度
fgets(temp_char,9,fp);
float Temp;
Temp=atof(temp_char)/1000;
lcdPosition (fd, 0, 1);lcdPrintf (fd, "%3.1fC", Temp) ;
fclose(fp);
fp=fopen("/proc/meminfo","r"); //读取内存信息
fgets(Total,19,fp);
fgets(Total,4,fp);
fgets(Free,9,fp);
fgets(Free,19,fp);
fgets(Free,4,fp);
lcdPosition (fd, 7, 1);
lcdPrintf (fd, "%3d/%3dMB", atoi(Free),atoi(Total)) ;
fclose(fp);
sleep(1);
}
return 0;
}
这里面用到了很多的函数,包括关于LCD显示的函数,PWM波引脚初始化等函数。这些都是Wiring里面已经包含好了的。在利用时,我们需要查看函数的具体调用的原理即可。
这个大家千万要注意就是调用函数的参数要和我们实际试验中的引脚对应起来,否则调用函数不会有结果的。一些错误的连线还可能烧坏树莓派
软件写完以后,我们就是编译,调试和实验了。
现在我们来整理一下思路哈,这都是在树莓派系统终端执行!
(1)进入树莓派系统终端, 安装版本管理软件
sudo apt-get install git
(2)clone程序pi-screen。这个程序只有相应的显示功能,我们需要根据自己的需要添加
git clone https://github.com/qtsharp/pi-screen
(3)更改源程序,根据自己想实现的功能,添加相应的函数和功能。
这主要包括更改LCD1602函数的引脚,PWM波
(4)编译源文件,生成可执行文件。使用如下语句:
gcc 1602.c -o 1602 -L lin -l wiringPi -lwiringPiDev
(5)最后执行文件,使用如下语句:
sudo ./1602
到了这一步,我们就可以看实验结果了。
下面是我自己调试的一些过程。
这是感应没有输出的时候:
可以看到:
DETECT:FALSE ,感应模块LED没亮,同时蜂鸣器没有输出
这是感应模块有输出的时候:
显示可以看到此时:
DETECT:TRUE,感应模块LED亮起,同时蜂鸣器有输出。
到这里这个实验就结束了,大家也可以自己试试哈。
中间调试过程也出了一些bug,以后我总结一下再和大家分享哈!
无线感应报警LCD1602蜂鸣 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)