Ieri abbiamo descritto la breakboard Clipper LTE 4G. Oggi verdremo come usarla attraverso un semplice codice sorgente che usa protocollo PPP.
I lettori più diversamente giovani, come il sottoscritto, ricorderanno sicuramente l’epoca in cui le connessioni modem erano punto-punto, ed occorreva fare le gare, quando alle 22 scattava la tariffa telefonica agevolata, per accaparrarsi i modem in ricezione delle BBS dell’epoca. Allora i fortunati viaggiavano a 2400 bps, con compressione MP4 e correzione d’errore MP5.
Quando Internet iniziò a diffondersi, ed i modem passarono a 9.600, 14.400, 19,200 baud, in grado quindi di maneggiare files grafici di un certo peso, vennero sviluppati due nuovi protocolli per la trasmissione dati: SLIP(Serial Line Internet Protocol) e PPP (Point-toPoint Protocol). Entrambi venivano “mappati” sulla connessione seriale, che connessa al modem consentiva di trasformare i dati digitali in informazioni attraverso la MOdulazione/DEModulazione di una portante (di qul il nome MoDem). Rispetto alla connessione classica, che si basava sul protocollo seriale a carattere, tramite SLIP e PPP era possibile tradurre i segnali in pacchetti TCP/IP, e utilizzare quindi un browser (Mosaic, Netscape o Internet Explorer) per poter simulare l’accesso ad una rete dati.
Internet su linea telefonica
In breve si trattava di utilizzare la linea telefonica come layout dati per la trasmissione di informazioni. Per quanto rudimentale, tale sistema ha funzionato egregiamente per anni, e risulta ancora efficace per la trasmissione dati in tutte quelle zone non coperte da WI-FI.
Nelle telecomunicazioni, il termine LTE, sigla di Long Term Evolution, indica l’evoluzione degli standard di telefonia mobile cellulare
La nostra scheda Clipper, accoppiata ad una scheda dati opportuna, ripropone questo funzionamento (tant’è vero che è utilizzabile anche con la libreria PPP del Raspberry PI OS…).
Vediamo un esempio di utilizzo usando il kernel MicroPython di Pimoroni per RP2350 o 2040 (beta).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import lte import time import requests from machine import Pin, PWM MOBILE_APN = "Your APN Here" # Setting this to True will attempt to resume an existing connection RESUME = False # Fix the eye-searing brightness of the onboard LED with PWM class Netlight: def __init__(self): self.pin = PWM(Pin("LED", Pin.OUT), freq=1000) def value(self, value): self.pin.duty_u16(value * 2000) con = lte.LTE(MOBILE_APN, netlight_led=Netlight(), skip_reset=RESUME) con.start_ppp(connect=not RESUME) # Do some requests! Internet stuff should just work now. try: t_start = time.time() for x in range(2): req = requests.get("https://shop.pimoroni.com/robots.txt") print(req) finally: t_end = time.time() print(f"Took: {t_end - t_start} seconds") print("Disconnecting...") con.stop_ppp() print("Done!") |
Come vedete, il programma è piuttosto semplice:
- Import dei moduli necessari
- Definizione Access Point Name (APN) per l’accesso
- Settaggio di una costante per la definizione del resume di una connessione
- Definizione di una classe per il settaggio del lampeggio LED (e dei suoi consumi)
- Definizione e lancio della connessione e seattivazione del cronometro
- Il cuore del programma lancia due richieste di scarico di un file di testo sul sito Pimoroni (ovviamente l’indirizzo è a piacere)
- NOTA: abbiamo un metodo getter, con un po’ di impegno è semplice progettare un’app con il metodo setter…)
- Il file richiesto (get) viene stampato sul monitor.
- Al termine delle richieste, viene fermato il cronometro e stampato il tempo di connessione…
- …quindi la scheda viene disconnessa,
- …il protocollo viene fermato
- …e viene stampato “Done!” sul monitor
Occhio al tempo di collegamento, a consumo!
Buon divertimento.
Iscriviti ai nostri gruppi Telegram
Link utili