问题的由来

pi4j用起来很方便,但是感觉pi4j库的命名太杂乱,啰嗦了,很容易弄混,而且好像没听说官方有自己的编译器。如果没有智能点的编辑器的话,写起来真要命,但是树莓派运行Eclipse不太现实,于是我想到了在Windows下编写代码,再将项目文件传输到树莓派,在树莓派上编译,运行。

使用Eclips会很方便:一些快捷键用起来写代码刷刷的,最常用的就是

                                 alt+   /             智能提示,补全
                                 ctrl+shift + o    自动管理 import

我们的操作流程就是:在windows下用Eclipse编写代码,使用WinScp复制代码文件到树莓派,编译运行。

WinScp

我们先安装WinScp,它是什么作用呢?WinScp提供了图形化的操作界面,通过拖拽文件。达到linux和windows双向发送文件的功能,很方便。

具体下载安装就不必说了哇~!

在Windows下使用Eclipse编写pi4j项目

首先你要有台安装了Eclipse 的电脑,要在Windows下使用pi4j,就必须在Eclipse的项目中导入pi4j库的jar文件。具体操作如下

一、使用WinScp连接树莓派

打开WinScp,输入你的树莓派的IP(可通过路由器查看),账户和密码,即可连接。如果连接不上多尝试几遍,老连不上,请确保树莓派配置中允许了SSH

将树莓派的/opt/pi4j/lib下的所有的jar文件拖拽到Windows 的某个文件夹下。我放在java的工作文件夹workspace下的pi4j_jars文件夹下。

新建一个Eclipse的java项目,我命名为pi4jDemo。

右击工程名pi4jDemo.选择最后一项:Properties  ->java build path  -> Libraries  ->Add External jas 
 
然后进入我们刚刚新建 的 pi4j_jars文件夹下,全选里面的jar文件,OK
这样就完成了pi4j的jar的关联。

下面开始写代码啰~~~

提示:经常写java的都会习惯性的建包,再新建一个类。不要建包名,使用默认(default)包就好了,因为代码是在Windows下编写的,树莓派那边不会形成包目录,而且一般pi4j项目单个文件就可以搞定了。

效果图:

小灯闪烁的例子代码

import com.pi4j.io.gpio.GpioController;
import com.pi4j.io.gpio.GpioFactory;
import com.pi4j.io.gpio.GpioPinDigitalOutput;
import com.pi4j.io.gpio.PinState;
import com.pi4j.io.gpio.RaspiPin; public class LEDBlink
{
//获取全局Gpio 引脚控制器对象
public static final GpioController gpio = GpioFactory.getInstance(); public static void main(String [] rags) throws InterruptedException
{ //定义编号为0的引脚为数字输出引脚,初始化为低电平
GpioPinDigitalOutput myLed = gpio.provisionDigitalOutputPin(RaspiPin.GPIO_00, "" ,PinState.LOW); while(true)
{ myLed.high();
Thread.sleep(500);
myLed.low();
Thread.sleep(500); } } }

将代码源文件复制到树莓派下,编译运行

回到树莓派,编译运行

编译:           javac -classpath .:classes:/opt/pi4j/lib/'*'  LEDBlink.java
运行 :  sudo java -classpath .:classes:/opt/pi4j/lib/'*'  LEDBlink

大功告成!

