និមិត្តសញ្ញា tekmodul

ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ tekmodul BG95M3-QPython EVB

tekmodul-BG95M3-QPython-EVB-Development-Board

ភាពខុសគ្នាពី MicroPython

QuecPython គឺសំខាន់ MicroPython ដែលដំណើរការលើម៉ូឌុល Quectel ។ ដោយសារកង្វះការបញ្ជាក់ស្តង់ដារដ៏ទូលំទូលាយនៅក្នុង MicroPython បណ្ណាល័យដែលភ្ជាប់មកជាមួយ និងការប្រើប្រាស់មុខងារផ្សេងៗអាចប្រែប្រួលអាស្រ័យលើអ្នកអភិវឌ្ឍន៍ និងវេទិកាផ្នែករឹង។ អ្នកប្រើប្រាស់ QuecPython ខ្លះអាចមានបទពិសោធន៍ពីមុនក្នុងការអភិវឌ្ឍន៍ជាមួយ MicroPython លើម៉ូឌុលដូចជា ESP32, ESP8266 និង STM32។ ដើម្បីជួយសម្រួលដល់ការធ្វើចំណាកស្រុកសម្រាប់អ្នកប្រើប្រាស់ទាំងនេះ ភាពខុសគ្នាដែលគេស្គាល់រវាង QuecPython និង MicroPython ត្រូវបានរាយខាងក្រោម៖

  • ស្ដង់ដារ MicroPython ឬបណ្ណាល័យជាក់លាក់មួយចំនួន ដូចជា framebuf និងបណ្តាញ មិនត្រូវបានអនុវត្ត ឬភ្ជាប់មកជាមួយនៅក្នុង QuecPython ទេ។
  • បណ្ណាល័យស្ដង់ដារ MicroPython មួយចំនួនដូចជា utime អាចមានការអនុវត្តខុសៗគ្នា និងភាពពេញលេញនៃលក្ខណៈពិសេសនៅក្នុង QuecPython បើប្រៀបធៀបទៅនឹងម៉ូឌុលដូចជា ESP32 ដែលបណ្តាលឱ្យមានភាពខុសគ្នានៅក្នុងការអនុវត្ត ឬលក្ខណៈលម្អិតផ្សេងទៀត។
  • ការរៀបចំលក្ខណៈពិសេសមួយចំនួននៅក្នុង QuecPython អាចខុសគ្នាពី MicroPython ។ សម្រាប់អតីតample, មុខងារ ADC ជាទូទៅត្រូវបានរួមបញ្ចូលនៅក្នុងបណ្ណាល័យម៉ាស៊ីននៅក្នុង MicroPython ប៉ុន្តែនៅក្នុង QuecPython វាត្រូវបានរួមបញ្ចូលនៅក្នុងបណ្ណាល័យផ្សេងៗ។
  • APIs ដែលទាក់ទងនឹងចំណុចប្រទាក់ផ្នែករឹងជាក់លាក់ដូចជា UART, I2C, និង SPI មានភាពខុសគ្នាខ្លាំងរវាង MicroPython និង QuecPython ហើយមិនអាចប្រើជំនួសគ្នាបានទេ។
  • បច្ចុប្បន្ន QuecPython មិនរួមបញ្ចូលមុខងារ upip ទេ ដូច្នេះការដំឡើងបណ្ណាល័យរហ័សតាមអ៊ីនធឺណិតមិនអាចធ្វើទៅបានទេ។ ការច្រកដោយដៃគឺចាំបាច់។
  • ភាពឆបគ្នាជាមួយឧបករណ៍ MicroPython IDE ដូចជា Thonny និង uPyCraft មិនត្រូវបានធានាទេ។
  • សរុបមក កូដ MicroPython ដែលដំណើរការដោយជោគជ័យលើម៉ូឌុលដូចជា ESP32 ជាធម្មតាមិនអាចចម្លងដោយផ្ទាល់ និងដំណើរការនៅក្នុងបរិស្ថាន QuecPython ដោយគ្មានការកែប្រែណាមួយឡើយ។ ដូច្នេះ គួរចៀសវាងការអនុវត្តឯកសារ និងបទពិសោធន៍អភិវឌ្ឍន៍ដោយផ្ទាល់ពីម៉ូឌុលផ្នែករឹង MicroPython ផ្សេងទៀតទៅការអភិវឌ្ឍន៍ QuecPython ។

