国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

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

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

掃碼添加小助手

加入工程師交流群

OLED模塊介紹

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

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

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

啟用I2C和OLED模塊

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

1)啟用I2C模塊,需要打開 user_modules.h 文件中的 LUA_USE_MODULES_I2C ,使用筆者之前編譯的固件,默認是已經開啟了。

ESP8266芯片沒有硬件I2C接口,所以模塊使用軟件接口驅動程序。可包括GPIO16在內的任何GPIO引腳上設置。模塊支持主模式,每條總線上可具有不同速度,最多10條總線。
速度標準:

慢速:100kHz;

快速:400kHz;

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

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

#define LUA_USE_MODULES_I2C #define LUA_USE_MODULES_U8G2I2C相關接口

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

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

參數:

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模式在默認80MHz的CPU頻率下產生600kHz的I2C時鐘速度,要得到1MHz的I2C時鐘速度,要使用接口 node.setcpufreq(node.CPU160MHZ) 改變CPU頻率到160MHz。

返回值:

speed:成功則返回設置的speed;失敗則返回0。

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

U8G2庫相關接口SSD1306驅動的初始化

使用I2C接口,調用以下代碼初始化:

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

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

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

x:x軸坐標

y:y軸坐標

str:要顯示的字符串

u8g2.disp:sendBuffer(void)

將內存幀緩沖區的內容發送到顯示器,執行該函數,OLED才會顯示設置的內容。

OLED字體設置

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

// 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官網。

點亮OLED模塊

首先要搞清楚ESP8266和NodeMCU引腳之間的關系,很多新手容易搞混。ESP8266和NodeMCU對應引腳關系如下圖:

對應關系,比如下表:

NodeMCU PinESP8266 PinD0GPIO16D1GPIO5D2GPIO4D3GPIO0D4GPIO2D5GPIO14……

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

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

注:

ESP8266單模塊的VCC是3.3V的。

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

若OLED模塊不帶3.3V穩壓,則OLED的VCC連接到NodeMCU的3.3V引腳上,因為0.96寸OLED屏大多是3.3V電源,具體以OLED屏規格書為準。

DHT11模塊和NodeMCU之間連接關系:

DHT11 PinNodeMCU PinESP8266VCC3.3VVCCGNDGNDGNDDATAD4GPIO2

先將OLED和NodeMCU開發板連接好,然后接上將usb接到電腦端,上傳點亮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) -- 設置字體 disp:setFont(u8g2.font_unifont_t_symbols) disp:setFontRefHeightExtendedText() --disp:setDrawColor(1) disp:setFontPosTop() --disp:setFontDirection(0) -- 畫邊框 --disp:drawFrame(0, 0, 128, 64) end -- 顯示函數 function oled_show_msg() -- 設置顯示內容 disp:drawStr(0, 0, "1 Hello OLED") disp:drawStr(0, 16, "2234567890ABCDEF") disp:drawStr(0, 32, "3234567890ABCDEF") disp:drawStr(0, 48, "4234567890ABCDEF") -- 將內容發送到oled disp:sendBuffer() end -- 主函數 function main() init_oled() oled_show_msg() end -- 運行程序 main()

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

實際顯示效果:

