樹莓派使用Java語言驅(qū)動(dòng)OLED

簡介

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)備

  1. 樹莓派4B(理論上任何型號都可以)

  2. 0.96寸OLED

  3. 杜邦線4根(VCC/GND SLC/SDA)

  4. 能進(jìn)行Java編程的電腦(使用樹莓派也可以)

代碼

由于代碼較多,這里僅展示部分代碼,如果需要全部源代碼可私信我進(jìn)行獲取

  1. package?com.codersoft.controller;


  2. import?com.codersoft.enums.SSD1306_Constants;

  3. import?com.codersoft.enums.SSD1306_I2C_Display;

  4. import?com.pi4j.io.gpio.GpioController;

  5. import?com.pi4j.io.gpio.GpioFactory;

  6. import?com.pi4j.io.i2c.I2CBus;

  7. import?com.pi4j.io.i2c.I2CFactory;

  8. import?com.pi4j.wiringpi.I2C;

  9. import?org.springframework.web.bind.annotation.RequestMapping;

  10. import?org.springframework.web.bind.annotation.RestController;


  11. import?java.io.IOException;


  12. @RestController

  13. public?class?HelloController?{


  14. @RequestMapping("/")

  15. public?String?index()?{

  16. final?GpioController?gpio?=?GpioFactory.getInstance();//GPIO實(shí)例化

  17. I2CBus i2c;

  18. SSD1306_I2C_Display display;

  19. try?{

  20. i2c?=?I2CFactory.getInstance(I2C.CHANNEL_1);

  21. display?=?new?SSD1306_I2C_Display(SSD1306_Constants.LCD_WIDTH_128,?SSD1306_Constants.LCD_HEIGHT_64,

  22. gpio,?i2c,?SSD1306_Constants.SSD1306_I2C_ADDRESS);?//初始化屏幕

  23. display.begin();

  24. display.clearImage();

  25. display.displayString("學(xué)識野路子",?30,?30);

  26. display.displayImage();

  27. }?catch?(I2CFactory.UnsupportedBusNumberException?|?IOException?e)?{

  28. e.printStackTrace();

  29. }

  30. return?null;

  31. }


  32. }

點(diǎn)亮

樹莓派針腳如下圖所示


接線方式如下

  1. Pin?Pi4J?numbering OLED

  2. -----------------------------------

  3. 1?3.3V?Vcc

  4. 3?GPIO?8?/?SDA1?(I2C)?SDA

  5. 5?GPIO?9?/?SCL1?(I2C)?SCL

  6. 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)行交流


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容