ភាពខុសគ្នាពី CPython (Python ធម្មតា)

  • មិនដូចការអភិវឌ្ឍន៍ CPython បែបប្រពៃណីទេ QuecPython មានបណ្ណាល័យដែលភ្ជាប់មកជាមួយចំនួនតូចជាង (បណ្ណាល័យស្តង់ដារ)។ ទោះបីជា QuecPython រួមបញ្ចូលបណ្ណាល័យមូលដ្ឋានសម្រាប់កិច្ចការដូចជាការកំណត់ពេលវេលា និង file ការគ្រប់គ្រងបរិមាណគឺទាបជាងយ៉ាងខ្លាំងបើប្រៀបធៀបទៅនឹង CPython ។ ឈ្មោះ និងវិធីសាស្រ្តប្រើប្រាស់នៃបណ្ណាល័យស្តង់ដារទាំងនេះក៏មានភាពខុសគ្នាជាច្រើនផងដែរ ហើយមិនត្រូវគ្នាទាំងស្រុងនោះទេ។
  • QuecPython មិនមានមុខងារ pip ភ្ជាប់មកជាមួយទេ ដូច្នេះការដំឡើងបណ្ណាល័យរហ័សតាមអ៊ីនធឺណិតមិនអាចធ្វើទៅបានទេ។ ការច្រកដោយដៃគឺចាំបាច់។
  • ដោយសារតែភាពខុសគ្នាវាក្យសម្ព័ន្ធរវាង QuecPython និង CPython ក៏ដូចជាការពិតដែលថាបណ្ណាល័យ QuecPython ភាគច្រើនមិនអាចដំណើរការលើកុំព្យូទ័រលើតុបាន ឧបករណ៍ដូចជា VSCode និង PyCharm នៅលើផ្ទៃតុអាចប្រើសម្រាប់តែការកែសម្រួលកូដសាមញ្ញប៉ុណ្ណោះ។ ស្គ្រីបដែលបានបញ្ចប់ត្រូវតែទាញយកដោយដៃទៅកាន់ម៉ូឌុលសម្រាប់ការប្រតិបត្តិ និងបំបាត់កំហុស។
  • លក្ខណៈពិសេសការបន្លិចវាក្យសម្ព័ន្ធ និងការបំពេញកូដដែលផ្តល់ដោយឧបករណ៍ដូចជា VSCode និង PyCharm គឺផ្អែកលើ CPython ហើយប្រហែលជាមិនអាចអនុវត្តបានពេញលេញចំពោះ QuecPython ទេ។ ដូច្នេះ សម្រាប់អ្នកចាប់ផ្តើមដំបូងដែលមិនមានបទពិសោធន៍ពីមុនជាមួយភាសា Python វាមិនត្រូវបានណែនាំអោយប្រើឧបករណ៍ IDE ឆ្លាតវៃហួសហេតុពេកទេ ពេលកំពុងសរសេរកូដ ព្រោះការផ្ដល់យោបល់ដែលភ្ជាប់មកជាមួយអាចនឹងមានការយល់ច្រឡំ។

ការតភ្ជាប់ EVB

  • ជំហានទី 1: ភ្ជាប់ EVB
    ភ្ជាប់ច្រក EVB Type-C ទៅនឹងរន្ធ USB កុំព្យូទ័ររបស់អ្នកជាមួយនឹងខ្សែ USB Type-C សម្រាប់ការផ្គត់ផ្គង់ថាមពល។
  • ជំហានទី 2: បើកថាមពល EVB
    កាត់ម្ជុល PWK_AUTO ពីរជាមួយនឹងមួក jumper ដើម្បីថាមពលនៅលើក្តារ ហើយវានឹងបើកដោយស្វ័យប្រវត្តិ ឬចុចប៊ូតុង PWK ឱ្យយូរបន្ទាប់ពីបើកថាមពល។ វាត្រូវបានណែនាំថាចន្លោះពេលរវាងការបើក និងចុចប៊ូតុង PWK គួរតែមានយ៉ាងហោចណាស់ 30 ms ។ បន្ទាប់ពីអនុវត្តប្រតិបត្តិការខាងលើ សូមរង់ចាំសូចនាករថាមពលនៅលើបន្ទះមេដើម្បីភ្លឺ (LED PWR បំភ្លឺពណ៌ខៀវ PWM បំភ្លឺពណ៌បៃតង បន្ទាប់មក EVB គួរតែត្រូវបានទទួលស្គាល់នៅក្នុងកម្មវិធីគ្រប់គ្រងឧបករណ៍។)

