Агуулгын хүснэгт:

LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам
LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам

Видео: LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам

Видео: LoRa Arduino, Esp8266 эсвэл Esp32: 15 алхам бүхий бага зардалтай E32 (sx1278/sx1276) төхөөрөмж бүхий 3 км -ээс 8 км хүртэлх утасгүй холбоо: 15 алхам
Видео: ESP32 Review: Using the ESP32 with the Arduino IDE 2024, Долдугаар сарын
Anonim
LoRa Arduino, Esp8266 эсвэл Esp32 -д зориулсан E32 (sx1278/sx1276) төхөөрөмж бүхий 3Km -аас 8Km хүртэлх утасгүй холбоо
LoRa Arduino, Esp8266 эсвэл Esp32 -д зориулсан E32 (sx1278/sx1276) төхөөрөмж бүхий 3Km -аас 8Km хүртэлх утасгүй холбоо

Би маш хүчирхэг, энгийн, хямд төхөөрөмж болох LoRa төхөөрөмжийн Semtech цуврал дээр суурилсан EBYTE E32 -ийг удирдах номын сан бий болгодог.

Та энд 3км, 8км хувилбарыг эндээс олж болно

Тэд 3000м -ээс 8000м -ийн зайд ажиллах боломжтой бөгөөд тэдгээр нь маш олон онцлог, параметртэй байдаг. Тиймээс би ашиглалтыг хялбарчлахын тулд энэ номын санг бий болгож байна.

Энэ бол метрополитан мэдрэгчээс мэдээлэл авах эсвэл дроныг удирдах шийдэл юм.

Хангамж

Ардуино НҮБ

Wemos D1 мини

LoRa E32 TTL 100 3км хувилбар

LoRa E32 TTL 1W 8Km хувилбар

Алхам 1: Номын сан

Номын сан
Номын сан

Та миний номын санг эндээс олж болно.

Татаж авах.

Баруун дээд буланд байгаа DOWNLOADS товчлуур дээр дарж шахагдаагүй хавтасны нэрийг LoRa_E32 нэрээр солино уу.

LoRa_E32 фолдерт LoRa_E32.cpp болон LoRa_E32.h байгаа эсэхийг шалгаарай.

LoRa_E32 номын сангийн хавтсыг өөрийн / libraries / хавтсыг байрлуул. Хэрэв таны анхны номын сан бол танд номын сангийн дэд хавтас үүсгэх шаардлагатай болж магадгүй юм.

IDE -г дахин эхлүүлнэ үү.

Алхам 2: Pinout хийх

Pinout
Pinout
Pinout
Pinout
Pinout
Pinout

Таны харж байгаагаар M0 ба M1 тээглүүрээр дамжуулан янз бүрийн горимыг тохируулж болно.

Статик хэлбэрээр ашиглаж болох зарим зүү байдаг, гэхдээ хэрэв та үүнийг микроконтроллерт холбож номын санд тохируулбал та гүйцэтгэлийг нь дээшлүүлж, програм хангамжаар дамжуулан бүх горимыг хянах боломжтой болно, гэхдээ бид дараа нь илүү сайн тайлбарлах болно.

Алхам 3: AUX зүү

AUX зүү
AUX зүү
AUX зүү
AUX зүү
AUX зүү
AUX зүү

Миний хэлснээр, бүх зүүг микроконтроллерийн гаралт руу холбох нь чухал биш, та тохиргоогоо авахын тулд M0 ба M1 тээглүүрийг HIGH эсвэл LOW болгож тохируулж болно, хэрэв та AUX -ийг холбоогүй бол номын сан нь боломжийн хойшлуулна. ажиллагаа дууссан гэсэн үг.

AUX зүү

Өгөгдөл дамжуулахдаа гадны MCU -ийг сэрээж, өгөгдөл дамжуулах явцад HIGH -ийг буцааж өгөх боломжтой.

AUX хүлээн авахдаа LOW руу явж буфер хоосон байхад HIGH буцаана.

Энэ нь мөн хэвийн ажиллагааг сэргээхийн тулд өөрийгөө шалгахад ашиглагддаг (асаах, унтах/програмын горим дээр).

Алхам 4: Бүрэн холбогдсон схем Esp8266

