chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

lua編程入門教程:用NodeMCU在OLED上顯示溫濕度

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 09:46 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

OLED模塊介紹

OLED顯示屏是指有機(jī)電激發(fā)光二極管(Organic Light-Emitting Diode,OLED),具備自發(fā)光,所以不需背光源,對比度高,厚度薄,視角廣,反應(yīng)速度快等特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。

筆者使用的是0.96寸,白色,I2C總線的OLED模塊顯示屏,分辨率128x64,OLED常用接口有I2C和SPI。轉(zhuǎn)接板自己畫的,和某寶的上購買的模塊接口基本一致。模塊有5V轉(zhuǎn)3.3V電路,可以兼容外接3.3V和5V電壓。硬件部分這里就不多說了,購買oled模塊后客服都會給模塊相關(guān)資料。

注: 在購買OLED模塊時,要查看該模塊是否被 u8g2庫 所支持,只有被 u8g2庫 支持的OELD屏才能使用該庫。

啟用I2C和OLED模塊

在往期文章《 ESP8266之NodeMCU固件編譯 》中,其實(shí)已經(jīng)介紹了如何啟用NodeMCU所支持的各種模塊,啟用對應(yīng)的模塊后,需要重新編譯固件,燒錄到ESP8266才能使用,一般根據(jù)自己的需求開啟對應(yīng)的模塊,以減少固件的大小。

1)啟用I2C模塊,需要打開 user_modules.h 文件中的 LUA_USE_M(jìn)ODULES_I2C ,使用筆者之前編譯的固件,默認(rèn)是已經(jīng)開啟了。

ESP8266芯片沒有硬件I2C接口,所以模塊使用軟件接口驅(qū)動程序??砂℅PIO16在內(nèi)的任何GPIO引腳上設(shè)置。模塊支持主模式,每條總線上可具有不同速度,最多10條總線。
速度標(biāo)準(zhǔn):

慢速:100kHz;

快速:400kHz;

FastPlus:1MHz
也可設(shè)置任意時鐘。GPIO16引腳可以作為SCL引腳使用,但所選的總線將被限制為不超過FAST速度。
模塊不支持高速模式(3.5MHz時鐘)和10位尋址方案。

2)啟用OLED模塊,需要打開 user_modules.h 文件中的 LUA_USE_M(jìn)ODULES_U8G2 ,u8g2模塊 已經(jīng)將常見的OLED屏驅(qū)動都寫好了,源碼是開源的,可上GitHub查看。模塊如下:

#define LUA_USE_M(jìn)ODULES_I2C #define LUA_USE_M(jìn)ODULES_U8G2I2C相關(guān)接口

由于使用了u8g2庫,這里就只需要了解 i2c.setup() 接口。

i2c.setup(id, pinSDA, pinSCL, speed)

參數(shù):

id:0~9,總線編號,NodeMCU支持10個I2C總線。

pinSDA:1~12,SDA的IO口編號

pinSCL:1~12, SCL的IO口編號

speed:i2c.SLOW (100kHz), i2c.FAST (400kHz), i2c.FASTPLUS (1MHz)或者在25000 ~ 1000000Hz之間的任意時鐘頻率。FASTPLUS模式在默認(rèn)80MHz的CPU頻率下產(chǎn)生600kHz的I2C時鐘速度,要得到1MHz的I2C時鐘速度,要使用接口 node.setcpufreq(node.CPU160MHZ) 改變CPU頻率到160MHz。

返回值:

speed:成功則返回設(shè)置的speed;失敗則返回0。

想了解其他接口,可見NodeMCU官方文檔。

U8G2庫相關(guān)接口SSD1306驅(qū)動的初始化

使用I2C接口,調(diào)用以下代碼初始化:

sla = 0x3c -- oled的I2C地址 -- id:I2C初始化時的id disp = u8g2.ssd1306_i2c_128x64_noname(id, sla)

其他驅(qū)動類型的OLED初始化,見NodeMCU官方文檔。

u8g2.disp:drawStr(x, y, *str)

x:x軸坐標(biāo)

y:y軸坐標(biāo)

str:要顯示的字符串

u8g2.disp:sendBuffer(void)

將內(nèi)存幀緩沖區(qū)的內(nèi)容發(fā)送到顯示器,執(zhí)行該函數(shù),OLED才會顯示設(shè)置的內(nèi)容。

OLED字體設(shè)置