ជម្រើសស៊ីម
សម្រាប់ BG95 EVB ស៊ីមកាត NB-IoT គួរតែត្រូវបានប្រើ។ សម្រាប់ការធ្វើតេស្ត យើងបានប្រើស៊ីម 1NCE (វាគួរតែស្គាល់បណ្តាញ Telekom ផ្ញើសារ SMS និងគាំទ្រ National Roaming)។
ឧបករណ៍

QPYcom. ឧបករណ៍នេះត្រូវបានប្រើសម្រាប់ការបំបាត់កំហុស ការវិភាគកំណត់ហេតុ ការបង្ហោះស្គ្រីប python ទៅកាន់ម៉ូឌុល ការទាញយកកម្មវិធីបង្កប់ ការបញ្ចូលកម្មវិធីបង្កប់ និងច្រើនទៀត។ មិនអាចកែប្រែអក្សរ Python បានទេ!

tekmodul-BG95M3-QPython-EVB-Development-Board-fig-1

កូដ VSC៖ ដើម្បីសរសេរស្គ្រីប Python ។ ស្គ្រីប python សរសេរដោយ VSCode ក្រោយមកត្រូវនាំចូលទៅក្នុង QPYcom ។

ពន្លឺកម្មវិធីបង្កប់
កម្មវិធីបង្កប់ស្តង់ដារ AT ឬកម្មវិធីបង្កប់ QuecOpen ជាធម្មតាត្រូវបានទាញយកទៅក្នុងម៉ូឌុល នៅពេលដែលម៉ូឌុលចាកចេញពីរោងចក្រ។ ប្រសិនបើអ្នកចង់អភិវឌ្ឍម៉ូឌុលដោយផ្អែកលើ QuecPython អ្នកត្រូវទាញយកកម្មវិធីបង្កប់ QuecPython ឡើងវិញដោយដៃទៅក្នុងវា។ https://python.quectel.com/en/download
ចំណាំ៖ QuecPython ទាមទារកម្មវិធីបង្កប់ពិសេស! វាចាំបាច់ត្រូវបញ្ចេញពន្លឺដោយឡែកពីគ្នា។ បន្ទាប់ពីបញ្ចេញកម្មវិធីបង្កប់នេះ បន្ទះមិនអាចប្រើសម្រាប់បរិស្ថានពាក្យបញ្ជា AT បានទេ។ ប្រសិនបើការអភិវឌ្ឍន៍ដោយប្រើពាក្យបញ្ជា AT ត្រូវបានគេចង់បាននោះ កម្មវិធីបង្កប់ដែលត្រូវគ្នាត្រូវតែបញ្ចេញពន្លឺម្តងទៀត។

Example: BG95_M3 QPython Firmware Flash៖

tekmodul-BG95M3-QPython-EVB-Development-Board-fig-2

ច្រកតភ្ជាប់ BG95M3
ច្រក REPL: REPL តំណាងឱ្យ Read-Eval-Print-Loop (អ្នកបកប្រែអន្តរកម្ម) ។ អ្នកអាចបំបាត់កំហុសកម្មវិធី QuecPython នៅក្នុង REPL ។ Kann python Befehle eingeben (zB 5+3) REPL ខ្លីសម្រាប់ Read-Eval-Print Loop គឺជាបរិយាកាសកម្មវិធីអន្តរកម្មដ៏សាមញ្ញមួយ។ REPL ជាធម្មតាផ្ដល់នូវ Command-Line Interface (CLI) ដែលទទួលការបញ្ចូលរបស់អ្នកប្រើ ញែក និងប្រតិបត្តិវា ហើយបន្ទាប់មកបញ្ជូនលទ្ធផលទៅអ្នកប្រើប្រាស់។ នៅក្នុងលក្ខខណ្ឌនៃមុខងារ និងការប្រើប្រាស់ វាស្រដៀងទៅនឹង Command Prompt (CMD) នៅក្នុង Windows ឬ Shell នៅក្នុង macOS/Linux។

DM ច្រក៖ ច្រកប្រព័ន្ធផ្សព្វផ្សាយឌីជីថល។ សម្រាប់ការ Flash កម្មវិធីបង្កប់។