Бүрэн холбогдсон схем Esp8266
Бүрэн холбогдсон схем Esp8266
Бүрэн холбогдсон схем Esp8266
Бүрэн холбогдсон схем Esp8266

esp8266 холболтын схем нь илүү энгийн, учир нь энэ нь ижил хүчдэлийн логик холболтоор ажилладаг (3.3v).

Сайн тогтвортой байдлыг хангахын тулд татах эсэргүүцэл (4, 7Kohm) нэмэх нь чухал юм.

Алхам 5: Бүрэн холбогдсон схем Arduino

Бүрэн холбогдсон схем Arduino
Бүрэн холбогдсон схем Arduino
Бүрэн холбогдсон схем Arduino
Бүрэн холбогдсон схем Arduino

Arduino -ийн ажлын хүчдэл нь 5 в тул эвдрэлээс урьдчилан сэргийлэхийн тулд LoRa модулийн RX зүү M0 ба M1 дээр хүчдэл хуваагч нэмэх шаардлагатай бөгөөд эндээс нэмэлт мэдээлэл авах боломжтой Хүчдэл хуваагч: тооцоолуур ба програм.

Та RX дээр нийлүүлснээс дохиогоор GND ба 1Kohm хүртэл 2Kohm эсэргүүцэл ашиглаж болно.

Алхам 6: Номын сан: Барилгачин

Бид илүү олон сонголт, нөхцөл байдлыг удирдах боломжтой тул би нэлээд олон тооны бүтээгчдийг хийсэн.

