Raspberry Pi点亮LED+DHT11温度湿度传感器

1.安装基础包

要操纵Pi的gpio口,需要先安装libi2c-dev和wiringPi

sudo apt-get install libi2c-dev
wget http://project-downloads.drogon.net/files/wiringPi.tgz
tar xf wiringPi.tgz
cd wiringPi/wiringPi/
make
make install

2.点亮LED

RPi点亮LED

点亮led并不复杂,将led和270欧的电阻串联后,一端接Pi的端口1(将pi反过来,看背面焊点为方的就是,并排的是2,依次类推),一端接io口即可,我接的是7号口,即1号口下面的第四个。
下面的代码作用是1秒为周期点亮LED。

// led.c
 
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
 
int main (int argc,char* argv[])
{
  if (argc < 2) {
    printf("Usage example: ./led 4 \n");
    return 1;
  }
  int pinNumber = atoi(argv[1]);
 
  if (-1 == wiringPiSetup()) {
    printf("Setup wiringPi failed!");
    return 1;
  }
 
  pinMode(pinNumber, OUTPUT); // set mode to output
  while(1) {
    digitalWrite(pinNumber, 1); // output a high level
    delay(800);
    digitalWrite(pinNumber, 0); // output a low level
    delay(800);
  }
 
  return 0;
}

编译后直接运行即可:

gcc led.c -o led -lwiringPi
sudo ./led 7

3.DHT11温度湿度传感器

RPi DHT11传感器

根据DHT11连线图:

dht11连线图

1号口是3.3v,数据口仍然用7号口,地线用25号口(既1号口那一排的最后一个口),根据图上的连线,为了保险起见,我将5k的电阻换成10k,仍然没问题。

DHT11 连线图

秀一下我糟烂的焊接技术 😀

糟烂的焊接技术

代码为dht11.c,一样需要编译。

gcc -o dht11 dht11.c -L/usr/local/lib -lwiringPi
sudo ./dht11

参考自:
通过Raspberry Pi(树莓派)的GPIO接口控制发光二极管
Temp Sensor and wiringPi (需翻墙)

重读基础-C程序设计语言(一)

这周忘记带《计算机硬件及组成原理》回家了,所以抽了C语言来补补课。第一章课后习题有一题比较有意思:

编写一个删除C语言程序中所有的注释语句。要正确处理带引号的字符串与字符常量。在C语言中,注释不允许嵌套。

之前了解过一些编译原理中状态机的原理,早就想做一个试试,所以就抽了点时间写了一个,状态转换图如下:

C语言 注释移除器 状态机

源代码点击  这里 下载