树莓派B+使用入门&RPI库安装&wringPi库安装
最近看看试用一下树莓派进行一些开发操作,于是入手一块Raspberry Pi B+的板子来玩。由于没有显示器,没有备用的键盘和鼠标,所以想到用SSH来控制树莓派,刚开始还很担心已经安装好的操作系统到底有没有安装SSH服务,要是没有安装就蛋疼了。。。
(后面发现官方的系统里面居然没有安装VIM编辑器,于是想着还是试着用用早已忘记的Vi,结果真的是用的焦头烂额啊!!!!简直反人类了,于是安装了VIM,发现更本找不到VIM的安装包,于是 sudo apt-get update;sudo apt-get upgrade等了半天弄完之后,sudo apt-get install -y vim,好的,现在终于可以使用VIM编程序了。)
先来看看Raspberry Pi 3 B+的配置:
1GB RAM
802.11.b/g/nWireless LAN
Bluetooth 4.1
SD Card 8GB
Broadcom BCM2835芯片(700 MHz ARM11)
Memory (SDRAM): 256 Megabytes (shared with GPU)
USB 2.0 ports: 1 2 (via integrated USB hub)
Video outputs: Composite RCA (PAL & NTSC) , HDMI (rev 1.3 & 1.4)
Audio outputs: 3.5 mm jack, HDMI
Low-level peripherals: 8 × GPIO, UART, I²C bus, SPI bus with two chip selects, +3.3 V, +5 V, ground

下面来配置我的树莓派开发板:
下载XShell工具(直接百度搜索安装就可以了(选择普通安装))
安装完之后如下所示:

然后选择新建(如下所示):
协议选择SSH,端口为默认端口,名称自己取名字,区别其他的SSH链路就可以了,主机位置填写自己树莓派的主机的IP地址,我是采用路由器的LAN口和树莓派进行链接的,因此我可以通过查看路由器的网页管理器来查看接入设备的IP地址和MAC地址等信息,比如登录192.198.1.1的路由器控制界面,查看连接设备找到Raspberry,这里我们只需要用到的是Raspberry的IP地址信息。输入完IP地址之后我们就可链接了,当然第一次链接我们还需要输入Raspberry的系统的用户名和密码,这个在官方的系统中的账户和密码都是--》账户:pi 密码:raspberry。输入完账户密码之后就完成了和树莓派的连接,当然这些操作都是要等你上电Raspberry并插入代用Sys的SD Card之后的操作。(其他的连接方式和查看Raspberry的IP的方式请看Reference的链接!)
LAN扣查看设备的IP地址(地址池一般是从000到255之间的)可以直接在这些地址中进行查看搜索IP
连接完成之后如下图所示:

完成连接之后我们就能顺利的通过Xshell的命令行对树莓派进行操作了!Cheers!
硬件参数以及GPIO控制编程:
如下图所示(这是树莓派的GPIO的引脚图):风扇的安装位置就是引脚4和引脚6,注意红色线连接的是5V的位置pin4,黑色的线连接的是pin6。后面觉得风扇声音太大了就没用了,之后打算有时间给风扇上串连一个滑动变阻器调节风扇的速度。

这个就是树莓派的硬件的安装图,风扇的安装,这里我考虑使用raspberry的python编写实时监测CPU温度的脚本,进而启动控制风扇的转动(后面升级为自动调节风扇的速度)
下面开始配置使用我们的GPIO引脚:
安装GPIO的操作库:
1-- C语言库包安装 wiringPi.h和编程
1$ sudo apt-get update
2$ sudo apt-get install git-core
3$ git clone git://git.drogon.net/wiringPi
4$ cd wiringPi
5$ ./build
6$ cd wiringPi/wiringPi
7$ make
8$ make install
完成以上的8个步骤的操作就完成了WiringPi库的安装。注意,我这里遇到一个问题,找了很久才解决的问题,就是当我编译我的main.c文件的时候报出如下的错误(gcc main.c -o main -l wiringPi):
/usr/lib/gcc/arm-linux-gnueabihf/4.9/../../../arm-linux-gnueabihf/crt1.o:在函数‘_start’中:
/build/glibc-H706YU/glibc-2.19/csu/../ports/sysdeps/arm/start.S:119:对‘main’未定义的引用
collect2: error: ld returned 1 exit status
报错的解决办法是执行第7条和第8条指令,make ;make install 这样就建立安装了Dynamic lib和Static Lib的安装。
接下来就是编程啦~~~~~~~
#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char* argv[])
{
if (argc < )
{
printf("Usage example: ./led 4 \n");
return ;
}
int pinNumber = atoi(argv[]);//字符串转整形函数atoi()函数
printf("PinNumber is:%d\n",pinNumber);
if (- == wiringPiSetup())
{
printf("Setup wiringPi failed!");
return ;
}
printf("The Code will begain to Running!\n");
pinMode(pinNumber, OUTPUT); // set mode to output
while()
{
digitalWrite(pinNumber, ); // output a high level
delay();
digitalWrite(pinNumber, ); // output a low level
delay();
}
return ;
}
接下来编译上述程序:
gcc led.c -o led -lwiringPi
将得到的led可执行程序执行即可看到现象。
2-- Python语言库包安装RPi.GPIO和编程
Python的开发很是顺畅,没有遇到任何编译出错的问题,一路绿灯啊~~~
1$ sudo apt-get install python-dev
2$ sudo apt-get install python-pip(这是一个python开发包的安装插件)
3$ sudo pip install rpi.gpio
测试安装成功:

