LoRa / LoRaWAN RN2483 рд░реЗрдбрд┐рдпреЛ рдореЛрдбреЗрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдгред рднрд╛рдЧ 2, рд▓реЛрд░рд╛рд╡рди

рдкрд┐рдЫрд▓реЗ рднрд╛рдЧ рдиреЗ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдХрд┐ рд▓реЛрдирд╛ рдореЛрдб рдореЗрдВ RN2483 рдореЙрдбреЗрдо рдХреЛ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПред рдЕрдм рдЪрд▓реЛ рдЕрдЧрд▓реЗ, рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рднрд╛рдЧ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ - рд▓реЛрд░рд╛рд╡рди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реБрдПред

рд▓реЛрд░рд╛рд╡рди рдХреНрдпрд╛ рд╣реИ?



LoRaWAN рдПрдХ "рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ" рдиреЗрдЯрд╡рд░реНрдХ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдВрдд рдЙрдкрдХрд░рдгреЛрдВ (рдиреЛрдбреНрд╕) рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдмреНрд╕ (рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░) рдХреЛ рдбреЗрдЯрд╛ рднреЗрдЬрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╣рдм рдореЗрдВ рдЗрдВрдЯрд░рдиреЗрдЯ рддрдХ рдкрд╣реБрдВрдЪ рд╣реЛрддреА рд╣реИ, рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдПрдХ рдУрд░, рдиреЗрдЯрд╡рд░реНрдХ, "рд╡реИрд╢реНрд╡рд┐рдХ" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдХрд┐рд╕реА рднреА рдкрд╛рд╕ рдХреЗ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдпрд╣ "рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рд╡реИрд╢реНрд╡рд┐рдХ" рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЗрдВрдЯрд░рдиреЗрдЯ / рдЗрдВрдЯреНрд░рд╛рдиреЗрдЯ рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕рдВрдЧрдарди рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдкрдирд╛ рдЧреЗрдЯрд╡реЗ рдФрд░ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ)ред

RN2483 рдореЙрдбреЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ "рдиреЛрдб" рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрдлреНрдд рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ ред рдХрдЯ рдХреЗ рдиреАрдЪреЗ рдЬрд╛рд░реА рд╣реИред

рдж рдерд┐рдВрдЧреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ


Www.thethingsnetwork.org рд╕реЗрд╡рд╛ рдПрдХ рдЦреБрд▓рд╛ рд╕рдореБрджрд╛рдп рд╣реИ рдЬрд┐рд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдФрд░ рд╣рдм рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ, рдореБрдлреНрдд рдореЗрдВ рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдмрд┐рдирд╛ред рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдХрд░реЗрдВрдЧреЗред

рдХреЛрдИ рднреА рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдиреЛрдб рдФрд░ рдЧреЗрдЯрд╡реЗ рджреЛрдиреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдерд┐рдВрдЧреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИ, рдХрдИ рдЙрддреНрд╕рд╛рд╣реА рдЕрдкрдиреЗ рдЦрд░реНрдЪ рдкрд░ рдЙрдкрдХрд░рдг рдЦрд░реАрджрддреЗ рд╣реИрдВред
рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдХрд╡рд░реЗрдЬ рдХрд╛ рдирдХреНрд╢рд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд░реВрд╕реА-рднрд╛рд╖рд╛ рдХрд╡рд░реЗрдЬ рдЦрдВрдб рд╡рд╛рдВрдЫрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдХреБрдЫ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рднреА рдпрд╣ рд╣реИред рдЗрд╕рдХрд╛ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рд╣реИ - рд▓рдВрджрди рдпрд╛ рдПрдореНрд╕реНрдЯрд░реНрдбрдо рдореЗрдВ рдЖрдк рдХрд┐рд╕реА рдХреЛ рдирдП рд╕рдВрдХреЗрдВрджреНрд░рдХ рдХреЗ рд╕рд╛рде рдЖрд╢реНрдЪрд░реНрдпрдЪрдХрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рд░реВрд╕ рдореЗрдВ - рдкрд╣рд▓рд╛ рд╣реЛрдиреЗ рдХрд╛ рдХрд╛рдлреА рдореМрдХрд╛ рд╣реИред

