tekmodul-logo

tekmodul BG95M3-QPython EVB Development Board

tekmodul-BG95M3-QPython-EVB-Development-Board

Forskelle fra MicroPython

QuecPython er i det væsentlige MicroPython, der kører på Quectel-moduler. På grund af manglen på en omfattende standardspecifikation i MicroPython, kan de indbyggede biblioteker og brugen af ​​forskellige funktioner variere afhængigt af udviklerne og hardwareplatformene. Nogle QuecPython-brugere har muligvis tidligere erfaring med at udvikle med MicroPython på moduler som ESP32, ESP8266 og STM32. For at lette migreringen for disse brugere er de kendte forskelle mellem QuecPython og MicroPython anført nedenfor:

  • Nogle MicroPython standardbiblioteker eller dedikerede biblioteker, såsom framebuf og netværk, er ikke implementeret eller indbygget i QuecPython.
  • Nogle MicroPython-standardbiblioteker, såsom utime, kan have forskellige implementeringer og funktioner i QuecPython sammenlignet med moduler som ESP32, hvilket resulterer i forskelle i ydeevne eller andre detaljerede karakteristika.
  • Organiseringen af ​​visse funktioner i QuecPython kan afvige fra MicroPython. F.eksample, ADC-funktionalitet er generelt inkluderet i maskinbiblioteket i MicroPython, men i QuecPython er det inkluderet i diverse bibliotek.
  • API'er relateret til specifikke hardwaregrænseflader såsom UART, I2C og SPI har betydelige forskelle mellem MicroPython og QuecPython og kan ikke bruges i flæng.
  • QuecPython inkluderer i øjeblikket ikke upip-funktionaliteten, så hurtig online installation af biblioteker er ikke mulig. Manuel portering er påkrævet.
  • Kompatibilitet med MicroPython IDE-værktøjer såsom Thonny og uPyCraft er ikke garanteret.
  • Sammenfattende kan MicroPython-kode, der kører med succes på moduler som ESP32, normalt ikke direkte kopieres og køres i QuecPython-miljøet uden ændringer. Derfor er det tilrådeligt at undgå direkte at anvende dokumentation og udviklingserfaring fra andre MicroPython-hardwaremoduler til QuecPython-udvikling.

Forskelle fra CPython (normal Python)

  • I modsætning til traditionel CPython-udvikling har QuecPython et meget mindre antal indbyggede biblioteker (standardbiblioteker). Selvom QuecPython inkluderer grundlæggende biblioteker til opgaver såsom tidsindstilling og file ledelse, er mængden væsentligt lavere sammenlignet med CPython. Navnene og brugsmetoderne for disse standardbiblioteker har også mange forskelle og er ikke fuldt ud kompatible.
  • QuecPython har ikke indbygget pip-funktionalitet, så hurtig online installation af biblioteker er ikke mulig. Manuel portering er påkrævet.
  • På grund af syntaksforskellene mellem QuecPython og CPython, samt det faktum, at de fleste QuecPython-biblioteker ikke kan køre på stationære computere, kan værktøjer som VSCode og PyCharm på skrivebordet kun bruges til simpel koderedigering. De udfyldte scripts skal downloades manuelt til modulet for udførelse og fejlretning.
  • Syntaksfremhævningen og kodefuldførelsesfunktionerne leveret af værktøjer som VSCode og PyCharm er baseret på CPython og er muligvis ikke fuldt anvendelige for QuecPython. For begyndere, der ikke har nogen tidligere erfaring med Python-sproget, anbefales det derfor ikke at bruge alt for intelligente IDE-værktøjer, mens de skriver kode, da de indbyggede forslag kan være vildledende.

EVB forbindelse

  • Trin 1: Tilslut EVB
    Tilslut EVB Type-C-porten til din PC USB-port med et USB Type-C-kabel til strømforsyning.
  • Trin 2: Tænd for EVB
    Kortslut de to PWK_AUTO-stifter med en jumperhætte for at tænde for brættet, og det tænder automatisk, eller tryk længe på PWK-knappen efter tænding. Det anbefales, at tidsintervallet mellem tænding og tryk på PWK-knappen skal være mindst 30 ms. Når du har udført ovenstående handlinger, skal du vente på, at strømindikatoren på hovedkortet lyser (LED PWR lyser blåt, PWM lyser grønt, så skal EVB genkendes i Device Manager.).