接下来就可以开始编程啦!!!!!(我用的是BCM GPIO的17号引脚,似乎24号引脚不好用,大家注意一下)
import os
import sys
import RPi.GPIO as GPIO
import time led_pin=17 GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(led_pin,GPIO.OUT) print 'linker led pin 17 (BCM GPIO)' while True:
GPIO.output(led_pin,True)
time.sleep(0.2)
GPIO.output(led_pin,False)
time.sleep(0.2)
我就不上效果图了(盗用几张图片T.T),这些控制都很简单,想要看看还有那些好的基于树莓派Raspberry的项目,看一看这里:http://www.shumeipaiba.com/

最后就是关机的问题了:
在命令行运行:poweroff now即可
等待关机之后,拔掉电源即可,或者自己给USB电源线上面安装一个开关也可以。
Reference:
http://www.codelast.com/%E5%8E%9F%E5%88%9B%E9%80%9A%E8%BF%87raspberry-pi%E7%9A%84gpio%E6%8E%A5%E5%8F%A3%E6%8E%A7%E5%88%B6%E5%8F%91%E5%85%89%E4%BA%8C%E6%9E%81%E7%AE%A1control-led-through-the-gpio-on-raspberry-pi/(入门C语言控制GPIO+Python控制GPIO)
http://www.cnblogs.com/emouse/archive/2013/06/07/3124027.html(没有显示器如何连接,如何控制)
http://shumeipai.nxez.com/2013/09/07/no-screen-unknow-ip-login-pi.html(没有显示器且IP未知的情况下登录树莓派)
http://blog.csdn.net/wangkai_123456/article/details/21530963(main函数的两个参数的相关问题和使用方法int main(int argc,int *argv[]))
树莓派B+使用入门&RPI库安装&wringPi库安装的更多相关文章
- 【转】Python3 (入门6) 库的打包与安装
Python3 (入门6) 库的打包与安装 本文由 Luzhuo 编写,转发请保留该信息. 原文: http://blog.csdn.net/Rozol/article/details/6940288 ...
- 树莓派安装alsa-lib库
安装alsa-lib库 apt-get install libasound2-dev dpkg -L libasound2-dev 参考:https://blog.csdn.net/happygril ...
- 树莓派上安装boost库
一.安装boost库 sudo apt-get install libboost-dev aptitude search boost 二.编写测试代码 #include <iostream> ...
- VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)
原文地址: VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解)-软件开发-鸡啄米 http://www.jizhuomi.com/software/139.html 上一讲中鸡 ...
- python入门(2)python的安装
python入门(2)python的安装 Python是跨平台的,可以运行在Windows.Mac和各种Linux/Unix系统上. 2.x还是3.x Python有两个版本,一个是2.x版,一个是3 ...
- Python入门:Anaconda和Pycharm的安装和配置
Python入门:Anaconda和Pycharm的安装和配置 转自:https://www.cnblogs.com/yuxuefeng/articles/9235431.html 子曰:“工欲善其 ...
- Python入门:如何使用第三方库?
这是关于Python的第13篇文章,也是关于<编程小白的第1本Python入门书>内容的最后一篇,主要介绍下如何使用第三方库. 1. 第三方库 Python相当于一个手机,第三方库相当于手 ...
- 树莓派中编译Opencv3.4.1和OpenCVSharp库
一.简介 本文主要讲在树莓派中编译Opencv3.4.1和OpenCVSharp库,方便C#开发人员可以通过Mono或者Netcore运行C#通过OpenCVSharp写的OpenCV库. 二.过程 ...
- 树莓派3B+简单入门
刚刚入手一个树莓派3B+,树莓派板子.3.5寸电阻触摸屏.16G内存卡.外壳电源等一系列配件一共花了360大洋,这东西真不便宜.这里介绍一下系统安装.3.5寸屏幕安装.VNC远程屏幕. 先给大家看一下 ...
随机推荐
- NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems
文章名称:NFV-Bench A Dependability Benchmark for Network Function Virtualization Systems 发表时间:2017 期刊来源: ...
- Exp2 后门原理与实践
一.基础问题回答 (注:本实验中在win7上使用的ncat.exe和socat.exe均可在实验指导的附件中下载) 1.例举你能想到的一个后门进入到你系统中的可能方式? 答:非官方网站下载资源时,可能 ...
- HDFS概述
HDFS概述 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.HDFS产出背景及定义 1>.HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配 ...
- Linux下nc命令的使用
nc命令的作用 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口 端口的扫描,nc可以作为client发起TCP或UDP连接 机器之间传输文件 机器之间网络测 ...
- trackerClient.getConnection()为null
如题,整了个fastDFS文件服务器.但是集成项目spring boot时上传文件失败! Debug到trackerClient.getConnection()时为null.于是看了服务器上track ...
- C++常见问题解答博客合集
1 关于宏 https://blog.csdn.net/hanchaoman/article/details/8809951
- [C++]类成员返回语句 return *this 的理解
经常会在类似 copy-assignment 的成员函数看到返回语句 return *this ,这类函数通常返回类型是所属类的引用. 类成员函数的隐式指针 class *this const 经过 ...
- jQuery新版本没有了Toggle事件,两个按钮分别控制隐藏显示,同时这两个按钮点击也要互斥。
十二月没来得及整理发布,一直在草稿箱.现在已经2019年1月了... 需求大概是这样的 //XX点击事件 var flagBar = 0; $("#doNotBaseRate"). ...
- [Kubernetes]PV,PVC,StorageClass之间的关系详解
在Kubernetes中,容器化一个应用比较麻烦的地方莫过于对其"状态"的管理,而最常见的"状态",莫过于存储状态. 在[Kubernetes]深入理解Stat ...
- python使用pip 18以上版本离线安装package
在内网办公环境,常常需要使用离线安装python的软件包. 一般都会先在互联网的电脑上下载,再拷贝到内网办公机器上进行离线安装. 一般来说,我是这样做的: 1.拷贝和外网电脑上版本一致,且32位或64 ...