Բովանդակություն:

Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ) ՝ 9 քայլ
Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ) ՝ 9 քայլ

Video: Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ) ՝ 9 քայլ

Video: Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ) ՝ 9 քայլ
Video: Как передавать данные радиомодулями LoRa 2024, Նոյեմբեր
Anonim
Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ)
Պարզ Arduino LoRa խոսակցություն (ավելի քան 5 կմ)

Իմ գրադարանով մենք փորձարկելու ենք E32-TTL-100- ը: Այն անլար հաղորդիչ մոդուլ է, աշխատում է 410 441 ՄՀց հաճախականությամբ (կամ 868 ՄՀց կամ 915 ՄՀց հաճախականությամբ) `հիմնված SEMTECH- ի օրիգինալ RFIC SX1278- ի վրա, առկա է թափանցիկ փոխանցում, TTL մակարդակ: Մոդուլն ընդունում է LORA տարածված սպեկտրի տեխնոլոգիան:

Պարագաներ

  • Arduino UNO
  • LoRa e32 սարքեր

Ըստ ցանկության

  • Mischianti Arduino LoRa վահան (բաց կոդ)
  • Mischianti WeMos LoRa վահան (բաց կոդ)

Քայլ 1: Սարքի բնութագրերը

Մոդուլն ունի FEC Forward Error Correction ալգորիթմ, որն ապահովում է դրա կոդավորման բարձր արդյունավետությունը և լավ ուղղման աշխատանքը: Հանկարծակի միջամտության դեպքում այն կարող է ինքնաբերաբար շտկել միջամտված տվյալների փաթեթները, որպեսզի համապատասխանաբար բարելավվեն հուսալիությունն ու փոխանցման տիրույթը: Բայց առանց FEC- ի, այդ da te փաթեթները կարող են միայն գցվել: Եվ խիստ կոդավորմամբ և վերծանմամբ տվյալների գաղտնալսումն անիմաստ է դառնում: Տվյալների սեղմման գործառույթը կարող է նվազեցնել փոխանցման ժամանակը և միջամտության հավանականությունը ՝ միաժամանակ բարձրացնելով հուսալիությունն ու փոխանցման արդյունավետությունը:

  • Մոդուլի չափը `21*36 մմ
  • Ալեհավաքի տեսակը ՝ SMA-K (50Ω դիմադրություն)
  • Փոխանցման հեռավորությունը `3000 մ (առավելագույնը)
  • Առավելագույն հզորություն ՝ 2 դԲ (100 մՎտ)
  • Օդի տեմպերը ՝ 2.4 Կբիթ / վ (6 ընտրովի մակարդակ (0.3, 1.2, 2.4, 4.8, 9.6, 19.2 կբիթ / վրկ)
  • Արտանետման երկարությունը `512ByteReceive
  • երկարություն: 512 բայթ
  • Հաղորդակցության միջերես `UART - 8N1, 8E1, 8O1,
  • UART բաուդ ութ տեսակ ՝ 1200 -ից մինչև 115200 բիթ / վրկ (կանխադրված ՝ 9600)
  • RSSI աջակցություն. Ոչ (ներկառուցված ինտելեկտուալ մշակում)

Քայլ 2: Փոխանցման տեսակը

Փոխանցման տիպը
Փոխանցման տիպը

Թափանցիկ փոխանցում Սա կարելի է համարել որպես «ցուցադրական ռեժիմ», լռելյայն կարող եք հաղորդագրություն ուղարկել նույն կազմաձևված հասցեի և ալիքի բոլոր սարքերին:

Ֆիքսված փոխանցում

Այս տեսակի փոխանցման համար կարող եք նշել հասցե և ալիք, որտեղ ցանկանում եք ուղարկել հաղորդագրությունը: Դուք կարող եք հաղորդագրություն ուղարկել հետևյալ հասցեով ՝

  • Նշված սարք ՝ կանխորոշված հասցեով ՝ ցածր, հասցե ՝ բարձր և ալիք:
  • Հեռարձակել հաղորդագրություն ալիքային սարքերի մի շարք Նորմալ ռեժիմ Ուղղակի ուղարկել հաղորդագրություն:

Քայլ 3: Սարքի ռեժիմ

Սովորական ռեժիմ Պարզապես ուղարկեք հաղորդագրություն:

Արթնացման ռեժիմ և էներգախնայողության ռեժիմ

Ինչպես կարող եք մտադիր լինել, եթե սարքը Արթնացման ռեժիմում է, կարող է «արթնացնել» մեկ կամ մի քանի սարքեր, որոնք գտնվում են էներգախնայողության ռեժիմում `նախաբանի միջոցով:

