问题的由来

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. A strange lift

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  2. 关于InputStream.read()方法的阻塞原理的测试

    最近在一家公司做java实习,写了个网络字节采集器.写了个单例TCPServer来采集数据,其中用到了InputStream.read()来读取数据.产生了一系列问题,下面做下总结: 关于while( ...

  3. TYVJ P1073 加分二叉树 Label:区间dp

    背景 NOIP2003 提高组 第三道 描述 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3,…,n为节点编号.每个节点都有一个分数(均为正整数),记第j个节点的 ...

  4. Eclipse开发JavaWeb程序报Server Tomcat v7.0 at localhost was unable to start

    出处:http://www.javaweb1024.com/info/582.jspx 原因重现: Eclipse开发JavaWeb程序,启动Servers的Tomcat服务器,突然跳出弹出框,内容显 ...

  5. select @@identity的用法

    用select @@identity得到上一次插入记录时自动产生的ID 如果你使用存储过程的话,将非常简单,代码如下:SET @NewID=@@IDENTITY 说明: 在 一条 INSERT.SEL ...

  6. opengl中拾取操作的实现

    opengl采用一种比较复杂的方式来实现拾取操作,即选择模式.选择模式是一种绘制模式,它的基本思想是在一次拾取操作时,系统会根据拾取操作的参数(如鼠标位置)生成一个特定视景体,然后又系统重新绘制场景中 ...

  7. Java常用类之Properties类

    1.特性 Properties类表示了一个持久的属性集,可保存在流中或从流中加载,实现内存和文件的交互.Properties继承了Hashtable<Object,Object>类,可以使 ...

  8. POJ 2528 Mayor's posters(线段树区间染色+离散化或倒序更新)

    Mayor's posters Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 59239   Accepted: 17157 ...

  9. OC学习笔记——类别(Category)

    类别,有些程序员又称之为分类. 类别是一种为现有的类添加新方法的方式,尤其是为系统的做扩展的时候,不用继承系统类,可以直接为类添加新的方法.也可以覆盖系统类的方法. 如: @interface NSO ...

  10. HTTP 笔记与总结(5)socket 编程:使用 HTTP 协议模拟登录并发帖

    在 VeryCD 上注册两个帐号,发送和接收站内信,观察 POST 请求时发送的参数(h****2 发送给 d***2).(最好用 FireFox 的 FireBug 工具,发送站内信之前选中 “保持 ...