Mqtt + Oled

Mqtt通訊+Oled顯示器通訊測(cè)試

軟件

  1. arduino ide
  2. mosquitto(消息服務(wù)器)

硬件

  1. esp32 (自行淘寶)
  2. ssd1306 oled (自行淘寶)

需要用到的庫(kù)文件

PubSubClient(mqtt客戶端庫(kù))
U8g2(oled驅(qū)動(dòng)庫(kù))

代碼

#include <WiFi.h>
#include <PubSubClient.h>


#include <Arduino.h>
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

const char* ssid     = "wifi";
const char* password = "xiaog123";

WiFiClient espClient;
PubSubClient client(espClient);

void reconnect() {
  while (!client.connected()) {
    Serial.print("Attempting MQTT connection...");
    if (client.connect("arduinoClient")) {
      Serial.println("connected");
      client.publish("outTopic", "hello world");
      // 訂閱 inTopic 頻道
      client.subscribe("inTopic");
    } else {
      Serial.print("failed, rc=");
      Serial.print(client.state());
      Serial.println(" try again in 5 seconds");
      delay(5000);
    }
  }
}
// 回調(diào)函數(shù)
void callback(char* topic, byte* payload, unsigned int length) {
  Serial.print("Message arrived [");
  Serial.print(topic);
  Serial.print("] ");
  char arr[length];
  for (int i = 0; i < length; i++) {
    arr[i] = (unsigned char)payload[i];
    Serial.print(arr[i]);
  }
  // 在結(jié)果數(shù)組中加入'\0'作為結(jié)束符秦陋,否則結(jié)果數(shù)組結(jié)尾將亂碼
  arr[length] = '\0';
  Serial.println();
  // 顯示到oled屏幕上
  u8g2.firstPage();
  do {
    u8g2.setFont(u8g2_font_ncenB10_tr);
    u8g2.drawStr(0, 50, arr);
  } while (u8g2.nextPage());
}

void setup() {
  u8g2.begin();
  Serial.begin(115200);
  delay(10);
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  // 設(shè)置mqtt服務(wù)器地址以及端口
  client.setServer("192.168.31.105", 1883);
  // 設(shè)置回調(diào)函數(shù)
  client.setCallback(callback);
}

void loop() {
 // mqtt 斷線重連
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}

測(cè)試

打開(kāi)終端理疙,輸入

mosquitto_pub -t inTopic -m "hello world"

前提是保證你的mosquitto服務(wù)正確安裝并且已經(jīng)開(kāi)啟
沒(méi)有開(kāi)啟鹰晨?
終端輸入

sudo service mosquitto start

測(cè)試環(huán)境為L(zhǎng)inux

問(wèn)題

  1. 如何安裝esp32 的 arduino ide 開(kāi)發(fā)環(huán)境絮供?
    軟件地址: https://github.com/espressif/arduino-esp32
  2. mqtt
    軟件地址:http://mosquitto.org
  3. 說(shuō)明
    關(guān)于以上問(wèn)題無(wú)法解決請(qǐng)自行百度,本教程只提供思路。
    代碼上盡我可能的保證簡(jiǎn)單純粹

結(jié)果演示


可以看到esp32已經(jīng)收到消息并顯示出來(lái)了


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子颠蕴,更是在濱河造成了極大的恐慌,老刑警劉巖助析,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件犀被,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡外冀,警方通過(guò)查閱死者的電腦和手機(jī)寡键,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雪隧,“玉大人西轩,你說(shuō)我怎么就攤上這事∧匝兀” “怎么了藕畔?”我有些...
    開(kāi)封第一講書人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)庄拇。 經(jīng)常有香客問(wèn)我注服,道長(zhǎng),這世上最難降的妖魔是什么措近? 我笑而不...
    開(kāi)封第一講書人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任溶弟,我火速辦了婚禮,結(jié)果婚禮上熄诡,老公的妹妹穿的比我還像新娘可很。我一直安慰自己诗力,他們只是感情好凰浮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布我抠。 她就那樣靜靜地躺著,像睡著了一般袜茧。 火紅的嫁衣襯著肌膚如雪菜拓。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,562評(píng)論 1 305
  • 那天笛厦,我揣著相機(jī)與錄音纳鼎,去河邊找鬼。 笑死裳凸,一個(gè)胖子當(dāng)著我的面吹牛贱鄙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播姨谷,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼逗宁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了梦湘?” 一聲冷哼從身側(cè)響起瞎颗,我...
    開(kāi)封第一講書人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎捌议,沒(méi)想到半個(gè)月后哼拔,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓣颅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年倦逐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宫补。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡僻孝,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出守谓,到底是詐尸還是另有隱情穿铆,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布斋荞,位于F島的核電站荞雏,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏平酿。R本人自食惡果不足惜凤优,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蜈彼。 院中可真熱鬧筑辨,春花似錦、人聲如沸幸逆。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至楚昭,卻和暖如春栖袋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背抚太。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工塘幅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人尿贫。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓电媳,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親庆亡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匆背,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評(píng)論 25 707
  • 太長(zhǎng)了,還是轉(zhuǎn)載吧...今天在看博客的時(shí)候身冀,無(wú)意中發(fā)現(xiàn)了@Trinea在GitHub上的一個(gè)項(xiàng)目Android開(kāi)源...
    龐哈哈哈12138閱讀 20,187評(píng)論 3 283
  • 早上起來(lái)就看到你發(fā)的消息钝尸,跟朋友走在路邊,清冷的秋風(fēng)夾著桂花香襲來(lái)搂根,你提起柳永的《望海潮》珍促,有三秋桂子,十里荷花剩愧,...
    利萍閱讀 143評(píng)論 0 1
  • --你的話太多了 ???
    咸叔說(shuō)閱讀 393評(píng)論 0 1
  • 在生命的 每一次輪回中 我破開(kāi)污泥 洗凈顏面 聽(tīng)風(fēng)聲起落 讀人間百變 看路過(guò)的人千千萬(wàn) 任歲月延續(xù)了數(shù)百年 婀...
    閬苑寒梅閱讀 262評(píng)論 0 0