字體設(shè)置在 app/include 目錄下的 u8g2_fonts.h 文件,需要什么字體,只需在 U8G2_FONT_TABLE_ENTRY(font_wqy16_t_chinese3) 后面加入對應(yīng)的字體宏即可,由于全中文字庫很大,編譯出的固件大小將會很大,可能會導(dǎo)致燒錄失敗或者ESP8266啟動不了。筆者就直接使用默認(rèn)的字體了。u8g2的字體設(shè)計又是一門技術(shù),網(wǎng)上也有大佬出教程,有興趣的可以搜搜。

// Add a U8G2_FONT_TABLE_ENTRY for each font you want to compile into the image // See https://github.com/olikraus/u8g2/wiki/fntlistall for a complete list of // available fonts. Drop the 'u8g2_' prefix when you add them here. #define U8G2_FONT_TABLE U8G2_FONT_TABLE_ENTRY(font_6x10_tf) U8G2_FONT_TABLE_ENTRY(font_unifont_t_symbols) U8G2_FONT_TABLE_ENTRY(font_wqy16_t_chinese3)

u8g2支持的字體見u8g2官網(wǎng)。

點(diǎn)亮OLED模塊

首先要搞清楚ESP8266和NodeMCU引腳之間的關(guān)系,很多新手容易搞混。ESP8266和NodeMCU對應(yīng)引腳關(guān)系如下圖:

對應(yīng)關(guān)系,比如下表:

NodeMCU PinESP8266 PinD0GPIO16D1GPIO5D2GPIO4D3GPIO0D4GPIO2D5GPIO14……

筆者的OLED模塊引出腳是4個(有的是IIC和SPI兼容模塊可能是7個引腳),OLED模塊和NodeMCU之間連接關(guān)系如下:

OLED模塊NodeMCU PinESP8266VCC(帶3.3V穩(wěn)壓)VCC(3.3V或5V)VCCGNDGNDGNDSCLD6GPIO12SDAD5GPIO14

注:

ESP8266單模塊的VCC是3.3V的。

若OLED模塊還有RES,DC,CS引腳,可按照說明在程序中控制,或直接在硬件上配置好,具體看oled模塊資料。

若OLED模塊不帶3.3V穩(wěn)壓,則OLED的VCC連接到NodeMCU的3.3V引腳上,因為0.96寸OLED屏大多是3.3V電源,具體以O(shè)LED屏規(guī)格書為準(zhǔn)。

DHT11模塊和NodeMCU之間連接關(guān)系:

DHT11 PinNodeMCU PinESP8266VCC3.3VVCCGNDGNDGNDDATAD4GPIO2

先將OLED和NodeMCU開發(fā)板連接好,然后接上將usb接到電腦端,上傳點(diǎn)亮oled的lua代碼。

代碼如下:

-- 管腳定義 local sda = 5 -- GPIO14 local scl = 6 -- GPIO12 local sla = 0x3c -- oled的地址,一般為0x3c -- 初始化 function init_oled() -- iic總線 和 oled初始化 i2c.setup(0, sda, scl, i2c.SLOW) disp = u8g2.ssd1306_i2c_128x64_noname(0, sla) -- 設(shè)置字體 disp:setFont(u8g2.font_unifont_t_symbols) disp:setFontRefHeightExtendedText() --disp:setDrawColor(1) disp:setFontPosTop() --disp:setFontDirection(0) -- 畫邊框 --disp:drawFrame(0, 0, 128, 64) end -- 顯示函數(shù) function oled_show_msg() -- 設(shè)置顯示內(nèi)容 disp:drawStr(0, 0, "1 Hello OLED") disp:drawStr(0, 16, "2234567890ABCDEF") disp:drawStr(0, 32, "3234567890ABCDEF") disp:drawStr(0, 48, "4234567890ABCDEF") -- 將內(nèi)容發(fā)送到oled disp:sendBuffer() end -- 主函數(shù) function main() init_oled() oled_show_msg() end -- 運(yùn)行程序 main()

將代碼保存到 oled.lua 文件,通過 ESPlorer工具 上傳到ESP8266模塊,刷新ESPlorer文件列表,點(diǎn)擊 oled.lua 就可以看到oled屏顯示信息了。如下圖:

實(shí)際顯示效果:

將溫濕度動態(tài)的顯示在OLED上

溫濕度模塊使用的是DHT11模塊,關(guān)于DHT11模塊的使用,之前寫過一篇文章。這里就直接使用了

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

    關(guān)注

    147

    文章

    18392

    瀏覽量

    378973
  • OLED
    +關(guān)注

    關(guān)注

    121

    文章

    6309

    瀏覽量

    231362
  • 編程
    +關(guān)注

    關(guān)注

    89

    文章

    3704

    瀏覽量

    96268
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

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

    一款適用于粉塵、易結(jié)露等惡劣環(huán)境溫濕度監(jiān)控中的溫濕度傳感芯片

    溫濕度監(jiān)控系統(tǒng)惡劣環(huán)境中通過傳感器實(shí)時監(jiān)測溫濕度參數(shù),當(dāng)達(dá)到預(yù)設(shè)閾值時自動觸發(fā)預(yù)警或調(diào)節(jié)機(jī)制,確保環(huán)境狀態(tài)維持安全范圍內(nèi)。
    的頭像 發(fā)表于 07-09 09:41 ?338次閱讀
    一款適用于粉塵、易結(jié)露等惡劣環(huán)境<b class='flag-5'>溫濕度</b>監(jiān)控中的<b class='flag-5'>溫濕度</b>傳感芯片

    常見的溫濕度傳感器類型?

    ),溫度精度為±0.2℃(典型)。濕度和溫度數(shù)據(jù)可以通過MCU、藍(lán)牙芯片或SoC芯片通過數(shù)字接口直接讀取。它與SMBus、I2C接口兼容。非常適合用于暖通空調(diào)、環(huán)境監(jiān)測等。 選擇溫濕度傳感器時,應(yīng)根據(jù)具體的使用場景和需求綜合考
    發(fā)表于 06-24 09:24

    溫濕度變送器功能有哪些?一文詳細(xì)解析

    功能就是精準(zhǔn)測量環(huán)境中的溫度和濕度。它采用高精度的傳感器,能夠快速、準(zhǔn)確地感知環(huán)境溫濕度的變化,并將這些數(shù)據(jù)轉(zhuǎn)化為可識別的電信號。無論是實(shí)驗室、倉庫,還是在生產(chǎn)車間,都能為用戶提供可靠的溫濕
    發(fā)表于 06-03 10:56

    智能倉儲:溫濕度監(jiān)控方案應(yīng)用

    隨著倉儲環(huán)境要求提高,溫濕度監(jiān)控對保障貨物品質(zhì)至關(guān)重要。本文介紹一個工廠倉庫溫濕度監(jiān)控方案,利用溫濕度變送器、LoRa技術(shù)和智能監(jiān)測平臺,為倉庫業(yè)主提供高效、可靠的監(jiān)測解決方案。倉庫溫濕度
    的頭像 發(fā)表于 05-29 11:35 ?491次閱讀
    智能倉儲:<b class='flag-5'>溫濕度</b>監(jiān)控方案應(yīng)用

    樹莓派RP2350 DIY 桌面動態(tài)溫濕度

    桌面動態(tài)溫濕度計本文介紹了DFrobotBeetleRP2350開發(fā)板結(jié)合DHT11模塊、鋰電池模塊、隨機(jī)眨眼動畫,實(shí)現(xiàn)OLED顯示的桌面動態(tài)溫濕度計的項目設(shè)計。一、項目介紹本項目包括
    的頭像 發(fā)表于 05-27 08:05 ?481次閱讀
    <b class='flag-5'>用</b>樹莓派RP2350 DIY 桌面動態(tài)<b class='flag-5'>溫濕度</b>計

    如何操作電子溫濕度記錄儀

    電子溫濕度記錄儀是一種常用的記錄儀產(chǎn)品類型,選用進(jìn)口傳感器、進(jìn)口高能鋰電池供電,采用低功耗技術(shù)設(shè)計,可以外接電源供電,體積小巧,整機(jī)功耗小,精度高。被廣泛用于工業(yè)、環(huán)保、衛(wèi)生防疫、倉儲運(yùn)輸、博物館等
    的頭像 發(fā)表于 03-25 10:39 ?910次閱讀
    如何操作電子<b class='flag-5'>溫濕度</b>記錄儀

    工廠溫濕度監(jiān)控系統(tǒng)

    現(xiàn)代化工業(yè)生產(chǎn)環(huán)境中,溫濕度控制是確保產(chǎn)品質(zhì)量、生產(chǎn)效率和員工健康的關(guān)鍵因素之一。隨著科技的進(jìn)步,工廠溫濕度監(jiān)控系統(tǒng)應(yīng)運(yùn)而生,通過集成傳感器技術(shù)、數(shù)據(jù)處理與通信技術(shù),對工廠內(nèi)部環(huán)境參數(shù)的實(shí)時監(jiān)測
    的頭像 發(fā)表于 02-25 17:11 ?726次閱讀

    庫房溫濕度監(jiān)測系統(tǒng)

    不適宜的溫濕度條件不僅影響貨物品質(zhì),還可能引發(fā)安全事故。例如,濕度過高可能導(dǎo)致霉菌滋生,電路短路,或溫度過低引起的液體凍結(jié)膨脹等,都可能對倉庫設(shè)施及貨物造成損害。庫房溫濕度監(jiān)測系統(tǒng)是現(xiàn)代倉儲管理中
    的頭像 發(fā)表于 01-06 16:37 ?790次閱讀

    博物館溫濕度監(jiān)控系統(tǒng)

    ,若任其自然變化,則可能對文物造成意想不到的損害。為此,博物館溫濕度監(jiān)控系統(tǒng)應(yīng)運(yùn)而生,其具備多種功能,以確保文物環(huán)境的穩(wěn)定與安全。 博物館溫濕度監(jiān)控系統(tǒng),采集各庫房的溫濕度數(shù)據(jù),通過管理云平臺實(shí)時
    的頭像 發(fā)表于 12-20 16:42 ?1065次閱讀

    醫(yī)藥倉庫溫濕度監(jiān)控系統(tǒng)應(yīng)用

    醫(yī)藥倉庫作為藥品儲存的主要場所,其環(huán)境條件的控制直接影響到藥品的質(zhì)量和療效,以保持其穩(wěn)定性和有效性。因此,建立一個高效、可靠的醫(yī)藥倉庫溫濕度監(jiān)控系統(tǒng),對于確保藥品的安全儲存和有效使用具有重要意義
    的頭像 發(fā)表于 12-17 16:16 ?878次閱讀

    農(nóng)業(yè)溫濕度監(jiān)控系統(tǒng)

    的現(xiàn)代農(nóng)業(yè)管理工具。通過布置農(nóng)田、溫室等場所的溫濕度傳感器,實(shí)時采集環(huán)境數(shù)據(jù),通過數(shù)據(jù)處理分析,為農(nóng)業(yè)生產(chǎn)提供精準(zhǔn)的溫濕度信息,為農(nóng)業(yè)生產(chǎn)者提供決策支持。非常適合農(nóng)業(yè)大棚內(nèi)部潮濕且環(huán)境多變的條件。 工作原理 農(nóng)
    的頭像 發(fā)表于 12-11 16:24 ?681次閱讀

    恒溫恒濕箱的溫濕度極限是多少

    和質(zhì)量保證。   選擇恒溫恒濕箱時,需要根據(jù)實(shí)際應(yīng)用的溫濕度要求來選擇合適的設(shè)備型號和規(guī)格。了解設(shè)備的溫濕度極限、性能和應(yīng)用范圍,可以幫助用戶確保設(shè)備使用過程中的
    的頭像 發(fā)表于 11-21 14:55 ?1050次閱讀
    恒溫恒濕箱的<b class='flag-5'>溫濕度</b>極限是多少

    XKCON祥控倉庫存儲環(huán)境溫濕度在線監(jiān)測系統(tǒng)能夠取代人工巡檢,實(shí)現(xiàn)遠(yuǎn)程倉庫存儲環(huán)境溫濕度變化的實(shí)時

    的XKCON祥控倉庫存儲環(huán)境溫濕度在線監(jiān)測系統(tǒng)通過安裝固定式環(huán)境溫濕度檢測儀對倉儲環(huán)境溫濕度實(shí)時數(shù)據(jù)進(jìn)行采集,并通過主機(jī)現(xiàn)場顯示并發(fā)送至遠(yuǎn)程監(jiān)管軟件,能夠取代人工巡檢,實(shí)現(xiàn)遠(yuǎn)程倉庫存儲
    的頭像 發(fā)表于 11-20 11:20 ?714次閱讀
    XKCON祥控倉庫存儲環(huán)境<b class='flag-5'>溫濕度</b>在線監(jiān)測系統(tǒng)能夠取代人工巡檢,實(shí)現(xiàn)遠(yuǎn)程倉庫存儲環(huán)境<b class='flag-5'>溫濕度</b>變化的實(shí)時

    LORA無線溫濕度監(jiān)測系統(tǒng)

    LORA無線溫濕度監(jiān)測系統(tǒng),作為現(xiàn)代環(huán)境監(jiān)測技術(shù)的重要組成部分,正日益受到各行各業(yè)的廣泛關(guān)注和應(yīng)用。 LORA無線溫濕度監(jiān)測系統(tǒng),利用LORA無線通信技術(shù),對環(huán)境中溫度和濕度的實(shí)時監(jiān)測和數(shù)據(jù)傳輸,為
    的頭像 發(fā)表于 11-07 16:57 ?1009次閱讀

    溫濕度控制器的功能和應(yīng)用

    溫濕度控制器電阻柜中的應(yīng)用主要涉及以下幾個方面: 溫濕度控制器的功能 檢測與控制:溫濕度控制器可以同時檢測和控制環(huán)境中的溫度和濕度。它通常
    的頭像 發(fā)表于 11-07 15:08 ?1116次閱讀