簡介
Raspberry Pi(中文名為“樹莓派”,簡寫為RPi,(或者RasPi / RPI) 是為學(xué)習(xí)計(jì)算機(jī)編程教育而設(shè)計(jì)),只有信用卡大小的微型電腦,其系統(tǒng)基于Linux。隨著Windows 10 IoT的發(fā)布,我們也將可以用上運(yùn)行Windows的樹莓派。?
自問世以來,受眾多計(jì)算機(jī)發(fā)燒友和創(chuàng)客的追捧,曾經(jīng)一“派”難求。別看其外表“嬌小”,內(nèi)“心”卻很強(qiáng)大,視頻、音頻等功能通通皆有,可謂是“麻雀雖小,五臟俱全”。
開始
上回我們使用NodeMCU驅(qū)動(dòng)了oled,我更傾向于Java軟件開發(fā),因此心想使用Java能不能實(shí)現(xiàn)一次硬件級別的Hello World呢,還真讓我實(shí)現(xiàn)了,由于NodeMCU不支持Java語言,所以這次我們使用更為強(qiáng)大的樹莓派進(jìn)行驅(qū)動(dòng)。?
項(xiàng)目依托SpringBoot調(diào)用Pi4j接來實(shí)現(xiàn)。Pi4詳細(xì)介紹見https://pi4j.com 。
準(zhǔn)備
樹莓派4B(理論上任何型號都可以)
0.96寸OLED
杜邦線4根(VCC/GND SLC/SDA)
-
能進(jìn)行Java編程的電腦(使用樹莓派也可以)
代碼
由于代碼較多,這里僅展示部分代碼,如果需要全部源代碼可私信我進(jìn)行獲取
package?com.codersoft.controller;
import?com.codersoft.enums.SSD1306_Constants;
import?com.codersoft.enums.SSD1306_I2C_Display;
import?com.pi4j.io.gpio.GpioController;
import?com.pi4j.io.gpio.GpioFactory;
import?com.pi4j.io.i2c.I2CBus;
import?com.pi4j.io.i2c.I2CFactory;
import?com.pi4j.wiringpi.I2C;
import?org.springframework.web.bind.annotation.RequestMapping;
import?org.springframework.web.bind.annotation.RestController;
import?java.io.IOException;
@RestController
public?class?HelloController?{
@RequestMapping("/")
public?String?index()?{
final?GpioController?gpio?=?GpioFactory.getInstance();//GPIO實(shí)例化
I2CBus i2c;
SSD1306_I2C_Display display;
try?{
i2c?=?I2CFactory.getInstance(I2C.CHANNEL_1);
display?=?new?SSD1306_I2C_Display(SSD1306_Constants.LCD_WIDTH_128,?SSD1306_Constants.LCD_HEIGHT_64,
gpio,?i2c,?SSD1306_Constants.SSD1306_I2C_ADDRESS);?//初始化屏幕
display.begin();
display.clearImage();
display.displayString("學(xué)識野路子",?30,?30);
display.displayImage();
}?catch?(I2CFactory.UnsupportedBusNumberException?|?IOException?e)?{
e.printStackTrace();
}
return?null;
}
}
點(diǎn)亮
樹莓派針腳如下圖所示
接線方式如下
Pin?Pi4J?numbering OLED
-----------------------------------
1?3.3V?Vcc
3?GPIO?8?/?SDA1?(I2C)?SDA
5?GPIO?9?/?SCL1?(I2C)?SCL
9?Ground?GRD
按照以上要求接好通信線之后就可以開始運(yùn)行之前寫好的Java項(xiàng)目了,之所以采用SpringBoot其實(shí)有很大原因是懶得在樹莓派上安裝Tomcat,SpringBoot項(xiàng)目只需要java -jar 項(xiàng)目.jar就可以運(yùn)行,當(dāng)然也可以寫更為簡單的main方法進(jìn)行實(shí)現(xiàn),這里也是為了學(xué)習(xí)SpringBoot項(xiàng)目的使用。?
總結(jié)
本次項(xiàng)目主要是使用Java語言點(diǎn)亮oled實(shí)現(xiàn)了一次非同一般的HelloWorld,讓編程變得不那么生硬,看得見的HelloWorld更能激發(fā)學(xué)習(xí)的興趣,感謝大家的閱讀,如果對以上內(nèi)容有任何的問題或者疑惑,歡迎在下方留言一同學(xué)習(xí),或者點(diǎn)擊閱讀全文進(jìn)行交流