

هنا مثال على المنشئ ، يجب أن تمرر واجهة UART و (إذا كنت تريد ، ولكن يتم توصيفها) AUX PIN و M0 و M1.
لتثبيت المكتبة قم بتنفيذ الأمر التالي:
pip install ebyte-lora-e22 from lora_e22 import LoRaE22
from machine import UART
uart2 = UART ( 2 )
lora = LoRaE22 ( '400T22D' , uart2 , aux_pin = 15 , m0_pin = 21 , m1_pin = 19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e22 import LoRaE22 , print_configuration
from lora_e22_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )النتيجة
# ----------------------------------------
# HEAD : 0xc1 0x0 0x9
#
# AddH : 0x0
# AddL : 0x0
#
# Chan : 23 -> 433
#
# SpeedParityBit : 0b0 -> 8N1 (Default)
# SpeedUARTDatte : 0b11 -> 9600bps (default)
# SpeedAirDataRate : 0b10 -> 2.4kbps (default)
#
# OptionSubPacketSett: 0b0 -> 240bytes (default)
# OptionTranPower : 0b0 -> 22dBm (Default)
# OptionRSSIAmbientNo: 0b0 -> Disabled (default)
#
# TransModeWORPeriod : 0b11 -> 2000ms (default)
# TransModeTransContr: 0b0 -> WOR Receiver (default)
# TransModeEnableLBT : 0b0 -> Disabled (default)
# TransModeEnableRSSI: 0b0 -> Disabled (default)
# TransModeEnabRepeat: 0b0 -> Disabled (default)
# TransModeFixedTrans: 0b0 -> Transparent transmission (default)
# ----------------------------------------
يمكنك تعيين المعلمة Desidered فقط ، وسيتم تعيين الآخر على القيمة الافتراضية.
configuration_to_set = Configuration ( '400T22D' )
configuration_to_set . ADDL = 0x02
configuration_to_set . ADDH = 0x01
configuration_to_set . CHAN = 23
configuration_to_set . NETID = 0
configuration_to_set . SPED . airDataRate = AirDataRate . AIR_DATA_RATE_100_96
configuration_to_set . SPED . uartParity = UARTParity . MODE_00_8N1
configuration_to_set . SPED . uartBaudRate = UARTBaudRate . BPS_9600
configuration_to_set . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . OPTION . transmissionPower = TransmissionPower ( '400T22D' ).
get_transmission_power (). POWER_10
# or
# configuration_to_set.OPTION.transmissionPower = TransmissionPower22.POWER_10
configuration_to_set . OPTION . RSSIAmbientNoise = RssiAmbientNoiseEnable . RSSI_AMBIENT_NOISE_ENABLED
configuration_to_set . TRANSMISSION_MODE . WORTransceiverControl = WorTransceiverControl . WOR_TRANSMITTER
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
configuration_to_set . TRANSMISSION_MODE . enableRepeater = RepeaterModeEnableByte . REPEATER_DISABLED
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . CRYPT . CRYPT_H = 1
configuration_to_set . CRYPT . CRYPT_L = 1
# Set the new configuration on the LoRa module and print the updated configuration to the console
code , confSetted = lora . set_configuration ( configuration_to_set )أقوم بإنشاء فئة ثوابت لكل معلمة ، هنا قائمة: AirDatarate ، uartbaudrate ، uartparity ، transmissionpower ، forwarderrorcorrectionswitch ، wirelesswakeuptime ، iodrivemode ، flextransmission
هنا مثال على إرسال البيانات ، يمكنك تمرير سلسلة
lora . send_transparent_message ( 'pippo' ) lora . send_fixed_message ( 0 , 2 , 23 , 'pippo' )هنا رمز المتلقي
while True :
if lora . available () > 0 :
code , value = lora . receive_message ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
utime . sleep_ms ( 2000 )إذا كنت تريد الحصول على RSSI أيضًا ، فيجب عليك تمكينه في التكوين
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDوتعيين العلم على صواب في طريقة recept_message
code , value , rssi = lora . receive_message ( True )نتيجة
Success!
pippo
هنا مثال على إرسال البيانات ، يمكنك تمرير قاموس
lora . send_transparent_dict ({ 'pippo' : 'fixed' , 'pippo2' : 'fixed2' }) lora . send_fixed_dict ( 0 , 0x01 , 23 , { 'pippo' : 'fixed' , 'pippo2' : 'fixed2' })هنا رمز المتلقي
while True :
if lora . available () > 0 :
code , value = lora . receive_dict ()
print ( ResponseStatusCode . get_description ( code ))
print ( value )
print ( value [ 'pippo' ])
utime . sleep_ms ( 2000 )إذا كنت تريد الحصول على RSSI أيضًا ، فيجب عليك تمكينه في التكوين
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLEDوتعيين العلامة على صواب في طريقة recept_dict
code , value , rssi = lora . receive_dict ( True )نتيجة
Success!
{'pippo': 'fixed', 'pippo2': 'fixed2'}
fixed
https://downloads.arduino.cc/libraries/logs/github.com/xreef/ebyte_lora_e22_series_library/
يمكنك طلب ثنائي الفينيل متعدد الكلور هنا
تعليمات وتجميع الفيديو على 6 جزء من الدليل
يمكنك طلب ثنائي الفينيل متعدد الكلور هنا
تعليمات وتجميع الفيديو على 6 جزء من الدليل
أقوم بإنشاء مكتبة لإدارة سلسلة E22 من جهاز Lora ، وجهاز قوي للغاية ، وأجهزة بسيطة ورخيصة.
Lora أو Long Range Data Data Healemetry هي تقنية رائدة من قبل Semtech تعمل بتردد أقل من NRF24L01 (433 MHz ، 868 MHz أو 916 MHz مرة أخرى 2.4 جيجا هرتز ل NRF24L01) ولكن في ترميش المسافة (من 4000 م).
لورا E22
يمكنك العثور هنا على Aliexpress (433 ميجا هرتز 4 كيلومتر) - Aliexpress (433 ميجا هرتز 10 كيلومتر)
يرجى الرجوع إلى مقالتي للحصول على مخطط محدث
يمكنك العثور على مكتبتي هنا.
للتنزيل.
انقر فوق زر التنزيلات في الزاوية اليمنى العليا ، أعد تسمية المجلد غير المضغوط LORA_E22.
تأكد من أن المجلد LORA_E22 يحتوي على LORA_E22.CPP و LORA_E22.H.
ضع مجلد مكتبة LORA_E22 الخاص بك / المكتبات / المجلد.
قد تحتاج إلى إنشاء المجلد الفرعي للمكتبات إذا كانت مكتبتك الأولى.
أعد تشغيل IDE.
E22
| رقم الدبوس | عنصر دبوس | اتجاه الدبوس | تطبيق PIN |
|---|---|---|---|
| 1 | M0 | المدخلات (السحب الضعيف) | العمل مع M1 وتحديد أوضاع التشغيل الأربعة. لا يُسمح بالترتيب ، يمكن أن يكون أرضيًا. |
| 2 | M1 | المدخلات (السحب الضعيف) | العمل مع M0 وتحديد أوضاع التشغيل الأربعة. لا يُسمح بالتراجع ، يمكن أن يكون أرضيًا. |
| 3 | RXD | مدخل | مدخلات TTL UART ، تتصل بـ TXD OutputPin الخارجي (MCU ، PC). يمكن تكوينها على أنها إدخال مفتوح أو سحب. |
| 4 | TXD | الإخراج | مخرجات TTL UART ، يتصل بـ RXD الخارجي (MCU ، PC) InputPin. يمكن تكوينها على أنها إخراج مفتوح أو إخراج دفع |
5 | aux | الإخراج | لكل مؤشر LO Stato di funzionamento del modulo e riattivare l'ccu esterno. Durante la ourceura di inizializzazione di autoControllo ، il pin emette una bassa tenese. può essere configurato تأتي uscita open-drain o push-pull (è consentito non metterlo a terra ، ma se hai ، esempio ti si freeze il dispositivo è preferibile metter una restenza di pull-up da 4.7ko meglio collectivo dispositivo). |
| 6 | VCC | مزود الطاقة 2.3V ~ 5.5V DC | |
| 7 | GND | أرضي |
كما ترون ، يمكنك تعيين أوضاع مختلفة عبر دبابيس M0 و M1.
| وضع | M1 | M0 | توضيح |
|---|---|---|---|
| طبيعي | 0 | 0 | قناة UART والقناة اللاسلكية مفتوحة ، يتم تشغيل الإرسال الشفاف (يدعم التكوين عبر الهواء عبر أمر خاص) |
| وضع wor | 0 | 1 | يمكن تعريفه على أنه جهاز إرسال وور |
| وضع التكوين | 1 | 0 | يمكن للمستخدمين الوصول إلى السجل من خلال المنفذ التسلسلي للتحكم في حالة عمل الوحدة النمطية |
| وضع السكون العميق | 1 | 1 | وضع السكون |
كما ترون أن هناك بعض المسامير التي يمكن استخدامها بطريقة ثابتة ، ولكن إذا قمت بتوصيلها بالمكتبة التي تكسبها في الأداء ويمكنك التحكم في جميع الوضع عبر البرنامج ، لكننا سنشرح أفضل بعد ذلك.
كما أقول بالفعل أنه ليس من المهم توصيل كل دبوس بإخراج متحكم ، يمكنك وضع دبابيس M0 و M1 على ارتفاع أو منخفض للحصول على تكوين مستحيل ، وإذا لم تقم بتوصيل Aux ، حددت المكتبة تأخيرًا معقولًا للتأكد من اكتمال العملية .
عند نقل البيانات يمكن استخدامها لإيقاظ MCU الخارجي والعودة إلى الانتهاء من نقل البيانات.
Lora E22 AUX PIN عند الإرسال
عند استلام AUX منخفضة وعودة عالية عندما يكون المخزن المؤقت فارغًا.
Lora E22 AUX PIN عند الاستقبال
يتم استخدامه أيضًا للتحقق الذاتي لاستعادة التشغيل العادي (على وضع الطاقة والوضع/البرنامج).
Lora E22 AUX PIN على الفحص الذاتي
مخطط اتصال ESP8266 أكثر بساطة لأنه يعمل في نفس الجهد للاتصالات المنطقية (3.3V).
Lora E22 TTL 100 Wemos D1 متصل بالكامل
من المهم إضافة المقاوم السحب (4،7kohm) للحصول على استقرار جيد.
| E22 | ESP8266 |
|---|---|
| M0 | D7 |
| M1 | D6 |
| تكساس | دبوس D2 (سحب 4،7KΩ) |
| RX | دبوس D3 (سحب 4،7KΩ) |
| aux | PIN D5 (Pullup 4،7kΩ) |
| VCC | 5V (ولكن العمل مع قوة أقل في 3.3 فولت) |
| GND | GND |
مخطط اتصال مماثل لـ ESP32 ، ولكن بالنسبة لـ RX و TX ، نستخدم RX2 و TX2 ، لأنه بشكل افتراضي لا يحتوي ESP32 على برامج ولكن لدينا 3 مسلسل.
Ebyte Lora E22 Device ESP32 DEV KIT V1 CONTRACTION CONNECTION
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| تكساس | PIN RX2 (Pullup 4،7kΩ) |
| RX | PIN TX3 (Pullup 4،7kΩ) |
| aux | PIN D18 (Pullup 4،7kΩ) |
| VCC | 5V (ولكن العمل مع قوة أقل في 3.3 فولت) |
| GND | GND |
| addh | بايت العنوان العالي للوحدة (الافتراضي 00H) | 00H-FFH |
| addl | بايت العنوان المنخفض للوحدة (الافتراضي 00H) | 00H-FFH |
| تسري | معلومات حول معدل التكافؤ في معدل البيانات ومعدل بيانات الهواء | |
| تشان | قناة الاتصال (410m + Chan*1M) ، الافتراضي 17H (433 ميجا هرتز) ، صالح فقط لجهاز 433 ميجا هرتز Chek أدناه للتحقق من التردد الصحيح لجهازك | 00H-1FH |
| خيار | نوع ناقل الحركة ، وحجم الحزمة ، واترك رسالة خاصة | |
| transmission_mode | الكثير من المعلمة التي تحدد طريقة الإرسال |
خيار
نوع الإرسال ، وإعدادات السحب ، ووقت الاستيقاظ ، و FEC ، طاقة الإرسال
بت التكافؤ في UART: يمكن أن يكون وضع UART مختلفًا بين أطراف الاتصالات
| 4 | 3 | بت التكافؤ uart | قيمة ثابتة |
| 0 | 0 | 8N1 (افتراضي) | mode_00_8n1 |
| 0 | 1 | 8o1 | mode_01_8o1 |
| 1 | 0 | 8 E1 | mode_10_8e1 |
| 1 | 1 | 8n1 (يساوي 00) | mode_11_8n1 |
معدل باود UART: يمكن أن يكون معدل بذاعة UART مختلفًا بين أطراف الاتصالات ، ولا علاقة لمعايير الإرسال اللاسلكي ولن تؤثر على ميزات الإرسال / الاستقبال اللاسلكي.
| 7 | 6 | 5 | TTL Uart Baud Rate (BPS) | قيمة ثابتة |
| 0 | 0 | 0 | 1200 | UART_BPS_1200 |
| 0 | 0 | 1 | 2400 | UART_BPS_2400 |
| 0 | 1 | 0 | 4800 | UART_BPS_4800 |
| 0 | 1 | 1 | 9600 (افتراضي) | UART_BPS_9600 |
| 1 | 0 | 0 | 19200 | UART_BPS_19200 |
| 1 | 0 | 1 | 38400 | UART_BPS_38400 |
| 1 | 1 | 0 | 57600 | UART_BPS_57600 |
| 1 | 1 | 1 | 115200 | UART_BPS_115200 |
معدل بيانات الهواء: كلما انخفض معدل بيانات الهواء ، كلما طالت مسافة الإرسال ، أداء أفضل لمكافحة التداخل ووقت الإرسال الأطول ، يجب أن يحافظ معدل بيانات الهواء على نفس الشيء لكلا الطرفين.
| 2 | 1 | 0 | معدل بيانات الهواء (bps) | قيمة ثابتة |
| 0 | 0 | 0 | 0.3k | Air_data_rate_000_03 |
| 0 | 0 | 1 | 1.2k | Air_data_rate_001_12 |
| 0 | 1 | 0 | 2.4k (افتراضي) | Air_data_rate_010_24 |
| 0 | 1 | 1 | 4.8k | Air_data_rate_011_48 |
| 1 | 0 | 0 | 9.6k | Air_data_rate_100_96 |
| 1 | 0 | 1 | 19.2 كيلو | Air_data_rate_101_192 |
| 1 | 1 | 0 | 38.4k | Air_data_rate_110_384 |
| 1 | 1 | 1 | 62.5k | Air_data_rate_111_625 |
#### إعداد الحزمة الفرعية
هذا هو الحد الأقصى lenght من الحزمة.
عندما تكون البيانات أصغر من طول الحزمة الفرعية ، يكون الإخراج التسلسلي للطرف المتلقي مخرجًا مستمرًا دون انقطاع. عندما تكون البيانات أكبر من طول الحزمة الفرعية ، سيقوم المنفذ التسلسلي الطرف المتلقي بإخراج الحزمة الفرعية.
| 7 | 6 | حجم الحزمة | قيمة ثابتة |
| 0 | 0 | 240bytes (افتراضي) | SPS_240_00 |
| 0 | 1 | 128Bytes | SPS_128_01 |
| 1 | 0 | 64Bytes | SPS_064_10 |
| 1 | 1 | 32BYTES | SPS_032_11 |
#### RSSI تمكين الضوضاء المحيطة
يمكن لهذا الأمر تمكين/تعطيل نوع الإدارة لـ RSSI ، من المهم إدارة التكوين عن بُعد ، فالنتبه ليس معلمة RSSI في الرسالة.
عند التمكين ، يمكن إرسال أمر C0 C1 C2 C3 في وضع الإرسال أو وضع الإرسال WOR لقراءة السجل. سجل 0x00: الضوضاء المحيطة الحالية RSSI سجل 0x01: RSSI عند استلام البيانات في المرة الأخيرة.
| 5 | تمكين الضوضاء المحيطة RSSI | قيمة ثابتة |
| 0 | يُمكَِن | rssi_ambient_noise_enabled |
| 1 | تعطيل (افتراضي) | rssi_ambient_noise_disabled |
#### تمكين RSSI
عند التمكين ، تتلقى الوحدة بيانات لاسلكية وستتبع بايت قوة RSSI بعد الإخراج عبر المنفذ التسلسلي TXD
#### نوع الإرسال
وضع النقل: في وضع الإرسال الثابت ، يمكن استخدام بايت الثلاثة الأولى من إطار بيانات كل مستخدم كعنوان وقناة عالية/منخفضة. تقوم الوحدة بتغيير عنوانها وقناةها عند الإرسال. وسوف يعود إلى الإعداد الأصلي بعد إكمال العملية.
#### تمكين وظيفة مكرر
#### مراقبة البيانات قبل الإرسال
عند التمكين ، سيتم مراقبة البيانات اللاسلكية قبل إرسالها ، والتي يمكن أن تتجنب التداخل إلى حد ما ، ولكنها قد تتسبب في تأخير البيانات.
#### wor
WOR Transmitter: يتم تشغيل وظائف الاستلام والنقل الوحدة النمطية ، ويتم إضافة رمز إيقاظ عند إرسال البيانات. يتم تشغيل الاستلام.
WOR Receiver: الوحدة غير قادرة على نقل البيانات وتعمل في وضع مراقبة WOR. فترة المراقبة هي كما يلي (دورة wor) ، والتي يمكن أن توفر الكثير من الطاقة.
#### Wor Cycle
إذا كان WOR ينقل: بعد استقبال مستقبل WOR للبيانات اللاسلكية ويخرجها من خلال المنفذ التسلسلي ، فإنه ينتظر 1000 مللي ثانية قبل إدخال WOR مرة أخرى. يمكن للمستخدمين إدخال بيانات المنفذ التسلسلي وإعادتها عبر اللاسلكي خلال هذه الفترة. سيتم تحديث كل بايت تسلسلي لـ 1000 مللي ثانية. يجب على المستخدمين نقل البايت الأول ضمن 1000 مللي ثانية.
أولاً ، يجب أن نقدم طريقة بسيطة ولكنها مفيدة للتحقق مما إذا كان هناك شيء ما في المخزن المؤقت
int available ();إنها ببساطة إرجاع عدد البايتات التي لديك في الدفق الحالي.
يتم استخدام وضع الإرسال العادي/الشفاف لإرسال الرسائل إلى جميع الأجهزة بنفس العنوان والقناة.
Lora E22 سيناريوهات الإرسال ، الخطوط هي قنوات
الإرسال الثابت لديه المزيد من السيناريوهات
Lora E22 سيناريوهات الإرسال ، الخطوط هي قنوات
الآن لديك جميع المعلومات للقيام بعملك ، لكنني أعتقد أنه من المهم إظهار بعض الأمثلة الواقعية لإلغاء كل الاحتمالات بشكل أفضل.
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: الإعدادات والاستخدام الأساسي
جهاز Ebyte Lora E22 لـ Arduino ، ESP32 أو ESP8266: مكتبة
جهاز Ebyte Lora E22 لـ Arduino ، ESP32 أو ESP8266: التكوين
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: ناقل حركة ثابت و RSSI
جهاز Ebyte Lora E22 لـ Arduino أو ESP32 أو ESP8266: توفير البيانات وإرسالها منظمة
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: وضع المكرر والإعدادات البعيدة
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: WOR متحكم ودرع Arduino
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: WOR متحكم ودرع Wemos D1
جهاز Ebyte Lora E22 لـ Arduino و ESP32 أو ESP8266: WOR Microcontroller و ESP32 DEV V1 SHIELD