

لتثبيت المكتبة قم بتنفيذ الأمر التالي:
pip install ebyte-lora-e220-circuitpythonهنا مثال على المنشئ ، يجب أن تمرر واجهة UART و (إذا كنت تريد ، ولكن يتم توصيفها) AUX PIN و M0 و M1.
from lora_e220 import LoRaE220
import busio
import board
uart2 = busio . UART ( board . TX2 , board . RX2 , baudrate = 9600 )
lora = LoRaE220 ( '400T22D' , uart2 , aux_pin = board . D15 , m0_pin = board . D21 , m1_pin = board . D19 ) code = lora . begin ()
print ( "Initialization: {}" , ResponseStatusCode . get_description ( code )) from lora_e220 import LoRaE220 , print_configuration
from lora_e220_operation_constant import ResponseStatusCode
code , configuration = lora . get_configuration ()
print ( "Retrieve configuration: {}" , ResponseStatusCode . get_description ( code ))
print_configuration ( configuration )النتيجة
----------------------------------------
Initialization: {} Success
Retrieve configuration: {} Success
----------------------------------------
HEAD : 0xc1 0x0 0x8
AddH : 0x0
AddL : 0x0
Chan : 23 -> 433
SpeedParityBit : 0b0 -> 8N1 (Default)
SpeedUARTDatte : 0b11 -> 9600bps (default)
SpeedAirDataRate : 0b10 -> 2.4kbps (default)
OptionSubPacketSett: 0b0 -> 200bytes (default)
OptionTranPower : 0b0 -> 22dBm (Default)
OptionRSSIAmbientNo: 0b0 -> Disabled (default)
TransModeWORPeriod : 0b11 -> 2000ms (default)
TransModeEnableLBT : 0b0 -> Disabled (default)
TransModeEnableRSSI: 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 . 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 . 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 . OPTION . subPacketSetting = SubPacketSetting . SPS_064_10
configuration_to_set . TRANSMISSION_MODE . fixedTransmission = FixedTransmission . FIXED_TRANSMISSION
configuration_to_set . TRANSMISSION_MODE . WORPeriod = WorPeriod . WOR_1500_010
configuration_to_set . TRANSMISSION_MODE . enableLBT = LbtEnableByte . LBT_DISABLED
configuration_to_set . TRANSMISSION_MODE . enableRSSI = RssiEnableByte . RSSI_ENABLED
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 )
time . sleep ( 2 )إذا كنت تريد الحصول على 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' ])
time . sleep ( 2 )إذا كنت تريد الحصول على 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
Lora Smart Home (LLCC68) عبارة عن جهاز إرسال استقبال Sub-GHz Lora® RF للاتصالات الداخلية والداخلية متوسطة المدى إلى الأماكن اللاسلكية في الهواء الطلق. واجهة SPI. يتوافق دبوس إلى دبوس مع SX1262. تم تصميم SX1261 و SX1262 و SX1268 و LLCC68 لعمر بطارية طويل مع 4.2 مللي أمبير فقط من الاستهلاك الحالي النشط. يمكن أن ينقل SX1261 إلى +15 DBM ، ويمكن نقل SX1262 و SX1268 و LLCC68 إلى +22 ديسيبل مع مضخمات طاقة متكاملة عالية الكفاءة.
تدعم هذه الأجهزة تعديل LORA لحالات استخدام LPWAN و (G) تعديل FSK لحالات الاستخدام القديمة. الأجهزة قابلة للتكوين بشكل كبير لتلبية متطلبات التطبيق المختلفة لاستخدام المستهلك. يوفر الجهاز تعديل LORA متوافقًا مع أجهزة نقل SEMTECH المستخدمة في مواصفات Lorawan® التي تم إصدارها بواسطة LORA Alliance®. يعد الراديو مناسبًا للأنظمة التي تستهدف الامتثال للوائح الراديوية ، بما في ذلك على سبيل المثال لا الحصر ، ETSI EN 300 220 ، FCC CFR 47 الجزء 15 ، المتطلبات التنظيمية الصينية ، و ARIB T-108 اليابانية. تسمح تغطية التردد المستمر من 150 ميجا هرتز إلى 960 ميجا هرتز بدعم جميع نطاقات ISM الرئيسية في جميع أنحاء العالم.
| LLCC68 | SX1278-SX1276 | |
|---|---|---|
| مسافة | > 11 كم | 8 كم |
| معدل (لورا) | 1.76 كيلو بايت في الثانية - 62.5 كيلو بايت في الثانية | 0.3 كيلو بايت في الثانية - 19.2 كيلو بايت في الثانية |
| استهلاك قوة النوم | 2µA | 5µA |
مكتبة لجهاز Ebyte Lora E220 LLCC68 لـ Arduino ، ESP32 أو ESP8266.
| رقم الدبوس | عنصر دبوس | اتجاه الدبوس | تطبيق PIN |
|---|---|---|---|
| 1 | M0 | المدخلات (السحب الضعيف) | العمل مع M1 وتحديد أوضاع التشغيل الأربعة. العائم غير مسموح به ؛ يمكن أن يكون الأرض. |
| 2 | M1 | المدخلات (السحب الضعيف) | العمل مع M0 وتحديد أوضاع التشغيل الأربعة. العائم غير مسموح به ؛ يمكن أن يكون الأرض. |
| 3 | RXD | مدخل | تتواصل مدخلات TTL UART إلى دبوس إخراج TXD الخارجي (MCU ، PC). يمكن تكوينها على أنها إدخال مفتوح أو سحب. |
| 4 | TXD | الإخراج | تتصل مخرجات TTL UART بـ RXD الخارجي (MCU ، PC) دبوس الإدخال. يمكن تكوينها على أنها إخراج مفتوح أو إخراج دفع |
5 | aux | الإخراج | للإشارة إلى حالة عمل الوحدة النمطية واستيقاظ MCU الخارجي. أثناء إجراء تهيئة الفحص الذاتي ، يقوم دبوس بإخراج مستوى منخفض. يمكن تكوينه على أنه إخراج مفتوح أو إخراج دفع (عائم مسموح به). |
| 6 | VCC | مزود الطاقة 3V ~ 5.5V DC | |
| 7 | GND | أرضي |
كما ترون ، يمكنك تعيين أوضاع مختلفة عبر دبابيس M0 و M1.
| وضع | M1 | M0 | توضيح |
|---|---|---|---|
| طبيعي | 0 | 0 | القنوات اللاسلكية واللاسلكية مفتوحة ، والنقل الشفاف قيد التشغيل |
| WOR مرسل | 0 | 1 | WOR مرسل |
| wor استقبال | 1 | 0 | مستقبل Wor (يدعم الاستيقاظ على الهواء) |
| وضع السكون العميق | 1 | 1 | تذهب الوحدة إلى النوم (تستيقظ تلقائيًا عند تكوين المعلمات) |
يمكن استخدام بعض المسامير بشكل ثابت ، ولكن إذا قمت بتوصيلها بالتحكم الدقيق وتكوينها في المكتبة ، فإنك تكسب في الأداء ويمكنك التحكم في جميع الأوضاع عبر البرنامج. ومع ذلك ، سنشرح أفضل بعد ذلك.
كما قلت بالفعل ، ليس من الضروري توصيل جميع المسامير بإخراج متحكم ؛ يمكنك وضع دبابيس M0 و M1 على ارتفاع أو منخفض للحصول على التكوين المطلوب. إذا لم تقم بتوصيل AUX ، فإن المكتبة تحدد تأخيرًا معقولًا للتأكد من اكتمال العملية ( إذا كنت تواجه مشكلة في تجميد الجهاز ، فيجب عليك وضع مقاوم 4.7 كيلو متر أو الاتصال بشكل أفضل بالجهاز. ).
عند نقل البيانات يمكن استخدامها لإيقاظ MCU الخارجي والعودة إلى الانتهاء من نقل البيانات.
عند الاستلام ، ينخفض Aux ويعود عالياً عندما يكون المخزن المؤقت فارغًا.
يتم استخدامه أيضًا في إجراء فحص ذاتيًا لاستعادة التشغيل العادي (على وضع الطاقة ووضع النوم/البرنامج).
مخطط اتصال ESP8266 أكثر وضوحًا لأنه يعمل في نفس الجهد للاتصالات المنطقية (3.3V).
من الضروري إضافة مقاوم السحب (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 مسلسل.
| E22 | ESP32 |
|---|---|
| M0 | D21 |
| M1 | D19 |
| تكساس | PIN RX2 (Pullup 4،7kΩ) |
| RX | PIN TX3 (Pullup 4،7kΩ) |
| aux | PIN D18 (Pullup 4،7kΩ) (D15 للاستيقاظ) |
| VCC | 5V (ولكن العمل مع قوة أقل في 3.3 فولت) |
| GND | GND |
| M0 | 2 (مقسم الجهد) |
| M1 | 3 (مقسم الجهد) |
| تكساس | PIN 14 TX (Pullup 4،7kΩ) |
| RX | PIN 13 RX (Pullup 4،7kΩ) |
| aux | دبوس 1 (سحب 4،7KΩ) |
| VCC | 5V |
| GND | GND |
يمكنك طلب ثنائي الفينيل متعدد الكلور هنا
تعليمات وتجميع الفيديو على 6 جزء من الدليل
يمكنك طلب ثنائي الفينيل متعدد الكلور هنا
تعليمات وتجميع الفيديو على 6 جزء من الدليل
Lora أو Long Range Wireless Data Healemetry هو تقنية رائدة من قبل Semtech تعمل بتردد أقل من NRF24L01 (433 MHz ، 868 MHz ، أو 916 MHz مقابل 2.4 جيجا هرتز لل NRF24L01) ولكن في Threce على المسافة (من 5000M).
| اسم | وصف | عنوان |
|---|---|---|
| addh | بايت العنوان العالي للوحدة (الافتراضي 00H) | 00H |
| addl | بايت العنوان المنخفض للوحدة (الافتراضي 00H) | 01H |
| تسري | معلومات حول معدل التكافؤ في معدل البيانات ومعدل بيانات الهواء | 02H |
| خيار | نوع ناقل الحركة ، وحجم الحزمة ، اسمح للرسالة الخاصة | 03H |
| تشان | قناة الاتصال (410M + Chan*1M) ، الافتراضي 17H (433 ميجا هرتز) ، صالح فقط لجهاز 433 ميجا هرتز تحقق أدناه للتحقق من التردد الصحيح لجهازك | 04H |
| خيار | نوع ناقل الحركة ، وحجم الحزمة ، اسمح للرسالة الخاصة | 05H |
| transmission_mode | الكثير من المعلمات التي تحدد طريقة الإرسال | 06H |
| سرداب | تشفير لتجنب الاعتراض | 07H |
بت التكافؤ في UART: يمكن أن يكون وضع UART مختلفًا بين أطراف الاتصالات
| بت التكافؤ uart | قيمة ثابتة |
|---|---|
| 8N1 (افتراضي) | mode_00_8n1 |
| 8o1 | mode_01_8o1 |
| 8e1 | mode_10_8e1 |
| 8n1 (يساوي 00) | mode_11_8n1 |
معدل باود UART: يمكن أن يكون معدل باود UART مختلفًا بين أطراف الاتصالات (ولكن لم يتم التوصل إليه). لا علاقة لمعدل Baud UART بمعلمات الإرسال اللاسلكية ولن يؤثر على ميزات الإرسال/الاستقبال اللاسلكي.
| TTL Uart Baud Rate (BPS) | قيمة ثابتة |
|---|---|
| 1200 | UART_BPS_1200 |
| 2400 | UART_BPS_2400 |
| 4800 | UART_BPS_4800 |
| 9600 (افتراضي) | UART_BPS_9600 |
| 19200 | UART_BPS_19200 |
| 38400 | UART_BPS_38400 |
| 57600 | UART_BPS_57600 |
| 115200 | UART_BPS_115200 |
معدل بيانات الهواء: كلما انخفض معدل بيانات الهواء ، كلما طالت مسافة الإرسال ، أداء أفضل لمكافحة المؤتمرات ، ووقت الإرسال الأطول ؛ يجب أن يكون معدل بيانات الهواء ثابتًا لكلا الطرفين.
| معدل بيانات الهواء (bps) | قيمة ثابتة |
|---|---|
| 2.4k | Air_data_rate_000_24 |
| 2.4k | Air_data_rate_001_24 |
| 2.4k (افتراضي) | Air_data_rate_010_24 |
| 4.8k | Air_data_rate_011_48 |
| 9.6k | Air_data_rate_100_96 |
| 19.2 كيلو | Air_data_rate_101_192 |
| 38.4k | Air_data_rate_110_384 |
| 62.5k | Air_data_rate_111_625 |
هذا هو الحد الأقصى لطول الحزمة.
عندما تكون البيانات أصغر من طول الحاجز الفرعي ، يكون الإخراج التسلسلي للطرف المتلقي مخرجًا مستمرًا دون انقطاع. سيقوم المنفذ التسلسلي للاستقبال بإخراج الحمل الفرعي عندما تكون البيانات أكبر من طول الحزمة الفرعية.
| حجم الحزمة | قيمة ثابتة |
|---|---|
| 200Bytes (افتراضي) | SPS_200_00 |
| 128Bytes | SPS_128_01 |
| 64Bytes | SPS_064_10 |
| 32BYTES | SPS_032_11 |
يمكن لهذا الأمر تمكين/تعطيل نوع الإدارة لـ RSSI ، ومن الضروري إدارة التكوين عن بُعد. الانتباه ليس معلمة RSSI في الرسالة.
عند التمكين ، يمكن إرسال أوامر C0 أو C1 و C2 أو C3 في وضع الإرسال أو وضع الإرسال في القراءة. سجل 0x00: الضوضاء المحيطة الحالية RSSI سجل 0x01: RSSI عند استلام البيانات في المرة الأخيرة.
| تمكين الضوضاء المحيطة RSSI | قيمة ثابتة |
|---|---|
| يُمكَِن | rssi_ambient_noise_enabled |
| تعطيل (افتراضي) | rssi_ambient_noise_disabled |
يمكنك تغيير هذه المجموعة من الثوابت عن طريق تطبيق تعريف مثل ذلك:
#define e220_22 // القيمة الافتراضية بدون تعيين
ينطبق على E220 مع 22dbm كـ Max Power.
لا ينصح بنقل الطاقة المنخفض بسبب انخفاض كفاءة إمدادات الطاقة.
| طاقة الإرسال (تقريب) | قيمة ثابتة |
|---|---|
| 22dbm (افتراضي) | Power_22 |
| 17dbm | Power_17 |
| 13DBM | Power_13 |
| 10dbm | power_10 |
ينطبق على E220 مع 30DBM كـ MAX POWER.
لا ينصح بنقل الطاقة المنخفض بسبب انخفاض كفاءة إمدادات الطاقة.
#define E220_30
| طاقة الإرسال (تقريب) | قيمة ثابتة |
|---|---|
| 30DBM (افتراضي) | Power_30 |
| 27 ديسيبل | Power_27 |
| 24DBM | power_24 |
| 21 ديسيبل | Power_21 |
يمكنك تكوين تردد القناة أيضًا مع هذا تحديد:
// واحد من #define التردد_433 #define التردد_170 #define التردد_470 #define التردد_868 #define التردد_915
عند التمكين ، تتلقى الوحدة بيانات لاسلكية ، وستتبع بايت قوة RSSI بعد الإخراج عبر المنفذ التسلسلي TXD
| تمكين RSSI | قيمة ثابتة |
|---|---|
| يُمكَِن | RSSI_ENABDER |
| تعطيل (افتراضي) | RSSI_Disabled |
وضع النقل: يمكن استخدام البايتات الثلاثة الأولى من إطار بيانات كل مستخدم كعناوين عالية/منخفضة وقناة في وضع الإرسال الثابت. تقوم الوحدة بتغيير عنوانها وقناةها عند إرسالها. وسوف يعود إلى الإعداد الأصلي بعد الانتهاء من العملية.
| الإرسال الثابت تمكين بت | قيمة ثابتة |
|---|---|
| وضع الإرسال الثابت | ft_fixed_transmission |
| وضع نقل شفاف (افتراضي) | ft_transparent_transmission |
عند التمكين ، سيتم مراقبة البيانات اللاسلكية قبل إرسالها ، وتجنب التداخل إلى حد ما ، ولكن قد يتسبب في تأخير البيانات.
| LBT تمكين بايت | قيمة ثابتة |
|---|---|
| يُمكَِن | lbt_enabled |
| تعطيل (افتراضي) | lbt_disabled |
إذا كان WOR ينقل: بعد استقبال مستقبل WOR للبيانات اللاسلكية ويخرجها من خلال المنفذ التسلسلي ، فإنه ينتظر 1000 مللي ثانية قبل إدخال WOR مرة أخرى. يمكن للمستخدمين إدخال بيانات المنفذ التسلسلي وإعادتها عبر اللاسلكي خلال هذه الفترة. سيتم تحديث كل بايت تسلسلي لـ 1000 مللي ثانية. يجب على المستخدمين نقل البايت الأول ضمن 1000 مللي ثانية.
| وقت الاستيقاظ اللاسلكي | قيمة ثابتة |
|---|---|
| 500 مللي ثانية | wake_up_500 |
| 1000ms | wake_up_1000 |
| 1500ms | wake_up_1500 |
| 2000 مللي ثانية (افتراضي) | wake_up_2000 |
| 2500ms | wake_up_2500 |
| 3000ms | wake_up_3000 |
| 3500ms | wake_up_3500 |
| 4000ms | wake_up_4000 |
أولاً ، يجب أن نقدم طريقة بسيطة ولكنها عملية للتحقق مما إذا كان هناك شيء ما في المخزن المؤقت.
int متاح () ؛
من السهل إرجاع عدد البايتات التي لديك في الدفق الحالي.
يرسل وضع الإرسال العادي/الشفاف رسائل إلى جميع الأجهزة بنفس العنوان والقناة.
الإرسال الثابت لديه المزيد من السيناريوهات
الآن لديك جميع المعلومات للقيام بعملك ، لكنني أعتقد أنه من المهم إظهار بعض الأمثلة الحقيقية لفهم كل الاحتمالات بشكل أفضل.
مكتبة جيثب