一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何將OLED與Android手機連接起來構(gòu)建智能手表

科技觀察員 ? 來源:circuitdigest ? 作者:薩達姆 ? 2022-09-22 17:45 ? 次閱讀

我們大多數(shù)人都熟悉 16×2 點陣 LCD 顯示器 ,它在許多項目中用于向用戶顯示一些信息。但是這些液晶顯示器的功能有很多限制。在本教程中,我們將使用OLED 顯示來自 Android 智能手機的一些基本信息,例如時間、日期、網(wǎng)絡強度和電池狀態(tài)。該項目提供了構(gòu)建基于Arduino智能手表的基本理念和框架,并且可以進一步擴展以在 OLED 顯示屏上顯示來電、消息等。

所以這里我們使用一個安卓應用程序從安卓手機中獲取一些信息,然后使用藍牙模塊和Arduino Pro Mini將這些信息發(fā)送到OLED顯示器。

在 Android 應用程序中,從手機中獲取數(shù)據(jù)并作為字符串發(fā)送到 Arduino?,F(xiàn)在收到數(shù)據(jù)后,Arduino 解碼傳入的字節(jié)串并將其放入臨時變量中以顯示在 OLED 顯示器上。在 OLED 顯示屏中,我們創(chuàng)建了一些圖形來顯示值,在此處了解有關(guān)在 Arduino 中使用 OLED 顯示屏的更多信息。

所需硬件

128×64 OLED顯示模組(SSD1306)

Arduino(我們使用的是 Arduino Pro Mini。但我們可以使用任何 Arduino 板)

藍牙 HC05/HC06

連接電線

3.7v 鋰電池

跳線

了解 OLED 顯示器

OLED 一詞代表“有機發(fā)光二極管” ,它使用與我們大多數(shù)電視中使用的技術(shù)相同的技術(shù),但與它們相比像素更少。將這些看起來很酷的顯示模塊與 Arduino 連接起來真的很有趣,因為它會讓我們的項目看起來很酷。我們 在此處介紹了有關(guān) OLED 顯示器及其類型的完整文章。在這里,我們使用的是 單色 4 針 SSD1306 0.96” OLED 顯示屏。此顯示器只能在 I2C 模式下工作。

pYYBAGMsLaaAP0xSAAIHl1g1kvs328.png

Arduino 社區(qū)已經(jīng)為我們提供了很多庫,可以直接使用這些庫來簡化此操作。我嘗試了一些庫,發(fā)現(xiàn) Adafruit_SSD1306 庫非常易于使用并且有一些圖形選項,因此我們將在本教程中使用相同的庫。在這里,我們還需要在 Arduino IDE 中安裝一個庫,可以從這里下載GFX 圖形庫。

電路原理

使用 4 針 SSD1306 OLED 與 Arduino的 電路圖 很簡單,如下所示

pYYBAGMsLaGADqYnAAF-B-jVSBk820.pngpYYBAGMsLtCAdN-MAACRYaZhKv4869.jpg

在這里,我們使用了Arduino Pro Mini板來控制所有操作。選擇 Arduino pro mini 的原因是它可以在 3.3v 電源下運行。4針 OLED和藍牙模塊 HC-06也可以在 3.3v 上工作,因此所有這些模塊都可以由單個 3.7v Li-on 供電。鋰電池是小巧輕便的電池,是可穿戴設備的完美選擇。在這里,我們還在這個項目中制作了一些可穿戴的東西,比如一個簡單的智能手表,它可以與你的智能手機同步。

現(xiàn)在關(guān)于電源的一個問題是,這里所有的模塊都在 3.3v 上工作,但鋰離子電池提供 3.7v,這可能會損壞模塊。因此,為了解決這個問題,我們將電池的 3.7v 電源應用于 Arduino pro mini 的原始引腳,該引腳可以將該電壓轉(zhuǎn)換為 3.3v。

用于通過藍牙向 Arduino 發(fā)送數(shù)據(jù)的 Android 應用

對于這款基于 Arduino 的智能手表,我們在 Android Studio 中創(chuàng)建了一個 Android 應用程序,該應用程序可以從這里下載。因此,只需在您的 Android 智能手機中下載并安裝此應用程序,然后啟用藍牙并將 HC-06 模塊與您的手機配對。它可能會要求輸入密碼來配對 HC-06 藍牙模塊,默認密碼是 1234 或 0000。

現(xiàn)在打開 OLED 應用程序并選擇已配對的藍牙設備 HC-06,如下圖所示:

pYYBAGMsLtKAPZWtAAB8tonNhdM642.png

現(xiàn)在OLED 應用程序?qū)@示從 android 手機獲取的數(shù)據(jù),如下所示:

poYBAGMsLtOACOAwAAA5NHjo6OY126.png

為 OLED 智能手表編程 Arduino

在這個項目的最后給出了帶有演示視頻的完整程序,這里我們解釋了幾部分代碼。

首先使用下面的鏈接從 Github 下載 Adafruit 庫和 GFX 庫

阿達果圖書館

GFX 圖形庫

然后從包含所有必需的庫開始

#include
SoftwareSerial Serial1(10, 11);

#include
#include
#include
#include “Adafruit_SSD1306.h”

#define OLED_RESET 4
Adafruit_SSD1306 顯示(OLED_RESET);
在此之后,我們?yōu)椴煌牟僮鞫x了一些宏和變量。

#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2

#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
字符串 str = "";
字節(jié) h = 0;
字節(jié) m = 0;
字節(jié) S = 0;
String dmy、時間、網(wǎng)絡、電池、inNumber、s;
字節(jié)中心X = 24;
字節(jié)中心Y = 39;
字節(jié)半徑 = 24;

雙 RAD = 3.141592 / 180;
雙 LR = 89.99;
在此之后為模擬時鐘編寫一個函數(shù)。

無效 showTimeAnalog(int center_x,int center_y,雙 pl1,雙 pl2,雙 pl3)
{
雙 x1,x2,y1,y2;
x1 = center_x + (半徑 * pl1) * cos((6 * pl3 + LR) * RAD);
y1 = center_y + (半徑 * pl1) * sin((6 * pl3 + LR) * RAD);
x2 = center_x + (半徑 * pl2) * cos((6 * pl3 - LR) * RAD);
y2 = center_y + (半徑 * pl2) * sin((6 * pl3 - LR) * RAD);
display.drawLine((int)x1, (int)y1, (int)x2, (int)y2, WHITE);
}
然后還有另一個數(shù)字時鐘功能。

無效數(shù)字時鐘()
{
display.setTextSize(1);
display.setTextColor(白色);
display.setCursor(60, 20);
display.println(dmy);
display.setTextSize(2);
display.setCursor(60, 30);
display.println(時間);
顯示.顯示();
延遲(2000);
}

poYBAGMsLteAbRF8AACJAP0bBBo950.jpg

然后 OLED 將使用以下功能以數(shù)字和圖形形式顯示電池狀態(tài)。

無效電池()
{
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(白色);
display.setCursor(20, 0);
display.print("蝙蝠:");
display.print(電池);
display.print("%");
display.drawRect(14, 20, 80, 40, WHITE);
display.drawRect(94, 30, 10, 20, WHITE);
display.fillRect(14, 20, (int)(8 * (battery.toInt()) / 10), 40, WHITE);
顯示.顯示();
延遲(2000);
}

pYYBAGMsLtiAap1sAAB4cFMeWBw140.jpg

以下函數(shù)也用于以數(shù)字和圖形形式顯示網(wǎng)絡狀態(tài)。