Programրագիր/քնի ռեժիմ

Այս կազմաձևով դուք կարող եք փոխել ձեր սարքի կազմաձևը:

Քայլ 4: Էլեկտրամոնտաժային սարք

Հաղորդալարերի սարք
Հաղորդալարերի սարք
Էլեկտրամոնտաժային սարք
Էլեկտրամոնտաժային սարք

Այստեղ սարքի միացման սխեման, սա լիովին կապված է, M0- ի և M1 կապի կառավարման միջոցով թույլատրվում է փոխել սարքի եղանակը, այնպես որ կարող եք անցնել կազմաձևման կամ ծրագրով արթնանալու ռեժիմին, գրադարանը կօգնի ձեզ այս ամենում: շահագործումը:

Քայլ 5: Կազմաձևում

Կազմաձևում
Կազմաձևում

Կա որոշակի հրաման ՝ կազմաձևում կազմաձևելու և ստանալու համար

void setup () {Serial.begin (9600); ուշացում (500); // Գործարկել բոլոր կապումներն ու UART e32ttl100.begin (); ResponseStructContainer գ; c = e32ttl100.getConfiguration (); // Կարևոր է ստանալ կոնֆիգուրացիայի ցուցիչ նախքան մնացած բոլոր գործողությունները Կազմաձևման կոնֆիգուրացիա = *(Կազմաձևում *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); printParameters (կազմաձևում); ResponseStructContainer cMi; cMi = e32ttl100.getModuleInformation (); // Կարևոր է տեղեկատվության ցուցիչ ստանալ բոլոր մյուս գործողություններից առաջ ModuleInformation mi = *(ModuleInformation *) cMi.data; Serial.println (cMi.status.getResponseDescription ()); Serial.println (cMi.status.code); printModuleInformation (mi); }

Քայլ 6: Կազմաձևման արդյունք

Եվ արդյունքը դարձավ

Սկսեք հաջողությունը 1 ---------------------------------------- Գլխավոր ՀԵՏ `11000000 192 C0 AddH BIN: 0 AddL BIN: 0 Chan BIN: 23 -> 433MHz SpeedParityBit BIN: 0 -> 8N1 (կանխադրված) SpeedUARTDataRate BIN: 11 -> 9600bps (կանխադրված) SpeedAirDataRate BIN: 10 -> 2.4kbps (լռելյայն) OptionTrans BIN: 0 - > Թափանցիկ փոխանցում (լռելյայն) OptionPullup BIN: 1 -> TXD, RXD, AUX են push -pulls/pull -ups OptionWakeup BIN: 0 -> 250ms (default) OptionFEC BIN: 1 -> Turn On Forward Error Correct Switch (Default) OptionPower BIN: 0-> 20dBm (կանխադրված) -------------------------------------------- Հաջողություն 1 ---------------------------------------- Գլխարկի համարանիշ ՝ 11000011 195 C3 Մոդելի համար.: 32 Տարբերակ `44 Առանձնահատկություններ` 14 --------------------------------------------

Քայլ 7: Ուղարկեք հաղորդագրություն

Ուղարկել հաղորդագրություն
Ուղարկել հաղորդագրություն

Ահա մի պարզ ուրվագիծ ՝ ալիքին կցված բոլոր սարքերին հաղորդագրություն ուղարկելու համար

void loop () {// Եթե ինչ -որ բան հասանելի է, եթե (e32ttl100.available ()> 1) {// կարդալ ResponseContainer տողային հաղորդագրությունը rc = e32ttl100.receiveMessage (); // Ինչ -որ բան սխալ է ընթանում, եթե (rc.status.code! = 1) {rc.status.getResponseDescription (); } else {// Տպել ստացված տվյալները Serial.println (rc.data); }} if (Serial.available ()) {String input = Serial.readString (); e32ttl100.sendMessage (մուտքագրում); }}

Քայլ 8: Վահան Arduino- ի համար

Վահան Արդուինոյի համար
Վահան Արդուինոյի համար

Ես նաև վահան եմ ստեղծում Arduino- ի համար, որը շատ օգտակար է դառնում նախատիպերի պատրաստման համար:

Եվ ես թողարկում եմ այն որպես բաց կոդով նախագիծ այստեղ

www.pcbway.com/project/shareproject/LoRa_E32_Series_device_Arduino_shield.html

Քայլ 9: Գրադարան

Գրադարան
Գրադարան

GitHub շտեմարան

Աջակցության ֆորում

Լրացուցիչ փաստաթղթեր

Խորհուրդ ենք տալիս: