說明
開發環境的搭建以及應用工程的創建方法在這里不再贅述,可參考筆者文章《鈦極OS(TiJOS)物聯網操作系統之初體驗》或訪問鈦極OS(TiJOS)系統官方發布的教程?鈦極OS(TiJOS)應用開發環境搭建
功能實現
解碼紅外遙控編碼,編碼方式為NEC碼,并將遙控編碼在屏幕上顯示(支持重復碼的接收顯示)。
硬件準備
TiKit-T600-ESP8266A 開發板
TiVS1838BNEC紅外接收模塊
TiOLED_UG2864顯示模塊(OLED12864)
紅外線遙控器(迷你版)
杜邦線若干
USB線兩條
硬件連接
TiKit開發板<——連接——>TiOLED_UG2864顯示模塊
SCL <——連接——>SCL
SDA <——連接——>SDA
3.3V <——連接——>VCC
GND <——連接——>GND
===================================
TiKit開發板<——連接——>TiVS1838BNEC紅外接收模塊
PIN3 <——連接——>OUT
3.3V <——連接——>VCC
GND <——連接——>GND
===================================
程序編寫
在Eclipse中新建TiJOS Application工程,編寫JAVA代碼如下:
import?java.io.IOException;import?tijos.framework.devicecenter.TiGPIO;import?tijos.framework.devicecenter.TiI2CMaster;import?tijos.framework.sensor.infrared.ITiVS1838BNECEventListener;import?tijos.framework.sensor.infrared.TiVS1838BNEC;import?tijos.framework.transducer.led.TiOLED_UG2864;import?tijos.util.Delay; class?DecodingEventListener?implements?ITiVS1838BNECEventListener?{????private?TiOLED_UG2864?_oled;????public?DecodingEventListener(TiOLED_UG2864?oled)?{????????this._oled?=?oled; ????}????/** ?????*?接收事件處理 ?????*/ ????public?void?cmdReceived(TiVS1838BNEC?arg0)?{????????try?{ ????????????_oled.print(1,?0,?"ADDR:"+arg0.getAddress()); ????????????_oled.print(2,?0,?"CODE:"+arg0.getCommand()); ????????????_oled.print(3,?0,?"REPEAT:No?"); ????????}????????catch(IOException?e)?{ ????????????e.printStackTrace(); ????????} ????}????/** ?????*?接收重復事件處理 ?????*/ ????public?void?cmdRepeat(TiVS1838BNEC?arg0)?{????????try?{ ????????????_oled.print(3,?0,?"REPEAT:Yes"); ????????}????????catch(IOException?e)?{ ????????????e.printStackTrace(); ????????} ????}??? }/** ?*?解碼紅外遙控編碼,編碼方式為NEC碼,并將遙控編碼在屏幕上顯示(支持重復碼的接收顯示)。 ?*? ?*?@author?crashMaker ?* ?*/public?class?Decoding?{ ????public?static?void?main(String[]?args)?{????????try?{????????????//定義要使用的I2C接口 ????????????int?i2cPort?=?0;????????????//定義要使用的GPIO接口和PIN資源 ????????????int?goioPort?=?0;????????????int?outPin?=?3;????????????//打印日志 ????????????System.out.println("This?is?a?infrared?decoding?test.");????????????//分配I2C和GPIO資源 ????????????TiI2CMaster?i2c?=?TiI2CMaster.open(i2cPort); ????????????TiGPIO?gpio?=?TiGPIO.open(goioPort,?outPin);????????????//綁定資源到實例,完成與硬件的映射 ????????????TiOLED_UG2864?oled?=?new?TiOLED_UG2864(i2c,?0x78); ????????????TiVS1838BNEC?vs1838b?=?new?TiVS1838BNEC(gpio,?outPin);????????????//創建解碼事件監聽對象,并設置監聽者 ????????????DecodingEventListener?lc?=?new?DecodingEventListener(oled); ????????????vs1838b.setEventListener(lc);????????????//顯示屏幕打開,并顯示信息 ????????????oled.turnOn(); ????????????oled.clear(); ????????????oled.print(0,?0,?"===crashMaker===");????????????//保證主線程不退出 ????????????while(true)?{????????????????//線程睡眠1秒 ????????????????Delay.msDelay(1000); ????????????}??????? ????????}????????catch(IOException?e)?{ ????????????e.printStackTrace(); ????????} ????} }1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192功能演示
在Eclipse中執行“Run As TiJOS Application”,運行編寫的應用程序,演示效果如下:
應用運行后,在Eclipse中打印日志如下:
評論
查看更多