LoRa_E32 (байт rxPin, байт txPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

LoRa_E32 (байт rxPin, байт txPin, байт auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600); LoRa_E32 (байт rxPin, байт txPin, байт auxPin, байт m0Pin, байт m1Pin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

Цуваа болон бусад зүүг удирдах ажлыг номын санд шилжүүлэхийн тулд бүтээгчдийн анхны багцыг бий болгодог.

rxPin ба txPin бол UART -т холбогдох зүү бөгөөд заавал байх ёстой.

auxPin бол ажиллагаа, дамжуулалт, хүлээн авах байдлыг шалгадаг зүү юм (бид үүнийг дараа нь илүү сайн тайлбарлах болно), энэ зүү нь заавал байх албагүй, хэрэв та үүнийг тохируулаагүй бол би үйлдлийг өөрөө дуусгахыг зөвшөөрөхийн тулд хойшлуулна. хоцролттой).

m0pin ба m1Pin нь MODE горимыг өөрчлөх зүү юм (хүснэгтийн дээд хэсгийг үзнэ үү), "үйлдвэрлэл" дэх энэ тээглүүр нь HIGH эсвэл LOW -тэй шууд холбогдоно гэж бодож байна, гэхдээ туршилтын хувьд тэдгээрийг номын сан удирдах боломжтой.

bpsRate нь SoftwareSerial -ийн дууны хурд бөгөөд ихэвчлэн 9600 байдаг (программист/унтах горим дахь цорын ганц дамжуулах хурд)

Энгийн жишээ бол

#"LoRa_E32.h" LoRa_E32 e32ttl100 (2, 3) оруулах; // RX, TX // LoRa_E32 e32ttl100 (2, 3, 5, 6, 7); // RX, TX

Бид SoftwareSerial -ийг өөр бүтээгчтэй шууд ашиглаж болно

LoRa_E32 (HardwareSerial* цуврал, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

LoRa_E32 (HardwareSerial* сериал, байт auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

LoRa_E32 (HardwareSerial* сериал, байт auxPin, m0Pin байт, m1Pin байт, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

Энэ бүтээгчийн дээд жишээг ингэж хийж болно.

#оруулах "LoRa_E32.h" оруулах

SoftwareSerial mySerial (2, 3); // RX, TX

LoRa_E32 e32ttl100 (& mySerial);

// LoRa_E32 e32ttl100 (& mySerial, 5, 7, 6);

Сүүлчийн бүтээгч нь SoftwareSerial -ийн оронд HardwareSerial ашиглахыг зөвшөөрөх явдал юм.

LoRa_E32 (SoftwareSerial* цуврал, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

LoRa_E32 (SoftwareSerial* сериал, байт auxPin, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

LoRa_E32 (SoftwareSerial* сериал, байт auxPin, m0Pin байт, m1Pin байт, UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);

Алхам 7: Эхлэх

Эхлүүлэх командыг оролт, гаралтын горимд цуваа болон зүү ажиллуулахад ашигладаг.

void start ();

гүйцэтгэлд байна

// Бүх зүү болон UART -ийг эхлүүлнэ үү

e32ttl100.begin ();

Алхам 8: Тохиргоо ба мэдээллийн арга

Тохиргоог удирдах, төхөөрөмжийн талаар мэдээлэл авах хэд хэдэн арга байдаг.

ResponseStructContainer getConfiguration ();

ResponseStatus setConfiguration (Тохиргооны тохиргоо, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);

ResponseStructContainer getModuleInformation ();

void printParameters (бүтэц Тохиргооны тохиргоо);

ResponseStatus resetModule ();

Алхам 9: Хариултын контейнер

Хариултын менежментийг хялбарчлахын тулд би алдааг удирдах, ерөнхий өгөгдлийг буцааж өгөхөд зориулагдсан контейнер багцыг бий болгодог.

ResponseStatus

Энэ бол статусын контейнер бөгөөд 2 энгийн нэвтрэх цэгтэй тул статус код болон статус кодын тайлбарыг авах боломжтой

Serial.println (c.getResponseDescription ()); // Кодын тодорхойлолт

Serial.println (c. код); // Амжилттай бол 1

Код нь

АМЖИЛТ = 1, ERR_UNKNOWN, ERR_NOT_SUPPORT, ERR_NOT_IMPLEMENT, ERR_NOT_INITIAL, ERR_INVALID_PARAM, ERR_DATA_SIZE_NOT_MATCH, ERR_BUF_TOO_SMALL, ERR_TIMEOUT, ERR_HARDWARE, ERR_HEAD_NOT_RECOGNIZED

ResponseContainer

Энэ контейнер нь String -ийн хариу үйлдлийг удирдахад зориулагдсан бөгөөд 2 орох цэгтэй болно.

мессеж болон статусаас буцаасан мөр бүхий өгөгдөл, RepsonseStatus -ийн жишээ.

ResponseContainer rs = e32ttl.receiveMessage ();

String message = rs.data;

Serial.println (rs.status.getResponseDescription ());

Serial.println (зурвас);

ResponseStructContainer

Энэ бол илүү "төвөгтэй" контейнер юм, би үүнийг бүтцийг удирдахад ашигладаг, ResponseContainer -ийн ижил оролттой боловч өгөгдөл нь нарийн төвөгтэй бүтцийг удирдах хоосон заагч юм.

ResponseStructContainer c;

c = e32ttl100.getConfiguration (); // Бусад бүх үйлдлээс өмнө тохиргооны заагч авах нь чухал юм

Тохиргооны тохиргоо = *(Тохиргоо *) c.data;

Serial.println (c.status.getResponseDescription ());

Serial.println (статус код);

getConfiguration ба setConfiguration

Эхний арга бол getConfiguration бөгөөд та үүнийг төхөөрөмж дээр хадгалагдсан бүх өгөгдлийг сэргээхийн тулд ашиглаж болно.

ResponseStructContainer getConfiguration ();

Хэрэглээний жишээ энд байна.

ResponseStructContainer c;

c = e32ttl100.getConfiguration (); // Бусад бүх үйлдлээс өмнө тохиргооны заагч авах нь чухал юм

Тохиргооны тохиргоо = *(Тохиргоо *) c.data;

Serial.println (c.status.getResponseDescription ());

Serial.println (статус код);

Serial.println (тохиргоо. SPED.getUARTBaudRate ());

Тохиргооны бүтэц нь бүх тохиргооны өгөгдлийг агуулдаг бөгөөд би ганц өгөгдлийн бүх тайлбарыг авахын тулд хэд хэдэн функцийг нэмдэг.

тохиргоо. ADDL = 0x0; // Addressconfiguration -ийн эхний хэсэг. ADDH = 0x1; // Хаягийн тохиргооны хоёр дахь хэсэг. CHAN = 0x19; // Сувгийн тохиргоо. OPTION.fec = FEC_0_OFF; // Алдаа засах залгуурын тохиргоог дамжуулах. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; // Дамжуулах горимын тохиргоо. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; // Татах удирдлагын тохиргоо. OPTION.transmissionPower = POWER_17; // dBm дамжуулах тэжээлийн тохиргоо. OPTION.wirelessWakeupTime = WAKE_UP_1250; // Сэрээх тохиргоог хүлээх цаг. SPED.airDataRate = AIR_DATA_RATE_011_48; // Агаарын өгөгдөл дамжуулах хурдны тохиргоо. SPED.uartBaudRate = UART_BPS_115200; // Харилцааны дамжуулалтын хурдны тохиргоо. SPED.uartParity = MODE_00_8N1; // Parity бит

Бүх тайлбарыг авахын тулд танд бүх атрибуттай тэнцэх функц байна:

Serial.print (F ("Chan:")); Цуваа.хэвлэх (тохиргоо. CHAN, DEC); Serial.print (" ->"); Serial.println (configuration.getChannelDescription ()); Serial.println (F ("")); Serial.print (F ("SpeedParityBit:")); Serial.print (configuration. SPED.uartParity, BIN); Serial.print (" ->"); Serial.println (configuration. SPED.getUARTParityDescription ()); Serial.print (F ("SpeedUARTDatte:")); Serial.print (тохиргоо. SPED.uartBaudRate, BIN); Serial.print (" ->"); Serial.println (тохиргоо. SPED.getUARTBaudRate ()); Serial.print (F ("SpeedAirDataRate:")); Serial.print (тохиргоо. SPED.airDataRate, BIN); Serial.print (" ->"); Serial.println (тохиргоо. SPED.getAirDataRate ()); Serial.print (F ("OptionTrans:")); Serial.print (тохиргоо. OPTION.fixedTransmission, BIN); Serial.print (" ->"); Serial.println (тохиргоо. OPTION.getFixedTransmissionDescription ()); Serial.print (F ("OptionPullup:")); Serial.print (тохиргоо. OPTION.ioDriveMode, BIN); Serial.print (" ->"); Serial.println (тохиргоо. OPTION.getIODroveModeDescription ()); Serial.print (F ("OptionWakeup:")); Serial.print (тохиргоо. OPTION.wirelessWakeupTime, BIN); Serial.print (" ->"); Serial.println (тохиргоо. OPTION.getWirelessWakeUPTimeDescription ()); Serial.print (F ("OptionFEC:")); Serial.print (тохиргоо. OPTION.fec, BIN); Serial.print (" ->"); Serial.println (тохиргоо. OPTION.getFECDescription ()); Serial.print (F ("OptionPower:")); Serial.print (тохиргоо. OPTION.transmissionPower, BIN); Serial.print (" ->"); Serial.println (тохиргоо. OPTION.getTransmissionPowerDescription ());

Үүний нэгэн адил setConfiguration нь тохиргооны бүтэц хийхийг хүсч байгаа тул тохиргоог удирдах хамгийн сайн арга бол одоогийн өөрчлөлтийг олж авах, өөрт хэрэгтэй өөрчлөлтийг дахин ашиглах явдал юм.

ResponseStatus setConfiguration (Тохиргооны тохиргоо, PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE);

Тохиргоо бол энэ өөрчлөлт нь зөвхөн одоогийн сессийн хувьд бүрмөсөн өөрчлөгдсөн тохиолдолд танд сонголт хийх боломжийг олгодог saveType програм юм.

ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Бусад бүх үйлдлээс өмнө тохиргооны заагч авах нь чухал юм Тохиргооны тохиргоо = *(Тохиргоо *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (статус код); printParameters (тохиргоо); тохиргоо. ADDL = 0x0; тохиргоо. ADDH = 0x1; тохиргоо. CHAN = 0x19; тохиргоо. OPTION.fec = FEC_0_OFF; тохиргоо. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; тохиргоо. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; тохиргоо. OPTION.transmissionPower = POWER_17; тохиргоо. OPTION.wirelessWakeupTime = WAKE_UP_1250; тохиргоо. SPED.airDataRate = AIR_DATA_RATE_011_48; тохиргоо. SPED.uartBaudRate = UART_BPS_115200; тохиргоо. SPED.uartParity = MODE_00_8N1; // Тохиргоог өөрчилж, тохиргоог хийхгүй байхаар тохируулсан ResponseStatus rs = e32ttl100.setConfiguration (тохиргоо, WRITE_CFG_PWR_DWN_LOSE); Serial.println (rs.getResponseDescription ()); Serial.println (rs. код); printParameters (тохиргоо);

Параметрүүдийг бүгд тогтмол байдлаар удирддаг.

Алхам 10: Тохиргооны үндсэн сонголт

Үндсэн тохиргооны сонголт
Үндсэн тохиргооны сонголт

Алхам 11: Хүлээн авах зурвас илгээх

Эхлээд бид хүлээн авах буфер дотор ямар нэгэн зүйл байгаа эсэхийг шалгах энгийн боловч ашигтай аргыг нэвтрүүлэх ёстой

int available ();

Энэ нь одоогийн урсгалд хэдэн байт байгааг буцааж өгөх явдал юм.

Алхам 12: Дамжуулах ердийн горим

Ердийн дамжуулах горим
Ердийн дамжуулах горим

Ердийн/Ил тод дамжуулах горимыг ижил төхөөрөмж, хаягтай бүх төхөөрөмж рүү мессеж илгээхэд ашигладаг.

Зурвас илгээх/хүлээн авах маш олон арга байдаг тул бид нарийвчлан тайлбарлах болно.

ResponseStatus sendMessage (const String зурвас);

ResponseContainer receiveMessage ();

Эхний арга нь sendMessage бөгөөд ердийн горимд төхөөрөмж рүү String илгээхэд ашиглагддаг.

ResponseStatus rs = e32ttl.sendMessage ("Prova"); Serial.println (rs.getResponseDescription ());

Нөгөө төхөөрөмж нь зүгээр л хүрд дээр хийдэг

if (e32ttl.available ()> 1) {ResponseContainer rs = e32ttl.receiveMessage (); String message = rs.data; // Эхлээд Serial.println (rs.status.getResponseDescription ()) өгөгдлийг авах; Serial.println (зурвас); }

Алхам 13: Бүтцийг удирдах

Хэрэв та нарийн төвөгтэй бүтэц хийхийг хүсч байвал энэ аргыг ашиглаж болно

ResponseStatus sendMessage (const void *message, const uint8_t size); ResponseStructContainer receiveMessage (const uint8_t size);

Энэ нь структур илгээхэд ашиглагддаг, жишээлбэл:

бүтэц Messaggione {char төрөл [5]; char мессеж [8]; bool mitico; }; бүтэц Messaggione messaggione = {"TEMP", "Peple", үнэн}; ResponseStatus rs = e32ttl.sendMessage (& messaggione, sizeof (Messaggione)); Serial.println (rs.getResponseDescription ());

нөгөө талаас та мессежийг хүлээж авах боломжтой

ResponseStructContainer rsc = e32ttl.receiveMessage (sizeof (Messaggione)); struct Messaggione messaggione = *(Messaggione *) rsc.data; Serial.println (messaggione.message); Serial.println (messaggione.mitico);

Хэсэгчилсэн бүтцийг уншина уу

Хэрэв та илүү олон төрлийн структурыг удирдахын тулд мессежийн эхний хэсгийг уншихыг хүсвэл энэ аргыг ашиглаж болно.

ResponseContainer хүлээн авахInitialMessage (const uint8_t size);

Би үүнийг ачаалах бүтэцийг тодорхойлохын тулд төрөл эсвэл бусад тэмдэгт мөрийг хүлээн авахын тулд үүсгэдэг.

бүтэц Messaggione {// Typechar зурвасгүй хэсэгчилсэн бүтэц [8]; bool mitico; }; char төрөл [5]; // ResponseContainer бүтцийн эхний хэсэг rs = e32ttl.receiveInitialMessage (sizeof (төрөл)); // мөрийг char массивт оруулах (шаардлагагүй) memcpy (төрөл, rs.data.c_str (), sizeof (төрөл)); Serial.println ("READ TYPE:"); Serial.println (rs.status.getResponseDescription ()); Serial.println (төрөл); // ResponseStructContainer бусад бүтцийг уншина уу rsc = e32ttl.receiveMessage (sizeof (Messaggione))); бүтэц Messaggione messaggione = *(Messaggione *) rsc.data;

Алхам 14: Ердийн горимын оронд тогтмол горим

Үүний нэгэн адил би тогтмол дамжуулалтаар ашиглах олон аргыг бий болгодог

Тогтмол дамжуулалт

Та зөвхөн илгээж буй аргыг өөрчлөх хэрэгтэй, учир нь очих төхөөрөмж нь тогтоосон горимоор Хаяг, сувгийн тохиргооны оршил хүлээн авдаггүй.

Тиймээс танд String мессеж байна

ResponseStatus sendFixedMessage (ADDL байт, ADDH байт, CHAN байт, const String зурвас); ResponseStatus sendBroadcastFixedMessage (байт CHAN, const String зурвас);

мөн танд байгаа бүтцийн хувьд

ResponseStatus sendFixedMessage (ADDL байт, ADDH байт, CHAN байт, const void *мессеж, const uint8_t хэмжээ); ResponseStatus sendBroadcastFixedMessage (байт CHAN, const void *мессеж, const uint8_t хэмжээ);

Энгийн жишээ энд байна

ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, & messaggione, sizeof (Messaggione))); // ResponseStatus rs = e32ttl.sendFixedMessage (0, 0, 0x17, "Ciao");

Тогтмол дамжуулалт нь илүү олон хувилбартай байдаг

Хэрэв та тодорхой төхөөрөмж рүү илгээсэн бол (Тогтмол дамжуулалтын хоёрдахь хувилбар) та үүнийг шууд тодорхойлохын тулд ADDL, ADDH, CHAN -ийг нэмэх ёстой.

ResponseStatus rs = e32ttl.sendFixedMessage (2, 2, 0x17, "Төхөөрөмжид мессеж бичих");

Хэрэв та заасан суваг дээрх бүх төхөөрөмж рүү мессеж илгээхийг хүсч байвал энэ аргыг ашиглаж болно.

ResponseStatus rs = e32ttl.sendBroadcastFixedMessage (0x17, "Сувгийн төхөөрөмжид мессеж бичих");

Хэрэв та сүлжээнд байгаа бүх мессежийг хүлээн авахыг хүсвэл ADDH болон ADDL -ээ BROADCAST_ADDRESS хаягаар тохируулах ёстой.

ResponseStructContainer c; c = e32ttl100.getConfiguration (); // Бусад бүх үйлдлээс өмнө тохиргооны заагч авах нь чухал юм Тохиргооны тохиргоо = *(Тохиргоо *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (статус код); printParameters (тохиргоо); тохиргоо. ADDL = BROADCAST_ADDRESS; тохиргоо. ADDH = BROADCAST_ADDRESS; // Тохиргоог өөрчилж, тохиргоог хийхгүй байхаар тохируулсан ResponseStatus rs = e32ttl100.setConfiguration (тохиргоо, WRITE_CFG_PWR_DWN_LOSE); Serial.println (rs.getResponseDescription ()); Serial.println (rs. код); printParameters (тохиргоо);

Алхам 15: Баярлалаа

Одоо танд ажлаа хийх бүх мэдээлэл байгаа боловч бүх боломжийг илүү сайн ойлгохын тулд бодит жишээг үзүүлэх нь чухал гэж би бодож байна.

  1. Arduino, esp32 эсвэл esp8266 -д зориулсан LoRa E32 төхөөрөмж: тохиргоо ба үндсэн хэрэглээ
  2. Arduino, esp32 эсвэл esp8266 -д зориулсан LoRa E32 төхөөрөмж: номын сан
  3. Arduino, esp32 эсвэл esp8266 -д зориулсан LoRa E32 төхөөрөмж: тохиргоо
  4. Arduino, esp32 эсвэл esp8266 -д зориулсан LoRa E32 төхөөрөмж: тогтмол дамжуулалт
  5. Arduino, esp32 эсвэл esp8266 -д зориулсан LoRa E32 төхөөрөмж: эрчим хүч хэмнэх, бүтэцлэгдсэн өгөгдлийг илгээх

Зөвлөмж болгож буй: