ዝርዝር ሁኔታ:
- አቅርቦቶች
- ደረጃ 1 ቤተ -መጽሐፍት
- ደረጃ 2: Pinout
- ደረጃ 3 AUX ፒን
- ደረጃ 4: ሙሉ በሙሉ የተገናኘ መርሃግብር Esp8266
- ደረጃ 5: ሙሉ በሙሉ የተገናኘ መርሃግብር አርዱዲኖ
- ደረጃ 6 ቤተ -መጽሐፍት -ገንቢ
- ደረጃ 7: ይጀምሩ
- ደረጃ 8 የውቅረት እና የመረጃ ዘዴ
- ደረጃ 9 - የምላሽ መያዣ
- ደረጃ 10 መሠረታዊ የማዋቀር አማራጭ
- ደረጃ 11: መልእክት ይቀበሉ ይላኩ
- ደረጃ 12 መደበኛ የማስተላለፊያ ሁናቴ
- ደረጃ 13 - መዋቅርን ያቀናብሩ
- ደረጃ 14 - ከመደበኛ ሞድ ይልቅ ቋሚ ሞድ
- ደረጃ 15: አመሰግናለሁ
ቪዲዮ: ዝቅተኛ ዋጋ E32 (sx1278/sx1276) መሣሪያ ለ Arduino ፣ Esp8266 ወይም Esp32: 15 ደረጃዎች ከሎራ 3 ኪ.ሜ እስከ 8 ኪ.ሜ ገመድ አልባ ግንኙነት
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:29
በጣም ኃይለኛ ፣ ቀላል እና ርካሽ መሣሪያን በሴሜቴክ ተከታታይ የኤልአርኤ መሣሪያ ላይ በመመርኮዝ EBYTE E32 ን ለማስተዳደር ቤተ -መጽሐፍት እፈጥራለሁ።
የ 3 ኪ.ሜ ሥሪት እዚህ ፣ 8 ኪ.ሜ ሥሪት እዚህ ማግኘት ይችላሉ
ከ 3000 ሜ እስከ 8000 ሜትር ርቀት ላይ መሥራት ይችላሉ ፣ እና እነሱ ብዙ ባህሪዎች እና መለኪያዎች አሏቸው። ስለዚህ አጠቃቀሙን ለማቃለል ይህንን ቤተ -መጽሐፍት እፈጥራለሁ።
ከሜትሮፖሊታን ዳሳሾች መረጃን ለማምጣት ወይም ድሮን ለመቆጣጠር መፍትሄ ነው።
አቅርቦቶች
አርዱዲኖ UNO
ወሞስ ዲ 1 ሚኒ
LoRa E32 TTL 100 3Km ስሪት
LoRa E32 TTL 1W 8 ኪ.ሜ ስሪት
ደረጃ 1 ቤተ -መጽሐፍት
የእኔን ቤተ -መጽሐፍት እዚህ ማግኘት ይችላሉ።
ለማውረድ.
በላይኛው ቀኝ ጥግ ላይ ያለውን የወረደውን ቁልፍ ጠቅ ያድርጉ ፣ ያልተጫነውን አቃፊ LoRa_E32 ን እንደገና ይሰይሙ።
LoRa_E32 አቃፊው LoRa_E32.cpp እና LoRa_E32.h የያዘ መሆኑን ያረጋግጡ።
የ LoRa_E32 ቤተ -መጽሐፍት አቃፊ / ቤተ -መጽሐፍት / አቃፊዎን ያስቀምጡ። የመጀመሪያ ቤተ -መጽሐፍትዎ ከሆነ የቤተ -መጻህፍት ንዑስ አቃፊን መፍጠር ሊያስፈልግዎት ይችላል።
IDE ን እንደገና ያስጀምሩ።
ደረጃ 2: Pinout
እንደሚመለከቱት በ M0 እና M1 ፒኖች በኩል የተለያዩ ሁነቶችን ማዘጋጀት ይችላሉ።
በስታቲስቲክ መንገድ ጥቅም ላይ ሊውሉ የሚችሉ አንዳንድ ፒኖች አሉ ፣ ግን ከማይክሮ መቆጣጠሪያ ጋር ካገናኙት እና በቤተመፃህፍት ውስጥ በአፈጻጸም ውስጥ የሚያገureቸው ከሆነ እና ሁሉንም ሁነታዎች በሶፍትዌር በኩል መቆጣጠር ይችላሉ ፣ ግን እኛ በሚቀጥለው በተሻለ ሁኔታ እናብራራለን።
ደረጃ 3 AUX ፒን
አስቀድሜ እንዳልኩት ሁሉንም ፒን ከማይክሮ መቆጣጠሪያ ተቆጣጣሪ ውፅዓት ጋር ማገናኘት አስፈላጊ አይደለም ፣ የተፈለገውን ውቅረት ለማግኘት M0 እና M1 ፒኖችን ወደ ከፍተኛ ወይም ዝቅ ማድረግ ይችላሉ ፣ እና AUX ን ካላገናኙት እርግጠኛ ለመሆን ቤተ መፃህፍቱ ምክንያታዊ መዘግየት ያዘጋጁ። ክዋኔው እንደተጠናቀቀ።
AUX ፒን
መረጃን ሲያስተላልፍ ውጫዊ MCU ን ለመቀስቀስ እና በውሂብ ማስተላለፍ አጨራረስ ላይ HIGH ን ለመመለስ ሊያገለግል ይችላል።
AUX LOW ሲቀበል እና ቋት ባዶ በሚሆንበት ጊዜ ወደ ከፍተኛ ይመለሱ።
እንዲሁም መደበኛውን ሥራ ወደነበረበት ለመመለስ (በኃይል ማብራት እና በእንቅልፍ/በፕሮግራም ሞድ) ላይ ለራስ ምርመራ ጥቅም ላይ ይውላል።
ደረጃ 4: ሙሉ በሙሉ የተገናኘ መርሃግብር Esp8266
esp8266 የግንኙነት መርሃግብር የበለጠ ቀላል ነው ምክንያቱም እሱ በተመሳሳይ የሎጂካዊ ግንኙነቶች (3.3v) ላይ ይሠራል።
ጥሩ መረጋጋት ለማግኘት የሚጎትት ተከላካይ (4 ፣ 7Kohm) ማከል አስፈላጊ ነው።
ደረጃ 5: ሙሉ በሙሉ የተገናኘ መርሃግብር አርዱዲኖ
የአርዱዲኖ የሥራ voltage ልቴጅ 5v ነው ፣ ስለሆነም ጉዳትን ለመከላከል በ RX pin M0 እና M1 በሎራ ሞዱል ላይ የቮልቴጅ መከፋፈያ ማከል አለብን ፣ እዚህ ተጨማሪ መረጃ ማግኘት ይችላሉ የቮልቴጅ መከፋፈያ -ካልኩሌተር እና ትግበራ።
በ RX ላይ ከመገጣጠም የ 2Kohm resistor ን ወደ GND እና 1Kohm ከምልክት መጠቀም ይችላሉ።
ደረጃ 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);
የመጀመሪያው የግንበኛ ስብስብ የ Serial እና ሌሎች ፒኖችን አስተዳደር ወደ ቤተ -መጽሐፍት ለማስተላለፍ የተፈጠሩ ናቸው።
rxPin እና txPin ከ UART ጋር ለመገናኘት ፒን ነው እና እነሱ አስገዳጅ ናቸው።
auxPin የቀዶ ጥገናውን ፣ የማስተላለፉን እና የመቀበሉን ሁኔታ የሚፈትሽ ፒን ነው (ቀጥሎ በተሻለ ሁኔታ እናብራራለን) ፣ ያ ፒን አስገዳጅ አይደለም ፣ ካላዘጋጁት ቀዶ ጥገናውን እንዲያጠናቅቅ መዘግየትን እተገብራለሁ (ከመዘግየት ጋር)።
m0pin እና m1Pin ኦፕሬሽኑን ሞድ ለመለወጥ ካስማዎች ናቸው (የሰንጠረ upperን የላይኛው ክፍል ይመልከቱ) ፣ ይህ በ “ምርት” ውስጥ ያሉት ፒኖች በቀጥታ ከፍ ወይም ዝቅ ብለው የሚገናኙ ይመስለኛል ፣ ግን ለሙከራ በቤተመጽሐፍት ለማስተዳደር ጠቃሚ ናቸው።
bpsRate የሶፍትዌር ሰርቪስ ወሰን በመደበኛነት 9600 ነው (በፕሮግራም/በእንቅልፍ ሁኔታ ውስጥ ብቸኛው የባውድ ተመን)
አንድ ቀላል ምሳሌ ነው
#"LoRa_E32.h" LoRa_E32 e32ttl100 (2, 3) ያካትቱ ፤ // RX ፣ TX // LoRa_E32 e32ttl100 (2 ፣ 3 ፣ 5 ፣ 6 ፣ 7); // RX ፣ TX
ከሌላ ገንቢ ጋር በቀጥታ የሶፍትዌርSerial ን መጠቀም እንችላለን
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);
የመጨረሻው የግንበኛ ስብስብ ከሶፍትዌር ሽፋን ይልቅ የሃርድዌር መሣሪያን ለመጠቀም ፈቃድ መስጠት ነው።
LoRa_E32 (የሶፍትዌር ተከታታይ* ተከታታይ ፣ UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (የሶፍትዌር ተከታታይ* ተከታታይ ፣ ባይት auxPin ፣ UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
LoRa_E32 (SoftwareSerial* ተከታታይ ፣ ባይት auxPin ፣ ባይት m0Pin ፣ ባይት m1Pin ፣ UART_BPS_RATE bpsRate = UART_BPS_RATE_9600);
ደረጃ 7: ይጀምሩ
የመነሻ ትዕዛዙ ተከታታይ እና ፒኖችን በግብዓት እና በውጤት ሁኔታ ለማስጀመር ያገለግላል።
ባዶነት መጀመሪያ ();
በማስፈጸም ላይ ነው
// ሁሉንም ፒን እና UART ን ያስጀምሩ
e32ttl100.begin ();
ደረጃ 8 የውቅረት እና የመረጃ ዘዴ
ውቅረትን ለማስተዳደር እና የመሣሪያውን መረጃ ለማግኘት የሚረዱ ዘዴዎች አሉ።
ResponseStructContainer getConfiguration ();
የምላሽ ሁኔታ setConfiguration (የውቅረት ውቅር ፣ PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE) ፤
ResponseStructContainer getModuleInformation ();
ባዶ ህትመት መለኪያዎች (የመዋቅር ውቅር ውቅር);
የምላሽ ሁኔታ ዳግም ማስጀመሪያ ሞዱል ();
ደረጃ 9 - የምላሽ መያዣ
የምላሹን ማቀናበር ለማቃለል የመያዣ ስብስብ እፈጥራለሁ ፣ ለእኔ በጣም ጠቃሚ ስህተቶችን ለማስተዳደር እና አጠቃላይ መረጃን ለመመለስ።
ምላሽ ሁኔታ
ይህ የሁኔታ መያዣ ነው እና 2 ቀላል የመግቢያ ነጥብ አለው ፣ በዚህ ሁኔታ የሁኔታ ኮድ እና የሁኔታ ኮድ መግለጫን ማግኘት ይችላሉ
Serial.println (c.getResponseDescription ()); // የኮድ መግለጫ
Serial.println (ሐ. ኮድ); // 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
የምላሽ መያዣ
ይህ መያዣ የተፈጠረው የስትሪንግ ምላሽን ለማስተዳደር እና 2 የመግቢያ ነጥብ እንዲኖረው ነው።
ከመልዕክቱ የተመለሰ ሕብረቁምፊ ያለው ውሂብ እና ሁኔታ የ RepsonseStatus ምሳሌ።
ResponseContainer rs = e32ttl.receiveMessage ();
ሕብረቁምፊ መልእክት = rs.data;
Serial.println (rs.status.getResponseDescription ());
Serial.println (መልዕክት);
ResponseStructContainer
ይህ የበለጠ “የተወሳሰበ” መያዣ ነው ፣ እኔ ይህንን መዋቅርን ለማስተዳደር እጠቀማለሁ ፣ ተመሳሳይ የ ResponseContainer የመግቢያ ነጥብ አለው ፣ ግን ውሂቡ ውስብስብ አወቃቀሩን ለማስተዳደር ባዶ ጠቋሚ ነው።
ResponseStructContainer ሐ;
c = e32ttl100.getConfiguration (); // ከሁሉም ሌሎች ቀዶ ጥገናዎች በፊት የማዋቀሪያ ጠቋሚ ማግኘት አስፈላጊ ነው
የውቅረት ውቅር = *(ውቅር *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
getConfiguration እና setConfiguration
የመጀመሪያው ዘዴ ውቅር ነው ፣ በመሣሪያው ላይ የተከማቸውን ሁሉንም ውሂብ ለማደስ ሊጠቀሙበት ይችላሉ።
ResponseStructContainer getConfiguration ();
የአጠቃቀም ምሳሌ እዚህ አለ።
ResponseStructContainer ሐ;
c = e32ttl100.getConfiguration (); // ከሁሉም ሌሎች ቀዶ ጥገናዎች በፊት የማዋቀሪያ ጠቋሚ ማግኘት አስፈላጊ ነው
የውቅረት ውቅር = *(ውቅር *) c.data;
Serial.println (c.status.getResponseDescription ());
Serial.println (c.status.code);
Serial.println (ውቅር. SPED.getUARTBaudRate ());
የውቅረት አወቃቀር ሁሉም የቅንጅቶች ውሂብ አለው ፣ እና ሁሉንም የነጠላ ውሂብ መግለጫ ለማግኘት ተከታታይ ተግባርን እጨምራለሁ።
config. 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; // dBm የማስተላለፊያ ኃይል ውቅር ።OPTION.wirelessWakeupTime = WAKE_UP_1250; // የንቃት ውቅረት ጊዜ ይጠብቁ። SPED.airDataRate = AIR_DATA_RATE_011_48; // የአየር የውሂብ ተመን ውቅር. SPED.uartBaudRate = UART_BPS_115200; // የግንኙነት baud ተመን ውቅር ።SED.uartParity = MODE_00_8N1; // የእኩልነት ቢት
ሁሉንም መግለጫ ለማግኘት ለሁሉም ባህሪዎች ተመሳሳይ ተግባር አለዎት-
Serial.print (ኤፍ ("ቻን")); Serial.print (config. CHAN, DEC); Serial.print (" ->"); Serial.println (config.getChannelDescription ()); Serial.println (F ("")); Serial.print (ኤፍ ("SpeedParityBit:")); Serial.print (config. SpED.uartParity ፣ BIN) ፤ Serial.print (" ->") ፤ Serial.println (config. SPED.getUARTParityDescription ()); Serial.print (ኤፍ ("SpeedUARTDatte:")); Serial.print (config. SpED.uartBaudRate ፣ BIN) ፤ Serial.print (" ->") ፤ Serial.println (ውቅር. SPED.getUARTBaudRate ()); Serial.print (ኤፍ ("SpeedAirDataRate:")); Serial.print (config. SpED.airDataRate ፣ BIN) ፤ Serial.print (" ->") ፤ Serial.println (config. SPED.getAirDataRate ()); Serial.print (F ("OptionTrans:")); Serial.print (config. OPTION.fixedTransmission, BIN); Serial.print (" ->"); Serial.println (config. OPTION.getFixedTransmissionDescription ()); Serial.print (F ("OptionPullup:")); Serial.print (config. OPTION.ioDriveMode ፣ BIN) ፤ Serial.print (" ->") ፤ Serial.println (config. OPTION.getIODroveModeDescription ()); Serial.print (ኤፍ ("አማራጭ ዋክ:")); Serial.print (config. OPTION.wirelessWakeupTime, BIN); Serial.print (" ->"); Serial.println (config. OPTION.getWirelessWakeUPTimeDescription ()); Serial.print (F ("OptionFEC:")); Serial.print (config. OPTION.fec, BIN); Serial.print (" ->"); Serial.println (ውቅረት. OPTION.getFEC መግለጫ ()); Serial.print (F ("OptionPower:")); Serial.print (config. OPTION.transmissionPower, BIN); Serial.print (" ->"); Serial.println (config. OPTION.getTransmissionPowerDescription ());
በተመሳሳይ መንገድ setConfiguration ውቅረት strucutre ይፈልጋል ፣ ስለሆነም ውቅረትን ለማስተዳደር የተሻለው መንገድ የአሁኑን ሰርስሮ ማውጣት ፣ የሚያስፈልግዎትን ብቸኛ ለውጥ መተግበር እና እንደገና ማቀናበሩ ይመስለኛል።
የምላሽ ሁኔታ setConfiguration (የውቅረት ውቅር ፣ PROGRAM_COMMAND saveType = WRITE_CFG_PWR_DWN_LOSE) ፤
ውቅሩ ለውጡ ለአሁኑ ክፍለ -ጊዜ ብቻ በቋሚነት የሚከሰት ከሆነ የቾክቲቭ ቅድመ -ትዕይንት ትርኢት ነው።
ResponseStructContainer c; c = e32ttl100.getConfiguration (); // ከሁሉም ሌሎች ክዋኔዎች በፊት የውቅረት ጠቋሚ ማግኘት አስፈላጊ ነው የውቅረት ውቅር = *(ውቅር *) c.data; Serial.println (c.status.getResponseDescription ()); Serial.println (c.status.code); የህትመት መለኪያዎች (ውቅር); config. ADDL = 0x0; config. ADDH = 0x1; config. CHAN = 0x19; config. OPTION.fec = FEC_0_OFF; config. OPTION.fixedTransmission = FT_TRANSPARENT_TRANSMISSION; config. OPTION.ioDriveMode = IO_D_MODE_PUSH_PULLS_PULL_UPS; config. OPTION.transmissionPower = POWER_17; config. 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.code); የህትመት መለኪያዎች (ውቅር);
መለኪያው ሁሉም እንደ ቋሚ የሚተዳደር ነው-
ደረጃ 10 መሠረታዊ የማዋቀር አማራጭ
ደረጃ 11: መልእክት ይቀበሉ ይላኩ
በመጀመሪያ አንድ ነገር በተቀባዩ ቋት ውስጥ መኖሩን ለመፈተሽ ቀለል ያለ ግን ጠቃሚ ዘዴን ማስተዋወቅ አለብን
int ይገኛል ();
አሁን ባለው ዥረት ውስጥ ምን ያህል ባይት እንዳለዎት በቀላሉ ይመለሳል።
ደረጃ 12 መደበኛ የማስተላለፊያ ሁናቴ
መደበኛ/ግልፅ የማስተላለፊያ ሁናቴ ተመሳሳይ አድራሻ እና ሰርጥ ላለው መሣሪያ ሁሉ መልዕክቶችን ለመላክ ያገለግላል።
መልእክት ለመላክ/ለመቀበል ብዙ ዘዴዎች አሉ ፣ እኛ በዝርዝር እናብራራለን-
የምላሽ ሁኔታ (Stringus sendMessage) (const String message);
የምላሽ መያዣ መያዣ መልእክት ();
የመጀመሪያው ዘዴ SendMessage ነው እና በመደበኛ ሁናቴ ውስጥ ሕብረቁምፊን ወደ መሣሪያ ለመላክ ያገለግላል።
ResponseStatus rs = e32ttl.sendMessage ("Prova"); Serial.println (rs.getResponseDescription ());
ሌላኛው መሣሪያ በቀላሉ በሉፕ ላይ ያድርጉት
ከሆነ (e32ttl.available ()> 1) {ResponseContainer rs = e32ttl.receiveMessage (); ሕብረቁምፊ መልእክት = rs.data; // በመጀመሪያ ውሂቡን Serial.println (rs.status.getResponseDescription ()) ያግኙ ፤ Serial.println (መልዕክት); }
ደረጃ 13 - መዋቅርን ያቀናብሩ
እርስዎ ውስብስብ strucuture መላክ ከፈለጉ ይህንን ዘዴ መጠቀም ይችላሉ
ResponseStatus sendMessage (const ባዶነት *መልእክት ፣ const uint8_t መጠን) ፤ ResponseStructContainer receiveMessage (const uint8_t size);
Strucutre ን ለመላክ ያገለግላል ፣ ለምሳሌ ፦
መዋቅራዊ Messaggione {የቻር ዓይነት [5]; የቻር መልእክት [8]; bool mitico; }; struct Messaggione messaggione = {"TEMP", "Peple", true}; ResponseStatus rs = e32ttl.sendMessage (& messaggione, sizeof (Messaggione)); Serial.println (rs.getResponseDescription ());
እና በሌላ በኩል መልዕክቱን መቀበል ይችላሉ
ResponseStructContainer rsc = e32ttl.receiveMessage (sizeof (Messaggione)); structag Messaggione messaggione = *(Messaggione *) rsc.data; Serial.println (messaggione.message); Serial.println (messaggione.mitico);
ከፊል ጭረት ያንብቡ
ተጨማሪ የ strucutre አይነት ለማስተዳደር የመልእክቱን የመጀመሪያ ክፍል ማንበብ ከፈለጉ ይህንን ዘዴ መጠቀም ይችላሉ።
የምላሽ ኮንቴይነር የመጀመሪያ መልእክት (const uint8_t መጠን) ይቀበላል ፤
የሚጫነውን ስቱክለር ለመለየት በአይነት ወይም በሌላ ሕብረቁምፊ ለመቀበል እፈጥራለሁ።
struct Messaggione {// ከፊደል አጻጻፍ ያለ የጽሕፈት መልእክት [8]; bool mitico; }; የቻር ዓይነት [5]; // የመዋቅር የመጀመሪያ ክፍል ResponseContainer rs = e32ttl.receiveInitialMessage (sizeof (type)); // ሕብረቁምፊን በቻር ድርድር (አያስፈልግም) memcpy (ዓይነት ፣ rs.data.c_str () ፣ መጠን (ዓይነት)); Serial.println ("TYPE ያንብቡ:"); Serial.println (rs.status.getResponseDescription ()); Serial.println (ዓይነት); // የቀረውን መዋቅር ያንብቡ ResponseStructContainer rsc = e32ttl.receiveMessage (sizeof (Messaggione)); struct Messaggione messaggione = *(Messaggione *) rsc.data;
ደረጃ 14 - ከመደበኛ ሞድ ይልቅ ቋሚ ሞድ
በተመሳሳይ ሁኔታ በቋሚ ማስተላለፊያ ለመጠቀም የአሠራር ዘዴን እፈጥራለሁ
ቋሚ ማስተላለፍ
የመላኪያ ዘዴውን ብቻ መለወጥ ያስፈልግዎታል ፣ ምክንያቱም የመድረሻ መሳሪያው በአድራሻ እና በሰርጥ quando settato il ቋሚ ሁነታ መግቢያውን ስለማይቀበል።
ስለዚህ ለ ሕብረቁምፊ መልእክት አለዎት
ResponseStatus sendFixedMessage (ባይት ADDL ፣ byte ADDH ፣ byte CHAN ፣ const String message) ፤ ResponseStatus sendBroadcastFixedMessage (ባይት CHAN ፣ const String መልዕክት);
እና ለመዋቅር አለዎት
ResponseStatus sendFixedMessage (ባይት ADDL ፣ ባይት ADDH ፣ ባይት CHAN ፣ const ባዶ *መልእክት ፣ const uint8_t መጠን) ፤ ResponseStatus sendBroadcastFixedMessage (ባይት CHAN ፣ const ባዶነት *መልእክት ፣ 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 (c.status.code); የህትመት መለኪያዎች (ውቅር); config. ADDL = BROADCAST_ADDRESS; config. ADDH = BROADCAST_ADDRESS; // የቅንብር ውቅር ተቀይሯል እና ውቅሩን እንዳይይዝ ተዘጋጅቷል ResponseStatus rs = e32ttl100.setConfiguration (ውቅረት ፣ WRITE_CFG_PWR_DWN_LOSE) ፤ Serial.println (rs.getResponseDescription ()); Serial.println (rs.code); የህትመት መለኪያዎች (ውቅር);
ደረጃ 15: አመሰግናለሁ
አሁን ሥራዎን ለማከናወን ሁሉም መረጃ አለዎት ፣ ግን ሁሉንም እድሎች በተሻለ ሁኔታ ለመረዳት አንዳንድ ተጨባጭ ምሳሌዎችን ማሳየት አስፈላጊ ይመስለኛል።
- LoRa E32 መሣሪያ ለ Arduino ፣ esp32 ወይም esp8266: ቅንብሮች እና መሠረታዊ አጠቃቀም
- ለ Arduino ፣ esp32 ወይም esp8266: ቤተ -መጽሐፍት LoRa E32 መሣሪያ
- ለ Arduino ፣ esp32 ወይም esp8266: LoRa E32 መሣሪያ: ውቅር
- ለ Arduino ፣ esp32 ወይም esp8266: LoRa E32 መሣሪያ - ቋሚ ማስተላለፍ
- LoRa E32 መሣሪያ ለ Arduino ፣ esp32 ወይም esp8266: ኃይል ቆጣቢ እና የተዋቀረ ውሂብ መላክ
የሚመከር:
የ SmartHome ገመድ አልባ ግንኙነት -የ MQTT እጅግ በጣም መሠረታዊ መሠረቶች 3 ደረጃዎች
የ SmartHome ገመድ አልባ ግንኙነት -የ MQTT እጅግ በጣም መሠረታዊ መሠረቶች: MQTT መሠረታዊ ነገሮች ** የቤት የቤት አውቶሜሽን ተከታታይ እሠራለሁ ፣ ወደፊት ያደረግሁትን ሁሉ ለማወቅ የወሰድኳቸውን እርምጃዎች እሄዳለሁ። ይህ Instructable በወደፊት አስተማሪዎቼ ውስጥ ለአጠቃቀም MQTT ን እንዴት ማዋቀር እንደሚቻል ላይ መነሻ ነው። ሆዌቭ
HC12 ገመድ አልባ ሞዱልን በመጠቀም ገመድ አልባ አርዱዲኖ ሮቦት 7 ደረጃዎች
ኤች.ሲ.ኤል 12 ገመድ አልባ ሞዱልን በመጠቀም ገመድ አልባ አርዱዲኖ ሮቦት - ሄይ ሰዎች ፣ እንኳን ደህና መጡ። በቀደመው ልጥፌዬ ፣ የ H ድልድይ ወረዳ ፣ L293D የሞተር ሾፌር አይሲ ፣ አሳማሚ L293D የሞተር ሾፌር አይሲ ከፍተኛ የአሁኑን የሞተር ነጂዎችን ለማሽከርከር እና የእራስዎን የ L293D ሞተር አሽከርካሪ ቦርድ እንዴት ዲዛይን ማድረግ እና መሥራት እንደሚችሉ አብራራሁ
ርካሽ 433 ሜኸ አር አር ሞጁሎችን እና ፒክ ማይክሮ መቆጣጠሪያዎችን በመጠቀም ገመድ አልባ ግንኙነት። ክፍል 2: 4 ደረጃዎች (ከስዕሎች ጋር)
ርካሽ 433 ሜኸ አር አር ሞጁሎችን እና ፒክ ማይክሮ መቆጣጠሪያዎችን በመጠቀም ገመድ አልባ ግንኙነት። ክፍል 2: በዚህ አስተማሪ የመጀመሪያ ክፍል ፣ MPLAB IDE ን እና XC8 ኮምፕሌተርን በመጠቀም PIC12F1822 ን በፕሮግራም እንዴት እንደሚያስተዋውቅ ፣ ርካሽ TX/RX 433MHz ሞጁሎችን በመጠቀም ገመድ አልባ ገመድ አልባ ለመላክ። ተቀባዩ ሞጁል በዩኤስቢ በኩል ወደ UART TTL ተገናኝቷል የኬብል ማስታወቂያ
ሃምሳ ሜትሮች ክልል ገመድ አልባ የመዳረሻ ነጥብ በ TP አገናኝ WN7200ND USB ገመድ አልባ አስማሚ በ Raspbian Stretch ላይ: 6 ደረጃዎች
ሃምሳ ሜትሮች ክልል ሽቦ አልባ የመዳረሻ ነጥብ በ TP አገናኝ WN7200ND ዩኤስቢ ገመድ አልባ አስማሚ በ Raspbian Stretch ላይ: Raspberry Pi ደህንነቱ የተጠበቀ ሽቦ አልባ የመዳረሻ ነጥቦችን ለመፍጠር ጥሩ ነው ግን ጥሩ ክልል የለውም ፣ እሱን ለማራዘም የ TP አገናኝ WN7200ND USB ገመድ አልባ አስማሚን እጠቀም ነበር። እኔ እንዴት ማድረግ እንዳለብኝ ማጋራት እፈልጋለሁ ለምን ከ ራውተር ይልቅ ራስተርቤሪ ፒን መጠቀም እፈልጋለሁ? ቲ
በስማርትፎን ወይም በድምጽ ውፅዓት ማንኛውንም መሣሪያ በመጠቀም እስከ 4 Servo ን ይቆጣጠሩ - 3 ደረጃዎች
በስማርትፎን ወይም በድምጽ ውፅዓት ማንኛውንም መሣሪያ በመጠቀም እስከ 4 Servo ን ይቆጣጠሩ - እዚህ የኦዲዮ ፋይልን ለማንበብ በሚችል በማንኛውም መሣሪያ እስከ አራት ሰርቮዎችን ለመቆጣጠር ቀላል የኤሌክትሮኒክ ሞንታጅ አቀርባለሁ