树莓派如何便捷的使用pi4j的更多相关文章

  1. 树莓派.GPRS.短信接收器

    起因 曾经用过西门子出的短信猫, 好处是直接有SDK开发包, 不会硬件开发也能直接使用 缺点也是明显的, 就是只支持Windows系统, 另外就是在Windows下工作很不稳定, 隔开几天就会出现收不 ...

  2. 腾讯IOT之树莓派物联网设备

    目录 腾讯IOT之树莓派物联网设备 硬件配置 软件配置 Tecent IOT 开发平台的使用 新建项目 新建产品 添加自定义功能 设备开发 微信小程序配置 面板配置 新建设备 使用设备 在线调试 设备 ...

  3. 用Java操作树莓派!pi4j简介与安装

    简介 对C不熟?习惯了使用java不想换语言,但又想操作树莓派?想一边喝咖啡,一边吃树莓派蛋糕?快来使用pi4j吧! pi4j旨在为java开发者提供面友好的面向对象的API,来操控树莓派.pi4j对 ...

  4. 树莓派wiringPi库详解

    wiringPi是一个很棒的树莓派IO控制库,使用C语言开发,提供了丰富的接口:GPIO控制,中断,多线程,等等.java 的pi4j项目也是基于wiringPi的,我最近也在看源代码,到时候整理好了 ...

  5. 树莓派.Raspberry Pi 3碰到"Unable to determine hardware version. I see: Hardware : BCM2835"错误的解决过程

    按pi4jp官方的安装指导(http://pi4j.com/install.html)进行安装 curl -s get.pi4j.com | sudo bash 安装完成后执行JAVA程序, 发现如下 ...

  6. 【树莓派】使用xdrp远程登录树莓派的图形界面

    之前采用了vnc方式方式的树莓派,但是配置还有点步骤,刚才看了一下,试验了一下xrdp,直接很简单就好了. 树莓派DIY笔记之前有介绍过用VNC连接到树莓派的方法.在Windows下,当然还是自带的远 ...

  7. 【树莓派】使用VNC远程登录树莓派的图形界面

    我自己本人使用树莓派,就是ssh连接操作:但是由于实施的部分同学不熟悉Linux命令行操作,虽然之前我给搞过teamviewer方式,但是对他们而言,还是有点复杂,他们也不喜欢不熟悉用ssh,所以我尝 ...

  8. 树莓派使用DHT11温湿度传感器

    一.相关介绍 DHT11介绍: DHT11是一款比较便宜的温湿度传感器模块.读取数据只需要占用一个IO口.能够同时测量温度和相对湿度. DHT11的数据手册可以看这里:http://wenku.bai ...

  9. 玩转X-CTR100 l STM32F4 l X-CTR100与树莓派搭建机器人平台

    我造轮子,你造车,创客一起造起来!塔克创新资讯[塔克社区 www.xtark.cn ][塔克博客 www.cnblogs.com/xtark/ ] 本文介绍X-CTR100控制器与树莓派Linux系统 ...

随机推荐

  1. WPF/Silverlight HierarchicalDataTemplate 模版的使用(转)

    上一篇 对Wpf/Silverlight Template 进行了总结,本篇继续上一篇,主要是介绍 HierarchicalDataTemplate 的使用方法.HierarchicalDataTem ...

  2. SU Demos-02Filtering-06Sukfilter

    本demo中数学原理纯粹不知道,看来以后需要抓紧时间补课了,只附图. 运行结果图如下:

  3. 2016 Multi-University Training Contest 9

    solved 1/13 2016 Multi-University Training Contest 9 二分+最大权闭合图 Less Time, More profit(BH) 题意就是有n个工厂, ...

  4. BZOJ3790 : 神奇项链

    Manacher求出所有极长回文子串后,得到一堆线段,转化成线段覆盖问题 预处理出g[i]表示左端点不超过i的右端点的最大值 贪心地线段覆盖即可 时间复杂度$O(n)$ #include<cst ...

  5. 苹果应用商店DNS修改加快下载速度

    具体方法:依次点击进入[设置]→[无线局域网]→[WiFi网络右侧小i图标]→更改DNS地址,可以按照自身需求选择以下某个DNS进行更换. OpenDNS:208.67.222.222和208.67. ...

  6. javascript第二弹——函数

    什么是函数 函数是一块javascript代码,被定义一次,就可以执行和调用多次:函数也是js对象,所以也可以像对象那样操作和传递:所以我们也把函数称之为函数对象: 创建函数的几种方法 一.函数声明 ...

  7. SSH全注解开发

    web.xml: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi=&quo ...

  8. 八、job管理

    查看用法: [root@super65 ~]# salt-run -d|grep jobs'jobs.active:' #查看当前执行的job Return a report on all activ ...

  9. spark Using MLLib in Scala/Java/Python

    Using MLLib in ScalaFollowing code snippets can be executed in spark-shell. Binary ClassificationThe ...

  10. PHP5 session 详解【经典】 -- 转帖

    PHP5 session 详解[经典] http协议是WEB服务器与客户端(浏览器)相互通信的协议,它是一种无状态协议.所谓无状态,指的是不会维护http请求数据,http请求是独立的,非持久的.而越 ...