RN2483 рдХреЛ рд▓реЛрд░рд╛рд╡рди рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ


рдПрдХ рд╕рд╛рдзрд╛рд░рдг P2p рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╡рд┐рдкрд░реАрдд, LoRaWAN рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИ - рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣ред рдХреНрдпреЛрдВрдХрд┐ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдФрд░ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╣реИ, рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рдореБрджреНрджреЗ рдпрд╣рд╛рдВ рдмрд╣реБрдд рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВред

рд▓реЛрд░рд╛рд╡рди рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ 2 рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╣реИрдВ:

- рдкреНрд░рдорд╛рдгреАрдХрд░рдг "рдУрд╡рд░ рдж рдПрдпрд░" ( OTAA , рдУрд╡рд░-рдж-рдПрдпрд░ рдПрдХреНрдЯрд┐рд╡реЗрд╢рди)ред рдбрд┐рд╡рд╛рдЗрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдкрдВрдЬреАрдХреГрдд рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред
- рдПрдмреАрдкреА рдХрд╛ рд╕рдХреНрд░рд┐рдпрдг (рдирд┐рдЬреАрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рд╕рдХреНрд░рд┐рдпрдг)ред рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкрд╣рд▓реЗ рд╕реЗ рдкрдВрдЬреАрдХреГрдд рд╣реИрдВ, рдЕрддрд┐рд░рд┐рдХреНрдд рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдореЛрдб рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдорд╛рдЗрдирд╕ рднреА рд╣реИ - рдбреЗрдЯрд╛ рдХреЗрд╡рд▓ рд╣рд╡рд╛ рдореЗрдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╣рдм рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рдХрдИ рд╕рд╕реНрддреЗ рдПрдХрд▓-рдЪреИрдирд▓ рд╣рдм рдХреЗрд╡рд▓ рдПрдмреАрдкреА рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдкрд╣рд▓рд╛ рддрд░реАрдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

1. рдбрд┐рд╡рд╛рдЗрд╕ рдкрдВрдЬреАрдХрд░рдг - OTAA


рдкрд╣рд▓рд╛ рдХрджрдо рд╕реНрдЯреЗрдЬрд┐рдВрдЧрд╣реИ ред рдореИрдВрдиреЗ рдЗрд╕реЗ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╣реЛрдо рдХрд╣рд╛ред рдЖрд╡реЗрджрди рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╕рдордп, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╣рд▓реА рдХреБрдВрдЬреА рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдЬреЛ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИред



рдЕрдЧрд▓рд╛, рд╣рдо рдЙрдкрдХрд░рдг рдЯреИрдм рджреЗрдЦрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдЖрдк рд╣рдорд╛рд░реЗ рдореЙрдбреЗрдо рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ (рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ)ред "рд░рдЬрд┐рд╕реНрдЯрд░ рдбрд┐рд╡рд╛рдЗрд╕" рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдУрдЯреАрдПрдП рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдкрдХреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред


рдЗрд╕ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдореЙрдбреЗрдо рдореЗрдВ sys get hweui рдХрдорд╛рдВрдб рднреЗрдЬрдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдкрдВрдЬреАрдХрд░рдг рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдлреНрдд рдФрд░ рдПрд╕рдПрдордПрд╕ рдХреЗ рдмрд┐рдирд╛ред

рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЦреЛрд▓рдХрд░, рдЖрдк рд╕рднреА рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред



рдХреЛрдб рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдЬрдЧрд░-рд▓реЙрд░рдиреЛрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ , рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЛрдб рдореЗрдВ 3 рд▓рд╛рдЗрдиреЗрдВ рд╣реИрдВ appkey, appeui рдФрд░ deveui, рдЬреЛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИрдВред

рд╕реНрд░реЛрдд рдХреЛрдб
from loranode import RN2483Controller
from commands import *
import time

# LoRaController OTAA based join and message test
if __name__ == "__main__":
    set_debug_level(Level.DEBUG)
    
    port = "COM3"
    appkey = "58FF3007CAED02xxxxxxxxxxxxxxxxxxxx"
    appeui = "70B3D57Exxxxxxxxxxxxxx"
    deveui = "0004A30xxxxxxxxxxx"

    # Test controller
    lc = RN2483Controller(port)
    if lc.test():
        printd("[+] Connected to LoRa RN2483 device", Level.INFO)
        lc.serial_sr(CMD_GET_VERSION)
        lc.serial_sr(CMD_GET_HWEUI)
        lc.get_freq()
    else:
        printd(clr(Color.YELLOW, "[-] Failed to get version from LoRa device"), Level.WARNING)

    lc.set_pwr(15)
    lc.set_adr(False)
    lc.serial_sr(CMD_SET_SF, "sf7") # sf12, sf7

    # Join and send a message
    if lc.join_otaa(appkey, appeui, deveui):
        printd("[+] Connected to gateway", Level.INFO)
        
        # Data-1
        printd("[+] Sending packet #1", Level.INFO)
        timeStr = time.strftime("%H%M", time.gmtime())
        if lc.send(timeStr, ack=False):
            printd(clr(Color.GREEN, "[+] Send-1 succeeded"), Level.CRITICAL)
        else:
            printd(clr(Color.RED, "[+] Send-1 failed"), Level.CRITICAL)
        time.sleep(15)

        # Data-2
        printd("[+] Sending packet #2", Level.INFO)
        timeStr = time.strftime("%H%M", time.gmtime())
        if lc.send(timeStr, ack=False):
          printd(clr(Color.GREEN, "[+] Send-2 succeeded"), Level.CRITICAL)
        else:
          printd(clr(Color.RED, "[+] Send-2 failed"), Level.CRITICAL)
        time.sleep(15)

        del lc
        exit()

    del lc
    printd(clr(Color.RED, "[-] Test failed"), Level.CRITICAL)


рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╡рд░реНрддрдорд╛рди рд╕рдордп (hhmm) рд╡рд╛рд▓реЗ рдкреИрдХреЗрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреИрдХреЗрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

2. рдбрд┐рд╡рд╛рдЗрд╕ рдкрдВрдЬреАрдХрд░рдг - рдПрдмреАрдкреА


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ - рд╣рдо рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдПрдмреАрдкреА рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдореЗрдВ рдХрдИ рдЪрд╛рдмрд┐рдпрд╛рдБ рдорд┐рд▓рддреА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред



рдореЙрдбреЗрдо "рдЬреИрд╕рд╛ рд╣реИ" рдбреЗрдЯрд╛ рднреЗрдЬрддрд╛ рд╣реИ, рдЗрд╕ рдмрд╛рдд рдХреА рдХреЛрдИ рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдлрд▓ рдерд╛, рдирд╣реАрдВред

рдбреЗрдЯрд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреБрдВрдЬреА nwkskey, appskey, devaddr рдХреЛ рдХреЛрдб рдореЗрдВ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛ред рд╕реНрд░реЛрдд рдХреЛрдб рдиреАрдЪреЗ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕реНрд░реЛрдд рдХреЛрдб
from loranode import RN2483Controller
import platform
from commands import *
import time

# LoRaController ABP based join and ACK test
if __name__ == "__main__":
    set_debug_level(Level.DEBUG)

    port = "COM3"
    nwkskey = "58AA52E96035Axxxxxxxxxxxxxxxxxxxx"
    appskey = "381B1C9206E9BE9xxxxxxxxxxxxxxxxxxx"
    devaddr = "B639xxxx"
    
    lc = None
    
    try:
      # Test controller
      lc = RN2483Controller(port)
      if lc.test():
        printd("[+] Connected to LoRa RN2483 device", Level.INFO)

        lc.serial_sr(CMD_GET_VERSION)
        lc.serial_sr(CMD_GET_HWEUI)
        lc.get_freq()
      else:
        printd(clr(Color.YELLOW, "[-] Failed to get version from LoRa device"), Level.WARNING)

    except Exception, e:
      print "Error: " + str(e)

    if lc is None:
      printd(Color.YELLOW, "Error: cannot connect to device")
      exit()

    lc.set_adr(False)
    lc.set_pwr(15)
    lc.serial_sr(CMD_MAC_PAUSE)
    lc.serial_sr(CMD_SET_SF, "sf12") # sf12, sf7
    lc.serial_sr(CMD_MAC_RESUME)

    # Join and send a message
    if lc.join_abp(nwkskey, appskey, devaddr):
        printd("[+] Connected to gateway", Level.INFO)
        
        # Data-1
        printd("[+] Sending packet #1", Level.INFO)
        timeStr = time.strftime("%H%M", time.gmtime())
        if lc.send(timeStr, ack=False):
          printd(clr(Color.GREEN, "[+] Send-1 succeeded"), Level.CRITICAL)
        else:
          printd(clr(Color.RED, "[+] Send-1 failed"), Level.CRITICAL)
        time.sleep(15)

        # Data-2
        printd("[+] Sending packet #2", Level.INFO)
        timeStr = time.strftime("%H%M", time.gmtime())
        if lc.send(timeStr, ack=False):
          printd(clr(Color.GREEN, "[+] Send-2 succeeded"), Level.CRITICAL)
        else:
          printd(clr(Color.RED, "[+] Send-2 failed"), Level.CRITICAL)
        time.sleep(15)

        del lc
        exit()

    printd(clr(Color.RED, "[-] Test failed"), Level.CRITICAL)
    del lc


рдкрд░реАрдХреНрд╖рдг


рдЖрдЦрд┐рд░реА рдЪрд░рдг, рдПрдХ рдЪреАрдЬ рдмрдиреА рд╣реБрдИ рд╣реИ - рдЕрдкрдиреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреЗрдо рдХреЗ рд╕рд╛рде рдПрдХ рд▓реИрдкрдЯреЙрдк (рдпрд╛ Arduino рдпрд╛ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ) рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП (рдЧреЛ, рдлрд╝реНрд▓рд╛рдИ) рдЙрд╕ рдЬрдЧрд╣ рдкрд░ рдЬрд╣рд╛рдВ рдирд┐рдХрдЯрддрдо рдЧреЗрдЯрд╡реЗ рдХрд╛ рдХрд╡рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░ рд╕реНрдерд┐рдд рд╣реИред рдореБрдЭреЗ рдЯреНрд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рд▓рдЧрднрдЧ рдЖрдзреЗ рдШрдВрдЯреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдХрдЯрддрдо рдХрд╡рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдорд┐рд▓рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЗрддрдиреА рд▓рдВрдмреА рдФрд░ рдорд╣рдВрдЧреА рдирд╣реАрдВ рд╣реИред

рд╕рдлрд▓ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреИрдХреЗрдЯ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



рд╕рд░реНрд╡рд░ рд╕реНрд╡рдпрдВ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдЕрдкрдирд╛ рдХреЛрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЙрджрд╛рд╣рд░рдг рд╕рд┐рд░реНрдл рдПрдХ рдкрд░реАрдХреНрд╖рд╛ рд╣реИ, рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реВрдЪрдирд╛рдПрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрджрд┐, рдпрд╣ рд╕рдм рдХрд╛рд░реНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?


рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд▓реЛрд░рд╛рд╡рди рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдХ рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╕реЗрд╡рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдбреЗрдЯрд╛ рдирд┐рдХрдЯрддрдо рд╣рдм рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрд╡рд░реЗрдЬ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИ)ред рдЖрд╡реЗрджрди рдХрд╛ рджрд╛рдпрд░рд╛ рдХрд╛рдлреА рд╡реНрдпрд╛рдкрдХ рд╣реИ, рд╕реЗрдВрд╕рд░ рд╕реЗ рд▓реЗрдХрд░ рджреЗрд╢ рдореЗрдВ рджрд░рд╡рд╛рдЬрд╛, рддрд╛рдкрдорд╛рди рдпрд╛ рдкрд╛рдиреА рдХреЗ рд╕реНрддрд░ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдЬрд╛рдирд╡рд░ рдпрд╛ рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рдХреЗ рдореЙрдбрд▓ рдкрд░ рдЬреАрдкреАрдПрд╕ рдмреАрдХрди рддрдХред

рдХрдИ рд╡реАрдбрд┐рдпреЛ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ)ред

рд▓реЛрд░рд╛ рдПрд▓рд╛рдпрдВрд╕ рдкрд░рд┐рдЪрдп:



рдЪреАрдЬреЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░рд┐рдЪрдп:


рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдЧрд░ рд╣рдо рдж рдерд┐рдВрдЧреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ "рд╢реМрдХрд┐рдпрд╛" рд╕реЗрд╡рд╛ рд╣реИ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рд╕реНрдерд╛рдпреА рдХрдиреЗрдХреНрд╢рди рдХреА рдЧрд╛рд░рдВрдЯреА рдирд╣реАрдВ рд╣реИред рдЪрд╛рд╣реЗ рд╡рд╛рдгрд┐рдЬреНрдпрд┐рдХ рдкреНрд░рджрд╛рддрд╛ рд▓реЛрд░рд╛рд╡рди рд╣реЛрдВ, рдореБрдЭреЗ рдЕрднреА рднреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред

рдпрджрд┐ рдХреЛрдИ рдХрд╡рд░реЗрдЬ рдирд╣реАрдВ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?


рдПрдХ рд╡рд╛рдЬрд┐рдм рд╕рд╡рд╛рд▓ рдЙрда рд╕рдХрддрд╛ рд╣реИ - рдЕрдЧрд░ рдЯреНрд░реЗрди рд╕реЗ рдХреБрдЫ рджрд┐рдиреЛрдВ рдпрд╛ рдирд┐рдХрдЯрддрдо рдЧреЗрдЯрд╡реЗ рдХреЗ рд▓рд┐рдП рд╣рд╡рд╛рдИ рдЬрд╣рд╛рдЬ рд╕реЗ рдХреБрдЫ рдШрдВрдЯреЛрдВ рддрдХ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдкреНрд▓рд╕ рд╣реИ - рдЖрдк рдкрд╣рд▓реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдкреНрд░рд╡реЗрд╢ рджреНрд╡рд╛рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдж рдерд┐рдВрдЧреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рд╢реНрди рдХреА рдХреАрдордд рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рднрд┐рдиреНрди рд╣реЛрддреА рд╣реИ - "рдорд╛рд▓рд┐рдХрд╛рдирд╛" рдорд▓реНрдЯреА-рдЪреИрдирд▓ рд╣рдм рдХреЗ рд▓рд┐рдП 1000EUR рд╕реЗ, SX1276 рдФрд░ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдШрд░-рдирд┐рд░реНрдорд┐рдд рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП $ 15 рддрдХред рдпрд╣рд╛рдБ рд╡рд╣рд╛рдБ рд╡рд┐рднрд┐рдиреНрди рд░реВрдЯрд░ рдХреА рддреБрд▓рдирд╛ рдЪрд╛рд░реНрдЯ рд╣реИ, рдЖрдЧрдВрддреБрдХреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ рдпрд╣ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

Source: https://habr.com/ru/post/hi398247/


All Articles