既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
然后将传感器远离遮挡物或者朝天花板,当开关指示灯熄灭时
输入gpio -g read 4 回车,会发现返回的是1。
C语言获取IO状态(wPi编码)
打开C语言IDE Geany,输入以下代码:
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#define KEY 7 //wiringPi模式第7号脚
int main()
{
if(wiringPiSetup()==-1)
{
perror("树莓派启动失败");
exit(-1);
}
pinMode(KEY,INPUT);//设置引脚为输入
while(1)
{
if(digitalRead(KEY)==0)
{
//遮挡低电平,未遮挡高电平
puts("被遮挡...");
}
}
return 0;
}
需要进一步了解wiringpi库中函数的参考此博文。
按照之前的操作命名key.c,保存到桌面,然后打开终端命令;
输入 cd Desktop 切换至桌面目录
然后入gcc -o key key.c -lwiringPi编译和生成key的执行文件,
最后输入sudo ./key回车。
此时遮挡传感器就会看见命令行出现以下效果。
可以发现命令窗口打印了一堆被遮挡,这显然有些不太友好
我们先按Ctrl+C关闭当前运行,对代码进行修改。
Ctrl + C 终止
Ctrl + D 退出
Ctrl + S 挂起
Ctrl + Q 解挂
修改代码如下:(其实就类似与我们对按键输入执行了一个消抖)
// An highlighted block
#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>
#define KEY 7 //wiringPi模式第7号脚
int main()
{
if(wiringPiSetup()==-1)
{
perror("树莓派启动失败");
exit(-1);
}
pinMode(KEY,INPUT);//设置输入
//判断是否遮挡
while(1)
{
if(digitalRead(KEY)==0)
{
//遮挡低电平,未遮挡高电平
//第一次判断是否遮挡
delayMicroseconds(20000);//延时20ms
if(digitalRead(KEY)==0){
//第二次判断是否遮挡
while(digitalRead(KEY)==0);//等待
puts("按下...");
}
}
}
return 0;
}
然后再次打开命令终端,一套龙操作,就可以实现以下效果。
Python获取IO状态(设置成了wPi编码模式)
打开Thonny,输入以下代码并保存,
// An highlighted block
import wiringpi
GPIO_Output_Pin = 0 #定义GPIO_Output_Pin为0脚
GPIO_Intput_Pin = 7 #定义GPIO_Intput_Pin为7脚
OUTPUT = 1 #定义OUTPUT为1即输出
INPUT = 0 #定义INPUT为0即输入
HIGH = 1 #定义HIGH为1即高点平
LOW = 0 #定义HIGH为1即高点平
wiringpi.wiringPiSetup() #设置GPIO编号为wPi方式
wiringpi.pinMode(GPIO_Output_Pin,OUTPUT) #设置GPIO_Output_Pin为OUTPUT输出模式
wiringpi.pinMode(GPIO_Intput_Pin,INPUT) #设置GPIO_Intput_Pin为INPUT输入模式
while 1:
wiringpi.digitalWrite(GPIO_Output_Pin,HIGH)#设置GPIO_Output_Pin输出高电平
print('GPIO\_Output\_Pin OUTPUT =>HIGH')
print('GPIO\_Intput\_Pin INPUT <=',wiringpi.digitalRead(GPIO_Intput_Pin))#打印从GPIO_Intput_Pin读到的数据
wiringpi.delay(1000) #延时1000ms
print() #为了输出美观 打印换行
wiringpi.digitalWrite(GPIO_Output_Pin,LOW)#设置GPIO_Output_Pin输出低电平
print('GPIO\_Output\_Pin OUTPUT =>LOW')
print('GPIO\_Intput\_Pin INPUT <=',wiringpi.digitalRead(GPIO_Intput_Pin))#打印从GPIO_Intput_Pin读到的数据
wiringpi.delay(1000) #延时1000ms
print() #为了输出美观 打印换行
总结
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,可以戳这里获取](https://bbs.csdn.net/topics/618679757)**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!