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

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

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

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

LoRa模塊SX1278與ESP32結(jié)合使用的方法-下

jf_78858299 ? 來(lái)源:一板網(wǎng)電子技術(shù)論壇 ? 作者:一板網(wǎng)電子技術(shù)論 ? 2023-01-21 11:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在這里,我們主要解釋一些重要的代碼片段。

首先,包括所有必需的庫(kù)。SPI.h用于ESP32LoRa之間的SPI通信,Wire.h庫(kù)用于I2C設(shè)備之間的通信。您可以從此處下載所需的庫(kù):

● Wire.h

● SH1106.h

● Sandeep Mistry提供的LoRa庫(kù)。

#include 
#include 
#include 
#include 
#include 
#include 
#include

然后為OLED顯示器創(chuàng)建一個(gè)實(shí)例,該實(shí)例包括地址和連接顯示器的引腳。

SH1106 display(0x3c, 21, 22);

之后,輸入Wi-Fi名稱(chēng)和密碼。ESP32需要互聯(lián)網(wǎng)連接從網(wǎng)站獲取天氣數(shù)據(jù)。

const char* ssid = "Wi-fi Name";
const char* pass = "Password";

在接下來(lái)的幾行代碼中,定義連接LoRa模塊的引腳。

#define ss 5
#define rst 14
#define dio0 2

現(xiàn)在,輸入之前生成的API鏈接。使用此鏈接,我們將獲得Jaipur的溫度和濕度數(shù)據(jù)。

Const char* url = "http://api.weatherapi.com/v1/current.json?key=ade61a8aef37445d8c0100632202407&q=Jaipur";

在*setup()*函數(shù)中,我們將使用115200的波特率初始化串口監(jiān)視器,并使用begin()函數(shù)初始化OLED顯示屏和LoRa通信。

Serial.begin(115200);
  Serial.println(ssid);
  WiFi.begin(ssid, pass);
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(500);
  }
  LoRa.setPins(ss, rst, dio0);
  while (!LoRa.begin(433E6)) {
  }
  LoRa.setSyncWord(0xF3);
}

在void loop()函數(shù)中,我們將檢查ESP32是否接收到JSON文件,并使用以下代碼在串口監(jiān)視器上打印輸出JSON數(shù)據(jù)。

int httpCode = https.GET();
  if (httpCode > 0) {
    String payload = https.getString();
    char charBuf[500];
    payload.toCharArray(charBuf, 500);
    Serial.println(payload);

之后,使用通過(guò)ArduinoJson Assistant生成的分詞程序。此分詞程序?qū)槲覀兲峁㎎aipur的溫度和濕度數(shù)據(jù)。

const size_t capacity = JSON_OBJECT_SIZE(2) + JSON_OBJECT_SIZE(3) + JSON_OBJECT_SIZE(8) + JSON_OBJECT_SIZE(23) + 490;
  DynamicJsonDocument doc(capacity);
  const char* json = "{"location":{"name":"Jaipur","region":"Rajasthan","country":"India","lat":26.92,"lon":75.82,"tz_id":"Asia/Kolkata","localtime_epoch":1595741089,"localtime":"2020-07-26 10:54"},"current":{"last_updated_epoch":1595740520,"last_updated":"2020-07-26 10:45","temp_c":31,"temp_f":87.8,"is_day":1,"condition":{"text":"Mist","icon":"//cdn.weatherapi.com/weather/64x64/day/143.png","code":1030},"wind_mph":0,"wind_kph":0,"wind_degree":0,"wind_dir":"N","pressure_mb":1008,"pressure_in":30.2,"precip_mm":0,"precip_in":0,"humidity":66,"cloud":50,"feelslike_c":32.2,"feelslike_f":89.9,"vis_km":5,"vis_miles":3,"uv":8,"gust_mph":7.2,"gust_kph":11.5}}";
  deserializeJson(doc, json);
  long current_last_updated_epoch = current["last_updated_epoch"];
  const char* current_last_updated = current["last_updated"]; //
  int current_temp_c = current["temp_c"]; // 31
  int current_humidity = current["humidity"]; // 66

最后,我們將溫度和濕度值發(fā)送到LoRa接收器

LoRa.beginPacket();
LoRa.print("Temperature: ");
LoRa.print(current_temp_c);
LoRa.print("c");
LoRa.print("Humidity: ");
LoRa.print(current_humidity);
LoRa.endPacket();

Arduino LoRa接收器代碼

同樣,首先我們添加LoRa模塊和LCD的庫(kù),并定義LCD連接到的引腳。

#include 
#include 
#include 
constintrs = 8, en = 7, d4 = 6, d5 = 5, d6 = 4, d7 = 3;
LiquidCrystallcd(rs, en, d4, d5, d6, d7);

在loop()函數(shù)中,我們接收來(lái)自發(fā)送器模塊的數(shù)據(jù)包。收到數(shù)據(jù)包后,Arduino開(kāi)始讀取它們作為字符并將其打印在LCD上。當(dāng)它收到關(guān)鍵字“ c”時(shí),它將剩余信息打印在第二行。

void loop() {
intpacketSize = LoRa.parsePacket();
if (packetSize) {
Serial.print("Received packet '");
while (LoRa.available()) {
char incoming = (char)LoRa.read();
if (incoming == 'c')
      {
lcd.setCursor(0, 1);
      }
else
      {
lcd.print(incoming);
      }

ESP32 LoRa設(shè)置的工作過(guò)程

我們將硬件和程序準(zhǔn)備就緒后,將代碼上傳到ESP32和Arduino模塊中。發(fā)射器模塊會(huì)將溫度和濕度值發(fā)送到接收器模塊。接收器LoRa模塊將數(shù)值在LCD上進(jìn)行顯示,如下所示。

!1672975269(1).png

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

    關(guān)注

    2

    文章

    1620

    瀏覽量

    64035
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4900

    瀏覽量

    70733
  • LoRa模塊
    +關(guān)注

    關(guān)注

    5

    文章

    142

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    請(qǐng)問(wèn)LORA SX1278芯片如何實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)喚醒?

    最近在使用SX1278芯片,實(shí)現(xiàn)了其中的前導(dǎo)碼喚醒,然后接收數(shù)據(jù)。但是如果手冊(cè)里面只提到可以設(shè)置前導(dǎo)碼的長(zhǎng)度,沒(méi)提到前導(dǎo)碼的數(shù)值。也就是說(shuō)如果一臺(tái)設(shè)備在發(fā)送數(shù)據(jù)(帶前導(dǎo)碼),附近所有的設(shè)備都會(huì)被喚醒
    發(fā)表于 01-16 06:35

    STM32實(shí)現(xiàn)SX1278 Lora無(wú)線組網(wǎng)

    `STM32實(shí)現(xiàn)SX1278 Lora無(wú)線組網(wǎng)原理圖PCB實(shí)物`
    發(fā)表于 08-26 16:11

    如何使用Lora模塊SX1278實(shí)現(xiàn)ESP8266之間的無(wú)線通訊

    引入了LoRa技術(shù)來(lái)解決所有這些問(wèn)題。使用單節(jié)電池,該設(shè)備可以運(yùn)行一年。在本篇文章中,我們將使用LoRa模塊SX1278與NodeMCU ESP
    發(fā)表于 02-16 07:46

    怎樣去移植SX1278模塊LoRa功能呢

    SX1278具有哪些功能呢?怎樣去移植SX1278模塊LoRa功能呢?
    發(fā)表于 02-21 07:20

    基于流行的SX1276/SX1278無(wú)線模塊的E32 UART LoRa設(shè)備配置

    原作者:renzo mischianti - 2019年10月29日發(fā)布 - 2021年6月21日更新現(xiàn)在我們要學(xué)習(xí)的是基于流行的SX1276/SX1278無(wú)線模塊的E32 UART LoRa
    發(fā)表于 02-22 06:51

    基于流行的SX1276/SX1278無(wú)線模塊的E32 UART LoRa設(shè)備來(lái)發(fā)送復(fù)雜的結(jié)構(gòu)和管理節(jié)電

    原作者:renzo mischianti - 2019年12月3日發(fā)布- 2021年6月21日更新現(xiàn)在我們將了解如何使用基于流行的SX1276/SX1278無(wú)線模塊的E32 UART LoRa
    發(fā)表于 02-22 07:47

    SX1278產(chǎn)品手冊(cè)

    SX1278 產(chǎn)品手冊(cè)
    發(fā)表于 05-18 15:23 ?269次下載

    SX1278無(wú)線模塊特點(diǎn)及引腳功能

    SX1278是半雙工傳輸?shù)牡椭蓄l收發(fā)器,接收的射頻信號(hào)首先經(jīng)過(guò)低噪聲放大器(LNA)。本文主要介紹了SX1278無(wú)線模塊的特點(diǎn)、封裝、工作條件以及它的引腳功能說(shuō)明。
    發(fā)表于 12-26 11:27 ?4.2w次閱讀
    <b class='flag-5'>SX1278</b>無(wú)線<b class='flag-5'>模塊</b>特點(diǎn)及引腳功能

    使用SX1278無(wú)線模塊進(jìn)行Lora接收和發(fā)送demo的代碼資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用SX1278無(wú)線模塊進(jìn)行Lora接收和發(fā)送demo的代碼資料免費(fèi)下載
    發(fā)表于 06-17 08:00 ?170次下載

    用于Arduino、esp32esp8266的Ebyte LoRa E32(SX1278)設(shè)備:配置 - 第三部分

    原作者:renzo mischianti - 2019年10月29日發(fā)布 - 2021年6月21日更新現(xiàn)在我們要學(xué)習(xí)的是基于流行的SX1276/SX1278無(wú)線模塊的E32 UART LoRa
    發(fā)表于 12-27 19:17 ?15次下載
    用于Arduino、<b class='flag-5'>esp32</b>或<b class='flag-5'>esp</b>8266的Ebyte <b class='flag-5'>LoRa</b> E32(<b class='flag-5'>SX1278</b>)設(shè)備:配置 - 第三部分

    LoRa模塊SX1278ESP32結(jié)合使用的方法-上

    在本篇文章中,我們將學(xué)習(xí)如何將LoRa模塊SX1278ESP32結(jié)合使用。在這里,我們將使用兩個(gè)LoR
    的頭像 發(fā)表于 01-21 11:30 ?4578次閱讀
    <b class='flag-5'>LoRa</b><b class='flag-5'>模塊</b><b class='flag-5'>SX1278</b>與<b class='flag-5'>ESP32</b><b class='flag-5'>結(jié)合</b>使用的<b class='flag-5'>方法</b>-上

    LLCC68與SX1278 LoRa模塊的優(yōu)勢(shì)對(duì)比

    LLCC68和SX1278都是美國(guó)Semtech公司推出的LoRa芯片。思為無(wú)線用Semtech公司的芯片研發(fā)的LoRa模塊,它們的各自的優(yōu)勢(shì)是什么?
    的頭像 發(fā)表于 05-05 16:49 ?2403次閱讀
    LLCC68與<b class='flag-5'>SX1278</b> <b class='flag-5'>LoRa</b><b class='flag-5'>模塊</b>的優(yōu)勢(shì)對(duì)比

    SX1278無(wú)線串口透?jìng)?b class='flag-5'>模塊LoRa擴(kuò)頻遠(yuǎn)距離通信

    電子發(fā)燒友網(wǎng)站提供《SX1278無(wú)線串口透?jìng)?b class='flag-5'>模塊LoRa擴(kuò)頻遠(yuǎn)距離通信.pdf》資料免費(fèi)下載
    發(fā)表于 09-19 14:47 ?7次下載

    LoRa模塊 SX1278詳解

    LoRa1278無(wú)線通信模塊是采用Semtech公司的SX1278器件127分貝動(dòng)態(tài)范圍RSSI256個(gè)字節(jié)FiFog與CRC調(diào)頻功能內(nèi)置溫度傳感器和低電量指示燈LoRa
    的頭像 發(fā)表于 02-28 16:19 ?3033次閱讀
    <b class='flag-5'>LoRa</b><b class='flag-5'>模塊</b> <b class='flag-5'>SX1278</b>詳解

    LLCC68與SX1278 LoRa模塊的優(yōu)勢(shì)對(duì)比?

    SX1278 LoRa模塊的一些優(yōu)勢(shì)對(duì)比: LLCC68 LoRa模塊的優(yōu)勢(shì): 更高的通信范圍: LLCC68采用了更先進(jìn)的
    的頭像 發(fā)表于 03-08 16:37 ?1364次閱讀