無效網(wǎng)絡()
{
display.clearDisplay();
display.drawLine(5, 15, 25, 15, WHITE);
display.drawLine(5, 15, 14, 30, 白色);
display.drawLine(25, 15, 17, 30, 白色);
display.fillRect(14, 15, 4, 40, WHITE);
int net = network.toInt() / 20;
整數(shù) x1 = 24, y1 = 50, x2 = 4, y2 = 5;
…………
......

pYYBAGMsLtyAQfw1AAB3QkxN9wk753.jpg

在設置功能之后,我們初始化了我們在這個項目中使用的所有通信和模塊。

無效設置()
{
序列號.開始(9600);
display.begin(SSD1306_SWITCHCAPVCC,0x3C);// 使用 I2C 地址 0x3D 初始化(對于 128x64)
display.clearDisplay();
Serial1.開始(9600);
Serial1.println("系統(tǒng)就緒");
}
在循環(huán)功能中,我們從 android mobile 接收數(shù)據(jù)并解碼該數(shù)據(jù)并將它們發(fā)送到 OLED 顯示器。

無效循環(huán)(){
Serial1.println("1234");
延遲(1000);
而(Serial1.available()> 0){
char ch = Serial1.read();
str += 通道;
如果 (ch == '$'){
dmy = str.substring(str.indexOf("#") + 1, str.indexOf(""));
時間 = str.substring(str.indexOf(" ") + 1, str.indexOf(",") - 3);
網(wǎng)絡 = str.substring(str.indexOf(",") + 1, str.indexOf(",,"));
電池 = str.substring(str.indexOf(",,") + 2, str.indexOf(",,,"));
inNumber = str.substring(str.indexOf(",,,") + 3, str.indexOf("$"));
s = time.substring(time.indexOf(" ") + 1, time.indexOf(" ") + 3);
h = s.toInt();
s = time.substring(time.indexOf(" ") + 4, time.indexOf(" ") + 6);
m = s.toInt();
s = time.substring(time.indexOf(" ") + 7, time.indexOf(" ") + 9);
S = s.toInt();
str = "";}
}
display.clearDisplay();
display.drawCircle(centerX, centerY, 半徑, WHITE);
showTimeAnalog(centerX, centerY, 0.1, 0.5, h * 5 + (int)(m * 5 / 60));
showTimeAnalog(centerX, centerY, 0.1, 0.78, m);
// showTimePin(centerX, centerY, 0.1, 0.9, S);
數(shù)碼時鐘();
電池();
網(wǎng)絡();
}
這就是我們?nèi)绾螌?OLED 與智能手機無線連接,并將我們想要的任何數(shù)據(jù)從智能手機發(fā)送或同步到 OLED。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 智能手機
    +關(guān)注

    關(guān)注

    66

    文章

    18595

    瀏覽量

    182664
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6254

    瀏覽量

    226644
  • 智能手表
    +關(guān)注

    關(guān)注

    37

    文章

    3311

    瀏覽量

    116488
