树莓派使用Java语言驱动OLED_树莓派 java16

createh52个月前 (02-21)技术教程16

简介

Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI) 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。随着Windows 10 IoT的发布,我们也将可以用上运行Windows的树莓派。
自问世以来,受众多计算机发烧友和创客的追捧,曾经一“派”难求。别看其外表“娇小”,内“心”却很强大,视频、音频等功能通通皆有,可谓是“麻雀虽小,五脏俱全”。

开始

上回我们使用NodeMCU驱动了oled,我更倾向于Java软件开发,因此心想使用Java能不能实现一次硬件级别的Hello World呢,还真让我实现了,由于NodeMCU不支持Java语言,所以这次我们使用更为强大的树莓派进行驱动。
项目依托SpringBoot调用Pi4j接来实现。Pi4详细介绍见https://pi4j.com 。

准备

  1. 树莓派4B(理论上任何型号都可以)
  2. 0.96寸OLED
  3. 杜邦线4根(VCC/GND SLC/SDA)
  4. 能进行Java编程的电脑(使用树莓派也可以)

代码

由于代码较多,这里仅展示部分代码,如果需要全部源代码可私信我进行获取

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;
@RestControllerpublic?class?HelloController?{
@RequestMapping("/")public?String?index()?{final?GpioController?gpio?=?GpioFactory.getInstance();//GPIO实例化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("学识野路子",?30,?30);display.displayImage();}?catch?(I2CFactory.UnsupportedBusNumberException?|?IOException?e)?{e.printStackTrace();}return?null;}
}

点亮

树莓派针脚如下图所示


接线方式如下

Pin?Pi4J?numbering OLED-----------------------------------1?3.3V?Vcc3?GPIO?8?/?SDA1?(I2C)?SDA5?GPIO?9?/?SCL1?(I2C)?SCL9?Ground?GRD

按照以上要求接好通信线之后就可以开始运行之前写好的Java项目了,之所以采用SpringBoot其实有很大原因是懒得在树莓派上安装Tomcat,SpringBoot项目只需要java -jar 项目.jar就可以运行,当然也可以写更为简单的main方法进行实现,这里也是为了学习SpringBoot项目的使用。

总结

本次项目主要是使用Java语言点亮oled实现了一次非同一般的HelloWorld,让编程变得不那么生硬,看得见的HelloWorld更能激发学习的兴趣,感谢大家的阅读,如果对以上内容有任何的问题或者疑惑,欢迎在下方留言一同学习

相关文章

重磅发布!AI 驱动的 Java 开发框架:Spring AI Alibaba

本文作者系阿里云云原生微服务技术负责人,Spring AI Alibaba 发起人彦林,望陶和隆基对可观测和 RocketMQ 部分内容亦有贡献。摘要随着生成式 AI 的快速发展,基于 AI 开发框架...

Java,事件驱动,Reactor设计模式,反应器设计模式

前言服务器端处理WEB请求,通常有两种体系结构:1、基于线程————thread-based architecture2、事件驱动————event-driven architecture基于线程(t...

Linux系统移植之—Nand flash驱动编写与移植,学Linux的先收藏

Linux系统要跑起来,除了上几章节讲到的uboot、kernel、文件系统的移植,还有一个不可缺少的——Nand flash驱动的移植,搞linux的或者android底层驱动的先收藏,以后工作中会...

国能智深控制技术申请 Matlab 驱动加载专利,提高了兼容性

金融界 2024 年 9 月 18 日消息,天眼查知识产权信息显示,国能智深控制技术有限公司申请一项名为“Matlab 驱动加载方法、装置、存储介质及电子设备“,公开号 CN202410689145....

《Java分布式技术探索》_《java分布式技术探索》中文版

一、引言在当今的软件开发领域,随着业务规模的不断扩大和数据量的急剧增长,分布式系统已经成为构建大型应用的关键技术。Java作为一种广泛应用于企业级开发的编程语言,在分布式系统开发中有着丰富的技术生态和...

Java 大视界 -- 人工智能驱动下 Java 大数据的技术革新与应用突破

引言亲爱的 Java 和大数据爱好者们,元宵节快乐!在数字化转型的浪潮中,Java 大数据技术宛如一座巍峨灯塔,照亮各行业前行之路。在零售行业,Java 大数据助力企业精准捕捉消费者偏好变化,巧妙调整...