ចាប់ផ្តើមមុខងារ Qpython និងពាក្យបញ្ជា

ការចុះឈ្មោះបណ្តាញ (នៅក្នុង QPYcom, ច្រក REPL)

នាំចូលសុទ្ធ

  • net.operatorName() ទទួលបានព័ត៌មានប្រតិបត្តិករនៃការចុះឈ្មោះបណ្តាញបច្ចុប្បន្ន។
  • net.getModemFun() វិធីសាស្រ្តនេះត្រូវបានប្រើដើម្បីទទួលបានរបៀបមុខងារបច្ចុប្បន្ននៃម៉ូឌុល។
  • net.getState() ទទួលបានព័ត៌មានចុះឈ្មោះបណ្តាញ។ AT+CREG=?

បង្កើតការហៅទិន្នន័យ

នាំចូលទិន្នន័យការហៅ

dataCall.getInfo(profileលេខសម្គាល់ ipType)

  • # គាំទ្រfileលេខសម្គាល់ - លេខសម្គាល់ PDP, ជួរ 1 ~ 3 ។
  • # ipType – ប្រភេទ IP, 0:IPV4 1:IPV6 2:IPV4&IPV6
  • ប្រសិនបើលទ្ធផលគឺ (1, 0, [0, 0, '0.0.0.0', '0.0.0.0', '0.0.0.0']) វាមានន័យថាបណ្តាញត្រូវបានចុះឈ្មោះរួចហើយ ប៉ុន្តែការហៅទិន្នន័យមិនត្រូវបានកំណត់ទេ។ ឡើង។ dataCall.setPPContext(1,0,'iot.1nce.net',”,”,1) -> ត្រឡប់៖ 0 = ជោគជ័យ
  • បរិបទ PDP ដែលមាន APN សមស្របត្រូវតែកំណត់ដោយយោងតាមក្រុមហ៊ុនផលិតស៊ីមកាត។ (ក្នុងករណីរបស់យើង ក្រុមហ៊ុនផលិតស៊ីមកាតគឺ 1NCE ដូច្នេះអ្នកត្រូវរកមើលការកំណត់ APN សម្រាប់ 1NCE)។

តារាង៖

ការកំណត់តម្លៃ

  • APN៖ iot.1nce.net
  • ឈ្មោះអ្នកប្រើប្រាស់៖ មិនចាំបាច់ទេ ទុកអោយទទេ
  • ពាក្យសម្ងាត់៖ មិនចាំបាច់ទេ ទុកអោយទទេ
  • ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ វិធីសាស្រ្ត៖ ពិធីការផ្ទៀងផ្ទាត់ពាក្យសម្ងាត់ (PAP)
  • អ៊ីនធឺណិត ពិធីការ៖ Internet Protocol កំណែ 4 (IPv4)

dataCall.getPDPContext(1) -> ត្រឡប់៖ 0 = ជោគជ័យ
dataCall.activate(1) -> ត្រឡប់៖ 0 = ជោគជ័យ
dataCall.getInfo(1,0) -> ត្រឡប់៖ (1, 0, [1, 0, '100.69.60.50', '8.8.8.8', '8.8.4.4'])

នាំចូល checkNet
checkNet.waitNetworkReady(60) -> ត្រឡប់៖ (3,1) បណ្តាញរួចរាល់

ឯកសារយោង
https://python.quectel.com/doc/Getting_started/en/index.html
https://python.quectel.com/doc/Application_guide/en/background/iot-and-low-code.html
https://python.quectel.com/doc/API_reference/en/iotlib/dataCall.html

www.tekmodul.de
quectel@tekmodul.de
០១៤៨៦០៧៤-០០៤

ឯកសារ/ធនធាន

ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ tekmodul BG95M3-QPython EVB [pdf] សៀវភៅណែនាំ
ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ BG95M3-QPython EVB, BG95M3-QPython, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍ EVB, ក្រុមប្រឹក្សាអភិវឌ្ឍន៍, ក្រុមប្រឹក្សាភិបាល

ឯកសារយោង

ទុកមតិយោបល់

អាសយដ្ឋានអ៊ីមែលរបស់អ្នកនឹងមិនត្រូវបានផ្សព្វផ្សាយទេ។ វាលដែលត្រូវការត្រូវបានសម្គាល់ *