收藏 人收藏

    評論

    相關(guān)推薦
    熱點推薦

    如何將數(shù)組的的字符重新連接起來保存?

    TEMP[2]依次存入,直到4存入TEMP[7], 問題是:如何將數(shù)組的的字符重新連接起來保存?如何定義新的變量str?使str=\"ABCD1234\"?
    發(fā)表于 04-16 07:39

    如何數(shù)據(jù)庫的資料與報表連接起來

    如何數(shù)據(jù)庫的資料與報表連接起來
    發(fā)表于 08-07 16:04

    如何將PLC通信口與無線數(shù)據(jù)終端連接起來??

    `如何將PLC通信口與無線數(shù)據(jù)終端連接起來,實現(xiàn)PLC與PLC之間,PLC與HMI觸摸屏間,PLC與PC組態(tài)軟件以及PLC與設備之間的無線數(shù)據(jù)交換!關(guān)注微信公眾號【PLC無線通訊】解決您的一切煩惱!`
    發(fā)表于 09-28 09:49

    如何把數(shù)據(jù)庫和其他程序連接起來

    各位大神,我現(xiàn)在遇到一個問題。我想把已經(jīng)采集好的數(shù)據(jù)和數(shù)據(jù)庫的進行對比,然后檢索出相應的文字出來。我已經(jīng)把采集的數(shù)據(jù)編成代碼了,數(shù)據(jù)庫相應的文字也用代碼來進行代替。但是現(xiàn)在我不是很清楚如何將他們連接起來。兩個小程序分別運行沒有問題,但是
    發(fā)表于 04-13 11:16

    請問由數(shù)字組成的字符串怎么連接起來?

    想問一下關(guān)于字符串連接的問題我想做一個手機界面,通過按鍵輸入手機號,其實就是由數(shù)字組成的字符串,但是不知道如何將這些個‘0’,‘1’,‘2’……連接
    發(fā)表于 03-29 06:35

    如何將IC的SCL和SDA引腳與FPGA板連接起來?

    Aoa ..我想將我的FPGA板(virtex6 ML605)與外部時鐘IC(ds1307)連接起來。請指導我如何將IC的SCL和SDA引腳與FPGA板連接。謝謝
    發(fā)表于 04-29 08:13

    如何將藍牙與STM32連接起來

    藍牙模塊有何功能?如何將藍牙與STM32連接起來呢?
    發(fā)表于 11-18 07:02

    如何將STM32L412與STUSB1602 TCPC連接起來呢?

    你好我目前正在嘗試 STM32L412 與 STUSB1602 TCPC 連接起來。我試圖通過為另一個 MCU 移植一個現(xiàn)有的 STUSB1602 軟件庫來開始這個工作???b class='flag-5'>起來這個端口可能非常艱巨且容易出錯。有沒有人成功地做到
    發(fā)表于 12-28 07:13

    如何將Eink顯示器與esp32連接起來?

    一般來說,我是嵌入式系統(tǒng)和 ESP-IDF 的新手。我正在嘗試 Eink 顯示器與 esp32 連接起來,但我對如何為其編寫代碼有點迷茫。有沒有我可以參考的指南或教程?
    發(fā)表于 03-01 06:36

    如何將hwirq與中斷連接起來?

    的 MSIR7 寄存器設置中斷 0 位。那么,當那個中斷到達時,我該如何調(diào)用我的 interrupt_handler 函數(shù)呢?我想我應該使用 irq_create_mapping 和 request_irq Linux 函數(shù),但我不知道如何將 hwirq 與我的中斷鏈接起來
    發(fā)表于 03-14 08:20

    如何將Eink顯示器與esp32接口連接起來?

    一般來說,我是嵌入式系統(tǒng)和 ESP-IDF 的新手。我正在嘗試 Eink 顯示器與 esp32 連接起來,但我對如何為其編寫代碼有點迷茫。有沒有我可以參考的指南或教程?
    發(fā)表于 04-13 08:09

    HC-05和MSP430連接起來控制LED的方式

     今天我們學習如何將藍牙模塊 HC-05 與德州儀器 (TI) 的 MSP430 Launchpad 連接起來。在這個接口示例中,我們將使用藍牙終端安卓應用程序從智能手機控制 MSP
    發(fā)表于 08-29 17:30 ?1794次閱讀
    <b class='flag-5'>將</b>HC-05和MSP430<b class='flag-5'>連接起來</b>控制LED的方式

    RF 433MHz發(fā)射器/接收器模塊與MCU連接起來

    電子發(fā)燒友網(wǎng)站提供《RF 433MHz發(fā)射器/接收器模塊與MCU連接起來.zip》資料免費下載
    發(fā)表于 06-13 09:24 ?6次下載
    <b class='flag-5'>將</b>RF 433MHz發(fā)射器/接收器模塊與MCU<b class='flag-5'>連接起來</b>

    TLC32040系列與TMS320系列連接起來

    電子發(fā)燒友網(wǎng)站提供《TLC32040系列與TMS320系列連接起來.pdf》資料免費下載
    發(fā)表于 10-08 14:15 ?0次下載
    <b class='flag-5'>將</b>TLC32040系列與TMS320系列<b class='flag-5'>連接起來</b>

    I2S器件與MSP430器件連接起來

    電子發(fā)燒友網(wǎng)站提供《I2S器件與MSP430器件連接起來.pdf》資料免費下載
    發(fā)表于 10-18 09:31 ?0次下載
    <b class='flag-5'>將</b>I2S器件與MSP430器件<b class='flag-5'>連接起來</b>