將溫濕度動態的顯示在OLED上

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

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    147

    文章

    18925

    瀏覽量

    398179
  • OLED
    +關注

    關注

    121

    文章

    6358

    瀏覽量

    233651
  • 編程
    +關注

    關注

    90

    文章

    3716

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    冷庫溫濕度監控系統物聯網解決方案

    冷庫作為生鮮食品、醫藥試劑、化工原料等物資的核心存儲載體,溫濕度的穩定性直接決定物資品質與安全。傳統冷庫溫濕度管理存在諸多痛點:人工巡檢效率低、誤差大,難以實現 24 小時全覆蓋監測;溫濕度異常后
    的頭像 發表于 01-19 16:57 ?471次閱讀

    全無線物聯網庫房溫濕度自動監控系統設計與實施解決方案

    食品、藥品、電子元件、倉儲物流、文物館藏等眾多領域,庫房內的溫濕度環境是影響物資存儲質量的關鍵因素。傳統庫房溫濕度管理多采用人工定時巡檢、紙質記錄的方式,存在效率低下、誤差大、實時性差、漏檢誤報等問題。一旦
    的頭像 發表于 01-15 17:49 ?1052次閱讀

    【瑞薩RA6E2地奇星開發板試用】DHT11 測量溫濕度

    傳感器:DHT11 溫濕度傳感器 顯示屏:I2C 接口 OLED12864(128×64 分辨率,SSD1306 驅動)? 輔助工具:杜邦線、5V 電源(或開發板供電)、萬表(可選
    發表于 12-19 18:50

    溫濕度傳感器HTU31D溫濕度控器中的應用優勢

    溫濕度控制器是一種用于監測和調節環境溫度與濕度的設備,廣泛應用于農業、倉儲、工業生產、家庭等多個領域。其主要功能是維持特定環境條件,以確保產品質量和舒適的居住環境。 溫濕度控制器的工作過程是傳感器
    的頭像 發表于 11-06 14:38 ?330次閱讀
    <b class='flag-5'>溫濕度</b>傳感器HTU31D<b class='flag-5'>在</b><b class='flag-5'>溫濕度</b>控器中的應用優勢

    如何對電能質量在線監測裝置進行溫濕度環境適應性測試?

    對電能質量在線監測裝置進行溫濕度環境適應性測試,核心是通過 高低溫濕熱箱模擬目標場景的極端溫濕度條件 ,驗證裝置 “低溫啟動、高溫運行、濕熱耐受” 下的 運行穩定性、測量精度、硬件可
    的頭像 發表于 10-22 17:50 ?1352次閱讀

    基于LORA無線通訊的祥控多點式煙葉溫濕度監測系統

    XKCON祥控多點式煙葉溫濕度監測系統基于LORA無線通訊技術,無需復雜的布線工作,縮短了工期,節省了成本;系統可以根據煙廠的實際布局和需求進行靈活配置,實現對各單點無線溫濕度檢測桿測量信號的采集接收,大大提升了系統監測和調控能力,確保煙葉
    的頭像 發表于 09-23 17:02 ?780次閱讀
    基于LORA無線通訊的祥控多點式煙葉<b class='flag-5'>溫濕度</b>監測系統

    一款適用于粉塵、易結露等惡劣環境溫濕度監控中的溫濕度傳感芯片

    溫濕度監控系統惡劣環境中通過傳感器實時監測溫濕度參數,當達到預設閾值時自動觸發預警或調節機制,確保環境狀態維持安全范圍內。
    的頭像 發表于 07-09 09:41 ?685次閱讀
    一款適用于粉塵、易結露等惡劣環境<b class='flag-5'>溫濕度</b>監控中的<b class='flag-5'>溫濕度</b>傳感芯片

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

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

    Fluke 972溫濕度測量儀的使用體驗

    作為藥廠的設備工藝工程師,我的主要職責是維護制藥設備的穩定運行和監測生產區域、連接走廊的溫濕度,要嚴格符合企業規范(溫度20-25℃,濕度40%~60%RH)。日常的巡檢工作中,我需要每日三次定點檢查并詳細記錄數據,同時還要應
    的頭像 發表于 06-11 17:32 ?1181次閱讀

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

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

    智能倉儲:溫濕度監控方案應用

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

    樹莓派RP2350 DIY 桌面動態溫濕度

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

    LoRa無線技術的溫濕度監測預警系統

    LoRa無線技術的溫濕度監測預警系統采用LoRa采集器和LoRa網關實現監控區域內的全覆蓋,同時倉儲區各個數據采集節點安裝溫濕度傳感器,實現對監測區域的溫濕度數據動態全采集,并根據倉
    的頭像 發表于 05-14 16:06 ?854次閱讀
    LoRa無線技術的<b class='flag-5'>溫濕度</b>監測預警系統

    溫濕度傳感器:核心原理與跨領域應用解析

    一、溫濕度傳感器的技術演進與核心價值 溫濕度傳感器是一種通過物理或化學機制實時監測環境溫濕度參數的電子設備。物聯網(IoT)與智慧化轉型的浪潮中,其作為環境感知的 “神經末梢”,已滲
    的頭像 發表于 03-27 11:21 ?2222次閱讀
    <b class='flag-5'>溫濕度</b>傳感器:核心原理與跨領域應用解析

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

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