SIM valg
Til BG95 EVB skal der bruges et NB-IoT SIM-kort. Til test brugte vi 1NCE SIM (det skulle genkende Telekom-netværket, sende SMS og understøtte national roaming).
Værktøjer

QPYcom. Dette værktøj bruges til at fejlfinde kode, analysere logfiler, uploade python-scripts til modulet, downloade firmware, flette firmware og mere. Kan ikke ændre Python-scripts!

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

VS-kode: At skrive Python-scripts. Python-scripts skrevet af VSCode skal senere importeres til QPYcom.

Firmware blinker
Standard AT-firmware eller QuecOpen-firmware downloades normalt til et modul, når modulet forlader fabrikken. Hvis du vil udvikle modulet baseret på QuecPython, skal du manuelt gendownloade den dedikerede QuecPython-firmware ind i det. https://python.quectel.com/en/download
Note: QuecPython kræver en speciel firmware! Det skal blinke separat. Efter flashing af denne firmware, KAN kortet IKKE bruges til AT-kommandomiljøet. Ønskes udvikling med AT-kommandoer, skal den tilsvarende firmware flashes igen.

Example: BG95_M3 QPython Firmware Flash:

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

Portforbindelse BG95M3
REPL Port: REPL står for Read-Eval-Print-Loop (interaktiv tolk). Du kan fejlsøge QuecPython-programmer i REPL. Kann python Befehle eingeben (zB 5+3) REPL, forkortelse for Read-Eval-Print Loop, er et simpelt interaktivt programmeringsmiljø. REPL leverer typisk en Command-Line Interface (CLI), der modtager brugerinput, analyserer og udfører det og derefter returnerer resultaterne til brugeren. Med hensyn til funktionalitet og brug ligner den kommandoprompten (CMD) i Windows eller Shell i macOS/Linux.

DM Havn: Digital medieport. Til firmware-blink.

Opstart af Qpython-funktioner og -kommandoer

Netværksregistrering (i QPYcom, REPL-port)

Import netto

  • net.operatorName() henter operatøroplysningerne for den aktuelle netværksregistrering.
  • net.getModemFun() Denne metode bruges til at opnå modulets aktuelle funktionelle tilstand.
  • net.getState() henter netværksregistreringsoplysningerne. AT+CREG=?

Etabler DataCall

Importer dataopkald

dataCall.getInfo(profileID, ipType)

  • # profileID – PDP ID, område 1~3.
  • # ipType – IP-type,0:IPV4 1:IPV6 2:IPV4&IPV6
  • Hvis outputtet er (1, 0, [0, 0, '0.0.0.0', '0.0.0.0', '0.0.0.0']), betyder det, at netværket allerede er registreret, men dataopkaldet er ikke indstillet op. dataCall.setPDPContext(1,0,'iot.1nce.net',”,”,1) -> return: 0 = vellykket
  • PDP-konteksten med den relevante APN skal indstilles i henhold til SIM-kortproducenten. (I vores tilfælde er SIM-kortproducenten 1NCE, så du skal kigge efter APN-indstillingerne for 1NCE).

Tabel:

Indstilling af værdi

  • APN: iot.1nce.net
  • Brugernavn: Ikke påkrævet. Lad være tom
  • Adgangskode: Ikke påkrævet. Lad være tom
  • Autentificering Metode: Password Authentication Protocol (PAP)
  • Internettet Protokol: Internetprotokol version 4 (IPv4)

dataCall.getPDPContext(1) -> retur: 0 = vellykket
dataCall.activate(1) -> retur: 0 = vellykket
dataCall.getInfo(1,0) -> retur: (1, 0, [1, 0, '100.69.60.50', '8.8.8.8', '8.8.4.4'])

import checkNet
checkNet.waitNetworkReady(60) -> retur: (3,1) netværk klar

Referencer
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
089-904118290

Dokumenter/ressourcer

tekmodul BG95M3-QPython EVB Development Board [pdf] Brugsanvisning
BG95M3-QPython EVB Development Board, BG95M3-QPython, EVB Development Board, Development Board, Board

Referencer

Efterlad en kommentar

Din e-mailadresse vil ikke blive offentliggjort. Påkrævede felter er markeret *