[{"content":"\nIntroduzione In questo test mettiamo a confronto due soluzioni VPS con target di prezzo quasi identico, ma architetture e risorse diametralmente opposte. L'obiettivo è determinare se il passaggio all'architettura Arm64 (Ampere) giustifichi l'abbandono dei provider \"ordinari\" come Linode, Amazon AWS o Digital Ocean. Come stiamo testando: stress-ng Stress-ng non è un semplice benchmark sintetico; è un tool di stress-test progettato per spingere i sottosistemi di un kernel UNIX-like ai propri limiti hardware. Nel nostro caso, lo utilizziamo come test di compilazione pura per valutare la completa reattività della nostra toolchain di sviluppo. CORE METRIC: Compilazione C (GCC) Input: ~300.000 righe di codice C altamente portabile. Target: Generazione di oltre 80 stressor differenti (CPU, memoria, I/O, network). Perché stress-ng è un metodo valido per le VPS? Saturazione della Pipeline: La compilazione di stress-ng richiede un uso intensivo dei registri della CPU e della cache. Rivela immediatamente se il provider sta \"strozzando\" (throttling) i cicli CPU o se i core sono eccessivamente sovrascritti (oversubscribed). Stress della Memoria e MMU: Durante il linking di decine di moduli, la Memory Management Unit viene sollecitata pesantemente. Con solo 1GB (Linode), il kernel è costretto a gestire continuamente i page fault, penalizzando il tempo 'Real'. I/O Deterministico: Scrivere centinaia di file oggetto (.o) temporanei testa la velocità del backend storage (SSD/NVMe) e la latenza del filesystem sotto carico. Real-World Dev Scenario: Per un esperto IoT, questo test simula esattamente ciò che accade quando si compila un kernel personalizzato o un firmware pesante direttamente sul server tramite SSH/Zed. Conclusione Tecnica: Se una VPS impiega 5 minuti per compilare stress-ng, ogni tua interazione con l'IDE remoto subirà micro-lag. Se ne impiega meno di 2, l'esperienza di sviluppo sarà indistinguibile da quella in locale. Un dato importante se stai usando un editor come Vs Code/ZED via SSH per gestire la tua flotta di dispositivi ESP32. PARAMETRI DI CONFRONTO: • LINODE: 1 Core Shared (Intel/AMD) / 1GB RAM / Prezzo ~€5/mese • HETZNER: 2 Core Arm64 (Ampere) / 4GB RAM / Prezzo ~€4.50/mese Nonostante la differenza di RAM sia quadrupla a favore di Hetzner, il confronto ha un senso logico stringente: entrambi i server rappresentano la soglia d'ingresso (entry-level) del rispettivo provider. Per uno sviluppatore IoT/Embedded, il costo mensile è il medesimo, ma l'impatto sulla toolchain (compilazione, indicizzazione LSP in Zed, gestione log) cambia radicalmente la produttività. Inoltra l'idea di usare un server HETZNER con 16 GB RAM diventa immediatamente interessante se vuoi gestire una mini azienda che opera nell'IOT - come noi ;-). I dati del Benchmark: Hetzner vs Linode Test di compilazione reale su stress-ng. Il confronto evidenzia il gap prestazionale tra architetture ARM moderne e istanze legacy condivise.\nProvider / Istanza Tempo di Esecuzione (Real) RAM Architettura Linode (Akamai) 5m 15.082s 1 GB Intel Shared Hetzner Arm64 (Ampere) 1m 34.833s 4 GB ARM (Ampere) RISULTATO NUMERICO: Hetzner Arm64 è 3.3x volte più veloce a parità di costo!\nAnalisi e Verdetto Memory Overhead: La compilazione con GCC su 1GB (Linode) causa paging/swapping aggressivo. Su 4GB (Hetzner), i file temporanei e le tabelle dei simboli risiedono interamente in RAM/Cache, eliminando il bottleneck I/O. Core Efficiency: I core Ampere sfruttano un'architettura Neoverse dedicata. Linode soffre del fenomeno \"noisy neighbor\" su core Intel Xeon frazionati. Remote Dev con Zed: Il server remoto di Zed su ARM64 opera in modo nativo. La riduzione dei tempi di build impatta direttamente sulla reattività del Language Server (LSP). su ZED e Vs CODE. Se usate questi editor per IOT remoto, fate molta attenzione Tra i server VPS economici (ma adatti all\u0026rsquo;IOT) Linode 1GB è tecnicamente obsoleto per carichi di sviluppo. Hetzner Arm64 (Ampere) è la scelta professionale per un workflow IoT basato sul nostro amato Linux ed ESP32.\n","permalink":"https://www.robotdazero.it/blog/linode-vs-hetzner/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/linode-vs-hetzner/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003csection class=\"intro-comparison\"\u003e\n\u003ch3\u003eIntroduzione\u003c/h3\u003e\n\u003cp\u003e\nIn questo test mettiamo a confronto due soluzioni VPS con target di prezzo quasi identico, ma architetture e risorse diametralmente opposte. L'obiettivo è determinare se il passaggio all'architettura \u003cstrong\u003eArm64 (Ampere)\u003c/strong\u003e giustifichi l'abbandono dei provider \"ordinari\" come Linode, Amazon AWS o Digital Ocean.\n\u003c/p\u003e\n\u003csection class=\"tech-explanation\"\u003e\n\u003ch2\u003eCome stiamo testando: stress-ng\u003c/h2\u003e\n\u003cp\u003e\n\u003cstrong\u003eStress-ng\u003c/strong\u003e non è un semplice benchmark sintetico; è un tool di stress-test progettato per spingere i sottosistemi di un kernel UNIX-like ai propri limiti hardware. Nel nostro caso, lo utilizziamo come test di compilazione pura per valutare la completa reattività della nostra toolchain di sviluppo.\n\u003c/p\u003e","title":"Linode vs Hetzner"},{"content":"\nBREAKING: The US Government has begun refunding up to $166 billion in tariffs charged under President Trump after the Supreme Court ruled the policy unlawful.\nBeginning today, businesses can file claims through a new customs system.\nOver 330,000 importers across 53 million… pic.twitter.com/WVdYIfyrPU\n\u0026mdash; The Kobeissi Letter (@KobeissiLetter) April 20, 2026 La notizia: ULTIM\u0026rsquo;ORA: Il governo degli Stati Uniti ha iniziato a rimborsare fino a 166 miliardi di dollari in dazi applicati sotto la presidenza Trump, dopo che la Corte Suprema ha dichiarato illegittima tale politica.\nA partire da oggi, le imprese possono presentare le richieste di rimborso attraverso un nuovo sistema doganale.\nSi stima che oltre 330.000 importatori, per un totale di 53 milioni di spedizioni, abbiano diritto al rimborso.\nUna volta approvati, i rimborsi comprensivi di interessi saranno pagati entro un termine di 60-90 giorni.\nUn breve commento Il classico valzer di Washington: prima si alzano muri doganali come se fossero l\u0026rsquo;unica soluzione ai mali del mondo, poi la Corte Suprema si sveglia con qualche anno di ritardo e ammette che, ops, era tutto illegale.\nIn pratica, il governo americano ha usato le imprese come un bancomat a tasso zero per anni, e ora restituisce il malloppo (con gli interessi, gentilissimi) mentre il resto del pianeta ha già riorganizzato le filiere o è fallito nel frattempo. È l\u0026rsquo;essenza della politica estera USA: agire d\u0026rsquo;impulso, destabilizzare i mercati globali \u0026ldquo;per principio\u0026rdquo; e poi ripulire il casino con un nuovo portale web e tanta burocrazia.\nD\u0026rsquo;altronde, niente dice \u0026ldquo;stabilità internazionale\u0026rdquo; come cambiare le regole del gioco, fare fallire i concorrenti e poi chiedere scusa con un bel bonifico.\nIl \u0026ldquo;Pizzo\u0026rdquo; di Stato sui Semiconduttori (2024-2026) L\u0026rsquo;uso illegittimo dell\u0026rsquo;IEEPA (International Emergency Economic Powers Act) per imporre dazi ha operato come un sovraccarico forzato sulla BOM (Bill of Materials) di ogni progetto IoT sviluppato o importato in USA negli ultimi due anni.\nL\u0026rsquo;impatto sulla BOM Mentre il mercato dei semiconduttori affrontava la transizione verso l\u0026rsquo;AI, i dazi \u0026ldquo;Trumpiani\u0026rdquo; hanno aggiunto un peso morto del 10-25% sui componenti base.\nModuli Radio (LTE-M, NB-IoT): I rincari non sono stati assorbiti dai distributori ma ribaltati direttamente sull\u0026rsquo;utente finale. Per piccoli lotti (1k-5k unità), il costo unitario è salito mediamente di $2.50 - $4.00, rendendo molti nodi sensori economicamente non sostenibili.\nMicrocontrollori \u0026amp; Flash: Anche se i prezzi di produzione calavano (grazie alla sovrapproduzione post-2023), i dazi hanno mantenuto i prezzi \u0026ldquo;import\u0026rdquo; artificialmente alti, impedendo il naturale ribasso tecnologico.\nLo scenario del Rimborso ad Aprile 2026 La Corte Suprema ha sancito che 166 miliardi di dollari devono tornare indietro. Ma ecco il trucco per chi fa hardware:\nChi incassa? I rimborsi vanno all\u0026rsquo;Importer of Record (solitamente i grandi distributori come Mouser, Digikey, o i system integrator).\nIl paradosso del CFO: Secondo i sondaggi attuali, nessuna azienda ha intenzione di ribassare i prezzi di listino retroattivamente o rimborsare i clienti finali (voi). Il rimborso verrà usato per sanare i bilanci aziendali, non per abbassare il costo del tuo prossimo gateway IoT.\nL\u0026rsquo;instabilità normativa è un rischio tecnico tanto quanto un bug nel firmware. In linea con le migliori practice per l\u0026rsquo;IoT industriale, la gestione della supply chain deve essere \u0026ldquo;agnostica\u0026rdquo; rispetto alla geografia politica:\nIl Verdetto: Il governo ha prelevato forzosamente capitale operativo dalle startup hardware per anni. Ora che la giustizia ammette l\u0026rsquo;errore, il sistema doganale CAPE (il nuovo portale di rimborso) servirà solo a restituire liquidità ai giganti della distribuzione, mentre gli sviluppatori hanno già pagato il prezzo del caos con progetti cancellati o margini azzerati. La sovranità tecnologica si ottiene solo quando il tuo hardware è immune ai capricci di un tribunale di Washington o di un tweet presidenziale.\n","permalink":"https://www.robotdazero.it/blog/trump-e-le-tariffe-illegali/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/trump-e-le-tariffe-illegali/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cblockquote class=\"twitter-tweet\"\u003e\u003cp lang=\"en\" dir=\"ltr\"\u003eBREAKING: The US Government has begun refunding up to $166 billion in tariffs charged under President Trump after the Supreme Court ruled the policy unlawful.\u003cbr\u003e\u003cbr\u003eBeginning today, businesses can file claims through a new customs system.\u003cbr\u003e\u003cbr\u003eOver 330,000 importers across 53 million… \u003ca href=\"https://t.co/WVdYIfyrPU\"\u003epic.twitter.com/WVdYIfyrPU\u003c/a\u003e\u003c/p\u003e\u0026mdash; The Kobeissi Letter (@KobeissiLetter) \u003ca href=\"https://twitter.com/KobeissiLetter/status/2046204529897611573?ref_src=twsrc%5Etfw\"\u003eApril 20, 2026\u003c/a\u003e\u003c/blockquote\u003e \u003cscript async src=\"https://platform.twitter.com/widgets.js\" charset=\"utf-8\"\u003e\u003c/script\u003e\n\u003ch2 id=\"la-notizia\"\u003eLa notizia:\u003c/h2\u003e\n\u003cp\u003eULTIM\u0026rsquo;ORA: Il governo degli Stati Uniti ha iniziato a rimborsare fino a 166 miliardi di dollari in dazi applicati sotto la presidenza Trump, dopo che la Corte Suprema ha dichiarato illegittima tale politica.\u003c/p\u003e","title":"Trump e le sue Tariffe Illegali"},{"content":"\nSe vuoi aggiornare un nodo IoT in modalità OTA (Over the Air), dovresti dimenticare i setup da hobbisti. Un calo di tensione durante la scrittura della memoria flash potrebbe rovinare il tuo ESP32 e costringerti a sostituire fisicamente il chip.\nStrategia consigliata: Ogni dispositivo edge distribuito in campo deve implementare un'architettura di memoria a partizioni isolate (Blue-Green Deployment). Inoltre la state-machine di boot deve essere verificata e sicura prima di lanciare l'aggiornamento. In caso di problemi (CRC fail), potrai sempre ricorrere alla partizione 'factory'. La Partition Table Modifica il file partitions.csv e flasha il target direttamente con esptool.py.\n# Name, Type, SubType, Offset, Size, Flags nvs, data, nvs, , 0x4000, otadata, data, ota, , 0x2000, phy_init, data, phy, , 0x1000, factory, app, factory, , 1M, ota_0, app, ota_0, , 1M, ota_1, app, ota_1, , 1M, Analisi dei Blocchi di Memoria Partizione Dimensione Specifica RAW nvs 16 KB Non solo SSID in chiaro. Struttura chiave-valore persistente per certificati x509, chiavi private MQTTS e costanti di calibrazione PID (Kp, Ki, Kd) per il tuning ad anello chiuso. otadata 8 KB Il core del routing OTA. Contiene le struct esp_ota_select_entry_t. Il bootloader (Stage 1) legge qui l'indice della partizione attiva. Fallisce il checksum CRC32? Rollback hardcoded alla partizione factory. factory 1 MB Core intoccabile in silicio. Firmware di fallback di fabbrica. Si avvia solo in caso di disastri critici per ripristinare stack di rete e tunnel di management. ota_0 / ota_1 1 MB Doppio slot per deploy atomici. Il payload viene scaricato e scritto esclusivamente nello slot passivo, dopodiché si aggiorna il puntatore in otadata e si forza il reset. Come implementare la OTA Per gestire l\u0026rsquo;aggiornamento senza rischi, la logica deve essere deterministica:\nil nodo verifica la connessione e interroga il server; se la versione remota è superiore a quella locale, avvia lo streaming del firmware direttamente nello slot di memoria passivo. Non c\u0026rsquo;è spazio per l\u0026rsquo;errore: se il download fallisce o il file è corrotto, il sistema interrompe tutto senza intaccare il firmware attivo.\nSolo a scrittura completata e validata, il bootloader scambia i puntatori e forza un reset hardware, rendendo il passaggio alla nuova versione immediato e sicuro.\nConclusione Senza la struttura A/B (Blue-Green) e un \u0026lsquo;fallback factory\u0026rsquo; blindato, stai creando un sistema programmato per autodistruggersi al primo glitch di rete o calo di tensione: l\u0026rsquo;integrità del nodo deve essere garantita a livello hardware e quindi il bootloader deve agire come un \u0026lsquo;giudice\u0026rsquo; imparziale. Deve quindi essere capace di scartare un firmware corrotto e di riportare la macchina in uno stato operativo noto (Safe State) senza intervento umano.\nSmetti di scrivere codice che \u0026lsquo;spera\u0026rsquo; di finire il download. Implementa l\u0026rsquo;isolamento dei blocchi, segmenta la memoria in modo deterministico e lascia che sia il bootloader a gestire la continuità del servizio. Solo così trasformerai un giocattolo connesso in un vero asset semi professionale.\n","permalink":"https://www.robotdazero.it/blog/guida-bootloader-deterministico-partition-table-raw-esp32/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/guida-bootloader-deterministico-partition-table-raw-esp32/header.jpeg\"\u003e\u003c/p\u003e\n\u003cp\u003eSe vuoi aggiornare un nodo IoT in modalità OTA (Over the Air), dovresti dimenticare i setup da hobbisti. Un calo di tensione durante la scrittura della memoria flash potrebbe rovinare il tuo ESP32 e costringerti a sostituire fisicamente il chip.\u003c/p\u003e\n\u003cdiv class=\"siemens-spec\"\u003e\n\u003cstrong\u003eStrategia consigliata:\u003c/strong\u003e Ogni dispositivo edge distribuito in campo deve implementare un'architettura di memoria a partizioni isolate (Blue-Green Deployment). Inoltre la state-machine di boot deve essere verificata e sicura prima di lanciare l'aggiornamento. In caso di problemi (CRC fail), potrai sempre ricorrere alla partizione 'factory'.\n\u003c/div\u003e\n\u003ch2\u003eLa Partition Table\u003c/h2\u003e\n\u003cp\u003e Modifica il file \u003ccode\u003epartitions.csv\u003c/code\u003e e flasha il target direttamente con esptool.py.\u003c/p\u003e","title":"Come evitare il brick dei nodi IoT: Guida al Bootloader e alle Partition Table ESP32"},{"content":"\nMentre le persone combattono con crisi a ripetizione, un tizio con un patrimonio quasi infinito ha bruciato 80 miliardi di dollari per cercare di venderci un videogioco brutto dove non hai nemmeno le gambe. Il fallimento del Metaverso di Mark Zuckerberg non è un errore di percorso: è il monumento definitivo al delirio di onnipotenza dei nostri presunti geni della tecnologia.\nL’Errore di Calcolo: Zuckerberg ha commesso l\u0026rsquo;errore politico più vecchio del mondo: pensare che il capitale possa sostituire la biologia. Ha cercato di convincere l\u0026rsquo;umanità che vivere dentro un visore di plastica, isolati dal mondo fisico, fosse il futuro. Ma la gente disposta a rinuciare alle interazioni \u0026ldquo;fisiche\u0026rdquo; si aspettava un rendering delle immagini di ben altro livello e non la versione mediocre della sala mensa aziendale. Ha trattato la realtà fisica come un bug da correggere, e la realtà lo ha giustamente schiantato.\nCapitalismo vs Logica In un mercato reale, se bruci 80 miliardi producendo un flop colossale che nessuno usa (tranne i tuoi dipendenti costretti a farlo), dovresti fallire. Invece, nel mondo delle Corporation protette dalle banche, Zuckerberg è ancora lì a decidere il destino di 16.000 lavoratori licenziati per coprire i suoi buchi. È la politica del Too Big to Fail applicata ai social media: il genio non è chi crea, ma chi ha abbastanza soldi per sopravvivere ai propri disastri. E la disponibilità di soldi è legata alle cortesie che sei disposto a fare pur di accontentare i potentati: pensiamo solo al \u0026ldquo;fact checking\u0026rdquo; attuato da Facebook in Italia con Mentana e Puente.\nConclusioni Il vero obiettivo non era l\u0026rsquo;innovazione, ma il controllo totale. Zuckerberg voleva possedere non solo i tuoi dati (come fa con Facebook, Instagram etc etc), ma l\u0026rsquo;aria che respiri digitalmente.\nMentre Zuckerberg inseguiva i suoi avatar senza gambe, il mondo reale continuava a camminare. Il fallimento di ieri, con i suoi 16.000 licenziamenti, è la prova che non puoi costruire un impero sul nulla pneumatico. La tecnologia senza utilità è solo vanità, un costoso miraggio nel deserto dell\u0026rsquo;innovazione. Meta ha inseguito un futuro virtuale a discapito del presente tangibile, dimenticando che il valore si crea risolvendo problemi reali, non inventandone di artificiali. L\u0026rsquo;ossessione per il metaverso ha distratto risorse cruciali da aree dove potevano generare un impatto concreto, come l\u0026rsquo;intelligenza artificiale applicata o il miglioramento delle infrastrutture esistenti. Questo errore colossale dimostra che la \u0026ldquo;visione\u0026rdquo; strategica deve sempre essere ancorata alla realtà e ai bisogni delle persone.\nQuesto fallimento assoluto del Metaverso è morto perché era l\u0026rsquo;idea di un uomo che ha smesso di vivere nel mondo reale molto tempo fa. È la dimostrazione che i miliardi non comprano l\u0026rsquo;intelligenza né il buonsenso; i miliardari non sono necessariamente Steve Jobs, ma più spesso sono Zuckerberg. Per una volta la spazzatura che ci propone ogni giorno colpisce anche lui e il suo accreditamento presso le banche. Posso solo esprimere solidarietà verso i 16.000 dipendenti licenziati, vittime di un maxi-imbecille finanziato da maxi-banche che lucrano su crisi e conflitti locali.\n","permalink":"https://www.robotdazero.it/blog/allucinazione-da-80-miliardi-di-dollari/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/allucinazione-da-80-miliardi-di-dollari/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch3\u003e\u003c/h3\u003e\n\u003cp\u003eMentre le persone combattono con crisi a ripetizione, un tizio con un patrimonio quasi infinito ha bruciato 80 miliardi di dollari per cercare di venderci un videogioco brutto dove non hai nemmeno le gambe. Il fallimento del Metaverso di Mark Zuckerberg non è un errore di percorso: è il monumento definitivo al delirio di onnipotenza dei nostri presunti geni della tecnologia.\u003c/p\u003e\n\u003ch4 id=\"lerrore-di-calcolo\"\u003eL’Errore di Calcolo:\u003c/h4\u003e\n\u003cp\u003eZuckerberg ha commesso l\u0026rsquo;errore politico più vecchio del mondo: pensare che il capitale possa sostituire la biologia. Ha cercato di convincere l\u0026rsquo;umanità che vivere dentro un visore di plastica, isolati dal mondo fisico, fosse il futuro. Ma la gente disposta a rinuciare alle interazioni \u0026ldquo;fisiche\u0026rdquo; si aspettava un rendering delle immagini di ben altro livello e non la versione mediocre della sala mensa aziendale. Ha trattato la realtà fisica come un bug da correggere, e la realtà lo ha \u003cstrong\u003egiustamente schiantato\u003c/strong\u003e.\u003c/p\u003e","title":"Allucinazione da 80 Miliardi di dollari"},{"content":"\nBasta JustPaste.it. Nel 2026 i tuoi appunti devono restare nel tuo browser. Se continui a utilizzare servizi di terze parti per comunicare o memorizzare dati, esponi la tua privacy a rischi significativi. Questi servizi spesso raccolgono, analizzano e utilizzano i tuoi dati per profilazione, pubblicità mirata e persino rivendita a terzi. Perdi il controllo completo su chi ha accesso alle tue informazioni personali e come vengono utilizzate. Inoltre, la dipendenza da questi servizi crea una vulnerabilità in termini di autonomia dei dati. Potrebbero modificare le condizioni d'uso, limitare l'accesso ai tuoi dati o addirittura chiudere improvvisamente, lasciandoti senza accesso ai tuoi appunti e conversazioni. Scegliere alternative open-source e soluzioni di auto-hosting ti permette di proteggere la tua privacy, mantenere il controllo dei dati e garantire accessibilità a lungo termine.\nIl \"Paste-bin\" è un concetto superato. Affidarsi a JustPaste.it o simili significa accettare tre compromessi inaccettabili: latenza, dipendenza da server esterni e zero privacy. Nel 2026, caricare testo su un server remoto solo per rileggerlo dopo cinque minuti è un'inefficienza logica. Una tab del browser trasformata in editor Markdown locale elimina l'intermediario. Niente caricamenti. Niente database altrui. Niente pubblicità. Dati Tecnici: Controllo vs Comodità Apparente FEATURE PASTE-BIN ESTERNO LOCAL TAB NOTES Persistenza Server Terzi LocalStorage / IndexDB Accesso URL Pubblico/Privato Locale (Solo tu) Privacy Zero (Dati in chiaro) Totale (Zero transito) Velocità Dipendente da Rete Istantanea (Offline) Formattazione Limitata Markdown RAW Scegliere il cloud per salvare frettolosamente appunti temporanei? Non è comodità, è una pericolosa scorciatoia. Stai barattando il controllo e l'affidabilità del tuo flusso di lavoro con la promessa illusoria di una soluzione rapida, esponendoti a capricciose interruzioni di servizio e potenziali perdite di dati. Non cedere alla pigrizia tecnica: investi in una gestione degli appunti robusta e indipendente.\nIl programma Python e la Filosofia \"No Cloud\" Il tuo browser è il tuo spazio personale sul web, un ambiente intimo e controllato dove puoi navigare ed interagire con il mondo online in totale libertà. Immagina una nuova scheda come un blocco note digitale sempre a portata di mano, che cattura istantaneamente i tuoi pensieri e le tue idee, salvando automaticamente ogni parola che scrivi. La bellezza di questo sistema risiede nella sua privacy: i tuoi dati rimangono confinati all'interno del tuo browser, custoditi gelosamente anche se chiudi la scheda o l'intera applicazione. Nessuna informazione sensibile viene trasmessa online, garantendoti un'esperienza di navigazione sicura e completamente riservata. Uno screenshot della app Come installare e lanciare il programma git clone --filter=blob:none --no-checkout https://github.com/sebadima/public cd public git sparse-checkout set justpaste_env git checkout master pip install -r requirements.txt make oppure scrivi \"python3 main.py\" Download Rapido Se non hai Git o non vuoi configurare chiavi SSH, scarica il nostro pacchetto \"public\" completo con un click. Scarica justpaste_env.zip Come lanciare il programm Scrivi \u0026ldquo;make\u0026rdquo; sul terminale Linux e quindi vai su \u0026ldquo;http://127.0.0.1:5000/\u0026rdquo;\nResilienza e Markdown RAW Dimentica le UI pesanti. Un programma minimale per appunti su tab usa script leggeri (Python per il serving locale, JS minimale per la logica) per garantirti un ambiente di scrittura efficace senza fronzoli e senza features complicatissime che non userai mai. Se il sistema deve essere field-ready, deve funzionare anche senza connessione. Gli appunti su tab sono pronti all'uso in ogni condizione, eliminando il debito tecnico dei tool \"sempre connessi\". Didattica vs Produzione I paste-bin pubblici sono per chi deve condividere codice una tantum in chat. Per chi lavora in modo professionale e sicuro, il \"Distacco\" dai servizi cloud è l'unica via per la stabilità del workflow. Manifesto tecnico:\nAffidare appunti operativi a server di terze parti non è una scelta pratica. È una vulnerabilità strutturale nel tuo flusso di lavoro. Conclusione: Riprenditi i tuoi dati Trasferire le operazioni di editing direttamente nella tab del tuo browser non è semplicemente un miglioramento dell'esperienza utente, ma una rivoluzione silenziosa. Significa riappropriarti del controllo sui tuoi dati, elevandoti da semplice utente a sovrano digitale del tuo stesso contenuto, in un'era in cui la privacy è un bene sempre più prezioso.\nDEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY CONCLUSIONE OPERATIVA: SOVRANITÀ DIGITALE O SCHIAVITÙ CLOUD\nNel 2026, l\u0026rsquo;uso di paste-bin esterni non è una scelta pratica, è un fallimento metodologico. Affidare dati operativi a server di terzi crea vulnerabilità strutturali, latenza inutile e perdita di controllo. Il \u0026ldquo;Distacco\u0026rdquo; dai servizi centralizzati non è un\u0026rsquo;opzione, ma un requisito deterministico per chiunque progetti sistemi resilienti.\nPer noi il miglior workflow accettabile è Local-First:\nEsecuzione su 127.0.0.1 (Zero transito dati). Persistenza locale (LocalStorage / IndexDB). Formato Markdown RAW (Universalità e portabilità). ","permalink":"https://www.robotdazero.it/blog/note-su-tab-browser-lalternativa-minimalista-e-privata-ai-paste-bin/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/note-su-tab-browser-lalternativa-minimalista-e-privata-ai-paste-bin/cover.png\"\u003e\u003c/p\u003e\n\u003cdiv style=\"display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 20px;\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/last-commit/sebadima/public/master?style=for-the-badge\u0026color=87ff00\u0026logo=github\u0026label=ULTIMO%20COMMIT\" alt=\"Commit\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/repo-size/sebadima/public?style=for-the-badge\u0026color=007ec6\u0026logo=ubuntu\u0026label=DIMENSIONE\" alt=\"Size\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/languages/count/sebadima/public?style=for-the-badge\u0026color=ff7034\u0026label=LINGUAGGI\" alt=\"Lang\"\u003e\n\u003c/div\u003e\n\u003cp\u003e\u003cbr\u003e\u003cbr\u003e\u003c/p\u003e\n\u003carticle\u003e\n   \u003cheader\u003e\n      \u003ch1\u003eBasta JustPaste.it. Nel 2026 i tuoi appunti devono restare nel tuo browser.\u003c/h1\u003e\n      \u003cp\u003eSe continui a utilizzare servizi di terze parti per comunicare o memorizzare dati, esponi la tua privacy a rischi significativi. Questi servizi spesso raccolgono, analizzano e utilizzano i tuoi dati per profilazione, pubblicità mirata e persino rivendita a terzi. Perdi il controllo completo su chi ha accesso alle tue informazioni personali e come vengono utilizzate. Inoltre, la dipendenza da questi servizi crea una vulnerabilità in termini di autonomia dei dati. Potrebbero modificare le condizioni d'uso, limitare l'accesso ai tuoi dati o addirittura chiudere improvvisamente, lasciandoti senza accesso ai tuoi appunti e conversazioni. Scegliere alternative open-source e soluzioni di auto-hosting ti permette di proteggere la tua privacy, mantenere il controllo dei dati e garantire accessibilità a lungo termine.\u003c/p\u003e","title":"Note su Tab Browser: L'alternativa Minimalista e Privata ai Paste-bin"},{"content":"\nIl software moderno è affetto da una patologia cronica: la comodità. I framework tentano di indovinare le intenzioni dello sviluppatore, introducendo dipendenze non richieste che rompono il determinismo. Il problema di Cursor, Continue e dei loro simili non è che non funzionano, ma che introducono rumore elettrico tra lo sviluppatore e il ferro. La loro complessità è inutile e pericolosa. Questi tool indicizzano migliaia di file creando database vettoriali pesanti solo per tentare di indovinare cosa vuoi scrivere. Risultato: lag, consumo di RAM e risposte spesso vaghe.\nLa via \"Diretta\" Il tuo attuatore.py legge solo ciò che serve, quando serve. È deterministico, non statistico, non costa nulla e non ti costringe a pagare due volte un abbonamento che gia possiedi con Gemini AI o Vertex di Google Cloud. 2. Interfacce \"Soft\" per Problemi \"Hard\" Cursor propone tasti come \"Apply\", \"Chat\" e \"Composer\" che nascondono i comandi reali. Ti rendono dipendente dalla loro UI. Se Cursor chiude i battenti domani, sei paralizzato. Questo approccio crea una barriera all'apprendimento di strumenti fondamentali e flussi di lavoro sottostanti. Immagina di dover tornare a un editor di testo standard o a un IDE senza queste scorciatoie proprietarie: la tua produttività crollerebbe. È come imparare a guidare solo un'auto con cambio automatico super assistito e poi ritrovarsi di fronte a un'auto con cambio manuale senza sapere come usare la frizione. Invece di automatizzare e astrarre, dovremmo concentrarci sull'apprendimento dei comandi di base e sulla comprensione dei processi, garantendo la nostra indipendenza e trasferibilità delle competenze.\n\u003e La via più DIRETTA: Usare Sublime Text o un editor qualsiasi e uno script Python di 50 righe significa possedere lo strumento e non essere un ospite di VS Code: sei il padrone della tua toolchain in Python. L'Architettura della toolchain Ho implementato un ecosistema diviso in quattro file python dove ogni componente ha uno scopo specifico e chiaro. Niente astrazioni su paradigmi come accade con \"Cursor\" e \"Conitnue.dev\" ma semplici algoritmi.\n1. L'Attuatore (attuatore.py) Il braccio armato. Si interfaccia direttamente con Gemini 2.0 Flash per riscrivere i file sul disco. Include un filtro \"anti-allucinazione\" per eliminare i tripli backticks (```) e straberie del Markdown (AI) che corromperebbero l'esecuzione del server Flask.\nattuatore.py import os, requests, json, sys import config URL = f\u0026#34;https://generativelanguage.googleapis.com/v1beta/models/{config.MODEL}:generateContent?key={config.API_KEY}\u0026#34; def get_context(): ctx = \u0026#34;\u0026#34; for root, _, files in os.walk(\u0026#34;.\u0026#34;): if any(x in root for x in config.EXCLUDE_DIRS): continue for f in files: if f.endswith(config.EXTENSIONS): p = os.path.join(root, f) try: with open(p, \u0026#39;r\u0026#39;, encoding=\u0026#39;utf-8\u0026#39;) as s: ctx += f\u0026#34;FILE:{p}\\n{s.read()}\\nEND_FILE\\n\u0026#34; except: pass return ctx def run(): query = sys.argv[1] if len(sys.argv) \u0026gt; 1 else \u0026#34;Analizza il codice e proponi miglioramenti.\u0026#34; context = get_context() prompt = f\u0026#34;\u0026#34;\u0026#34;ROLE: IoT/Web Expert. STYLE: RAW, Brutal, Technical. TASK: Modify or analyze the code based on the QUEST. FORMAT: If modifying, respond ONLY with: ---START_WRITE:filepath--- content ---END_WRITE--- IMPORTANT: DO NOT USE MARKDOWN (```). WRITE RAW CODE DIRECTLY. CONTEXT: {context} QUEST: {query}\u0026#34;\u0026#34;\u0026#34; try: r = requests.post(URL, json={\u0026#34;contents\u0026#34;: [{\u0026#34;parts\u0026#34;: [{\u0026#34;text\u0026#34;: prompt}]}]}) r.raise_for_status() res = r.json()[\u0026#39;candidates\u0026#39;][0][\u0026#39;content\u0026#39;][\u0026#39;parts\u0026#39;][0][\u0026#39;text\u0026#39;] if \u0026#34;---START_WRITE:\u0026#34; in res: parts = res.split(\u0026#34;---START_WRITE:\u0026#34;)[1:] for p in parts: header, body = p.split(\u0026#34;---\u0026#34;, 1) fname = header.strip() content = body.split(\u0026#34;---END_WRITE---\u0026#34;)[0].strip() # FILTRO ANTI-PAGLIACCIO: Rimuove allucinazioni Markdown clean_content = [] for line in content.splitlines(): if not line.strip().startswith(\u0026#34;```\u0026#34;): clean_content.append(line) with open(fname, \u0026#39;w\u0026#39;, encoding=\u0026#39;utf-8\u0026#39;) as f: f.write(\u0026#34;\\n\u0026#34;.join(clean_content)) print(f\u0026#34;DONE: {fname} aggiornato (clean).\u0026#34;) else: print(res) except Exception as e: print(f\u0026#34;ERRORE API: {e}\u0026#34;) if __name__ == \u0026#34;__main__\u0026#34;: run() Copy 2. Il Meccanico (healer.py) Un supervisore asincrono con logica di Watchdog. Lancia il server, lo monitora per 5 secondi critici e, se rileva un'uscita anomala, invia lo stderr all'Attuatore per il fix immediato.\nhealer.py import subprocess import sys import os import time import asyncio async def run_and_repair(target_file): print(f\u0026#34;--- FASE DI TEST: {target_file} ---\u0026#34;) if target_file == \u0026#34;server.py\u0026#34;: # Lancia server.py in background cmd = [sys.executable, target_file] proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) # Monitora per 5 secondi in modo asincrono try: await asyncio.wait_for(asyncio.sleep(5), timeout=5) if proc.poll() is None: print(\u0026#34;ESITO: Successo. Il server è attivo da almeno 5 secondi.\u0026#34;) print(\u0026#34;SERVER_STABILE\u0026#34;) # Aggiunto print per segnalare server stabile return True else: print(\u0026#34;ESITO: Crash rilevato dopo il timeout!\u0026#34;) stdout, stderr = proc.communicate() print(f\u0026#34;LOG:\\n{stderr}\u0026#34;) error_msg = stderr.replace(\u0026#39;\u0026#34;\u0026#39;, \u0026#39;\\\\\u0026#34;\u0026#39;) repair_quest = f\u0026#34;Il file {target_file} crasha con questo errore: {error_msg}. Riparalo mantenendo la logica RAW.\u0026#34; print(f\u0026#34;--- ATTIVAZIONE RIPARAZIONE VIA 101.py ---\u0026#34;) subprocess.run([sys.executable, \u0026#34;101.py\u0026#34;, repair_quest]) return False except asyncio.TimeoutError: if proc.poll() is None: print(\u0026#34;ESITO: Successo. Il server è attivo da almeno 5 secondi (Timeout).\u0026#34;) print(\u0026#34;SERVER_STABILE\u0026#34;) # Aggiunto print per segnalare server stabile return True else: print(\u0026#34;ESITO: Crash rilevato durante il timeout!\u0026#34;) stdout, stderr = proc.communicate() print(f\u0026#34;LOG:\\n{stderr}\u0026#34;) error_msg = stderr.replace(\u0026#39;\u0026#34;\u0026#39;, \u0026#39;\\\\\u0026#34;\u0026#39;) repair_quest = f\u0026#34;Il file {target_file} crasha con questo errore: {error_msg}. Riparalo mantenendo la logica RAW.\u0026#34; print(f\u0026#34;--- ATTIVAZIONE RIPARAZIONE VIA 101.py ---\u0026#34;) subprocess.run([sys.executable, \u0026#34;101.py\u0026#34;, repair_quest]) return False except Exception as e: print(f\u0026#34;ERRORE DURANTE IL MONITORAGGIO: {e}\u0026#34;) return False else: # Esegue il file e cattura stderr (per altri file) cmd = [sys.executable, target_file] proc = subprocess.run(cmd, capture_output=True, text=True) if proc.returncode == 0: print(\u0026#34;ESITO: Successo. Il codice gira senza errori.\u0026#34;) return True print(f\u0026#34;ESITO: Crash rilevato!\\nLOG:\\n{proc.stderr}\u0026#34;) # Prepara la QUEST per 101.py error_msg = proc.stderr.replace(\u0026#39;\u0026#34;\u0026#39;, \u0026#39;\\\\\u0026#34;\u0026#39;) repair_quest = f\u0026#34;Il file {target_file} crasha con questo errore: {error_msg}. Riparalo mantenendo la logica RAW.\u0026#34; # Chiama l\u0026#39;attuatore 101.py per il fix print(f\u0026#34;--- ATTIVAZIONE RIPARAZIONE VIA 101.py ---\u0026#34;) subprocess.run([sys.executable, \u0026#34;101.py\u0026#34;, repair_quest]) return False if __name__ == \u0026#34;__main__\u0026#34;: if len(sys.argv) \u0026lt; 2: print(\u0026#34;Errore: Specifica il file da testare/riparare.\u0026#34;) else: asyncio.run(run_and_repair(sys.argv[1])) Copy 3. Il Server (server.py) Il nucleo operativo. Spogliato di dotenv e altre dipendenze inutili. Implementa una ricerca dinamica delle porte per garantire l'uptime anche in caso di collisioni di rete [cite: 2026-02-10].\nfrom flask import Flask, request, send_from_directory import json import os import socket os.environ[\u0026#34;FLASK_SKIP_DOTENV\u0026#34;] = \u0026#34;1\u0026#34; app = Flask(__name__, static_folder=\u0026#39;.\u0026#39;) DATA_FILE = \u0026#34;data.json\u0026#34; # Rotta per servire i file HTML/CSS/JS dalla root @app.route(\u0026#39;/\u0026#39;) @app.route(\u0026#39;/ \u0026lt;path:path\u0026gt; \u0026#39;) def serve_file(path=\u0026#39;index.html\u0026#39;): return send_from_directory(\u0026#39;.\u0026#39;, path) @app.route(\u0026#39;/submit\u0026#39;, methods=[\u0026#39;POST\u0026#39;]) def submit(): try: data = request.form.to_dict() records = [] if os.path.exists(DATA_FILE): with open(DATA_FILE, \u0026#39;r\u0026#39;, encoding=\u0026#39;utf-8\u0026#39;) as f: records = json.load(f) records.append(data) with open(DATA_FILE, \u0026#39;w\u0026#39;, encoding=\u0026#39;utf-8\u0026#39;) as f: json.dump(records, f, indent=4) return \u0026#34;DATO SALVATO\u0026#34;, 200 except Exception as e: return str(e), 500 def find_available_port(start_port=5000, max_attempts=100): \u0026#34;\u0026#34;\u0026#34;Trova una porta disponibile a partire da start_port.\u0026#34;\u0026#34;\u0026#34; for port in range(start_port, start_port + max_attempts): try: with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: s.bind((\u0026#39;0.0.0.0\u0026#39;, port)) return port except OSError: # La porta è in uso, prova la successiva pass raise Exception(\u0026#34;Nessuna porta disponibile trovata nell\u0026#39;intervallo specificato.\u0026#34;) if __name__ == \u0026#39;__main__\u0026#39;: try: port = find_available_port() print(f\u0026#34;Server attivo su http://192.168.1.142:{port}\u0026#34;) app.run(host=\u0026#39;0.0.0.0\u0026#39;, port=port, debug=False) except Exception as e: print(f\u0026#34;Errore: {e}\u0026#34;) Copy 4. Il Config (config.py) config.py API_KEY = \u0026#34;LE_TUE_API_DI_GREMINI\u0026#34; MODEL = \u0026#34;gemini-2.0-flash\u0026#34; EXTENSIONS = (\u0026#39;.py\u0026#39;, \u0026#39;.c\u0026#39;, \u0026#39;.h\u0026#39;, \u0026#39;.json\u0026#39;, \u0026#39;.yaml\u0026#39;, \u0026#39;.sh\u0026#39;, \u0026#39;.html\u0026#39;, \u0026#39;.css\u0026#39;) EXCLUDE_DIRS = [\u0026#34;.git\u0026#34;, \u0026#34;__pycache__\u0026#34;, \u0026#34;.continue\u0026#34;] Copy Test sul campo: Healing in diretta Durante il burn-in test, l'AI ha introdotto un errore di sintassi: records.app end. Il risultato?\n(w) lenovo ~/microsito (master)$ python3 healer.py server.py --- FASE DI TEST: server.py --- ESITO: Crash rilevato durante il timeout! LOG: File \u0026#34;/home/sebadima/microsito/server.py\u0026#34;, line 20 data = request.form.to _dict() ^^^^^ SyntaxError: invalid syntax --- ATTIVAZIONE RIPARAZIONE VIA 101.py --- DONE: server.py aggiornato (clean). Copy healer.py ha rilevato il SyntaxError istantaneamente. Il log di errore è stato passato a 101.py. Il codice è stato corretto, ripulito e salvato. Il server è tornato online in meno di 10 secondi. Questo è il vero vantaggio competitivo: mentre la concorrenza debugga manualmente, il mio sistema evolve e si corregge da solo.\nDEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY Conclusioni Il punto non è “usare l’AI per scrivere codice”. Il punto è controllare l’AI come si controlla un attuatore industriale: input chiaro, output verificabile, ciclo chiuso di feedback. In questo progetto il modello non è un oracolo creativo, ma un componente della pipeline. Non decide, non astrae, non impone workflow: esegue ed è il contraio esatto della filosofia dei Cursor o Continue.\nIl paradigma del Self-Healing che abbiamo costruito non è magia statistica. È ingegneria:\nUn Attuatore che scrive codice in formato RAW, senza UI intermediarie. Un Meccanico che osserva, testa e reagisce in modo deterministico. Un Server minimale che privilegia uptime e semplicità strutturale. Una configurazione esplicita, leggibile, modificabile, portabile. Il risultato è un ciclo chiuso:\nErrore → Log → AI → Patch → Test → Stabilità Questo è controllo. Questo è possesso della toolchain.\nNel mondo IoT e Industrial, dove un crash non è solo un fastidio ma può significare fermo macchina, perdita dati o downtime di rete, l’idea di un sistema che rileva, analizza e corregge in autonomia diventa un vantaggio competitivo reale. Non è un plugin. È un’architettura.\nLa vera rivoluzione non è avere un assistente che suggerisce codice mentre scrivi. È avere un sistema in grado di:\nmonitorare continuamente lo stato del software, interpretare gli errori come segnali elettrici, applicare correzioni mirate, verificare la stabilità prima di dichiarare successo. È la trasposizione del concetto di watchdog hardware nel dominio software potenziato dall’AI. È embedded thinking applicato al cloud.\nOggi è un server Flask che si auto-ripara. Domani può essere un nodo IoT che aggiorna il firmware in modo intelligente, un gateway industriale che corregge configurazioni errate, una pipeline CI/CD che si stabilizza autonomamente prima del deploy su Github. Questo è solo il primo passo verso un’infrastruttura software che non aspetta l’intervento umano per sopravvivere. ong\u003eSelf-Healing non è automazione. È resilienza programmata. E quando la resilienza diventa parte della tua architettura, non stai più semplicemente scrivendo codice: stai costruendo sistemi che evolvono.\nProssimo step: Espansione della telemetria Sentinel Node.\nConclusione: Dal Debug al Determinismo Il punto non è “usare l’AI per scrivere codice”. Il punto è controllare l’AI come si controlla un attuatore industriale: input chiaro, output verificabile, ciclo chiuso di feedback. In questo progetto il modello non è un oracolo creativo, ma un componente della pipeline. Non decide, non astrae, non impone workflow: esegue.\nIl paradigma del Self-Healing che abbiamo costruito non è magia statistica. È ingegneria:\nUn Attuatore che scrive codice in formato RAW, senza UI intermediarie. Un Meccanico che osserva, testa e reagisce in modo deterministico. Un Server minimale che privilegia uptime e semplicità strutturale. Una configurazione esplicita, leggibile, modificabile, portabile. Il risultato è un ciclo chiuso:\nErrore → Log → AI → Patch → Test → Stabilità Questo è controllo. Questo è possesso della toolchain.\nNel mondo IoT e Industrial, dove un crash non è solo un fastidio ma può significare fermo macchina, perdita dati o downtime di rete, l’idea di un sistema che rileva, analizza e corregge in autonomia diventa un vantaggio competitivo reale. Non è un plugin. È un’architettura.\nLa vera rivoluzione non è avere un assistente che suggerisce codice mentre scrivi. È avere un sistema che:\nmonitora continuamente lo stato del software, interpreta gli errori come segnali elettrici, applica correzioni mirate, verifica la stabilità prima di dichiarare successo. È la trasposizione del concetto di watchdog hardware nel dominio software potenziato dall’AI. È embedded thinking applicato al cloud.\nIn un ecosistema dominato da strumenti pesanti, interfacce opache e dipendenze nascoste, questa architettura dimostra che bastano pochi file Python e una API ben orchestrata per costruire un sistema resiliente, portabile e sotto pieno controllo dello sviluppatore.\nIl futuro non appartiene agli ambienti che “indovinano”. Appartiene ai sistemi che misurano, reagiscono e si adattano in modo riproducibile.\nLa differenza è sottile ma fondamentale: non stiamo delegando il nostro lavoro all’AI. Stiamo integrando l’AI come un componente deterministico di un ciclo ingegneristico. È un cambio di mentalità.\nOggi è un server Flask che si auto-ripara. Domani può essere:\nun nodo IoT che aggiorna il firmware in modo intelligente, un gateway industriale che corregge configurazioni errate, una pipeline CI/CD che si stabilizza autonomamente prima del deploy. Questo è solo il primo passo verso un’infrastruttura software che non aspetta l’intervento umano per sopravvivere. Self-Healing non è automazione. È resilienza programmata. E quando la resilienza diventa parte della tua architettura, non stai più semplicemente scrivendo codice: stai costruendo sistemi che evolvono.\n","permalink":"https://www.robotdazero.it/blog/self-healing-python-come-costruire-un-sistema-di-auto-riparazione-del-codice-per-iot/","summary":"\u003cbr\u003e\n\u003cp\u003e\u003cimg alt=\"immagine copertina del post su - come costruire un sistema di auto-riparazione del codice python\" loading=\"lazy\" src=\"/blog/self-healing-python-come-costruire-un-sistema-di-auto-riparazione-del-codice-per-iot/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\u003cbr\u003e\u003cbr\u003e\n\u003csection\u003e\n   \u003cp\u003eIl software moderno è affetto da una patologia cronica: la \u003cstrong\u003ecomodità\u003c/strong\u003e. I framework tentano di indovinare le intenzioni dello sviluppatore, introducendo dipendenze non richieste che rompono il determinismo. Il problema di Cursor, Continue e dei loro simili non è che non funzionano, ma che introducono \u003cstrong\u003erumore elettrico\u003c/strong\u003e tra lo sviluppatore e il ferro. La loro complessità è inutile e pericolosa. Questi tool indicizzano migliaia di file creando database vettoriali pesanti solo per tentare di indovinare cosa vuoi scrivere. Risultato: lag, consumo di RAM e risposte spesso vaghe.\u003c/p\u003e","title":"Self-Healing Python: Come costruire un sistema di auto-riparazione del codice"},{"content":"\nArduino è finito. Nel 2026 usare ATmega328P è una scelta tecnica realmente sbagliata Se il tuo dispositivo deve restare acceso mesi, parlare con il cloud e non perdere dati, Arduino non è lo strumento giusto.\n1. 16MHz non sono “romantici”. Sono un limite strutturale. L'ATmega328P è un microcontrollore a 8 bit con 16MHz di clock e 2KB di SRAM. Nel 2009 era accettabile. Nel 2026 è un collo di bottiglia. TLS, HTTPS, JSON, OTA, MQTT sicuro, parsing strutture dati moderne: tutto questo su 2KB di RAM significa lavorare costantemente al limite. Significa debug intermittenti. Significa crash non deterministici. L’ESP32 è un 32-bit Dual Core a 240MHz con 520KB di SRAM. Un core gestisce Wi-Fi e Bluetooth. L’altro esegue la tua logica applicativa. Separazione dei task. Determinismo. Stabilità. Se vuoi vedere cosa significa lavorare in modo moderno, guarda un esempio concreto: server web embedded su ESP32 . Questo è il livello minimo richiesto oggi. 2. Dati tecnici. Nessuna opinione. FEATURE ARDUINO UNO (R3) ESP32-WROOM Architettura 8-bit (AVR) 32-bit (Xtensa LX6) Clock Speed 16 MHz 240 MHz (Dual Core) SRAM 2 KB 520 KB Flash Memory 32 KB 4 MB (Espandibile) Wireless Nessuno Wi-Fi + BT/BLE Hardware WDT Basic Avanzato (Task-level) Prezzo medio ~20-25€ ~5-8€ Paghi di più. Hai meno potenza. Non hai connettività. E devi aggiungere moduli esterni. Non è nostalgia. È inefficienza tecnica.\n3. Le SD si corrompono. Sempre. Arduino + modulo SD economico è una combinazione fragile. Power-loss? File system danneggiato. Log persi. Intervento manuale. ESP32 permette filesystem nativo (LittleFS) su flash interna. Ma il salto reale è usare memoria pSLC. Maggiore resistenza. Più cicli di scrittura. Recovery reale dopo interruzioni di corrente. Questo approccio è già applicato in hardware progettato per uso serio, come la scheda multifunzione per ESP32 . Non è prototipazione. È infrastruttura. 4. Sicurezza e watchdog: differenza tra demo e prodotto Arduino non nasce per sicurezza avanzata. L’ESP32 integra accelerazione hardware AES, SHA-2, RSA. TLS reale senza saturare la CPU. Ma il punto non è solo la crittografia. È la resilienza. L’Hardware Watchdog Timer dell’ESP32 monitora task e sistema. Se qualcosa si blocca, il nodo riparte. Automaticamente. In ambienti industriali devi anche considerare disturbi elettrici ed EMI. Qui trovi un’analisi reale su ESP32, I2C ed EMI in ambito industriale . Questo è il livello a cui si gioca quando l’uptime conta. DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY 5. Arduino è didattica. ESP32 è produzione. Arduino è perfetto per: scuole laboratori base introduzione all’elettronica Non è pensato per: nodi IoT sempre accesi telemetria cloud logging continuo ambienti rumorosi scalabilità Manifesto tecnico:\nSe nel 2026 progetti un sistema con ATmega328P per un'applicazione connessa, non stai facendo una scelta conservativa. Stai introducendo un debito strutturale. Conclusione: cambia paradigma L’ESP32 non è “più potente”. È l’ingresso minimo nel mondo embedded moderno. Se il tuo dispositivo deve restare acceso mesi, loggare dati senza corruzione e non richiedere intervento umano, devi progettare per resilienza. ","permalink":"https://www.robotdazero.it/blog/da-arduino-a-esp32-perche-il-vecchio-atmega328p-non-basta-piu-nel-2026/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/da-arduino-a-esp32-perche-il-vecchio-atmega328p-non-basta-piu-nel-2026/cover.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003carticle\u003e\n   \u003cheader\u003e\n      \u003ch1\u003eArduino è finito. Nel 2026 usare ATmega328P è una scelta tecnica realmente sbagliata\u003c/h1\u003e\n      \u003cp\u003e\u003cstrong\u003eSe il tuo dispositivo deve restare acceso mesi, parlare con il cloud e non perdere dati, Arduino non è lo strumento giusto.\u003c/strong\u003e\u003c/p\u003e\n   \u003c/header\u003e\n   \u003csection\u003e\n      \u003ch2\u003e1. 16MHz non sono “romantici”. Sono un limite strutturale.\u003c/h2\u003e\n      \u003cp\u003e\n         L'ATmega328P è un microcontrollore a 8 bit con 16MHz di clock e 2KB di SRAM.\n         Nel 2009 era accettabile. Nel 2026 è un collo di bottiglia.\n      \u003c/p\u003e","title":"Da Arduino a ESP32: Perché il vecchio ATmega328P non basta più nel 2026"},{"content":"Cosa è Arduino Simulator? Arduino Simulator è un sofisticato simulatore Arduino che viene eseguito nel browser web senza bisogno di installare alcun applicativo. È stato scritto da Leonardo Russo usando il linguaggio JavaScript ed è in grado di simulare l’esecuzione del codice e lo stato dei pin digitali e analogici. Funziona per varie schede Arduino, ovvero Arduino UNO R3, MEGA2560 e NANO V3. Arduino Simulator in esecuzione su un browser web In passato su Robotdazero abbiamo già accennato nelle news riguardo a Wokwi (per ESP32, Pi Pico, STM32) un grande strumento per emulare i circuiti che supporta anche l’ ESP32-P4. Arduino Simulator è però completamente open-source e funziona interamente in un browser web. Arduino Simulator non è complesso e completo come Wokwi, in quanto non si possono costruire dei circuiti, ma possiede un’area per scrivere codice utente e salvarlo localmente. Fornisce inoltre delle icone per pin digitali (rosso = basso, verde = alto) e pin analogici (valore da 0 a 255) e un monitor seriale con un campo che consente di inviare comandi esattamente come si può fare con Arduino/ESP32. Un programma di test // --- COPIA E INCOLLA NEL SIMULATORE --- int counter = 0; void setup() { Serial.begin(9600); } void loop() { Serial.println(counter); counter = counter + 1; delay(10); // molto più veloce } Perchè usare Arduino Simulator Sviluppato da Leonardo Russo e disponibile su GitHub, Arduino Simulator è un simulatore di Arduino scritto interamente in JavaScript che si esegue direttamente nel tuo browser web, senza la necessità di installare software aggiuntivi. Questo significa che puoi iniziare a programmare e testare i tuoi sketch in pochi secondi, ovunque tu sia, e con qualsiasi dispositivo, purché dotato di un browser moderno. A differenza di altre soluzioni che richiedono un’installazione o una connessione a server remoti, Arduino Simulator funziona interamente offline una volta caricata la pagina. Questa caratteristica lo rende particolarmente utile in contesti con connettività limitata o in paesi dove l’accesso a componenti hardware può essere difficile. Arduino Simulator in un browser web Ubuntu Attualmente, il simulatore supporta le schede più popolari:\nArduino UNO R3 Arduino MEGA2560 Arduino NANO V3 Funzionalità principali Pur non essendo un’alternativa completa a piattaforme più complesse come Wokwi, che permette di costruire circuiti virtuali, Arduino Simulator si concentra su ciò che conta davvero: l’esecuzione del codice e il monitoraggio dello stato della scheda. Ecco un riepilogo delle sue funzionalità chiave:\nEditor di codice integrato: Puoi scrivere, modificare e salvare i tuoi sketch direttamente nel browser. I file vengono salvati localmente, così non perdi il tuo lavoro. Visualizzazione dello stato dei pin: Il simulatore fornisce un feedback visivo immediato sullo stato dei pin digitali (segnale verde per HIGH, rosso per LOW) e analogici (valori numerici da 0 a 255). Questa è una funzione cruciale per il debug e la comprensione del funzionamento del tuo programma. Monitor seriale: Simula il monitor seriale reale, permettendoti di visualizzare i dati in uscita e, soprattutto, di inviare comandi alla scheda virtuale, proprio come faresti con l’hardware fisico. Simulazione “run-and-go”: Per testare un programma, non c’è bisogno di una fase di upload. Basta cliccare sul pulsante Esegui e il simulatore avvia l’esecuzione del codice in tempo reale, rendendo il ciclo di sviluppo estremamente rapido. Arduino Simulator vs. Wokwi Quale scegliere? Come accennato, Arduino Simulator e Wokwi sono due strumenti diversi, ognuno con i propri punti di forza.\nCaratteristica Arduino Simulator Wokwi Open-Source Sì Parzialmente (l’emulatore è proprietario) Ambiente d’uso Interamente nel browser, anche offline Nel browser, richiede connessione a internet Funzionalità Simulazione codice, stato pin, monitor seriale Simulazione completa del circuito, componenti, sensori, display Schede supportate Arduino UNO, MEGA, NANO Arduino, ESP32, Raspberry Pi Pico, STM32 e altri Se invece hai bisogno di simulare un progetto completo con sensori, display, motori e altri componenti elettronici, Wokwi rimane uno degli strumenti più avanzati e completi sul mercato. DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY Come testare un programma Per testare un programma basta fare clic sul pulsante Esegui in alto, senza la fase di upload ovviamente. Leonardo Russo ha dichiarato che il progetto è un work in progress e può essere utile per regioni o paesi in cui potrebbe essere ancora difficile acquistare i componenti hardware. Serve solo un browser anche senza accesso a Internet. Il simulatore di Arduino rileva la lingua predefinita del sistema e passa automaticamente a inglese, spagnolo, italiano, francese o portoghese, i 5 idiomi attualmente disponibili. Un futuro promettente Leonardo Russo ha dichiarato che il progetto è in continua evoluzione. Il fatto che sia open-source invita la community a contribuire, rendendolo un vero e proprio “work in progress” collettivo. L’inclusione di lingue come l’italiano, l’inglese, lo spagnolo, il francese e il portoghese dimostra una visione internazionale e accessibile. In un’epoca in cui l’accesso alla tecnologia è fondamentale, strumenti come Arduino Simulator dimostrano che non è sempre necessario avere hardware costoso per imparare e creare. A volte, tutto ciò di cui hai bisogno è una buona idea e un browser web. Ti invito a provarlo tu stesso: visita la pagina ufficiale e inizia a sperimentare! Ti consiglio inoltre di provare Wokwi, uno dei più potenti emulatori di Arduino e microcontrollori disponibili oggi sul Web. ","permalink":"https://www.robotdazero.it/blog/un-simulatore-arduino-che-viene-eseguito-nel-browser-web/","summary":"\u003ch2\u003eCosa è Arduino Simulator?\u003c/h2\u003e\n\u003cp\u003e\n  \u003ca href=\"https://lrusso.github.io/ArduinoSimulator/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eArduino Simulator\u003c/a\u003e\n  è un sofisticato simulatore Arduino che viene eseguito nel browser web senza bisogno di installare alcun applicativo.\n  È stato scritto da Leonardo Russo usando il linguaggio\n  \u003ca href=\"https://www.html.it/guide/guida-javascript-di-base/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eJavaScript\u003c/a\u003e\n  ed è in grado di simulare l’esecuzione del codice e lo stato dei pin digitali e analogici.\n  Funziona per varie schede\n  \u003ca href=\"https://www.robotdazero.it/blog/la-guida-definitiva-per-scegliere-il-tuo-arduino/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eArduino\u003c/a\u003e,\n  ovvero Arduino UNO R3, MEGA2560 e NANO V3.\n\u003c/p\u003e\n\u003cfigure\u003e\n  \u003cimg src=\"images/101.png\" alt=\"Arduino Simulator in esecuzione su un browser web\" /\u003e\n  \u003cfigcaption\u003eArduino Simulator in esecuzione su un browser web\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003cp\u003e\n  In passato su Robotdazero abbiamo già accennato nelle news riguardo a\n  \u003ca href=\"https://wokwi.com/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eWokwi\u003c/a\u003e\n  (per\n  \u003ca href=\"https://www.robotdazero.it/blog/esp32-i-segreti-del-suo-successo/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eESP32\u003c/a\u003e,\n  Pi Pico, STM32) un grande strumento per emulare i circuiti che supporta anche l’\n  \u003ca href=\"https://www.robotdazero.it/blog/in-arrivo-il-nuovo-esp32-p4/\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eESP32-P4\u003c/a\u003e.\n  Arduino Simulator è però completamente open-source e funziona \u003cstrong\u003einteramente\u003c/strong\u003e in un browser web.\n\u003c/p\u003e","title":"Un simulatore Arduino che viene eseguito nel browser web"},{"content":" Il pin VIN della scheda ESP32 è l’ingresso di alimentazione primaria non regolata presente sulla maggior parte delle schede di sviluppo (DevKit, ESP32-WROOM, NodeMCU-32S, ecc.). Consente di alimentare la scheda tramite una sorgente esterna alternativa alla porta USB, rendendo possibile l’utilizzo in sistemi embedded, installazioni permanenti o dispositivi alimentati a batteria. Dal punto di vista elettrico, il pin VIN è collegato direttamente alla linea dei 5V della scheda e al circuito di regolazione della tensione. Non fornisce direttamente 3.3V al microcontrollore, ma passa prima attraverso il regolatore onboard. È importante chiarire un aspetto tecnico spesso frainteso: nelle comuni DevKit ESP32 il pin VIN è progettato per ricevere 5V stabilizzati. Non è corretto alimentarlo con 3.3V (la tensione non sarebbe sufficiente per il regolatore lineare), né è consigliabile utilizzare tensioni elevate come 9V o 12V, anche se alcuni regolatori potrebbero teoricamente tollerarle. La maggior parte delle schede utilizza un regolatore lineare (tipicamente AMS1117-3.3 o equivalente). Questo componente converte i 5V in ingresso nei 3.3V necessari al chip ESP32. Il pin \"VIN\" è collegato al regolatore di tensione della scheda ESP32. Il regolatore converte la tensione in ingresso in 3.3V, che è la tensione di alimentazione nativa del microcontrollore. Poiché il regolatore è di tipo lineare, la potenza dissipata sotto forma di calore dipende dalla differenza tra tensione di ingresso e tensione di uscita: Potenza dissipata = (Vin − 3.3V) × Corrente Questo significa che tensioni elevate in ingresso aumentano drasticamente la temperatura del regolatore. Per questo motivo è buona pratica alimentare VIN con una tensione il più possibile vicina ai 5V nominali. Tensione consigliata su VIN: 5V stabilizzati\nRange realistico sicuro: circa 4.8V – 6V\nNon consigliato: 3.3V su VIN (non sufficiente)\nNon consigliato: \u003e6V sulle DevKit comuni (eccessiva dissipazione) Quando la scheda è alimentata via USB, il pin VIN (spesso etichettato come V5) presenta la stessa tensione proveniente dalla porta USB. Questo rende VIN anche un punto utile per prelevare 5V per alimentare piccoli dispositivi esterni, come sensori, LED o microcontrollori a bassa potenza. È fondamentale, tuttavia, operare sempre nel rispetto dei limiti di corrente dell’alimentatore utilizzato, per evitare sovraccarichi e potenziali danni al sistema. Assicurarsi di consultare le specifiche dell'alimentatore per conoscere la corrente massima erogabile e non superare tale limite. Un uso corretto e consapevole della linea VIN permette di integrare facilmente ulteriori funzionalità al proprio progetto. Il pin viene spesso chiamato V5. Nella maggior parte delle DevKit, VIN e V5 sono elettricamente collegati e rappresentano lo stesso nodo di alimentazione a 5V. I valori reali che puoi leggere sul tuo multimetro Se il multimetro mostra valori come 4.8V invece dei 5V teorici, è perfettamente normale. Una leggera variazione di tensione è comune e può essere attribuita a diversi fattori: Qualità dell'alimentatore USB: Alimentatori di qualità inferiore potrebbero non erogare una tensione stabile e precisa di 5V. Caduta di tensione sul cavo USB: Cavi di scarsa qualità o troppo lunghi possono causare una significativa caduta di tensione, soprattutto sotto carico. Un cavo con fili interni sottili aumenterà la resistenza. Resistenza interna del connettore USB: I connettori USB, sia sull'alimentatore che sul dispositivo, possono avere una resistenza interna che contribuisce alla caduta di tensione. La corrosione o l'usura possono aumentare questa resistenza. Assorbimento istantaneo della scheda: Picchi di corrente richiesti dalla scheda possono causare un momentaneo calo di tensione. Questo è più evidente se l'alimentatore non è in grado di fornire la corrente necessaria in modo stabile. Piste del PCB non dimensionate per correnti elevate: Piste sottili sulla scheda PCB possono presentare una resistenza significativa, causando una caduta di tensione, specialmente quando la scheda assorbe corrente elevata. Tolleranze dei componenti: Anche le tolleranze dei componenti elettronici all'interno della scheda possono influenzare la tensione misurata. Temperatura: La temperatura dell'alimentatore e dei componenti può influenzare la tensione di uscita rilevata dal multimetro. Per ottenere una misurazione più precisa, assicurarsi di utilizzare un alimentatore USB di alta qualità, un cavo USB corto e di buona fattura, e verificare che la scheda non stia assorbendo una corrente eccessiva. Inoltre, è consigliabile effettuare la misurazione in condizioni di carico tipiche per la scheda. Dettagli tecnici realistici del pin VIN Tensione nominale: 5V Range consigliato: 4.8V – 6V Tipo di regolazione: Lineare (LDO) Corrente disponibile: dipende dall’alimentatore e dal PCB Protezione: variabile in base al modello della scheda Non esiste un valore universale di \"2A garantiti\" dal pin VIN. La corrente effettivamente disponibile dipende da: Corrente massima erogabile dall’alimentatore USB Sezione delle piste PCB Limiti termici del regolatore Presenza di fusibili o protezioni In molte DevKit economiche, soprattutto quelle alimentate via USB, è prudente non superare 500–800 mA totali, considerando la somma di corrente assorbita da tutti i componenti e periferiche collegate. Superare questa soglia può portare a surriscaldamenti indesiderati del regolatore di tensione o del cavo USB, con possibili conseguenze come instabilità del sistema, malfunzionamenti o, in rari casi, danni permanenti all'hardware. È sempre consigliabile consultare la documentazione specifica della DevKit per conoscere i limiti di corrente raccomandati e le eventuali protezioni implementate. Utilizzare un alimentatore esterno adeguato può essere una soluzione per fornire maggiore corrente. Quali dispositivi esterni puoi alimentare quando la scheda è alimentata via usb? Quando l’ESP32 è alimentata tramite USB: VIN/V5 fornisce circa 5V provenienti direttamente dalla USB. Il pin 3V3 fornisce 3.3V regolati dal regolatore onboard. È possibile alimentare dispositivi a basso consumo come: Display LCD o OLED Sensori ambientali (temperatura, umidità, pressione) Moduli I2C/SPI Moduli RF a basso assorbimento Driver logici o LED singoli Non è consigliabile alimentare direttamente: Motori DC o stepper Strisce LED ad alta potenza Relè multipli Carichi induttivi o ad alto spunto Un display da 100 mA può essere alimentato da un alimentatore USB da 500 mA senza problemi. Un motore da 1A richiede alimentazione separata. Consumo energetico reale dell’ESP32 Il consumo dell’ESP32 varia notevolmente in base allo stato operativo: Deep sleep: 10–150 µA Idle con Wi-Fi attivo: 70–120 mA Trasmissione Wi-Fi: picchi 240–300 mA Bluetooth attivo: 80–150 mA I picchi Wi-Fi sono la causa più frequente di riavvii per brownout quando l’alimentazione è sottodimensionata. Se la somma dei consumi supera la capacità dell’alimentatore: La tensione scende sotto 3.3V Il brownout detector interviene La scheda si riavvia La comunicazione Wi-Fi diventa instabile DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY Posso usare il pin vin per alimentare un dispositivo esterno? Sì, ma solo per carichi leggeri. Se la scheda è alimentata via USB, VIN/V5 può fornire circa 5V verso l’esterno. Schema di collegamento:\nESP32 → VIN/V5 → positivo dispositivo ESP32 → GND → negativo dispositivo Prima del collegamento verifica sempre: Corrente nominale del dispositivo Corrente di spunto Margine dell’alimentatore Eventuale necessità di protezione con fusibile o diodo Per carichi superiori a 500–800 mA è raccomandata alimentazione separata o una batteria dedicata (Li-Ion/Li-Po con regolatore step-down). Cosa ricordare Alimenta VIN con 5V stabilizzati. Non usare 3.3V su VIN. Evita tensioni superiori a 6V sulle DevKit comuni. Considera sempre i picchi Wi-Fi (~300 mA). Dimensiona l’alimentatore con un margine del 20–30%. Per carichi importanti usa alimentazione dedicata. Se il sistema deve essere stabile a lungo termine, preferisci regolatori switching esterni rispetto al lineare onboard. DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY ","permalink":"https://www.robotdazero.it/blog/usare-il-pin-vin-dell-esp32-come-uscita-a-5v/","summary":"\u003cimg src=\"images/101.png\" alt=\"la immagine del pin VIN in evidenza sull'ESP32 dentro il quadrato rosso\"\u003e\n\u003cbr\u003e\n\u003cp\u003e\n   Il pin \u003cstrong\u003eVIN\u003c/strong\u003e della scheda ESP32 è l’ingresso di alimentazione primaria non regolata presente sulla maggior parte delle schede di sviluppo (DevKit, ESP32-WROOM, NodeMCU-32S, ecc.). \n   Consente di alimentare la scheda tramite una sorgente esterna alternativa alla porta USB, rendendo possibile l’utilizzo in sistemi embedded, installazioni permanenti o dispositivi alimentati a batteria.\n\u003c/p\u003e\n\u003cp\u003e\n   Dal punto di vista elettrico, il pin VIN è collegato direttamente alla linea dei \u003cstrong\u003e5V\u003c/strong\u003e della scheda e al circuito di regolazione della tensione. Non fornisce direttamente 3.3V al microcontrollore, ma passa prima attraverso il regolatore onboard.\n\u003c/p\u003e","title":"Usare il pin VIN dell' ESP32 come uscita a 5V"},{"content":" ESP32-S3: la generazione ESP32 pensata per AIoT, HMI e inferenza edge. ESP32-S3 nel 2026: la scheda ESP32 che ha senso per AI Edge, Visione e Voice Se stai costruendo un prodotto IoT serio (non un prototipo da laboratorio), il punto non è “farlo funzionare”: è farlo funzionare sempre, con latenza bassa, consumo controllato e una base hardware adatta ad AI e HMI. In questo scenario, l’ESP32-S3 è il vero salto di qualità rispetto all’ESP32 “classico”. In casa Robotdazero lo diciamo chiaro: per progetti moderni conviene ragionare per “stack” (hardware + firmware + affidabilità). Se vuoi un esempio pratico di architettura ESP32 completa, leggi anche: come scrivere un server web con ESP32 . Ultime evoluzioni della scheda ESP32: cosa cambia davvero con ESP32-S3 ESP32-S3 è un SoC progettato da Espressif per applicazioni AIoT e interfacce uomo-macchina. Il cuore è una CPU dual-core Xtensa LX7 fino a 240\u0026nbsp;MHz, affiancata da estensioni hardware (vettoriali) orientate ad accelerare carichi tipici di DSP e inferenza (vision/voice) rispetto a CPU general-purpose. In parole povere: meno “fatica” per fare cose moderne on-device. A livello di connettività, resti nel mondo ESP: Wi-Fi 2.4\u0026nbsp;GHz (802.11 b/g/n) e Bluetooth 5 (LE), quindi puoi costruire sensori, nodi edge, gateway leggeri e dispositivi voice senza salire di costo o complicazione. Per le specifiche ufficiali: pagina Espressif ESP32-S3. Caratteristiche tecniche principali (quelle che contano sul campo) L’ESP32-S3 è interessante non perché “ha numeri alti”, ma perché allinea meglio CPU, memoria e periferiche ai casi d’uso reali: camera/LCD, audio, sensori, AI edge, HMI e sicurezza. CPU: dual-core Xtensa LX7 fino a 240\u0026nbsp;MHz Memoria: 512\u0026nbsp;KB SRAM interna + supporto a RAM/Flash esterne su bus SPI/OPI (in base al modulo/board) Wireless: Wi-Fi 2.4\u0026nbsp;GHz + Bluetooth 5 (LE) I/O: fino a ~45 GPIO programmabili (dipende dal package/board) Periferiche “da prodotto”: supporto ad interfacce utili per camera/LCD, audio, I2C/I2S/SPI/UART, PWM, ADC, ecc. Sicurezza: secure boot, flash encryption e periferiche dedicate (es. HMAC / digital signature / isolamento) Nota pratica: se il tuo prodotto vive in ambienti rumorosi (motori, alimentatori switching, cablaggi lunghi), la sola “potenza” non basta. Devi trattare EMI, layout, pull-up, cablaggio, decoupling e watchdog come parte del progetto. Qui trovi un esempio brutale ma reale: Industrial ESP32 + I2C + EMI: analisi e contromisure . AI su ESP32-S3: cosa è realistico e cosa è marketing La frase corretta non è “ESP32-S3 fa AI come un PC”. La frase corretta è: ESP32-S3 rende praticabile l’AI edge a basso costo per casi d’uso mirati: wake-word, keyword spotting, piccole CNN per detection/face, classificazioni leggere, audio DSP e pre-processing. L’ecosistema Espressif per questo mondo ruota intorno a: ESP-DL: framework “lightweight” per inferenza e tooling (quantizzazione, formati, integrazione). ESP-WHO: stack vision (face detection/recognition, esempi camera, pipeline). Traduzione operativa: se vuoi “fare AI”, non partire da zero. Parti da ESP-DL / ESP-WHO, poi adatti modello e pipeline al tuo vincolo di memoria/latency. Se vuoi fare “AI per davvero” in un prodotto, serve metodo: test, profiling, watchdog, fallback. (E sì: è qui che il 90% dei progetti muore.) ESP32-S3 vs ESP32: differenze tecniche e quando conviene aggiornare per la AI La domanda vera non è “qual è più potente?”, ma: in quale scenario l’ESP32-S3 cambia davvero il risultato del progetto? L’ESP32 “classico” (LX6) è ancora una base solida per IoT tradizionale. Ma quando entri nel territorio AI, HMI evoluta o pipeline audio/vision, l’architettura dell’S3 inizia a fare la differenza. Differenze architetturali chiave CPU:\nESP32 → Dual-core Xtensa LX6\nESP32-S3 → Dual-core Xtensa LX7 con estensioni vettoriali (SIMD) AI / DSP:\nESP32 → Nessuna ottimizzazione specifica per inferenza\nESP32-S3 → Istruzioni vettoriali che accelerano moltiplicazioni, convoluzioni, operazioni tipiche di CNN e audio DSP USB nativo:\nESP32 → No (serve chip esterno)\nESP32-S3 → USB OTG integrato (utile per HID, debug, device custom) Supporto HMI / Camera:\nESP32 → Possibile ma meno ottimizzato\nESP32-S3 → Migliore integrazione per LCD, camera e pipeline multimediali leggere Sicurezza:\nEntrambi supportano secure boot e flash encryption, ma l’S3 nasce in un contesto più orientato a prodotti commerciali con maggiore isolamento hardware. Dove l’ESP32 “classico” è ancora perfetto Aggiornare non è sempre obbligatorio. L’ESP32 standard è ancora una scelta sensata se: Stai facendo sensori IoT, gateway MQTT, automazioni base Non hai carichi AI locali Vuoi ottimizzare costo e disponibilità BOM Il firmware è già stabile e certificato In molti contesti industriali, cambiare MCU solo “per moda AI” introduce più rischio che beneficio. Quando l’upgrade a ESP32-S3 è una scelta strategica L’ESP32-S3 diventa una scelta quasi obbligata quando: Vuoi fare inferenza locale (wake-word, classificazione immagini, anomaly detection) Hai una camera o un display come parte centrale del prodotto Stai progettando un dispositivo voice offline-first Vuoi una piattaforma più “future-ready” per evoluzioni firmware successive Ti serve USB nativo per device custom o aggiornamenti più flessibili Prestazioni AI: differenza reale o marketing? Nei benchmark di inferenza leggera (CNN quantizzate, keyword spotting), l’ESP32-S3 può offrire miglioramenti significativi grazie alle istruzioni vettoriali. Non è un NPU dedicato, ma riduce sensibilmente il tempo di esecuzione rispetto a un LX6 puro. Questo significa: Meno latenza Meno consumo per inferenza Maggiore margine per task paralleli (Wi-Fi + AI + I/O) Decisione pratica da progettista Se stai iniziando oggi un nuovo progetto AIoT, partire direttamente con ESP32-S3 ha senso. Se invece hai un prodotto ESP32 stabile e non fai AI locale, l’upgrade è più una scelta di roadmap che una necessità tecnica. In sintesi: ESP32 → ottimo per IoT classico.\nESP32-S3 → pensato per AI edge, vision, voice e dispositivi interattivi moderni. Confronto architetturale: Xtensa LX6 vs LX7 + istruzioni vettoriali per inferenza AI La vera differenza tra ESP32 “classico” e ESP32-S3 non è solo il nome del core, ma come l’architettura esegue operazioni matematiche ripetitive. Ed è esattamente qui che l’AI edge vive o muore. Xtensa LX6 (ESP32): architettura general-purpose L’ESP32 tradizionale utilizza core Xtensa LX6. È una CPU solida, flessibile, perfetta per networking, gestione I/O, RTOS, ma quando deve eseguire operazioni tipiche di una rete neurale (moltiplicazioni accumulate, convoluzioni, dot product), lavora in modo scalare. Significa che: Esegue un’operazione per ciclo (o poche per volta) Le MAC (Multiply-Accumulate) vengono gestite in sequenza Il carico CPU cresce rapidamente con la dimensione del modello Per una piccola CNN quantizzata funziona. Ma appena il modello cresce, la latenza aumenta in modo poco sostenibile. Xtensa LX7 (ESP32-S3): architettura ottimizzata per DSP e AI L’ESP32-S3 usa core Xtensa LX7 con estensioni vettoriali (SIMD). SIMD significa Single Instruction, Multiple Data: una singola istruzione può operare su più dati contemporaneamente. In pratica: Più moltiplicazioni vengono eseguite in parallelo I dot product vengono accelerati via istruzioni vettoriali Le operazioni su int8/int16 (tipiche dei modelli quantizzati) sono molto più efficienti Questo cambia radicalmente l’efficienza delle operazioni tipiche di: Convoluzioni 2D (vision) Keyword spotting (audio) Filtri FIR/IIR e pipeline DSP Matrix multiply per layer fully-connected Perché le istruzioni SIMD influenzano davvero le prestazioni AI edge Una rete neurale su microcontrollore è, semplificando brutalmente: un’enorme sequenza di moltiplicazioni + somme. Se riesci a eseguire 4–8 operazioni per ciclo invece di una sola, ottieni: Riduzione della latenza di inferenza Meno cicli CPU → meno consumo energetico Maggiore margine per Wi-Fi, BLE e task RTOS paralleli Non è magia. È parallelismo a livello di istruzione. Esempio concreto (semplificato) Supponiamo un layer fully-connected con 256 neuroni. Ogni neurone richiede centinaia di operazioni MAC. Su LX6 → esecuzione principalmente scalare Su LX7 con SIMD → più MAC per ciclo Su modelli quantizzati (int8), l’S3 può ottenere miglioramenti molto evidenti in tempo di inferenza rispetto all’ESP32 classico. Non stiamo parlando di “GPU performance”, ma di differenze sufficienti a rendere fattibile un use-case che prima era borderline. Impatto reale su un prodotto La differenza non è solo nel benchmark. È nel comportamento del sistema: Meno tempo CPU occupato → meno jitter sui task critici Meno tempo in stato attivo → migliore autonomia su batteria Possibilità di aumentare complessità modello senza cambiare MCU In un dispositivo voice always-on, per esempio, ridurre anche solo pochi millisecondi per inferenza significa meno consumo continuo e meno rischio di saturazione. Limite importante (da dire chiaramente) L’ESP32-S3 non è una NPU dedicata. Non ha acceleratori neurali indipendenti dalla CPU. È comunque una MCU general-purpose con estensioni vettoriali. Ma tra: CPU pura scalare (LX6) CPU con SIMD ottimizzata per DSP/AI (LX7) nel mondo edge a basso costo, la differenza è architetturalmente significativa. Conclusione tecnica da progettista Se il tuo firmware deve: Fare solo networking + logica I/O → LX6 basta. Fare inferenza locale in modo stabile e continuo → LX7 con SIMD cambia l’equilibrio. Non è una questione di “più MHz”. È una questione di come vengono eseguite le moltiplicazioni. Applicazioni pratiche (quelle che pagano davvero il conto) 1) Visione on-device: detection e scenari “camera + edge” ESP32-S3 è una scelta naturale quando vuoi una pipeline camera leggera, magari con un display o una UI minimale. Non aspettarti YOLO “full” come su GPU, ma aspettati detection/recognition “mirate” con modelli ottimizzati e quantizzati. Se lavori su ESP32-CAM e reti locali, puoi anche combinare i nodi con ESP-NOW / mesh per distribuire eventi (es. motion/trigger) senza Wi-Fi tradizionale. 2) Voice: wake word, comandi offline, pre-processing robusto L’audio è spesso più “scalabile” della vision su microcontroller: wake-word, comandi e intent leggeri sono perfetti per edge. L’approccio vincente è: offline per wake/command, cloud solo quando serve (latency/costo/privacy). Un esempio interessante di kit AI voice basato su ESP32-S3 è EchoEar. 3) Domotica “seria”: controllo carichi, affidabilità, componentistica Se fai domotica IoT e devi pilotare carichi, prima di pensare all’AI pensa alla parte “sporco-lavoro”: MOSFET, dissipazione, transitori, protezioni. Qui ti può servire davvero la nostra: guida ai MOSFET nella domotica IoT . 4) Robotica: autonomia, power, qualità dei dati Se ESP32-S3 finisce dentro un robot (anche semplice), la variabile che decide il successo è quasi sempre: alimentazione. Batterie, step-down, rumore, brownout, reset. Se stai costruendo qualcosa di mobile, leggi: robot guidato da AI (pt3) – le batterie . Quale ESP scegliere: ESP8266, ESP32 “classico”, ESP32-S3 Se sei in fase di scelta e ti stai chiedendo “ma non basta un ESP8266?”, dipende dall’obiettivo. ESP8266 è ancora utile in progetti ultra-minimali, ma appena ti servono più stack, più RAM, più periferiche, o vuoi un percorso “AI-ready”, l’ESP32-S3 è una base più moderna. Per un confronto generazionale, puoi partire da qui: la scheda ESP8266 di Espressif . Se invece il tuo obiettivo è accelerare sviluppo e prototipazione hardware (GPIO, connettori, modularità), valuta anche una piattaforma più “pronta all’uso” come: la scheda multifunzione Robotdazero per ESP32 . FAQ rapide (SEO + risposte utili) ESP32-S3 è “solo più veloce” dell’ESP32? No. Il punto è l’equilibrio: CPU LX7, periferiche più adatte a HMI/vision/voice e un set di ottimizzazioni che rende più realistico fare AI edge su un microcontroller, senza “barare” col cloud su ogni cosa. Posso fare NLP “vero” su ESP32-S3? NLP completo (LLM locale) no. Ma puoi fare wake-word, intent leggeri, classificazioni audio e pre-processing. Il pattern industriale è: edge per trigger + compressione + privacy, cloud per la parte pesante quando serve. La differenza tra progetto demo e prodotto vero? Il prodotto vero vive mesi/anni: EMI, alimentazione, watchdog, logging affidabile, gestione errori e aggiornamenti. Se ti interessa la direzione “commerciale/prodotto”, qui una riflessione più ampia: prossimi sviluppi della robotica in ambito commerciale . Conclusioni ESP32-S3 non è “la scheda magica”: è la scheda che rende realistico costruire AIoT moderno a basso costo quando il vincolo è energia, BOM, complessità e time-to-market. Se fai IoT serio nel 2026, vale la pena partire da una base che non ti costringe a compromessi immediati. Se vuoi trasformare un prototipo in qualcosa di “vendibile”, la regola è sempre la stessa: progetto, misuro, indurisco. E poi ripeto. ✅ Versione realmente field-ready:\nSe stai progettando qualcosa che non può bloccarsi, guarda il Sentinel Node . Memoria pSLC. Watchdog hardware esterno. RTC dedicato. Progettato per uptime reale. ","permalink":"https://www.robotdazero.it/blog/scheda-esp32-per-la-intelligenza-artificiale/","summary":"\u003carticle class=\"post post-esp32-s3-ai\"\u003e\n\u003c!-- SEO: Article structured data (optional but recommended) --\u003e\n\u003cscript type=\"application/ld+json\"\u003e\n{\n\"@context\": \"https://schema.org\",\n\"@type\": \"Article\",\n\"headline\": \"ESP32-S3 nel 2026: la scheda ESP32 per AI Edge, Visione e Voice\",\n\"image\": [\"header.jpg\"],\n\"author\": { \"@type\": \"Organization\", \"name\": \"Robotdazero\" },\n\"publisher\": { \"@type\": \"Organization\", \"name\": \"Robotdazero\" },\n\"mainEntityOfPage\": { \"@type\": \"WebPage\", \"@id\": \"https://www.robotdazero.it/\" }\n}\n\u003c/script\u003e\n\u003cheader\u003e\n\u003cfigure\u003e\n  \u003cimg src=\"header.jpg\" alt=\"ESP32-S3: scheda per AI edge, vision e voice\" loading=\"lazy\"\u003e\n  \u003cfigcaption\u003eESP32-S3: la generazione ESP32 pensata per AIoT, HMI e inferenza edge.\u003c/figcaption\u003e\n\u003c/figure\u003e\n\u003chr\u003e\n\u003ch1\u003eESP32-S3 nel 2026: la scheda ESP32 che ha senso per AI Edge, Visione e Voice\u003c/h1\u003e\n\u003cp\u003e\n  Se stai costruendo un prodotto IoT serio (non un prototipo da laboratorio), il punto non è “farlo funzionare”:\n  è farlo funzionare \u003cstrong\u003esempre\u003c/strong\u003e, con latenza bassa, consumo controllato e una base hardware adatta ad AI e HMI.\n  In questo scenario, l’\u003cstrong\u003eESP32-S3\u003c/strong\u003e è il vero salto di qualità rispetto all’ESP32 “classico”.\n\u003c/p\u003e","title":"La scheda ESP32 per la intelligenza artificiale"},{"content":"\nLa verità è che non siamo mai soddisfatti. Potremmo fermarci alla versione che \"funziona in ufficio\", ma chi lavora davvero nel settore IoT sa che il laboratorio è un'illusione. La nostra centralina Sentinel è nata con un'ossessione precisa: non deve solo eseguire codice, deve sopravvivere all'inferno elettromagnetico di un impianto industriale reale. Innovare, per noi, non significa aggiungere icone colorate su una dashboard, ma passare le notti a capire perché un bus I2C decide di morire quando un motore trifase entra in coppia. Abbiamo torturato i prototipi della Sentinel, spingendoli oltre ogni limite ragionevole, perché preferiamo che il sistema fallisca sulla nostra scrivania piuttosto che nell'impianto di un cliente. Quello che segue non è un post di marketing per vendervi quanto siamo bravi, ma il diario di bordo di un crash test brutale. Abbiamo tolto ogni protezione, abbiamo rimosso l'isolamento e abbiamo guardato cosa succede quando la teoria si scontra con la realtà dei transienti elettrici. Stress Test I2C: ESP32 vs Motore Trifase \u003e SUBJECT: Signal Integrity Analysis\n\u003e HARDWARE: ESP32 WROOM + TCA9548A\n\u003e CONDITION: No Galvanic Isolation Nessuna teoria, solo dati dal campo. Abbiamo sottoposto la nuova revisione della centralina a uno stress test elettromagnetico per validare la robustezza del bus I2C in ambiente ostile. Il setup è minimale e critico: un ESP32 WROOM collegato a un multiplexer TCA9548A tramite cavi jumper standard (non schermati), posizionati a 1 metro da un motore trifase in funzione. L'obiettivo era dimostrare empiricamente perché l'isolamento galvanico non è un \"optional\", ma un requisito strutturale. Il confronto tra il segnale in ambiente pulito e quello sotto carico induttivo evidenzia il collasso dell'integrità del segnale. WARNING: I dati sottostanti mostrano condizioni operative che portano al fallimento deterministico del sistema. ANALISI TECNICA SEGNALE I2C SCENARIO A (Clean): Segnale logico 0-3.3V pulito. Notare la leggera curvatura esponenziale sui fronti di salita (tipica dei resistori di pull-up I2C) e i fronti di discesa netti (pilotaggio open-drain). I livelli logici sono stabili, garantendo la corretta interpretazione dei bit (ACK/NACK, Data). Fig 1.0: Analisi comparativa dei transienti e del rumore di commutazione sul bus SDA.\nSCENARIO B (Motor Interference - 1m, No Isolation): Ground Bounce/VCC Sag: L'onda quadra di base è deformata da fluttuazioni a bassa frequenza (ripple) indotte dai loop di massa non isolati. EMI Switching Noise: Il rumore ad alta frequenza (hash) si sovrappone ai livelli logici, rischiando di farli uscire dalle soglie di isteresi (es. un '0' letto come '1'). Transienti Induttivi (Spikes): Picchi di tensione violenti (fino a \u003e5V o \u003c0V) causati dalle commutazioni. Effetti: Corruzione pacchetto dati (CRC error). Latch-up TCA9548A o GPIO ESP32. Danno fisico ai pin (assenza diodi clamp). Conclusione Operativa: Senza optoisolatori o buffer I2C dedicati (es. PCA9617A) e con un cablaggio non schermato vicino a carichi induttivi, la comunicazione è inaffidabile e l'hardware è a rischio rottura. Il prossimo passo: Implementazione obbligatoria di isolatori digitali e revisione del routing PCB per separare i piani di massa logica da quella di potenza. DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY Conclusioni e Sviluppi Futuri: Verso una Sentinel Inarrestabile I dati raccolti non lasciano spazio a interpretazioni: il \"funzionamento base\" è il nemico giurato dell'affidabilità industriale. La nostra centralina Sentinel deve evolvere per gestire ambienti dove il rumore elettromagnetico non è l'eccezione, ma la costante. Non ci accontentiamo di un sistema che sopravvive; vogliamo un sistema che ignori il disturbo. La sfida che ci attende riguarda l'irrobustimento strutturale della logica di controllo. Non si tratta solo di aggiungere componenti, ma di ripensare il modo in cui i segnali attraversano la board. La nostra strategia per le prossime revisioni si focalizza su: Ottimizzazione del Layout PCB: Analisi avanzata delle correnti di ritorno e segregazione netta tra i piani di massa della logica e quelli di potenza per abbattere il Ground Bounce alla radice. Filtraggio Multilivello: Integrazione di array di diodi TVS a bassissima capacità e filtri EMI di modo comune su tutte le linee di comunicazione. Isolamento Mirato: Implementazione di isolatori digitali ad alta velocità solo dove strettamente necessario per garantire l'integrità del bit senza saturare il bus. L'Equazione dei Costi: La vera ingegneria non consiste nell'usare componenti \"military-grade\" dal costo esorbitante. La nostra filosofia è ottimizzare il BOM (Bill of Materials) attraverso un design intelligente. Spendere tempo in fase di sbroglio e simulazione permette di risparmiare sui componenti passivi, mantenendo il prezzo finale del dispositivo competitivo senza sacrificare un singolo decibel di protezione. La Sentinel continuerà a subire test distruttivi in scenari sempre più ostili. Ogni errore catturato oggi in laboratorio è un fermo macchina risparmiato ai nostri utenti domani. La strada verso la resilienza totale è lunga, ma non abbiamo intenzione di fermarci. ","permalink":"https://www.robotdazero.it/blog/industrial-esp32-i2c-emi-analysis/","summary":"\u003cp\u003e\u003cimg alt=\"copertina del post sulle interferenze elettromagnetiche\" loading=\"lazy\" src=\"/blog/industrial-esp32-i2c-emi-analysis/header.jpg\"\u003e\u003c/p\u003e\n\u003cdiv class=\"intro-umana\"\u003e\n   \u003cp\u003e\n      La verità è che non siamo mai soddisfatti. Potremmo fermarci alla versione che \"funziona in ufficio\", ma chi lavora davvero nel settore IoT sa che il laboratorio è un'illusione. La nostra centralina \u003cstrong\u003eSentinel\u003c/strong\u003e è nata con un'ossessione precisa: non deve solo eseguire codice, deve sopravvivere all'inferno elettromagnetico di un impianto industriale reale.\n   \u003c/p\u003e\n   \u003cp\u003e\n      Innovare, per noi, non significa aggiungere icone colorate su una dashboard, ma passare le notti a capire perché un bus I2C decide di morire quando un motore trifase entra in coppia. Abbiamo torturato i prototipi della Sentinel, spingendoli oltre ogni limite ragionevole, perché preferiamo che il sistema fallisca sulla nostra scrivania piuttosto che nell'impianto di un cliente. \n   \u003c/p\u003e","title":"Industrial ESP32: Analisi Integrità Segnale I2C e Disturbi EMI su Motori Trifase"},{"content":"\nDefinizione di Resistenza Fattori Fisici Ohm e Simbologia Bande Colorate Codice Colore Tabella dei Valori Esempio Pratico di Lettura Resistori a 5 bande Coefficiente Termico Limitazione Corrente Resistenze in Serie Resistenze in Parallelo Circuiti Digitali (ESP32 / Arduino) Resistenze di Pull-Up e Pull-Down con ESP32 Calcolo Resistenza per LED: Guida Definitiva Partitori di Tensione: Progettazione per il Campionamento di Segnali Analogici (ADC) Analisi dei Guasti e Affidabilità dei Resistori Standard Industriali e Certificazioni 2026 Guida all'Acquisto e Distribuzione 2026 Tabella Comparativa Estrema dei Resistori Casi Studio Avanzati: Resistori di Bilanciamento in un Battery Management System (BMS) Troubleshooting e Diagnostica in Laboratorio Test con Multimetro Analisi con Oscilloscopio Identificazione di Resistori Sotto Stress FAQ Tecniche (Domande Frequenti) Conclusioni Finali Link utili Cos'è la Resistenza Elettrica La resistenza è una misura dell\u0026rsquo;opposizione di un oggetto al flusso di elettroni. Questo può suona come una brutta cosa, ma in realtà è utile. La resistenza è ciò che rende possibile generare calore e luce, limitare il flusso di corrente elettrica quando necessario, e assicurarsi che la tensione corretta sia fornita a un dispositivo. Ad esempio, quando gli elettroni viaggiano attraverso il filamento di una lampadina incontrano così tanta resistenza che rallentano e si scontrano furiosamente, generando il bagliore che vedi dalla tua lampadina.\nQualsiasi materiale, anche i migliori conduttori, mostrano una certa resistenza al flusso di elettroni. (In realtà, alcuni materiali, chiamati superconduttori, possono condurre corrente con zero resistenza elettrica ma solo a temperature estremamente basse. Non li incontrerai nella elettronica.) Maggiore è la resistenza, più basso è il flusso di corrente.\nFattori che influenzano la Resistenza La resistenza dipende da diversi fattori\nMateriale: alcuni materiali permettono ai loro elettroni di vagare liberamente, mentre altri tengono vincolati i loro elettroni. Quanto fortemente un materiale specifico si oppone il flusso di elettroni determina la sua resistività. La resistenza è una proprietà di un materiale che riflette la sua struttura chimica. I conduttori hanno valori relativamente bassi di resistività, mentre gli isolanti hanno una resistività molto elevata.\nArea della sezione trasversale: la resistenza varia inversamente con l\u0026rsquo;area della sezione trasversale; più grande è il diametro, più facile è per gli elettroni muoversi-cioè, il abbassare la resistenza al loro movimento. Pensa all\u0026rsquo;acqua che scorre attraverso un tubo: più largo è il tubo, più facile è il flusso d\u0026rsquo;acqua. Sulla stessa linea, a il filo di rame con un grande diametro ha una resistenza inferiore rispetto a un filo di rame con un piccolo diametro.\nLunghezza: più lungo è il materiale, maggiore è la resistenza che ha perché gli elettroni avere più opportunità di imbattersi in altre particelle lungo la strada. In altri parole, resistenza varia direttamente con la lunghezza.\nTemperatura: per la maggior parte dei materiali, maggiore è la temperatura, maggiore è la resistenza. Temperature più elevate significano che le particelle all\u0026rsquo;interno hanno più energia, quindi si scontrano tra loro molto spesso, rallentando il flusso di elettroni. Una notevole eccezione a questo è un tipo di resistenza chiamato termistore: all\u0026rsquo;aumentare della temperatura il termistore abbassa la resistenza in modo prevedibile. (Puoi immaginare quanto sia utile questa caratteristica in circuiti di rilevamento della temperatura.)\nIl simbolo R e l'unità di misura Ohm Si utilizza il simbolo R per rappresentare la resistenza in un circuito elettronico. La resistenza è misurata in unità chiamate ohm (pronunciato \u0026ldquo;om\u0026rdquo;), abbreviato con la lettera greca omega (Ω). Maggiore è il valore in ohm, maggiore è la resistenza. Un singolo ohm è così piccolo come unità di misura che probabilmente vedrai solo resistenze misurate in quantità maggiori:\nkilohms ( kilo + ohm), che è migliaia di ohm ed è abbreviato kΩ, megohms (mega + ohm), che è milioni di ohm ed è abbreviato MΩ. Quindi 1 kΩ = 1.000 Ω e 1 MΩ = 1.000.000 Ω. Le Bande Colorate sui Resistori Nelle immagine sopra avrete certamente notato le bande colorate tracciate sul corpo delle resistenze.\nIl codice di colori delle resistenze è un sistema standardizzato per indicare il valore di resistenza di un resistore. È composto da una serie di bande colorate che vengono applicate sul corpo del resistore.\nIl sistema del Codice Colore Il codice colore più diffuso è quello a quattro bande. Le prime due bande rappresentano le prime due cifre del valore nominale della resistenza, la terza banda rappresenta il moltiplicatore e la quarta banda rappresenta la tolleranza.\nLa tabella numerica del Codice Colore Colore / Valore\nNero 0 Marrone 1 Rosso 2 Arancione 3 Giallo 4 Verde 5 Blu 6 Viola 7 Grigio 8 Bianco 9 Esempio Pratico di Lettura Ad esempio: un resistore con le bande colorate: rossa, rossa e marrone ha un valore nominale di 220 ohm. La prima banda rossa rappresenta la cifra 2, la seconda banda rossa rappresenta la cifra 2 e la banda marrone rappresenta il moltiplicatore 10.\nPer controllare i tuoi calcoli ti sarà molto utile il calcolatore on line di Digikey.\nResistori a Cinque Bande Esistono anche resistori a cinque bande. In questo caso, la quinta banda rappresenta un coefficiente termico che indica come cambia la resistenza del resistore al variare della temperatura.\nCoefficiente Termico (TCR) Colore / Valore\nNero\t100 ppm/K\nMarrone\t50 ppm/K\nRosso\t25 ppm/K\nArancione\t15 ppm/K\nGiallo\t10 ppm/K\nVerde\t5 ppm/K\nBlu\t2 ppm/K\nViola\t1 ppm/K\nSi legge il valore nominale come per un resistore a quattro bande,\nSi legge il coefficiente termico.\nAd esempio, un resistore con le bande colorate nere, rosse, arancioni e gialle ha un valore nominale di 230 ohm e un coefficiente termico di 10 ppm/K. Il codice colore delle resistenze è un sistema semplice e pratico per identificare il valore di resistenza di un componente elettronico. È importante familiarizzare con questo sistema per poter lavorare in modo sicuro con i circuiti elettronici.\nFunzione del Resistore nel Circuito Il compito di un resistore è quello di limitare la corrente che scorre attraverso un circuito elettrico. La resistenza è misurata in Ohm e viene indicata dal simbolo Ω.\nCollegamento dei Resistori in Serie Quando i resistori sono collegati insieme in una SINGOLA linea vengono definiti come collegati \"in serie\". I resistori collegati in serie hanno una corrente comune che li attraversa:\nCorrente Totale = I1 = I2 = I3 = In \u0026hellip;. etc\nLa resistenza totale dei resistori di serie è uguale a:\nResistenza Totale = R1 + R2 + R3 + Rn \u0026hellip;. etc\nE la tensione totale del circuito è uguale alla somma delle cadute di tensione:\nTensione Totale = V1 + V2 + V3 + Vn \u0026hellip;. etc\nCollegamento dei Resistori in Parallelo I resistori che hanno ENTRAMBI i terminali collegati ai rispettivi terminali di un altro resistore vengono detti \"in parallelo\".\tI resistori in parallelo hanno una tensione comune su di essi:\nTensione totale = V1 = V2 = V3 \u0026hellip;. etc\nIl calcola della resistenza è un poco più complicato di quello delle resistenze in serie: Per calcolare la resistenza complessiva di n resistenze collegate in parallelo, si utilizza la seguente formula:\n1/R_totale = 1/R_1 + 1/R_2 + \u0026hellip; + 1/R_n\nDove:\nR_totale è la resistenza complessiva delle resistenze collegate in parallelo R_1, R_2, \u0026hellip;, R_n sono le singole resistenze collegate in parallelo In parole semplici, la resistenza complessiva di resistenze in parallelo è pari al reciproco della somma dei reciproci delle singole resistenze.\nEsempio:\nR_1 = 10 Ω, R_2 = 20 Ω, e R_3 = 30 Ω.\n1/R_totale = 1/10 + 1/20 + 1/30\n1/R_totale = 6/60\nR_totale = 60/6 = 10 Ω\nIl flusso di corrente totale del circuito è uguale alla somma di tutte le singole correnti di ramo sommate.\nLa potenza di una resistenza elettrica, in fisica e ingegneria elettrica, rappresenta la quantità di energia dissipata sotto forma di calore dalla resistenza quando una corrente elettrica la attraversa. La potenza è misurata in watt (W), la stessa unità di misura utilizzata per la potenza elettrica in generale. La formula per calcolare la potenza dissipata da una resistenza è:\nP = V^2 / R\ndove:\nP è la potenza dissipata in watt (W) V è la tensione elettrica ai capi della resistenza in volt (V) R è la resistenza elettrica in ohm (Ω) Secondo la legge di Joule, la potenza dissipata da una resistenza è direttamente proporzionale al quadrato della corrente che la attraversa e alla resistenza stessa. In altre parole, maggiore è la corrente o la resistenza, maggiore sarà la potenza dissipata sotto forma di calore.\nMaggiore è la potenza nominale, maggiore è la dimensione fisica del resistore per dissipare il calore. Tutti i resistori hanno una potenza massima: se questo valore viene superato si provoca il surriscaldamento del resistore e il suo danneggiamento. I valori standard di potenza sono: 1/8, 1/4, 1/2, 1 e 2 Watt.\nUn resistore è un componente elettronico passivo a due terminali che implementa la resistenza elettrica come elemento di circuito. La sua funzione primaria è ridurre il flusso di corrente elettrica in un circuito. I resistori sono onnipresenti nei circuiti elettronici e sono essenziali per una vasta gamma di applicazioni, dalla limitazione della corrente nella circuiteria di potenza all'impostazione dei livelli di bias nei circuiti analogici a basso segnale. La scelta appropriata del resistore, basata sulle sue caratteristiche fisiche e prestazionali, è cruciale per il funzionamento affidabile ed efficiente di qualsiasi sistema elettronico.\nDescrizione Fisica: Fisicamente, un resistore è costituito da un materiale resistivo che offre opposizione al flusso di corrente. I terminali metallici sono collegati a questo materiale resistivo per permettere la connessione al resto del circuito. La resistenza di un resistore è determinata dalla resistività del materiale, dalla sua lunghezza e dalla sua area della sezione trasversale. Matematicamente, la resistenza (R) è data dalla formula: R = ρL/A, dove ρ è la resistività del materiale, L è la lunghezza del materiale e A è l'area della sezione trasversale. La forma fisica può variare considerevolmente, dai piccoli resistori a montaggio superficiale (SMD) utilizzati nell'elettronica moderna ai resistori di potenza di grandi dimensioni utilizzati in applicazioni industriali. La tolleranza, la stabilità termica e la potenza nominale sono parametri critici da considerare nella selezione di un resistore.\nMateriali: I resistori sono fabbricati utilizzando una varietà di materiali, ognuno con proprietà uniche che influenzano le loro prestazioni. Due tipi comuni sono i resistori a film sottile e a film spesso.\nResistori a Film Sottile: I resistori a film sottile sono realizzati depositando un sottile strato di materiale resistivo (come metalli nobili, ossidi metallici o nitruri) su un substrato isolante (solitamente ceramica). Lo spessore del film è tipicamente nell'ordine di pochi nanometri. I resistori a film sottile offrono alta precisione, bassa rumorosità e buona stabilità di temperatura. Sono ideali per applicazioni che richiedono alta accuratezza e stabilità, come circuiti di precisione analogici e strumentazione. La tecnica di deposizione, come la sputtering o l'evaporazione, permette un controllo preciso dello spessore e della composizione del film, portando a resistori con tolleranze strette (fino allo 0.1%). Il coefficiente di temperatura della resistenza (TCR) è un parametro critico; i resistori a film sottile tendono ad avere un TCR inferiore rispetto ai resistori a film spesso, il che significa che la loro resistenza varia meno con la temperatura. I resistori a film sottile sono spesso utilizzati in applicazioni che richiedono alta stabilità a lungo termine, come negli standard di riferimento di precisione. Resistori a Film Spesso: I resistori a film spesso sono realizzati depositando una pasta spessa di materiale resistivo (una miscela di polveri metalliche, vetro e leganti organici) su un substrato ceramico. Lo spessore del film è tipicamente nell'ordine di decine di micrometri, molto più spesso rispetto ai film sottili. Dopo la deposizione, il resistore viene cotto ad alta temperatura per sinterizzare la pasta e formare uno strato resistivo solido. I resistori a film spesso sono meno costosi da produrre rispetto ai film sottili e sono adatti per applicazioni di uso generale. Tuttavia, tendono ad avere una precisione inferiore, una rumorosità maggiore e una stabilità di temperatura peggiore rispetto ai film sottili. Sono comunemente utilizzati in applicazioni dove il costo è una priorità e dove non sono richieste prestazioni di alta precisione. La variazione della resistenza con la temperatura è un fattore critico; i resistori a film spesso possono mostrare variazioni significative in ambienti con temperature fluttuanti, richiedendo compensazione o l'uso di resistori con tolleranze più strette. L'affidabilità a lungo termine è influenzata dall'umidità e dalla temperatura; la sigillatura e l'incapsulamento adeguati sono essenziali per prevenire la degradazione. Ruolo nei Circuiti Analogici e di Potenza: Nei circuiti analogici, i resistori sono utilizzati per impostare i livelli di bias dei transistor, per creare partitori di tensione, per limitare la corrente e per fornire feedback nei amplificatori operazionali. La scelta appropriata del valore del resistore influenza direttamente le prestazioni del circuito, come il guadagno, la stabilità e la risposta in frequenza. Nei circuiti di potenza, i resistori sono utilizzati per limitare la corrente, per proteggere i componenti dai sovraccarichi e per dissipare la potenza in forma di calore. I resistori di potenza devono essere in grado di dissipare una quantità significativa di energia senza surriscaldarsi eccessivamente. La potenza nominale del resistore deve essere scelta in base alla massima potenza che il resistore dovrà dissipare nel circuito. La resistenza deve essere scelta per limitare la corrente entro i limiti di sicurezza dei componenti del circuito. Nei circuiti analogici, la precisione e la stabilità del resistore sono essenziali per garantire prestazioni accurate. Ad esempio, in un amplificatore operazionale, i resistori di feedback determinano il guadagno dell'amplificatore; piccole variazioni nella resistenza possono influenzare significativamente il guadagno. Nei circuiti di potenza, i resistori sono utilizzati per proteggere i componenti da sovracorrente. Ad esempio, un resistore in serie con un LED può limitare la corrente attraverso il LED, prevenendo danni dovuti a un'eccessiva corrente. In entrambi i tipi di circuiti, la scelta del tipo di resistore (film sottile, film spesso, wirewound, ecc.) dipende dai requisiti specifici dell'applicazione. Considerazioni chiave includono la precisione, la stabilità, la potenza nominale, la temperatura di funzionamento e il costo. Dissipazione Termica: La dissipazione termica è un aspetto critico nella progettazione con resistori, specialmente nei circuiti di potenza. Quando una corrente passa attraverso un resistore, l'energia elettrica viene convertita in calore. La quantità di calore generata è proporzionale al quadrato della corrente e alla resistenza (P = I2R). Se il calore generato non viene dissipato efficacemente, la temperatura del resistore può aumentare, portando a un degrado delle prestazioni, a un cambiamento del valore della resistenza o, nei casi estremi, alla rottura del resistore. I resistori hanno una potenza nominale, che rappresenta la massima potenza che possono dissipare in modo continuo senza superare una temperatura di funzionamento sicura. La potenza nominale è solitamente specificata a una temperatura ambiente di 25°C. A temperature più elevate, la potenza nominale deve essere declassata per garantire che la temperatura del resistore non superi il limite massimo consentito.\nLa dissipazione termica può essere migliorata utilizzando resistori con una maggiore superficie, utilizzando dissipatori di calore o fornendo una ventilazione adeguata. I resistori di potenza sono spesso progettati con un corpo metallico per facilitare la dissipazione del calore. Il corpo metallico può essere fissato a un dissipatore di calore per aumentare ulteriormente la dissipazione termica. La scelta del resistore e delle tecniche di raffreddamento dipende dalla quantità di potenza da dissipare e dalla temperatura ambiente. In applicazioni con alta densità di potenza, è essenziale considerare attentamente la dissipazione termica per garantire l'affidabilità e la durata del circuito.\nEsempi di applicazioni pratiche dove la dissipazione termica è cruciale includono alimentatori, amplificatori audio e inverter di potenza. In questi circuiti, i resistori di potenza sono spesso utilizzati per limitare la corrente o per dissipare l'energia in eccesso. La progettazione termica deve garantire che i resistori funzionino entro i loro limiti di temperatura per evitare guasti prematuri. L'analisi termica può essere eseguita utilizzando software di simulazione per prevedere la temperatura dei resistori e ottimizzare la dissipazione termica. La misurazione della temperatura dei resistori durante il funzionamento è un altro modo per verificare che la progettazione termica sia adeguata.\nCircuiti Digitali (ESP32 / Arduino) Nei circuiti digitali, in particolare quelli basati su microcontrollori come ESP32 e Arduino, i resistori svolgono un ruolo fondamentale nella protezione dei pin GPIO (General Purpose Input/Output), nella gestione delle correnti di leakage e nella configurazione delle resistenze di pull-up/pull-down. La corretta implementazione dei resistori in questi contesti è cruciale per garantire l'affidabilità e la stabilità del sistema embedded.\nProtezione dei Pin GPIO: I pin GPIO dei microcontrollori sono sensibili a sovracorrenti e sovratensioni. Un'eccessiva corrente può danneggiare permanentemente il pin, mentre una sovratensione può causare malfunzionamenti o distruzione del microcontrollore. I resistori di limitazione di corrente sono comunemente utilizzati per proteggere i pin GPIO da danni. Quando un pin GPIO è collegato a un dispositivo esterno, come un LED o un sensore, un resistore in serie con il pin limita la corrente che può fluire attraverso il pin in caso di cortocircuito o sovraccarico. Il valore del resistore deve essere scelto in modo da limitare la corrente entro i limiti massimi consentiti dal datasheet del microcontrollore. La corrente massima tipica per un pin GPIO di un ESP32 o Arduino è di circa 20-40 mA. Pertanto, il valore del resistore deve essere calcolato per garantire che la corrente non superi questo limite. Ad esempio, se un pin GPIO a 3.3V è collegato a un LED e si desidera limitare la corrente a 20 mA, il valore del resistore può essere calcolato utilizzando la legge di Ohm: R = V/I = 3.3V / 0.02A = 165 Ohm. È consigliabile utilizzare un resistore con un valore leggermente superiore, come 180 Ohm o 220 Ohm, per fornire un margine di sicurezza. Il dimensionamento corretto del resistore di limitazione di corrente è fondamentale per prevenire danni al microcontrollore e garantire la sua longevità.\nGestione delle Correnti di Leakage: I pin GPIO dei microcontrollori presentano correnti di leakage, che sono piccole correnti che fluiscono attraverso il pin anche quando è in stato di alta impedenza. Queste correnti possono influenzare il funzionamento di circuiti esterni, in particolare quelli con alta impedenza. Le correnti di leakage sono dovute alla presenza di diodi di protezione ESD (Electrostatic Discharge) integrati nel pin GPIO. Questi diodi proteggono il pin da sovratensioni, ma causano anche una piccola corrente di leakage. La corrente di leakage tipica per un pin GPIO di un ESP32 o Arduino è di pochi microampere. In alcune applicazioni, questa corrente può essere trascurabile, ma in altre può causare problemi. Ad esempio, se un pin GPIO è utilizzato per leggere un sensore con alta impedenza, la corrente di leakage può scaricare il condensatore del sensore, causando letture errate. Per ridurre l'effetto delle correnti di leakage, è possibile utilizzare resistori di pull-up o pull-down con valori relativamente bassi. Questi resistori forniscono un percorso a bassa impedenza per la corrente di leakage, impedendo che influenzi il circuito esterno. Il valore del resistore deve essere scelto in modo da bilanciare la riduzione della corrente di leakage con il consumo di energia. Un valore troppo basso del resistore aumenterà il consumo di energia, mentre un valore troppo alto non sarà efficace nel ridurre la corrente di leakage.\nCalcolo delle Resistenze di Limitazione per Segnali Digitali (3.3V e 5V): Quando si interfacciano dispositivi digitali con diversi livelli di tensione (ad esempio, un dispositivo a 5V con un microcontrollore a 3.3V), è necessario utilizzare resistori di limitazione di corrente per proteggere i pin GPIO del microcontrollore. La tensione di 5V, se applicata direttamente a un pin GPIO a 3.3V, può danneggiare il microcontrollore. Un resistore in serie con il pin limita la corrente che può fluire attraverso il pin e riduce la tensione al livello di 3.3V. Il valore del resistore può essere calcolato utilizzando la legge di Ohm: R = (V_source - V_protected) / I_max, dove V_source è la tensione del dispositivo esterno, V_protected è la tensione massima consentita per il pin GPIO e I_max è la corrente massima consentita per il pin GPIO. Ad esempio, se si desidera interfacciare un dispositivo a 5V con un pin GPIO a 3.3V e la corrente massima consentita è 20 mA, il valore del resistore può essere calcolato come: R = (5V - 3.3V) / 0.02A = 85 Ohm. È consigliabile utilizzare un resistore con un valore leggermente superiore, come 100 Ohm o 120 Ohm, per fornire un margine di sicurezza. È importante notare che il resistore di limitazione di corrente riduce anche la velocità di commutazione del segnale digitale. Un valore troppo alto del resistore può rendere il segnale troppo lento per alcune applicazioni. Pertanto, il valore del resistore deve essere scelto in modo da bilanciare la protezione del pin GPIO con la velocità di commutazione del segnale.\nResistenze di Pull-Up e Pull-Down con ESP32 Le resistenze di pull-up e pull-down sono componenti essenziali nei circuiti digitali, in particolare quando si lavora con microcontrollori come ESP32 e Arduino. Servono a definire lo stato logico di un pin di ingresso quando non è attivamente pilotato da un segnale esterno. Senza una resistenza di pull-up o pull-down, il pin di ingresso potrebbe fluttuare in uno stato indeterminato, rendendo la lettura inaffidabile. La scelta tra pull-up e pull-down, così come il valore della resistenza, dipende dai requisiti specifici dell'applicazione.\nSpiegazione Teorica e Pratica: Una resistenza di pull-up connette un pin di ingresso a una tensione positiva (ad esempio, 3.3V o 5V). Quando il pin non è pilotato da un segnale esterno, la resistenza di pull-up lo mantiene a un livello logico alto. Un evento esterno, come la pressione di un pulsante, può tirare il pin a livello logico basso, consentendo al microcontrollore di rilevare l'evento. Una resistenza di pull-down, al contrario, connette un pin di ingresso a massa (0V). Quando il pin non è pilotato, la resistenza di pull-down lo mantiene a livello logico basso. Un evento esterno può tirare il pin a livello logico alto. La scelta tra pull-up e pull-down dipende dalla logica del circuito. Se si desidera che il pin sia in stato alto per impostazione predefinita e passi a basso quando viene attivato un evento, si utilizza una resistenza di pull-up. Se si desidera che il pin sia in stato basso per impostazione predefinita e passi a alto quando viene attivato un evento, si utilizza una resistenza di pull-down. L'implementazione pratica di resistenze di pull-up e pull-down è semplice. Basta collegare un resistore tra il pin di ingresso e la tensione positiva (pull-up) o massa (pull-down). Il valore del resistore deve essere scelto in modo da bilanciare la sensibilità del pin con il consumo di energia. Un valore troppo basso del resistore aumenterà il consumo di energia, mentre un valore troppo alto renderà il pin più suscettibile al rumore e alle interferenze. Quando Usare i Pull-Up Interni dell'ESP32 vs Resistenze Esterne: L'ESP32, come molti altri microcontrollori, offre resistenze di pull-up interne che possono essere abilitate tramite software. L'utilizzo dei pull-up interni semplifica il circuito, riducendo il numero di componenti esterni necessari. Tuttavia, i pull-up interni hanno alcune limitazioni. Innanzitutto, il valore della resistenza di pull-up interna è fisso e non può essere modificato. Questo valore è tipicamente compreso tra 30 kOhm e 40 kOhm. In secondo luogo, i pull-up interni possono consumare più energia rispetto alle resistenze esterne, soprattutto se il pin è frequentemente tirato a livello logico basso. Quando si utilizza un pull-up interno, la corrente scorre continuamente attraverso la resistenza quando il pin è a livello logico basso. Le resistenze esterne offrono maggiore flessibilità. È possibile scegliere il valore della resistenza in base alle esigenze specifiche dell'applicazione. È anche possibile utilizzare resistenze con tolleranze più strette per una maggiore precisione. Inoltre, le resistenze esterne possono essere scelte per ridurre il consumo di energia. Ad esempio, è possibile utilizzare una resistenza di pull-up esterna con un valore elevato per ridurre la corrente che scorre attraverso la resistenza quando il pin è a livello logico basso. La scelta tra pull-up interni ed esterni dipende da una serie di fattori, tra cui la complessità del circuito, il consumo di energia, la precisione e il costo. In generale, i pull-up interni sono adatti per applicazioni semplici dove il consumo di energia non è un problema. Le resistenze esterne sono più adatte per applicazioni che richiedono maggiore flessibilità, precisione o efficienza energetica. Calcolo del Valore Ottimale per Prevenire Glitch e Ridurre il Consumo Energetico (uA vs Speed): Il calcolo del valore ottimale per una resistenza di pull-up o pull-down richiede un compromesso tra la prevenzione dei glitch (segnali spuri) e la riduzione del consumo energetico. Un valore di resistenza troppo alto può rendere il pin più suscettibile al rumore e alle interferenze, causando glitch. Un valore di resistenza troppo basso aumenterà il consumo di energia, soprattutto se il pin è frequentemente tirato a livello logico basso. Il valore ottimale dipende dalla frequenza di commutazione del segnale, dalla sensibilità del pin e dal consumo di energia desiderato. Per calcolare il valore ottimale, è necessario considerare la corrente di leakage del pin, la capacità parassita del pin e la frequenza di commutazione del segnale. La corrente di leakage è la corrente che scorre attraverso il pin anche quando è in stato di alta impedenza. La capacità parassita è la capacità tra il pin e la massa. La frequenza di commutazione è la frequenza con cui il segnale cambia stato logico. Un valore di resistenza troppo alto può rendere il pin più suscettibile al rumore e alle interferenze, causando glitch. Un valore di resistenza troppo basso aumenterà il consumo di energia, soprattutto se il pin è frequentemente tirato a livello logico basso. Il valore ottimale dipende dalla frequenza di commutazione del segnale, dalla sensibilità del pin e dal consumo di energia desiderato. In generale, un valore di resistenza compreso tra 10 kOhm e 100 kOhm è una buona scelta per la maggior parte delle applicazioni. Tuttavia, è importante considerare i requisiti specifici dell'applicazione per determinare il valore ottimale. Ad esempio, consideriamo un interruttore collegato a un pin di ingresso dell'ESP32 con una resistenza di pull-up. Quando l'interruttore è aperto, il pin è tirato a livello logico alto dalla resistenza di pull-up. Quando l'interruttore è chiuso, il pin è tirato a livello logico basso. Se la resistenza di pull-up è troppo alta, il pin potrebbe essere suscettibile al rumore e alle interferenze, causando false letture. Se la resistenza di pull-up è troppo bassa, il consumo di energia aumenterà quando l'interruttore è chiuso. Il valore ottimale della resistenza di pull-up dipende dalla sensibilità del pin, dalla frequenza di commutazione dell'interruttore e dal consumo di energia desiderato. In generale, un valore di resistenza compreso tra 10 kOhm e 100 kOhm è una buona scelta per la maggior parte delle applicazioni.\nCalcolo Resistenza per LED: Guida Definitiva Il calcolo corretto della resistenza per un LED (Light Emitting Diode) è fondamentale per garantire la sua longevità e un funzionamento efficiente. Un LED, se non protetto da una resistenza limitatrice di corrente, può bruciarsi a causa di un'eccessiva corrente. La resistenza limita la corrente che scorre attraverso il LED, mantenendola entro i limiti di sicurezza specificati dal produttore. Questa guida fornisce una spiegazione dettagliata di come calcolare la resistenza appropriata per diverse configurazioni di LED, inclusi LED RGB, matrici di LED e stringhe in serie/parallelo.\nFormula di Ohm Applicata ai LED (R = (V_source - V_forward) / I_led): La formula fondamentale per calcolare la resistenza necessaria per un LED è derivata dalla legge di Ohm: R = V/I, dove R è la resistenza, V è la tensione e I è la corrente. Nel caso di un LED, la tensione V è la differenza tra la tensione di alimentazione (V_source) e la tensione di forward del LED (V_forward), e la corrente I è la corrente desiderata attraverso il LED (I_led). Quindi, la formula diventa: R = (V_source - V_forward) / I_led. La tensione di forward (V_forward) è la tensione richiesta dal LED per accendersi e varia a seconda del colore e del tipo di LED. La corrente desiderata (I_led) è la corrente che il LED deve ricevere per brillare alla sua intensità luminosa ottimale. Questi valori sono solitamente specificati nel datasheet del LED. Ad esempio, supponiamo di avere un LED rosso con una tensione di forward di 1.8V e una corrente desiderata di 20mA (0.02A), alimentato da una tensione di 5V. La resistenza necessaria può essere calcolata come: R = (5V - 1.8V) / 0.02A = 160 Ohm. È sempre consigliabile utilizzare un valore di resistenza standard più alto, come 180 Ohm o 220 Ohm, per fornire un margine di sicurezza e proteggere il LED da variazioni di tensione o corrente. Esempi Pratici per LED RGB: I LED RGB (Red, Green, Blue) contengono tre LED in un unico package, ognuno con una tensione di forward e una corrente desiderata diverse. Per controllare individualmente ogni colore, è necessario utilizzare un resistore separato per ciascun LED. Le tensioni di forward tipiche per un LED RGB sono: rosso (1.8-2.2V), verde (3.0-3.4V) e blu (3.0-3.4V). Le correnti desiderate sono solitamente le stesse per tutti i colori (ad esempio, 20mA). Per calcolare le resistenze necessarie per un LED RGB alimentato da 5V, si possono usare le seguenti formule: Rosso: R = (5V - 2.0V) / 0.02A = 150 Ohm (usare 180 Ohm o 220 Ohm) Verde: R = (5V - 3.2V) / 0.02A = 90 Ohm (usare 100 Ohm o 120 Ohm) Blu: R = (5V - 3.2V) / 0.02A = 90 Ohm (usare 100 Ohm o 120 Ohm) È importante utilizzare resistenze appropriate per ogni colore per garantire che i LED brillino con la stessa intensità e per prevenire danni. La variazione della tensione di forward tra i diversi colori può influenzare significativamente la luminosità se non si utilizzano resistenze separate.\nMatrici di LED: Le matrici di LED sono composte da più LED disposti in righe e colonne. Per pilotare una matrice di LED, è possibile utilizzare due approcci: pilotaggio a riga/colonna o pilotaggio individuale. Nel pilotaggio a riga/colonna, un resistore è posto in serie con ciascuna riga o colonna per limitare la corrente. Nel pilotaggio individuale, ogni LED ha il suo resistore. Il pilotaggio a riga/colonna è più efficiente in termini di numero di componenti, ma richiede un controllo più complesso tramite multiplexing. Il pilotaggio individuale è più semplice da implementare, ma richiede più resistori. Per calcolare la resistenza per il pilotaggio a riga/colonna, è necessario considerare il numero di LED in ciascuna riga o colonna e la corrente desiderata per ciascun LED. La formula è simile a quella utilizzata per un singolo LED, ma la corrente I_led è moltiplicata per il numero di LED nella riga o colonna. Ad esempio, se si hanno 8 LED in una riga con una corrente desiderata di 20mA per LED e una tensione di alimentazione di 5V, e la tensione di forward è 2V, la resistenza necessaria è: R = (5V - 2V) / (8 * 0.02A) = 18.75 Ohm (usare 22 Ohm o 27 Ohm). È importante notare che la potenza dissipata dal resistore sarà significativamente più alta rispetto a un singolo LED, quindi è necessario scegliere un resistore con una potenza nominale appropriata. Calcoli per Stringhe in Serie/Parallelo: I LED possono essere collegati in serie o in parallelo per ottenere diverse tensioni e correnti. In una stringa di LED in serie, la corrente è la stessa per tutti i LED, mentre la tensione totale è la somma delle tensioni di forward di ciascun LED. In una stringa di LED in parallelo, la tensione è la stessa per tutti i LED, mentre la corrente totale è la somma delle correnti di ciascun LED. Per le stringhe in serie, la resistenza può essere calcolata utilizzando la formula: R = (V_source - n * V_forward) / I_led, dove n è il numero di LED nella stringa. Ad esempio, se si hanno 3 LED con una tensione di forward di 2V ciascuno e una corrente desiderata di 20mA, alimentati da una tensione di 12V, la resistenza necessaria è: R = (12V - 3 * 2V) / 0.02A = 300 Ohm. Per le stringhe in parallelo, è necessario utilizzare un resistore separato per ciascun LED per garantire che la corrente sia distribuita uniformemente. Se si tenta di collegare i LED direttamente in parallelo senza resistori, i LED con la tensione di forward più bassa assorbiranno la maggior parte della corrente, causando il sovraccarico e la possibile bruciatura di quei LED. Il calcolo della resistenza per ogni LED è lo stesso che per un singolo LED, come descritto in precedenza. È importante notare che la corrente totale della stringa in parallelo sarà la somma delle correnti di ciascun LED, quindi è necessario assicurarsi che l'alimentazione sia in grado di fornire la corrente necessaria. Inoltre, la dissipazione di potenza per ogni resistore dovrà essere considerata per selezionare il resistore con la potenza nominale corretta.\nPartitori di Tensione: Progettazione per il Campionamento di Segnali Analogici (ADC) I partitori di tensione sono circuiti semplici ma essenziali utilizzati per ridurre una tensione di ingresso a un livello più basso, adatto per il campionamento da parte di un convertitore analogico-digitale (ADC). La progettazione accurata di un partitore di tensione è cruciale per garantire letture accurate e precise dall'ADC, in particolare quando si interfaccia con microcontrollori come l'ESP32. La scelta dei valori delle resistenze nel partitore influisce sull'impedenza di uscita del circuito, che a sua volta influisce sulla precisione della lettura dell'ADC. Questa sezione fornisce una guida dettagliata sulla progettazione di partitori di tensione per il campionamento di segnali analogici con l'ADC dell'ESP32.\nProgettazione di Partitori per il Campionamento di Segnali Analogici (ADC): Un partitore di tensione è costituito da due resistori (R1 e R2) collegati in serie tra la tensione di ingresso (V_in) e la massa. La tensione di uscita (V_out) è prelevata dal punto di giunzione tra i due resistori. La formula per calcolare la tensione di uscita è: V_out = V_in * (R2 / (R1 + R2)). L'obiettivo della progettazione di un partitore di tensione è scegliere i valori di R1 e R2 in modo da ottenere la tensione di uscita desiderata per il campionamento da parte dell'ADC. L'ESP32 ha un ADC con un intervallo di ingresso tipico di 0-3.3V. Pertanto, se la tensione di ingresso è superiore a 3.3V, è necessario utilizzare un partitore di tensione per ridurla entro questo intervallo. Ad esempio, se si desidera misurare una tensione di 0-10V con l'ADC dell'ESP32, è necessario ridurre la tensione di ingresso di un fattore di circa 3. Un possibile set di valori per R1 e R2 potrebbe essere R1 = 20 kOhm e R2 = 10 kOhm. In questo caso, la tensione di uscita sarebbe V_out = V_in * (10 kOhm / (20 kOhm + 10 kOhm)) = V_in * (1/3). Quindi, una tensione di ingresso di 10V verrebbe ridotta a una tensione di uscita di 3.33V, che rientra nell'intervallo di ingresso dell'ADC dell'ESP32. È importante scegliere i valori dei resistori in modo che la tensione di uscita non superi mai la tensione massima consentita dall'ADC, anche in caso di variazioni della tensione di ingresso.\nCalcolo dell'Impedenza di Uscita e Impatto sulla Precisione di Lettura del Convertitore ADC dell'ESP32: L'impedenza di uscita di un partitore di tensione è un parametro critico che influisce sulla precisione della lettura dell'ADC. L'impedenza di uscita è la resistenza vista dall'ADC quando guarda indietro nel partitore di tensione. L'impedenza di uscita di un partitore di tensione è data dalla formula: Z_out = (R1 * R2) / (R1 + R2). Un'impedenza di uscita troppo alta può caricare l'ingresso dell'ADC, causando una riduzione della tensione misurata e quindi un errore nella lettura. L'impedenza di ingresso dell'ADC dell'ESP32 è tipicamente elevata, ma non infinita. Pertanto, è importante mantenere l'impedenza di uscita del partitore di tensione al di sotto di un certo valore per minimizzare l'errore di caricamento. In generale, si consiglia di mantenere l'impedenza di uscita del partitore di tensione al di sotto di 10 kOhm per l'ADC dell'ESP32. Se l'impedenza di uscita è troppo alta, è possibile ridurre i valori di R1 e R2, mantenendo il rapporto tra di essi costante per preservare il rapporto di divisione della tensione. Ad esempio, se si utilizzano R1 = 20 kOhm e R2 = 10 kOhm, l'impedenza di uscita è Z_out = (20 kOhm * 10 kOhm) / (20 kOhm + 10 kOhm) = 6.67 kOhm. Se si riducono i valori a R1 = 2 kOhm e R2 = 1 kOhm, l'impedenza di uscita diventa Z_out = (2 kOhm * 1 kOhm) / (2 kOhm + 1 kOhm) = 0.67 kOhm, che è significativamente inferiore. È importante notare che la riduzione dei valori dei resistori aumenterà il consumo di energia del partitore di tensione, quindi è necessario bilanciare la precisione con il consumo di energia. La precisione della lettura dell'ADC può essere ulteriormente migliorata utilizzando condensatori di filtro per ridurre il rumore e stabilizzare la tensione. Un condensatore di bypass posto in parallelo a R2 può ridurre il rumore e migliorare la stabilità della tensione di uscita. La capacità del condensatore deve essere scelta in base alla frequenza del rumore e alla velocità di campionamento dell'ADC.\nIn sintesi, la progettazione di un partitore di tensione per il campionamento di segnali analogici con l'ADC dell'ESP32 richiede un'attenta considerazione del rapporto di divisione della tensione, dell'impedenza di uscita e del consumo di energia. È importante scegliere i valori dei resistori in modo da ridurre la tensione di ingresso entro l'intervallo di ingresso dell'ADC, minimizzare l'errore di caricamento e mantenere il consumo di energia entro i limiti accettabili. L'utilizzo di condensatori di filtro può migliorare ulteriormente la precisione della lettura dell'ADC riducendo il rumore e stabilizzando la tensione.\nAnalisi dei Guasti e Affidabilità dei Resistori L'affidabilità dei resistori è un parametro cruciale nella progettazione di qualsiasi circuito elettronico. Un guasto in un resistore può compromettere l'intero sistema, causando malfunzionamenti o, in casi estremi, danni permanenti. Comprendere i meccanismi di guasto e i fattori che influenzano l'affidabilità dei resistori è quindi essenziale per selezionare il componente appropriato e garantire la robustezza del circuito.\nI resistori, come tutti i componenti elettronici, sono soggetti a diversi tipi di guasto, ciascuno con cause e manifestazioni specifiche. Questi guasti possono essere classificati in due categorie principali: guasti catastrofici e guasti parametrici. Un guasto catastrofico si verifica quando il resistore smette completamente di funzionare, ad esempio, diventando un circuito aperto (open circuit) o un cortocircuito. Un guasto parametrico, d'altra parte, si verifica quando il valore della resistenza si discosta significativamente dal valore nominale, pur mantenendo il resistore la sua funzionalità di base.\nUno dei meccanismi di guasto più comuni è lo stress termico. Quando un resistore dissipa potenza, genera calore. Se il calore generato è superiore alla capacità di dissipazione termica del resistore, la sua temperatura aumenta. Temperature elevate possono accelerare i processi di degrado del materiale resistivo, portando a un cambiamento del valore della resistenza o, in casi estremi, alla rottura del resistore. I resistori di potenza, in particolare, sono soggetti a stress termico, ed è fondamentale selezionare un resistore con una potenza nominale adeguata all'applicazione. La potenza nominale di un resistore indica la massima potenza che può dissipare in modo continuo senza superare una temperatura di funzionamento sicura. Tuttavia, è importante considerare che la potenza nominale è solitamente specificata a una temperatura ambiente di 25°C. A temperature più elevate, la potenza nominale deve essere declassata per garantire che la temperatura del resistore non superi il limite massimo consentito.\nUn altro meccanismo di guasto importante è il \"Pulse Overload\", ovvero il sovraccarico da impulsi di tensione. I resistori sono progettati per resistere a una determinata tensione massima. Se la tensione applicata supera questo limite, il resistore può danneggiarsi. I resistori a film sottile, in particolare, sono sensibili ai sovraccarichi da impulsi, poiché il film resistivo è molto sottile e può essere facilmente danneggiato da una scarica elettrica. Questo tipo di guasto è particolarmente rilevante in applicazioni dove i resistori sono esposti a transienti di tensione, come ad esempio i circuiti di protezione contro le scariche elettrostatiche (ESD). La capacità di un resistore di resistere a impulsi di tensione è solitamente specificata nel datasheet del componente. È importante selezionare un resistore con una capacità di resistenza agli impulsi adeguata all'applicazione.\nL'umidità e la corrosione elettrolitica rappresentano un'altra seria minaccia per l'affidabilità dei resistori. L'umidità può penetrare nel corpo del resistore e reagire con i materiali resistivi, causando corrosione e alterazione del valore della resistenza. La corrosione elettrolitica è un processo accelerato dalla presenza di un campo elettrico. Quando un resistore è sottoposto a una tensione in un ambiente umido, si crea un campo elettrico che facilita la migrazione di ioni metallici, causando corrosione e guasti. I resistori a film spesso sono particolarmente suscettibili alla corrosione, poiché il materiale resistivo è poroso e può assorbire umidità. Per proteggere i resistori dall'umidità e dalla corrosione, è possibile utilizzare resistori incapsulati o rivestiti con materiali protettivi. L'incapsulamento protegge il resistore dall'ambiente esterno, impedendo all'umidità di penetrare. I rivestimenti protettivi creano una barriera tra il resistore e l'ambiente, riducendo la corrosione.\nLa distinzione tra un fallimento \"Open Circuit\" e un cambio di valore resistivo è fondamentale per diagnosticare il tipo di guasto e implementare le opportune misure correttive. Un fallimento \"Open Circuit\" indica una rottura completa del circuito resistivo, impedendo il flusso di corrente. Questo tipo di guasto può essere causato da stress termico estremo, sovraccarico da impulsi o corrosione estesa. Un cambio di valore resistivo, d'altra parte, indica una deriva del valore della resistenza rispetto al valore nominale. Questa deriva può essere causata da stress termico prolungato, umidità o invecchiamento del materiale resistivo. In alcuni casi, il cambio di valore resistivo può essere graduale e progressivo, mentre in altri può essere improvviso e significativo. La diagnosi del tipo di guasto richiede l'utilizzo di strumenti di misura appropriati, come un multimetro o un analizzatore di impedenza. La comprensione del meccanismo di guasto permette di selezionare i componenti appropriati, implementare strategie di protezione e monitorare le prestazioni dei resistori nel tempo per prevenire guasti catastrofici e garantire l'affidabilità del circuito.\nLa qualità dei terminali e il processo di saldatura giocano un ruolo cruciale nell'affidabilità a lungo termine dei resistori. Terminali di scarsa qualità possono ossidarsi o corrodersi, aumentando la resistenza di contatto e causando malfunzionamenti. Un processo di saldatura improprio può danneggiare il resistore a causa dello stress termico o della contaminazione del materiale resistivo. È fondamentale utilizzare materiali di saldatura di alta qualità e seguire le procedure di saldatura raccomandate dal produttore per garantire una connessione affidabile e duratura.\nInoltre, la scelta del package del resistore può influenzare la sua affidabilità. I resistori a montaggio superficiale (SMD) sono più compatti e leggeri rispetto ai resistori a foro passante, ma sono anche più sensibili allo stress meccanico e termico. I resistori a foro passante offrono una maggiore robustezza meccanica e una migliore dissipazione termica, ma richiedono più spazio sulla scheda. La scelta del package dipende quindi dai requisiti specifici dell'applicazione.\nInfine, è importante considerare l'ambiente operativo in cui il resistore sarà utilizzato. Temperature estreme, umidità elevata, vibrazioni e radiazioni possono accelerare i processi di degrado e ridurre l'affidabilità del resistore. In ambienti ostili, è necessario utilizzare resistori specificamente progettati per resistere a queste condizioni estreme.\nStandard Industriali e Certificazioni 2026 Nel panorama attuale dell'elettronica, caratterizzato da una crescente complessità e da requisiti di affidabilità sempre più stringenti, gli standard industriali e le certificazioni svolgono un ruolo fondamentale nel garantire la qualità e le prestazioni dei componenti elettronici, inclusi i resistori. Questi standard definiscono i criteri di progettazione, fabbricazione, test e qualifica che i resistori devono soddisfare per essere considerati idonei all'uso in specifiche applicazioni. La conformità a questi standard offre ai progettisti e agli ingegneri la garanzia che i resistori soddisfano determinati requisiti di prestazioni e affidabilità, riducendo il rischio di guasti e migliorando la sicurezza del sistema.\nUno degli standard più importanti nel settore automobilistico è l'AEC-Q200, sviluppato dall'Automotive Electronics Council (AEC). Questo standard definisce i requisiti di qualifica per i componenti passivi utilizzati nei sistemi elettronici automobilistici. L'AEC-Q200 copre una vasta gamma di test ambientali e di affidabilità, tra cui test di temperatura, umidità, vibrazioni, shock termici e resistenza agli agenti chimici. I resistori che soddisfano i requisiti dell'AEC-Q200 sono considerati idonei all'uso in applicazioni automobilistiche, dove sono esposti a condizioni ambientali estreme e a requisiti di affidabilità molto elevati. La certificazione AEC-Q200 è un indicatore della qualità e dell'affidabilità del resistore, e offre ai progettisti la fiducia necessaria per utilizzare il componente in applicazioni critiche per la sicurezza.\nNel settore militare e aerospaziale, i componenti elettronici devono soddisfare requisiti di affidabilità ancora più stringenti rispetto al settore automobilistico. Gli standard MIL-PRF (Military Performance Specification) definiscono i requisiti di prestazioni e affidabilità per i componenti elettronici utilizzati in applicazioni militari e aerospaziali. Questi standard coprono una vasta gamma di test ambientali e di affidabilità, tra cui test di temperatura estrema, vibrazioni, shock, radiazioni e altitudine. I resistori che soddisfano i requisiti dei MIL-PRF sono considerati idonei all'uso in applicazioni critiche per la sicurezza, dove è essenziale garantire un funzionamento affidabile in condizioni ambientali estreme. La conformità agli standard MIL-PRF richiede processi di fabbricazione e test molto rigorosi, e i componenti che soddisfano questi standard sono solitamente più costosi rispetto ai componenti commerciali.\nLa differenza di prezzo tra un resistore da 1 centesimo e uno da 1 euro non è casuale, ma riflette le diverse caratteristiche prestazionali, i processi di fabbricazione e i livelli di controllo qualità associati a ciascun componente. Un resistore da 1 centesimo è solitamente un componente commerciale di basso costo, fabbricato con materiali di base e processi di fabbricazione standard. Questo tipo di resistore è adatto per applicazioni non critiche, dove i requisiti di precisione e affidabilità non sono elevati. Un resistore da 1 euro, d'altra parte, è solitamente un componente di alta precisione e affidabilità, fabbricato con materiali di alta qualità e processi di fabbricazione avanzati. Questo tipo di resistore è sottoposto a test rigorosi per garantire la conformità a specifici standard industriali e viene utilizzato in applicazioni critiche, dove è essenziale garantire un funzionamento affidabile e preciso. Il costo più elevato di un resistore da 1 euro riflette quindi la maggiore qualità, affidabilità e conformità a specifici standard industriali.\nOltre agli standard AEC-Q200 e MIL-PRF, esistono altri standard industriali che definiscono i requisiti di prestazioni e affidabilità per i resistori. Lo standard IEC (International Electrotechnical Commission) definisce i requisiti generali per i componenti elettronici, inclusi i resistori. Lo standard EIA (Electronic Industries Alliance) definisce i requisiti specifici per i resistori, come le dimensioni, le tolleranze e le caratteristiche elettriche. La conformità a questi standard offre ai progettisti la garanzia che i resistori soddisfano determinati requisiti di prestazioni e affidabilità, riducendo il rischio di guasti e migliorando la sicurezza del sistema.\nLa scelta del resistore appropriato per una specifica applicazione richiede un'attenta considerazione dei requisiti di prestazioni, affidabilità e costo. I progettisti devono valutare attentamente le condizioni ambientali in cui il resistore sarà utilizzato, i requisiti di precisione e affidabilità del circuito e il budget disponibile. La conformità a specifici standard industriali può offrire ai progettisti la garanzia che il resistore soddisfa determinati requisiti di prestazioni e affidabilità, riducendo il rischio di guasti e migliorando la sicurezza del sistema. Tuttavia, è importante considerare che la conformità a specifici standard può comportare un costo più elevato, e i progettisti devono bilanciare attentamente i requisiti di prestazioni, affidabilità e costo per selezionare il resistore appropriato per la loro applicazione.\nIn sintesi, gli standard industriali e le certificazioni svolgono un ruolo fondamentale nel garantire la qualità e le prestazioni dei resistori. La conformità a questi standard offre ai progettisti la garanzia che i resistori soddisfano determinati requisiti di prestazioni e affidabilità, riducendo il rischio di guasti e migliorando la sicurezza del sistema. La scelta del resistore appropriato per una specifica applicazione richiede un'attenta considerazione dei requisiti di prestazioni, affidabilità e costo, e i progettisti devono valutare attentamente le condizioni ambientali in cui il resistore sarà utilizzato, i requisiti di precisione e affidabilità del circuito e il budget disponibile.\nL'evoluzione degli standard industriali è un processo continuo, guidato dalle nuove tecnologie e dai requisiti sempre più stringenti del mercato. Nel 2026, è probabile che assisteremo a un'ulteriore evoluzione degli standard AEC-Q200 e MIL-PRF, con l'introduzione di test più rigorosi e requisiti di affidabilità ancora più elevati. Inoltre, è probabile che emergano nuovi standard per i resistori utilizzati in applicazioni emergenti, come l'Internet of Things (IoT) e l'intelligenza artificiale (AI). I progettisti e gli ingegneri devono rimanere aggiornati sulle ultime evoluzioni degli standard industriali per garantire che i loro progetti soddisfino i requisiti di prestazioni e affidabilità del futuro.\nLa tracciabilità dei componenti è un altro aspetto importante da considerare nella selezione dei resistori. La tracciabilità permette di risalire all'origine del componente, al lotto di produzione e ai test a cui è stato sottoposto. La tracciabilità è particolarmente importante in applicazioni critiche, dove è essenziale garantire la qualità e l'affidabilità del componente. I produttori di resistori di alta qualità solitamente offrono un sistema di tracciabilità che permette ai clienti di risalire all'origine del componente e di verificare la conformità a specifici standard industriali.\nGuida all'Acquisto e Distribuzione 2026 L'acquisto di resistori, apparentemente un compito semplice, si rivela un'attività complessa che richiede una conoscenza approfondita del mercato, dei produttori, delle specifiche tecniche e delle esigenze applicative. Nel 2026, con l'evoluzione tecnologica e la crescente specializzazione dei settori, la selezione del resistore appropriato diventerà ancora più critica per garantire prestazioni ottimali e affidabilità a lungo termine. Questa guida si propone di fornire un quadro completo del processo di acquisto e distribuzione dei resistori, analizzando i principali produttori, le modalità di lettura dei datasheet tecnici, il significato delle sigle e delle tolleranze di produzione.\nTra i principali produttori di resistori a livello globale spiccano nomi come Vishay, Yageo, Panasonic e KOA. Vishay è un'azienda statunitense con una vasta gamma di prodotti, inclusi resistori a film sottile, film spesso, wirewound e foil. Vishay si distingue per la sua attenzione alla qualità e all'affidabilità, e i suoi resistori sono ampiamente utilizzati in applicazioni industriali, automobilistiche e militari. Yageo è un'azienda taiwanese che si è affermata come uno dei principali produttori di resistori a livello mondiale, offrendo una vasta gamma di prodotti a prezzi competitivi. Panasonic è un'azienda giapponese con una lunga tradizione nell'elettronica, e i suoi resistori sono noti per la loro elevata qualità e affidabilità. KOA è un'altra azienda giapponese specializzata nella produzione di resistori di precisione, utilizzati in applicazioni dove è richiesta un'elevata accuratezza. La scelta del produttore dipende dai requisiti specifici dell'applicazione, dal budget disponibile e dalle preferenze personali.\nLa lettura di un datasheet tecnico di un resistore può sembrare un compito arduo, data la quantità di informazioni tecniche presentate. Tuttavia, una comprensione approfondita del datasheet è essenziale per selezionare il resistore appropriato per una specifica applicazione. Il datasheet fornisce informazioni dettagliate sulle caratteristiche elettriche, meccaniche e ambientali del resistore, inclusi il valore della resistenza, la tolleranza, il coefficiente di temperatura, la potenza nominale, la tensione massima, le dimensioni, il package e la temperatura di funzionamento. È importante prestare particolare attenzione alle curve di declassamento della potenza, che indicano la massima potenza che il resistore può dissipare a diverse temperature ambientali. Inoltre, è importante verificare la conformità del resistore a specifici standard industriali, come l'AEC-Q200 o i MIL-PRF, se l'applicazione richiede un'elevata affidabilità.\nLe sigle E96, E24 e le tolleranze di produzione indicano la precisione con cui il valore della resistenza è fabbricato. La serie E indica il numero di valori di resistenza disponibili in un determinato intervallo. Ad esempio, la serie E24 ha 24 valori di resistenza per decade, mentre la serie E96 ha 96 valori di resistenza per decade. Una serie E con un numero maggiore di valori offre una maggiore flessibilità nella scelta del valore di resistenza appropriato per una specifica applicazione. La tolleranza di produzione indica la massima deviazione del valore della resistenza rispetto al valore nominale. Ad esempio, una tolleranza del 1% significa che il valore della resistenza può variare fino all'1% sopra o sotto il valore nominale. La scelta della tolleranza dipende dai requisiti di precisione dell'applicazione. In applicazioni dove è richiesta un'elevata accuratezza, è necessario utilizzare resistori con tolleranze strette, come lo 0.1% o lo 0.01%. In applicazioni meno critiche, è possibile utilizzare resistori con tolleranze più ampie, come il 5% o il 10%.\nOltre alle caratteristiche elettriche e meccaniche, è importante considerare anche l'affidabilità a lungo termine del resistore. L'affidabilità è influenzata da diversi fattori, tra cui la temperatura di funzionamento, l'umidità, le vibrazioni e le radiazioni. In ambienti ostili, è necessario utilizzare resistori specificamente progettati per resistere a queste condizioni estreme. Ad esempio, i resistori utilizzati in applicazioni automobilistiche devono essere in grado di resistere a temperature estreme, vibrazioni e shock termici. I resistori utilizzati in applicazioni aerospaziali devono essere in grado di resistere a radiazioni e temperature estreme. La scelta del resistore appropriato per una specifica applicazione richiede quindi un'attenta considerazione dei requisiti di prestazioni, affidabilità e costo.\nLa disponibilità e i tempi di consegna sono altri fattori importanti da considerare nel processo di acquisto. Alcuni resistori, in particolare quelli di alta precisione o specificamente progettati per applicazioni speciali, potrebbero non essere facilmente disponibili e potrebbero richiedere tempi di consegna lunghi. È quindi importante pianificare attentamente gli acquisti e verificare la disponibilità dei componenti prima di avviare la progettazione. Inoltre, è consigliabile acquistare i resistori da distributori autorizzati, che offrono la garanzia della qualità e dell'affidabilità dei componenti.\nL'evoluzione del mercato dei resistori è caratterizzata da una crescente domanda di componenti di alta precisione e affidabilità, in particolare per applicazioni industriali, automobilistiche e mediche. Inoltre, la crescente diffusione dell'Internet of Things (IoT) e dell'intelligenza artificiale (AI) sta creando nuove opportunità per i produttori di resistori, che devono sviluppare componenti specificamente progettati per queste applicazioni emergenti. Nel 2026, è probabile che assisteremo a un'ulteriore evoluzione del mercato dei resistori, con l'introduzione di nuove tecnologie e materiali che consentiranno di migliorare le prestazioni, l'affidabilità e la miniaturizzazione dei componenti.\nInfine, è importante considerare l'impatto ambientale dei resistori. La produzione di resistori richiede l'utilizzo di materiali e processi che possono avere un impatto sull'ambiente. È quindi consigliabile scegliere resistori prodotti da aziende che adottano pratiche sostenibili e che si impegnano a ridurre l'impatto ambientale dei loro prodotti. Inoltre, è importante smaltire correttamente i resistori a fine vita, seguendo le normative locali e i protocolli di riciclaggio.\nIn sintesi, l'acquisto di resistori è un'attività complessa che richiede una conoscenza approfondita del mercato, dei produttori, delle specifiche tecniche e delle esigenze applicative. La scelta del resistore appropriato è fondamentale per garantire prestazioni ottimali, affidabilità a lungo termine e conformità a specifici standard industriali. I progettisti e gli ingegneri devono valutare attentamente le caratteristiche elettriche, meccaniche e ambientali del resistore, nonché la sua affidabilità a lungo termine, la disponibilità e l'impatto ambientale. Un'attenta pianificazione degli acquisti e la scelta di distributori autorizzati sono essenziali per garantire la qualità e l'affidabilità dei componenti.\nTabella Comparativa Estrema dei Resistori La seguente tabella fornisce una panoramica comparativa dettagliata di diversi tipi di resistori, evidenziando le loro caratteristiche principali, tra cui il materiale, la tolleranza tipica, il coefficiente di temperatura (TCR), il rumore e le applicazioni ideali. Questa tabella è progettata per aiutare i progettisti e gli ingegneri a selezionare il resistore più appropriato per le loro specifiche esigenze applicative.\nTipo di Resistore Materiale Tolleranza Tipica (%) TCR (ppm/°C) Rumore Applicazione Ideale Film Sottile NiCr, TaN 0.1 - 1 ±25 - ±50 Basso Circuiti di precisione analogici, strumentazione, amplificatori operazionali Film Spesso Ossidi metallici 1 - 5 ±50 - ±200 Medio Applicazioni di uso generale, partitori di tensione, limitazione di corrente Wirewound Leghe di resistenza (es. Nichel-Cromo) 0.005 - 1 ±5 - ±50 Basso Resistori di potenza, shunt di corrente, applicazioni di precisione Foil (Bulk Metal Foil) Leghe di resistenza speciali (es. Z foil) 0.001 - 0.1 ±0.2 - ±5 Estremamente basso Strumentazione di alta precisione, bilance di precisione, applicazioni audio di fascia alta Carbon Composition Polvere di carbonio 5 - 20 ±200 - ±1500 Alto Applicazioni di uso generale, limitazione di corrente ad alta tensione Carbon Film Film di carbonio 1 - 5 ±100 - ±500 Medio-Alto Applicazioni di uso generale, circuiti a basso costo Metal Oxide Film Ossido metallico 0.5 - 5 ±50 - ±300 Medio Resistori di sicurezza, applicazioni ad alta tensione, protezione da sovratensioni Fusibili Resistivi Leghe fusibili 5 - 10 Elevato N/A Protezione da sovracorrente, alimentatori Shunt Resistori Leghe di resistenza (es. Manganina, Constantan) 0.1 - 1 ±10 - ±50 Basso Misura di corrente ad alta precisione, alimentatori, sistemi di monitoraggio della batteria Resistori SMD Film spesso, film sottile 0.1 - 5 ±25 - ±200 Basso-Medio Applicazioni di montaggio superficiale, elettronica di consumo, dispositivi portatili Resistori a Foro Passante Film spesso, film sottile, wirewound 0.005 - 20 ±5 - ±1500 Basso-Alto Prototipazione, applicazioni di potenza, elettronica vintage Resistori Variabili (Potenziometri) Carbonio, cermet, wirewound 5 - 20 Elevato Medio-Alto Regolazione del volume, controllo della luminosità, calibrazione Resistori Termici (Termistori) Ossidi semiconduttori 5 - 10 Molto elevato (varia con la temperatura) N/A Misura della temperatura, compensazione della temperatura Resistori Sensibili alla Luce (Fotoresistori) Solfuro di cadmio, seleniuro di cadmio Ampia variazione (dipende dalla luce) N/A N/A Rilevamento della luce, controllo della luminosità automatica Resistori ad Alta Tensione Film spesso, ossido metallico 1 - 10 ±50 - ±500 Medio Alimentatori ad alta tensione, circuiti di protezione da sovratensioni Resistori ad Alta Potenza Wirewound, film spesso 1 - 10 ±50 - ±500 Basso-Medio Alimentatori, frenatura rigenerativa, applicazioni industriali Resistori Anti-Surge Metal oxide film, wirewound 1-5 ±100 - ±300 Medio Protezione da sovratensioni, alimentatori, illuminazione a LED Zero-Ohm Resistors Special metal alloy N/A N/A N/A Jumpers, board links, configuration jumpers Network Resistors (SIP/DIP) Film spesso 2-5 ±100 - ±200 Medio Pull-up/pull-down networks, voltage dividers Precision Current Sense Resistors Metal strip, foil 0.1 - 1 ±10 - ±50 Very low High accuracy current measurement, power supplies, motor control Questa tabella offre un punto di partenza per la selezione del resistore appropriato. Tuttavia, è sempre consigliabile consultare il datasheet del produttore per informazioni più dettagliate e specifiche.\nCasi Studio Avanzati: Resistori di Bilanciamento in un Battery Management System (BMS) Un Battery Management System (BMS) è un sistema elettronico complesso che gestisce una batteria ricaricabile (cella o pacco batteria) monitorando il suo stato, controllando il processo di carica e scarica, proteggendola da condizioni operative anomale e, in alcuni casi, bilanciando la tensione tra le celle per massimizzare la capacità e la durata complessiva della batteria. I resistori di bilanciamento svolgono un ruolo cruciale in un BMS, contribuendo a mantenere la tensione di ogni cella all'interno di un intervallo accettabile, prevenendo il sovraccarico o la scarica eccessiva, che possono danneggiare la batteria e ridurre la sua vita utile. Questo caso studio esplora in dettaglio il ruolo dei resistori di bilanciamento in un BMS, analizzando i requisiti di progettazione, i calcoli necessari e le considerazioni pratiche per la loro implementazione.\nIn un pacco batteria composto da più celle collegate in serie, è inevitabile che si verifichino piccole differenze di capacità, resistenza interna e tasso di auto-scarica tra le celle. Queste differenze, se non compensate, possono portare a uno squilibrio di tensione tra le celle durante il processo di carica e scarica. Una cella con una capacità inferiore si caricherà più rapidamente e raggiungerà la tensione massima prima delle altre celle. Se il processo di carica continua, questa cella può essere sovraccaricata, danneggiandosi e riducendo la capacità complessiva del pacco batteria. Allo stesso modo, una cella con una capacità inferiore si scaricherà più rapidamente e raggiungerà la tensione minima prima delle altre celle. Se il processo di scarica continua, questa cella può essere scaricata eccessivamente, danneggiandosi e riducendo la capacità complessiva del pacco batteria. I resistori di bilanciamento vengono utilizzati per mitigare questi effetti, scaricando selettivamente le celle con una tensione più alta, consentendo alle celle con una tensione più bassa di raggiungere la stessa tensione durante il processo di carica. In fase di scarica, se una cella raggiunge la tensione minima prima delle altre, il BMS può interrompere la scarica per proteggere la cella, ma questo riduce l'energia disponibile dal pacco batteria. Un buon sistema di bilanciamento permette di utilizzare la massima energia disponibile dal pacco batteria, proteggendo al contempo le celle.\nEsistono due approcci principali per il bilanciamento delle celle: bilanciamento passivo e bilanciamento attivo. Nel bilanciamento passivo, i resistori di bilanciamento sono collegati in parallelo a ciascuna cella. Quando la tensione di una cella supera una determinata soglia, un interruttore (solitamente un MOSFET) viene chiuso, consentendo alla corrente di fluire attraverso il resistore, scaricando la cella e riducendo la sua tensione. Il bilanciamento passivo è semplice ed economico da implementare, ma è anche inefficiente, poiché l'energia in eccesso viene dissipata sotto forma di calore. Nel bilanciamento attivo, l'energia in eccesso dalle celle con una tensione più alta viene trasferita alle celle con una tensione più bassa, utilizzando convertitori DC-DC o condensatori commutati. Il bilanciamento attivo è più complesso e costoso da implementare, ma è anche più efficiente, poiché l'energia viene riutilizzata invece di essere dissipata.\nIl calcolo del valore appropriato dei resistori di bilanciamento è un passo critico nella progettazione di un BMS. Il valore del resistore deve essere scelto in modo da bilanciare la velocità di bilanciamento con la dissipazione di potenza. Un valore di resistenza troppo basso comporterà una dissipazione di potenza elevata e una velocità di bilanciamento rapida, ma può anche causare un surriscaldamento del resistore e ridurre l'efficienza del sistema. Un valore di resistenza troppo alto comporterà una dissipazione di potenza bassa e una velocità di bilanciamento lenta, il che potrebbe non essere sufficiente per compensare le differenze di tensione tra le celle. Il valore ottimale del resistore dipende dalle caratteristiche della batteria, dalle tolleranze delle celle e dalle esigenze dell'applicazione. La formula di base per calcolare il valore del resistore è: R = (V_max - V_min) / I_bal, dove R è la resistenza, V_max è la tensione massima della cella, V_min è la tensione minima della cella e I_bal è la corrente di bilanciamento desiderata. La corrente di bilanciamento deve essere scelta in modo da bilanciare la velocità di bilanciamento con la dissipazione di potenza. Ad esempio, se la tensione massima della cella è 4.2V, la tensione minima della cella è 3.0V e la corrente di bilanciamento desiderata è 50mA, il valore del resistore sarà: R = (4.2V - 3.0V) / 0.05A = 24 Ohm. È importante scegliere un resistore con una potenza nominale adeguata per dissipare la potenza generata durante il processo di bilanciamento. La potenza dissipata dal resistore è data dalla formula: P = I^2 * R, dove P è la potenza, I è la corrente e R è la resistenza. Nel nostro esempio, la potenza dissipata dal resistore sarà: P = (0.05A)^2 * 24 Ohm = 0.06W. È consigliabile scegliere un resistore con una potenza nominale almeno doppia rispetto alla potenza calcolata, per garantire un funzionamento affidabile e prevenire il surriscaldamento. Quindi, in questo caso, si sceglierebbe un resistore da almeno 0.125W (1/8W standard).\nOltre al valore della resistenza e alla potenza nominale, è importante considerare anche la tolleranza, il coefficiente di temperatura e l'affidabilità del resistore. La tolleranza indica la precisione con cui il valore della resistenza è fabbricato. In applicazioni dove è richiesta un'elevata accuratezza, è necessario utilizzare resistori con tolleranze strette. Il coefficiente di temperatura indica la variazione del valore della resistenza con la temperatura. In applicazioni dove la temperatura varia significativamente, è necessario utilizzare resistori con un coefficiente di temperatura basso. L'affidabilità indica la probabilità che il resistore funzioni correttamente nel tempo. In applicazioni critiche, è necessario utilizzare resistori con un'elevata affidabilità. La scelta del resistore appropriato dipende quindi dai requisiti specifici dell'applicazione.\nL'implementazione pratica dei resistori di bilanciamento richiede un'attenta considerazione del layout della scheda, della dissipazione termica e della protezione da sovratensioni. Il layout della scheda deve essere progettato in modo da minimizzare le interferenze elettromagnetiche e garantire una connessione affidabile tra i resistori e le celle della batteria. La dissipazione termica è un aspetto critico, poiché i resistori generano calore durante il processo di bilanciamento. È necessario prevedere un'adeguata ventilazione o utilizzare dissipatori di calore per evitare il surriscaldamento dei resistori. La protezione da sovratensioni è importante per proteggere i resistori da danni causati da transienti di tensione o scariche elettrostatiche. È possibile utilizzare diodi TVS (Transient Voltage Suppressors) o varistori per proteggere i resistori da sovratensioni.\nIn sintesi, i resistori di bilanciamento svolgono un ruolo fondamentale in un Battery Management System (BMS), contribuendo a mantenere la tensione di ogni cella all'interno di un intervallo accettabile, prevenendo il sovraccarico o la scarica eccessiva e massimizzando la capacità e la durata complessiva della batteria. La progettazione di un sistema di bilanciamento efficace richiede un'attenta considerazione del valore dei resistori, della potenza nominale, della tolleranza, del coefficiente di temperatura, dell'affidabilità, del layout della scheda, della dissipazione termica e della protezione da sovratensioni. La scelta del resistore appropriato dipende dai requisiti specifici dell'applicazione e dalle caratteristiche della batteria. Un'attenta implementazione dei resistori di bilanciamento può migliorare significativamente le prestazioni e l'affidabilità di un BMS.\nTroubleshooting e Diagnostica in Laboratorio La capacità di diagnosticare e risolvere i problemi relativi ai resistori è un'abilità fondamentale per qualsiasi tecnico elettronico. Un approccio sistematico e l'utilizzo di strumenti appropriati sono essenziali per individuare rapidamente e con precisione i guasti.\nTest con Multimetro Il multimetro è lo strumento di base per la verifica del valore di un resistore. In modalità ohmmetro, il multimetro applica una piccola tensione ai terminali del resistore e misura la corrente che vi scorre, calcolando quindi la resistenza tramite la legge di Ohm (R = V/I). È cruciale assicurarsi che il resistore sia scollegato dal circuito durante la misurazione, altrimenti la presenza di altri componenti potrebbe influenzare la lettura, fornendo un valore errato. Se il multimetro indica un valore significativamente diverso da quello nominale (tenendo conto della tolleranza), o se indica un circuito aperto (OL o infinito), il resistore potrebbe essere guasto.\nUn test avanzato con il multimetro consiste nella verifica della continuità. Anche se un resistore mostra un valore di resistenza apparentemente corretto, potrebbe presentare microfratture interne che causano interruzioni intermittenti del circuito. Agitando delicatamente il resistore o applicando una leggera pressione, si può osservare se il valore della resistenza varia bruscamente, indicando un problema di continuità.\nAnalisi con Oscilloscopio L'oscilloscopio è uno strumento più avanzato che permette di analizzare il comportamento del resistore in un circuito dinamico. In particolare, è utile per identificare problemi di induttanza parassita nei resistori a filo (wirewound) utilizzati in circuiti ad alta frequenza. I resistori wirewound, a causa della loro struttura a spirale, presentano un'induttanza intrinseca che può influenzare significativamente la loro impedenza alle alte frequenze. Invece di comportarsi come una resistenza pura, il componente si comporta come un circuito RL (resistenza-induttanza), con una conseguente variazione della fase tra tensione e corrente.\nUtilizzando un generatore di funzioni e un oscilloscopio, è possibile misurare l'impedenza del resistore a diverse frequenze. Se l'impedenza aumenta significativamente con la frequenza, o se si osserva uno sfasamento notevole tra tensione e corrente, l'induttanza parassita potrebbe essere un problema. In questi casi, è consigliabile utilizzare resistori a film (sottile o spesso) che presentano un'induttanza parassita molto inferiore. L'analisi con l'oscilloscopio può anche rivelare fenomeni di risonanza indesiderati causati dall'interazione tra l'induttanza parassita del resistore e la capacità parassita del circuito.\nIdentificazione di Resistori Sotto Stress Un problema insidioso è rappresentato dai resistori che hanno subito un sovraccarico termico o elettrico (stress) e che, pur mantenendo apparentemente il loro aspetto originale (colore delle bande inalterato), hanno subito una variazione significativa del valore di resistenza. Questi resistori \"sotto stress\" possono essere difficili da identificare, poiché non presentano segni visibili di danneggiamento, come bruciature o crepe. Tuttavia, la loro presenza può causare malfunzionamenti del circuito e prestazioni non ottimali.\nLa diagnosi di questi resistori richiede un'attenta misurazione del valore di resistenza con un multimetro di precisione. È fondamentale confrontare il valore misurato con il valore nominale e la tolleranza specificata nel datasheet. Anche una piccola deviazione dal valore nominale, se significativa per il funzionamento del circuito, può indicare un problema. In alcuni casi, è utile confrontare il valore di resistenza con quello di un resistore nuovo dello stesso tipo e valore, per verificare se il resistore sospetto ha subito una deriva significativa. L'analisi con termocamera può rivelare eventuali hotspot e confermare il sospetto di sovraccarico termico.\nInoltre, è importante considerare il contesto del circuito. Se un resistore è posizionato in un'area del circuito soggetta a stress termico o elettrico, è più probabile che abbia subito un guasto. In questi casi, è consigliabile sostituire il resistore con un componente di qualità superiore, con una potenza nominale più elevata o con una maggiore resistenza agli stress termici ed elettrici.\nFAQ Tecniche (Domande Frequenti) Questa sezione raccoglie le domande più comuni riguardanti i resistori, fornendo risposte dettagliate e approfondite per chiarire dubbi e risolvere problemi pratici.\nPerché il mio resistore scotta anche se il calcolo della potenza è corretto? Anche se il calcolo teorico della potenza dissipata dal resistore sembra corretto, ci possono essere diverse ragioni per cui il componente si surriscalda eccessivamente. Innanzitutto, è fondamentale verificare che la tensione e la corrente effettive nel circuito corrispondano ai valori utilizzati nel calcolo. Variazioni anche minime possono portare a un aumento significativo della potenza dissipata, dato che la potenza è proporzionale al quadrato della corrente (P = I2R). In secondo luogo, è importante considerare la temperatura ambiente. La potenza nominale di un resistore è solitamente specificata a 25°C. A temperature più elevate, la potenza nominale deve essere declassata, come indicato nella derating curve del datasheet. Se il resistore opera in un ambiente caldo, potrebbe essere necessario utilizzare un resistore con una potenza nominale superiore a quella calcolata teoricamente.\nUn'altra possibile causa di surriscaldamento è una scarsa dissipazione termica. Se il resistore è circondato da altri componenti che generano calore, o se la scheda PCB non fornisce un'adeguata dissipazione termica, la temperatura del resistore può aumentare eccessivamente. In questi casi, è consigliabile utilizzare un resistore con un corpo metallico progettato per dissipare il calore, o utilizzare un dissipatore di calore aggiuntivo. Infine, è possibile che il resistore sia difettoso o danneggiato, e che presenti una resistenza interna superiore a quella nominale, causando un aumento della potenza dissipata.\nPosso sostituire un resistore 0805 con un 0603? La sostituzione di un resistore 0805 (dimensioni 2.0 mm x 1.25 mm) con un 0603 (dimensioni 1.6 mm x 0.8 mm) è possibile dal punto di vista elettrico, a patto che il resistore 0603 abbia le stesse caratteristiche elettriche (valore di resistenza, tolleranza, coefficiente di temperatura) e una potenza nominale sufficiente per l'applicazione. Tuttavia, è importante considerare le implicazioni meccaniche e termiche.\nIl resistore 0603 è più piccolo del 0805 e, di conseguenza, ha una superficie inferiore per la dissipazione del calore. Se la potenza dissipata dal resistore è significativa, il resistore 0603 potrebbe surriscaldarsi eccessivamente, compromettendo la sua affidabilità e la durata del circuito. È quindi fondamentale verificare che la potenza dissipata dal resistore 0603 sia inferiore alla sua potenza nominale, tenendo conto della temperatura ambiente e della derating curve. Inoltre, la saldatura del resistore 0603 sulla piazzola progettata per il 0805 potrebbe essere più difficile e meno affidabile, a causa della differenza di dimensioni. È quindi consigliabile utilizzare una pasta saldante di alta qualità e seguire attentamente le procedure di saldatura raccomandate dal produttore.\nCosa succede se metto due resistori in parallelo di valori molto diversi? Quando si collegano due resistori in parallelo, la resistenza equivalente del parallelo è sempre inferiore al valore del resistore più piccolo. Se i valori dei resistori sono molto diversi, la resistenza equivalente sarà approssimativamente uguale al valore del resistore più piccolo. Ad esempio, se si collegano in parallelo un resistore da 1 Ohm e un resistore da 1000 Ohm, la resistenza equivalente sarà circa 0.999 Ohm, molto vicina a 1 Ohm. In questo caso, la maggior parte della corrente scorrerà attraverso il resistore da 1 Ohm, mentre il resistore da 1000 Ohm avrà un impatto trascurabile sul circuito.\nQuesta configurazione può essere utilizzata intenzionalmente per creare una resistenza di precisione con un valore molto vicino a quello del resistore più piccolo, oppure per aumentare la potenza nominale complessiva del circuito. Tuttavia, è importante considerare la tolleranza dei resistori. Se il resistore più piccolo ha una tolleranza elevata, il valore effettivo della resistenza equivalente potrebbe discostarsi significativamente dal valore desiderato. Inoltre, è importante verificare che la potenza dissipata da ciascun resistore sia inferiore alla sua potenza nominale.\nQual è limpatto del rumore termico nei circuiti audio hi-fi? Il rumore termico, noto anche come rumore Johnson-Nyquist, è un fenomeno fisico intrinseco a tutti i resistori, causato dall'agitazione termica degli elettroni all'interno del materiale resistivo. Questo rumore è proporzionale alla temperatura assoluta, alla larghezza di banda del circuito e alla resistenza del resistore. Nei circuiti audio hi-fi, il rumore termico può degradare la qualità del suono, introducendo un fruscio di fondo che maschera i dettagli musicali più sottili.\nL'impatto del rumore termico è particolarmente significativo negli stadi di ingresso degli amplificatori, dove il segnale audio è più debole. Per minimizzare il rumore termico, è necessario utilizzare resistori di alta qualità, con un basso coefficiente di rumore e una tolleranza stretta. I resistori a film sottile e i resistori foil (bulk metal foil) sono generalmente preferibili ai resistori a film spesso o a composizione di carbonio, poiché presentano un rumore termico inferiore. Inoltre, è importante ottimizzare l'impedenza del circuito, per ridurre al minimo la generazione di rumore. L'utilizzo di tecniche di schermatura e di filtraggio può contribuire a ridurre ulteriormente il rumore.\nQuali sono i vantaggi dei resistori a montaggio superficiale (SMD) rispetto a quelli a foro passante? I resistori a montaggio superficiale (SMD) offrono diversi vantaggi rispetto ai resistori a foro passante, tra cui:\nDimensioni ridotte: I resistori SMD sono molto più piccoli dei resistori a foro passante, consentendo una maggiore densità di componenti sulla scheda PCB e una miniaturizzazione dei dispositivi elettronici. Costi inferiori: I resistori SMD sono generalmente più economici da produrre e da assemblare, grazie all'automazione del processo di montaggio. Migliori prestazioni ad alta frequenza: I resistori SMD presentano un'induttanza parassita inferiore rispetto ai resistori a foro passante, migliorando le prestazioni ad alta frequenza dei circuiti. Minore resistenza di contatto: I resistori SMD hanno una minore resistenza di contatto rispetto ai resistori a foro passante, riducendo le perdite di potenza e migliorando l'efficienza del circuito. Come influisce la temperatura sulla resistenza di un resistore? La temperatura influisce sulla resistenza di un resistore attraverso il coefficiente di temperatura della resistenza (TCR). Il TCR indica la variazione percentuale della resistenza per ogni grado Celsius di variazione della temperatura. Un TCR positivo significa che la resistenza aumenta con l'aumentare della temperatura, mentre un TCR negativo significa che la resistenza diminuisce con l'aumentare della temperatura. I resistori con un TCR basso sono preferibili in applicazioni dove è richiesta una stabilità elevata della resistenza al variare della temperatura.\nQual è la differenza tra un resistore a film sottile e uno a film spesso? La principale differenza tra un resistore a film sottile e uno a film spesso risiede nel processo di fabbricazione e nello spessore del film resistivo. I resistori a film sottile sono realizzati depositando un sottile strato di materiale resistivo (tipicamente metalli nobili o ossidi metallici) su un substrato isolante mediante tecniche di deposizione sottovuoto, come la sputtering o l'evaporazione. Lo spessore del film è tipicamente nell'ordine di pochi nanometri. I resistori a film spesso sono realizzati depositando una pasta spessa di materiale resistivo (una miscela di polveri metalliche, vetro e leganti organici) su un substrato ceramico mediante serigrafia. Lo spessore del film è tipicamente nell'ordine di decine di micrometri. I resistori a film sottile offrono una precisione superiore, un TCR inferiore e un rumore inferiore rispetto ai resistori a film spesso, ma sono anche più costosi da produrre.\nCosa significa la sigla SMD sui resistori? La sigla \"SMD\" sta per \"Surface Mount Device\" (dispositivo a montaggio superficiale). Indica che il resistore è progettato per essere montato direttamente sulla superficie di una scheda a circuito stampato (PCB) senza l'utilizzo di fori passanti. I resistori SMD sono compatti, economici e adatti per la produzione automatizzata.\nCome si calcola la potenza dissipata da un resistore? La potenza dissipata da un resistore si calcola utilizzando la legge di Joule: P = I²R, dove P è la potenza in watt, I è la corrente in ampere e R è la resistenza in ohm. In alternativa, si può utilizzare la formula P = V²/R, dove V è la tensione in volt ai capi del resistore.\nPerché è importante scegliere la potenza nominale corretta per un resistore? È fondamentale scegliere la potenza nominale corretta per un resistore per evitare il surriscaldamento e il guasto del componente. Se la potenza dissipata dal resistore supera la sua potenza nominale, la temperatura del resistore aumenterà eccessivamente, causando una deriva del valore di resistenza, una riduzione della sua durata e, in casi estremi, la sua rottura.\nCosa sono le resistenze di pull-up e pull-down? Le resistenze di pull-up e pull-down sono resistenze utilizzate per definire lo stato logico di un pin di ingresso di un microcontrollore o di un circuito digitale quando non è attivamente pilotato da un segnale esterno. Una resistenza di pull-up connette il pin di ingresso a una tensione positiva (VCC), mantenendolo a livello logico alto. Una resistenza di pull-down connette il pin di ingresso a massa (GND), mantenendolo a livello logico basso.\nQual è lutilità dei resistori in un circuito con LED? I resistori sono utilizzati in un circuito con LED per limitare la corrente che scorre attraverso il LED. Senza un resistore, la corrente potrebbe aumentare eccessivamente, danneggiando il LED. Il valore del resistore viene calcolato in base alla tensione di alimentazione, alla tensione di forward del LED e alla corrente desiderata.\nCosa si intende per tolleranza di un resistore? La tolleranza di un resistore indica la massima deviazione del valore della resistenza rispetto al valore nominale. Ad esempio, un resistore da 100 ohm con una tolleranza del 5% può avere un valore compreso tra 95 ohm e 105 ohm.\nCosa significa la sigla TCR in un datasheet di un resistore? La sigla \"TCR\" sta per \"Temperature Coefficient of Resistance\" (coefficiente di temperatura della resistenza). Indica la variazione della resistenza per ogni grado Celsius di variazione della temperatura, espressa in parti per milione (ppm/°C).\nQuali sono le applicazioni dei resistori sensibili alla luce (fotoresistori)? I resistori sensibili alla luce (fotoresistori) sono utilizzati in applicazioni che richiedono il rilevamento della luce, come sensori di luminosità, sistemi di controllo dell'illuminazione automatica e rilevatori di presenza.\nCosa sono i resistori variabili (potenziometri)? I resistori variabili (potenziometri) sono resistori il cui valore di resistenza può essere regolato meccanicamente. Sono utilizzati in applicazioni come controllo del volume audio, regolazione della luminosità e calibrazione di circuiti.\nCosa sono i termistori? I termistori sono resistori sensibili alla temperatura, il cui valore di resistenza varia in modo significativo con la temperatura. Sono utilizzati in applicazioni come misura della temperatura, compensazione della temperatura e protezione da sovratemperature.\nCome si identificano i resistori SMD? I resistori SMD sono identificati tramite un codice numerico o alfanumerico stampato sul corpo del componente. Il codice indica il valore della resistenza e la tolleranza. Esistono diversi sistemi di codifica, come il codice EIA-96 (per resistori con tolleranza dell'1%) e il codice a tre o quattro cifre (per resistori con tolleranze maggiori).\nÈ possibile utilizzare i resistori in serie per aumentare la tensione nominale? Collegando resistori in serie, è possibile aumentare la tensione nominale complessiva del circuito. Tuttavia, è importante assicurarsi che la tensione ai capi di ciascun resistore non superi la sua tensione nominale massima. La tensione si dividerà in proporzione alla resistenza di ciascun componente. Conclusioni Finali Questo articolo si presenta come una guida esaustiva e approfondita sulle resistenze elettriche, spaziando dalla teoria di base fino ad applicazioni pratiche avanzate e scenari di troubleshootinge offre una solida base per comprendere:\nI fondamenti delle resistenze: Definizione, fattori che influenzano la resistenza (materiale, area, lunghezza, temperatura), simbolo, unità di misura (Ohm) e codice colore. I diversi tipi di resistenze: A film sottile, a film spesso, wirewound, a composizione di carbone, SMD, a foro passante, termistori, fotoresistori, potenziometri, etc., evidenziando le loro caratteristiche specifiche, vantaggi e svantaggi per diverse applicazioni. Il loro ruolo nei circuiti: Collegamenti in serie e parallelo, calcolo della resistenza equivalente, potenza dissipata e importanza della scelta della potenza nominale corretta. Applicazioni pratiche: Circuiti digitali (ESP32/Arduino), protezione GPIO, resistenze di pull-up/pull-down, calcolo della resistenza per LED (singoli, RGB, matrici, stringhe), partitori di tensione per ADC. Problematiche avanzate: Resistori di bilanciamento in un BMS, analisi dei guasti (stress termico, sovraccarico da impulsi, umidità, corrosione), affidabilità, standard industriali (AEC-Q200, MIL-PRF), troubleshooting, diagnosi di resistori \u0026ldquo;sotto stress\u0026rdquo;. Guida all\u0026rsquo;acquisto: Produttori principali, lettura dei datasheet, importanza delle sigle e delle tolleranze, disponibilità, tempi di consegna e considerazioni ambientali. L\u0026rsquo;articolo include tabelle comparative, formule, esempi pratici e link utili che lo rendono un valido strumento di consultazione per studenti, hobbisti, tecnici e ingegneri elettronici.\nLink utili sulle Resistenze Elettriche Resistore - Wikipedia: Pagina di Wikipedia che descrive in dettaglio i resistori, i loro tipi e le loro applicazioni. Ohm - Wikipedia: Spiegazione dell'unità di misura della resistenza elettrica. Resistor Color Codes - Electronics Tutorials: Guida al codice colore delle resistenze (in inglese). Series and Parallel Circuits - All About Circuits: Informazioni sui circuiti in serie e in parallelo (in inglese). Digi-Key Electronics: Sito web di un importante distributore di componenti elettronici, utile per trovare specifiche e prezzi. Farnell: Altro distributore di componenti elettronici con ampia documentazione tecnica. Vishay: Sito web del produttore di resistenze Vishay, con datasheet e guide. Yageo: Sito web del produttore di resistenze Yageo, con datasheet e guide. Using a Digital Multimeter - All About Circuits: Come utilizzare un multimetro digitale (in inglese). Standard Resistor Color Codes: Tabella dei codici colore delle resistenze. Resistors in Series and Parallel - YouTube: Video esplicativo sui resistori in serie e parallelo. Resistors Explained - YouTube: Video che spiega i resistori (in inglese). Arrow Electronics: Un altro grande distributore di componenti elettronici. Mouser Electronics: Un altro grande distributore di componenti elettronici. Electrical Safety - All About Circuits: Considerazioni sulla sicurezza elettrica (in inglese). Resistor Types: Different types of resistor: Articolo sui diversi tipi di resistori e le loro caratteristiche. Different Types of Resistors with Applications: spiegazione dei diversi tipi di resistenze e i loro utilizzi Resistors Information: Ulteriori informazioni tecniche sui resistori (in inglese). Resistor – Definition, Symbol, Types, Color Coding, Series \u0026 Parallel: una guida completa al mondo dei resistori Understanding Resistors: Guida PDF per principianti alle resistenze ","permalink":"https://www.robotdazero.it/blog/cosa-sono-le-resistenze-elettriche/","summary":"\u003cp\u003e\u003cimg alt=\"copertina del post sulle resistenze elettroniche\" loading=\"lazy\" src=\"/blog/cosa-sono-le-resistenze-elettriche/header.jpeg\"\u003e\u003c/p\u003e\n\u003cnav\u003e\n  \u003cul class=\"table-of-contents\"\u003e\n      \u003cli\u003e\u003ca href=\"#0-definizione-di-resistenza\"\u003eDefinizione di Resistenza\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#1-fattori-fisici\"\u003eFattori Fisici\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#2-ohm-e-simbologia\"\u003eOhm e Simbologia\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#3-bande-colorate\"\u003eBande Colorate\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#4-codice-colore\"\u003eCodice Colore\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#5-tabella-valori\"\u003e\u003cstrong\u003eTabella dei Valori\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#6-esempio-pratico-di-lettura\"\u003eEsempio Pratico di Lettura\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#7-resistori-a-5-bande\"\u003eResistori a 5 bande\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#8-coefficiente-termico\"\u003eCoefficiente Termico\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#9-limitazione-corrente\"\u003eLimitazione Corrente\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#10-resistenze-in-serie\"\u003eResistenze in Serie\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#11-resistenze-in-parallelo\"\u003eResistenze in Parallelo\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#12-circuiti-digitali-esp32-arduino\"\u003eCircuiti Digitali (ESP32 / Arduino)\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#13-resistenze-di-pull-up-e-pull-down-con-esp32\"\u003e\u003cstrong\u003eResistenze di Pull-Up e Pull-Down con ESP32\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#14-calcolo-resistenza-per-led-guida-definitiva\"\u003eCalcolo Resistenza per LED: Guida Definitiva\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#15-partitori-di-tensione-progettazione-per-il-campionamento-di-segnali-analogici-adc\"\u003ePartitori di Tensione: Progettazione per il Campionamento di Segnali Analogici (ADC)\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#16-analisi-dei-guasti-e-affidabilità-dei-resistori\"\u003eAnalisi dei Guasti e Affidabilità dei Resistori\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#17-standard-industriali-e-certificazioni-2026\"\u003eStandard Industriali e Certificazioni 2026\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#18-guida-allacquisto-e-distribuzione-2026\"\u003eGuida all'Acquisto e Distribuzione 2026\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#19-tabella-comparativa-estrema-dei-resistori\"\u003eTabella Comparativa Estrema dei Resistori\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#20-casi-studio-avanzati-resistori-di-bilanciamento-in-un-battery-management-system-bms\"\u003eCasi Studio Avanzati: Resistori di Bilanciamento in un Battery Management System (BMS)\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#21-troubleshooting-e-diagnostica-in-laboratorio\"\u003eTroubleshooting e Diagnostica in Laboratorio\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#22-test-con-multimetro\"\u003eTest con Multimetro\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#23-analisi-con-oscilloscopio\"\u003eAnalisi con Oscilloscopio\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#24-identificazione-di-resistori-sotto-stress\"\u003eIdentificazione di Resistori Sotto Stress\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#25-faq-tecniche-domande-frequenti\"\u003e\u003cstrong\u003eFAQ Tecniche (Domande Frequenti)\u003c/strong\u003e\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#45-conclusioni\"\u003eConclusioni Finali\u003c/a\u003e\u003c/li\u003e\n      \u003cli\u003e\u003ca href=\"#46-link-utili\"\u003eLink utili\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/nav\u003e\n\u003ch2 id=\"0-definizione-di-resistenza\"\u003eCos'è la Resistenza Elettrica\u003c/h2\u003e\n\u003cp\u003eLa resistenza è una misura dell\u0026rsquo;opposizione di un oggetto al flusso di elettroni. Questo può suona come una brutta cosa, ma in realtà è utile. La resistenza è ciò che rende possibile generare calore e luce, limitare il flusso di corrente elettrica quando necessario, e assicurarsi che la tensione corretta sia fornita a un dispositivo. Ad esempio, quando gli elettroni viaggiano attraverso il filamento di una lampadina incontrano così tanta resistenza che rallentano e si scontrano furiosamente, generando il bagliore che vedi dalla tua lampadina.\u003c/p\u003e","title":"Cosa sono le resistenze elettriche"},{"content":"\nAnalisi Approfondita dell\u0026rsquo;Utilizzo dei MOSFET nell\u0026rsquo;Elettronica di Consumo e Caratterizzazione dei Consumi di Corrente dei Dispositivi Classici Sotto i 30 Ampere 1. Introduzione: L\u0026rsquo;Ubiquità Silenziosa del MOSFET L\u0026rsquo;elettronica di consumo moderna, dai caricabatterie compatti agli elettrodomestici intelligenti, fino ai sistemi di intrattenimento ad alta fedeltà, poggia le sue fondamenta su un componente critico: il Transistor a Effetto di Campo a Metallo-Ossido-Semicondotto, universalmente noto come MOSFET. Sebbene invisibile all\u0026rsquo;utente finale, questo dispositivo è il principale attuatore della conversione di potenza e del controllo del segnale nel XXI secolo. A differenza dei suoi predecessori, i transistor a giunzione bipolare (BJT), che operavano come dispositivi controllati in corrente richiedendo un flusso costante di elettroni alla base per mantenere la conduzione, il MOSFET ha introdotto un paradigma di controllo in tensione.1 Questa caratteristica, apparentemente semplice, ha rivoluzionato l\u0026rsquo;efficienza energetica, permettendo la miniaturizzazione dei dispositivi e l\u0026rsquo;estensione della durata delle batterie nei sistemi portatili.\nLa richiesta specifica di questa analisi si concentra non solo sull\u0026rsquo;utilizzo generale, ma su una quantificazione precisa dei \u0026ldquo;consumi in corrente\u0026rdquo; di un classico MOSFET di larga diffusione, specificamente nei modelli con capacità di corrente inferiore ai 30 Ampere. Questa fascia di potenza è cruciale poiché copre la stragrande maggioranza delle applicazioni domestiche e hobbistiche: dal controllo dei motori nelle stampanti 3D all\u0026rsquo;illuminazione LED, fino agli stadi di alimentazione degli amplificatori audio. Per rispondere a questa esigenza, il rapporto esaminerà in dettaglio l\u0026rsquo;architettura, le modalità di dissipazione e le caratteristiche operative di dispositivi iconici come la serie IRF (es. IRF530, IRF640), che rappresentano lo standard \u0026ldquo;classico\u0026rdquo; in questo settore.3\nL\u0026rsquo;analisi sfaterà il mito del MOSFET come componente a \u0026ldquo;consumo zero\u0026rdquo;. Sebbene l\u0026rsquo;impedenza di ingresso sia estremamente alta, il funzionamento reale in regimi di commutazione (switching) o lineari comporta profili di consumo di corrente complessi: dalle correnti transitorie di carica del gate, alle perdite per conduzione ($I^2R$), fino alle correnti di dispersione (leakage) che, seppur minime, definiscono la durata di vita dei dispositivi IoT a basso consumo.\n2. Fondamenti Tecnologici e Architettura nei Beni di Consumo 2.1 L\u0026rsquo;Evoluzione dal Bipolare al Field Effect Prima dell\u0026rsquo;avvento massiccio dei MOSFET, l\u0026rsquo;elettronica di potenza di consumo si affidava ai BJT. In un BJT, per commutare una corrente di collettore significativa (ad esempio, per attivare un motore), era necessaria una corrente di base proporzionale, definita dal guadagno ($h_{FE}$). Questo comportava che il circuito di pilotaggio stesso dissipasse energia significativa, riducendo l\u0026rsquo;efficienza complessiva del sistema. Il MOSFET, introducendo un gate isolato da uno strato di ossido di silicio ($SiO_2$), ha eliminato la necessità di una corrente costante di pilotaggio in stato stazionario.2 L\u0026rsquo;ossido funge da dielettrico di un condensatore; fintanto che il campo elettrico è mantenuto, il canale conduttivo tra drain e source rimane aperto.\n2.2 La Dominanza del Canale N Nel mercato dell\u0026rsquo;elettronica di consumo, i MOSFET a canale N (N-Channel) rappresentano oltre l'85% dei dispositivi di potenza utilizzati.6 Questa prevalenza non è casuale ma radicata nella fisica dei semiconduttori: la mobilità degli elettroni (i portatori di carica nel canale N) è approssimativamente due o tre volte superiore a quella delle lacune (i portatori nel canale P).\nDi conseguenza, a parità di dimensioni del die di silicio, un MOSFET a canale N offre una resistenza di conduzione ($R_{DS(on)}$) significativamente inferiore rispetto a un equivalente a canale P. Per ottenere la stessa efficienza con un canale P, il dispositivo dovrebbe essere fisicamente più grande, aumentando i costi e la capacità parassita, il che rallenterebbe la velocità di commutazione. Pertanto, nelle applicazioni di consumo sotto i 30A, come gli alimentatori switching e i driver per motori, i dispositivi a canale N come l\u0026rsquo;IRF530 sono onnipresenti, solitamente configurati in modalità \u0026ldquo;Low-Side Switching\u0026rdquo; (connessione tra il carico e la massa).6\n2.3 Modalità Operative e il Concetto di \u0026ldquo;Consumo\u0026rdquo; Per stabilire i consumi, è essenziale comprendere in quale regione opera il dispositivo:\nRegione di Interdizione (Cut-off): Il dispositivo è spento ($V_{GS} \u0026lt; V_{th}$). Il consumo è limitato alle correnti di dispersione (leakage currents).7 Regione Lineare (Ohmica): Il dispositivo agisce come un resistore controllato in tensione. Utilizzata raramente nello switching puro per evitare surriscaldamenti, ma fondamentale nell\u0026rsquo;amplificazione audio.5 Regione di Saturazione (Active Mode/Switching): Il dispositivo è completamente acceso. La resistenza tra Drain e Source è minima ($R_{DS(on)}$). Qui il \u0026ldquo;consumo\u0026rdquo; è dominato dalla dissipazione termica dovuta al passaggio di corrente attraverso questa resistenza residua.7 3. Profilo del \u0026ldquo;Classico\u0026rdquo;: Analisi dei Dispositivi Standard Sotto i 30A Per fornire dati concreti sui consumi, questo rapporto utilizza come riferimento la serie \u0026ldquo;IRF\u0026rdquo; di prima e seconda generazione, in particolare l\u0026rsquo;IRF530 e l\u0026rsquo;IRF640. Questi componenti sono definiti \u0026ldquo;classici\u0026rdquo; perché, nonostante l\u0026rsquo;esistenza di tecnologie più moderne (come i TrenchFET o SuperJunction), rimangono i più diffusi nel mercato hobbistico, nelle riparazioni e nei progetti open-source (come le prime stampanti 3D RepRap) grazie alla loro robustezza, al package TO-220 facile da maneggiare e al costo contenuto.8\nTabella 1: Caratteristiche Tecniche dei MOSFET Classici di Riferimento\nParametro Simbolo IRF530 IRF640 IRF520 Significato per il Consumatore Tensione Drain-Source $V_{DSS}$ 100 V 200 V 100 V Massima tensione di alimentazione gestibile. 100V copre ampiamente i 12V/24V/48V tipici. Corrente Continua $I_D$ 14 A 18 A 9.7 A Corrente massima teorica (con raffreddamento ideale a 25°C). Resistenza On-State $R_{DS(on)}$ 0.16 $\\Omega$ 0.15/0.18 $\\Omega$ 0.27 $\\Omega$ Determina l\u0026rsquo;efficienza. Valori \u0026ldquo;classici\u0026rdquo; alti rispetto ai moderni \u0026lt;0.01$\\Omega$. Tensione di Soglia $V_{GS(th)}$ 2.0 - 4.0 V 2.0 - 4.0 V 2.0 - 4.0 V Tensione minima per iniziare la conduzione (non per la saturazione completa). Carica Totale Gate $Q_g$ 26 nC 70 nC 16-25 nC Determina il consumo di corrente del circuito di pilotaggio. Dissipazione Potenza $P_D$ 88 W 125 W 48-60 W Massimo calore smaltibile prima della distruzione del cristallo di silicio. Questi dispositivi condividono una tecnologia planare che, sebbene affidabile, presenta una resistenza specifica per unità di area ($R_{DS(on)} \\times Area$) relativamente alta rispetto agli standard attuali. Questo fattore è determinante nello stabilire i \u0026ldquo;consumi\u0026rdquo; intesi come perdite energetiche.\n4. Analisi Dettagliata dei Consumi in Corrente Rispondendo puntualmente alla richiesta utente di \u0026ldquo;stabilire i consumi in corrente\u0026rdquo;, è necessario scomporre il fenomeno. Un MOSFET non consuma corrente in modo lineare come un resistore, ma presenta tre vettori di consumo distinti: Consumo di Pilotaggio (Gate), Consumo di Dispersione (Leakage) e Perdita per Conduzione (Dissipazione).\n4.1 Vettore 1: Il Consumo del Circuito di Pilotaggio (Gate Charge Current) Il gate di un MOSFET è elettricamente un condensatore. In condizioni statiche (DC), una volta caricato, il consumo di corrente è nullo. Tuttavia, l\u0026rsquo;elettronica di consumo opera prevalentemente in commutazione (PWM per LED, SMPS per alimentatori), dove il gate viene caricato e scaricato migliaia di volte al secondo.\nIl parametro chiave è la Carica Totale di Gate ($Q_g$), misurata in nano-Coulomb (nC). Per l\u0026rsquo;IRF530, $Q_g = 26 nC$ (max a $V_{GS}=10V$).3 La corrente media assorbita dal driver ($I_{drive}$) è direttamente proporzionale alla frequenza di commutazione ($f_{sw}$):\n$$I_{drive} = Q_g \\times f_{sw}$$\nScenario A: Applicazioni a Bassa Frequenza (es. Relè o Termostato) In un termostato intelligente che accende un relè una volta all\u0026rsquo;ora, la frequenza è quasi zero. Il consumo di corrente è trascurabile (picoampere).\nScenario B: Controllo PWM Standard (es. Strisce LED o Motori DC) Le frequenze tipiche per evitare sfarfallio (flicker) nei LED o ronzii nei motori variano da 1 kHz a 20 kHz.12\nConsiderando $f_{sw} = 20 kHz$ (20.000 cicli/secondo):\n$$I_{drive} = 26 \\times 10^{-9} C \\times 20.000 Hz = 0,52 mA$$\nAnalisi: Un consumo medio di 0,52 mA è estremamente basso e facilmente gestibile da qualsiasi microcontrollore. Tuttavia, questo dato nasconde una criticità: la corrente di picco istantanea. Per commutare il MOSFET velocemente (es. in 50 nanosecondi) e ridurre le perdite, il driver deve fornire una corrente impulsiva elevata:\n$$I_{peak} = Q_g / t_{switch} = 26nC / 50ns \\approx 0,52 A$$\nQuindi, sebbene il \u0026ldquo;consumo\u0026rdquo; medio sia basso, il sistema richiede una capacità di erogazione di picco di oltre 0,5 Ampere, motivo per cui spesso si usano driver dedicati tra il microcontrollore e il MOSFET.\nScenario C: Alimentatori Switching ad Alta Frequenza Negli alimentatori DC-DC moderni, le frequenze salgono a 500 kHz o oltre per miniaturizzare gli induttori.14\n$$I_{drive} = 26 nC \\times 500.000 Hz = 13 mA$$\nAnalisi: Qui il driver del MOSFET \u0026ldquo;consuma\u0026rdquo; 13 mA costanti solo per mantenere il dispositivo in commutazione. Questo consumo parassita riduce l\u0026rsquo;efficienza globale a bassi carichi, un problema noto come \u0026ldquo;switching loss penalty\u0026rdquo;.\n4.2 Vettore 2: Correnti di Dispersione (Leakage) - Il Consumo \u0026ldquo;Fantasma\u0026rdquo; Quando il dispositivo elettronico è spento (standby), il MOSFET dovrebbe bloccare completamente la corrente. Tuttavia, i datasheet rivelano che non è un interruttore perfetto.\nLeakage Drain-Source ($I_{DSS}$): Per l\u0026rsquo;IRF530 a 100V, la corrente massima è 25 µA.3 Leakage Gate-Source ($I_{GSS}$): La corrente che attraversa l\u0026rsquo;isolante del gate è ±100 nA.3 Implicazioni Pratiche:\nPer un dispositivo alimentato dalla rete elettrica (come un televisore in standby), 25 µA sono irrilevanti. Ma per un sensore domotico alimentato da una batteria a bottone CR2032 (capacità tipica 220 mAh), un consumo costante di 25 µA porterebbe all\u0026rsquo;esaurimento della batteria in circa un anno ($220mAh / 0.025mA \\approx 8800 ore$), anche se il dispositivo non venisse mai attivato. Questo rende i MOSFET classici come l\u0026rsquo;IRF530 meno adatti per l\u0026rsquo;ultra-low power rispetto a dispositivi moderni con leakage nell\u0026rsquo;ordine dei nano-ampere.\n4.3 Vettore 3: Perdite per Conduzione (Efficienza Energetica) Questo è il fattore dominante per i dispositivi sotto i 30A. Quando il MOSFET è acceso, si comporta come un resistore ($R_{DS(on)}$). La \u0026ldquo;corrente consumata\u0026rdquo; in questo contesto si riferisce all\u0026rsquo;energia dissipata sotto forma di calore, che viene sottratta al carico utile.\nPer un IRF530, $R_{DS(on)} = 0,16 \\Omega$.\nAnalizziamo i \u0026ldquo;consumi\u0026rdquo; (perdita di potenza $P_D = I^2 \\times R$) a vari livelli di corrente tipici dell\u0026rsquo;elettronica di consumo:\nTabella 2: Analisi dei Consumi Energetici (Perdite) dell\u0026rsquo;IRF530\nCorrente di Carico Applicazione Tipica Potenza Dissipata (Calore) Caduta di Tensione (Vds) Valutazione Termica (Senza Dissipatore) 1 A Striscia LED (1 metro) $1^2 \\times 0.16 = \\mathbf{0.16 W}$ 0.16 V Tiepido. Sicuro. 3 A Motore DC Giocattolo $3^2 \\times 0.16 = \\mathbf{1.44 W}$ 0.48 V Caldo (+90°C rise). Limite senza dissipatore. 5 A Letto Riscaldato 3D (piccolo) $5^2 \\times 0.16 = \\mathbf{4.00 W}$ 0.80 V Critico. Richiede dissipatore obbligatorio. 10 A Motore Trapano / E-Bike $10^2 \\times 0.16 = \\mathbf{16.00 W}$ 1.60 V Distruttivo. Fusione immediata del componente. 14 A Rating Nominale (Datasheet) $14^2 \\times 0.16 = \\mathbf{31.36 W}$ 2.24 V Impossibile in aria libera. Teorico. Insight Fondamentale: Sebbene commercializzato come dispositivo da \u0026ldquo;14 Ampere\u0026rdquo;, l\u0026rsquo;analisi dei consumi rivela che l\u0026rsquo;IRF530 \u0026ldquo;classico\u0026rdquo; è utilizzabile praticamente solo fino a 3-4 Ampere senza sistemi di raffreddamento ingombranti. A 10 Ampere, \u0026ldquo;consuma\u0026rdquo; (spreca) 16 Watt e provoca una caduta di tensione di 1,6 Volt. In un sistema a 12V, questo significa che il carico riceve solo 10,4V, con una perdita di efficienza drammatica.\n5. Applicazioni Critiche e Problematiche Comuni 5.1 Stampanti 3D e Letti Riscaldati (Heated Bed) Una delle applicazioni più diffuse per i MOSFET di potenza nell\u0026rsquo;hobby e nel semi-professionale è il controllo del letto riscaldato nelle stampanti 3D (es. Prusa, Anet, Creality). Questi letti assorbono tipicamente tra 10A e 12A a 12V o 24V.10\nLe schede madri economiche (come le vecchie RAMPS 1.4) utilizzavano spesso MOSFET con $R_{DS(on)}$ non ottimale o connettori sottodimensionati, portando a surriscaldamenti e persino incendi.17\nProblematica dell\u0026rsquo;IRF530: Utilizzare un IRF530 per un letto da 10A è un errore progettuale grave. La dissipazione di 16W richiede un dissipatore molto grande. Soluzione Moderna: La comunità e l\u0026rsquo;industria si sono spostate verso moduli MOSFET esterni o transistor a bassissima resistenza come l\u0026rsquo;IRLB3034 (Logic Level, $R_{DS(on)} \\approx 2 m\\Omega$). A 10A, l\u0026rsquo;IRLB3034 dissipa solo $10^2 \\times 0.002 = 0.2 Watt$, rimanendo freddo al tatto senza necessità di ventole.16 5.2 Illuminazione LED e il Problema del Pilotaggio (Logic Level) Le strisce LED RGB sono pilotate tramite PWM per variare colore e luminosità. L\u0026rsquo;uso dell\u0026rsquo;IRF530 con microcontrollori come Arduino (5V) o ESP32 (3.3V) evidenzia una trappola comune.\nLa Trappola della Tensione di Soglia ($V_{GS(th)}$):\nIl datasheet dell\u0026rsquo;IRF530 indica una $V_{GS(th)}$ tra 2V e 4V. Molti hobbisti interpretano erroneamente questo dato pensando che a 3.3V o 5V il MOSFET sia \u0026ldquo;acceso\u0026rdquo;.\nRealtà: A $V_{GS(th)}$, il MOSFET conduce solo 250 micro-ampere. Per ottenere la resistenza nominale di $0,16 \\Omega$, il datasheet specifica una tensione di gate di 10V.3 Conseguenza: Se pilotato a 5V (Arduino), l\u0026rsquo;IRF530 potrebbe avere una resistenza effettiva di $0,5 \\Omega$ o più. Con una striscia LED da 2A, la dissipazione sale da 0,6W (teorici) a 2W (reali), surriscaldando il transistor e riducendo la luminosità dei LED.19 Soluzione: È essenziale l\u0026rsquo;uso di MOSFET \u0026ldquo;Logic Level\u0026rdquo; (serie IRL, es. IRL540, IRLZ44N), progettati per saturare completamente a 4.5V o 5V.21 5.3 Amplificazione Audio in Classe AB Nonostante l\u0026rsquo;inefficienza, l\u0026rsquo;IRF530 trova una nicchia prestigiosa nell\u0026rsquo;audio ad alta fedeltà. Negli amplificatori di Classe AB, i MOSFET sono utilizzati nella regione lineare, non come interruttori.22\nLinearità e Tono: Gli audiofili apprezzano i MOSFET per la loro caratteristica di trasferimento quadratica (simile alle valvole termoioniche) e per la stabilità termica superiore ai BJT (coefficiente di temperatura negativo della corrente di drain ad alti livelli, che previene il thermal runaway).23 Consumi: In questa configurazione, il \u0026ldquo;consumo\u0026rdquo; è intenzionalmente alto. Una corrente di riposo (bias) di 50-200 mA scorre continuamente attraverso il dispositivo anche in assenza di suono per evitare la distorsione di incrocio (crossover distortion). Questo richiede dissipatori massicci, poiché il rendimento teorico massimo della Classe AB è solo del 78,5%, ma spesso molto inferiore nell\u0026rsquo;uso reale. 6. Gestione Termica: Calcolo Reale per il Progettista Poiché abbiamo stabilito che il \u0026ldquo;consumo\u0026rdquo; principale è la dissipazione termica, un progettista deve dimensionare il sistema di raffreddamento.\nIl package TO-220 dell\u0026rsquo;IRF530 ha una resistenza termica Giunzione-Ambiente ($R_{\\theta JA}$) di 62 °C/W.3\n$$T_{J} = T_{Ambient} + (P_{Dissipata} \\times R_{\\theta JA})$$\nSe la temperatura ambiente interna al dispositivo è 40°C e dissipiamo 2 Watt (circa 3.5A di carico):\n$$T_{J} = 40 + (2 \\times 62) = 164^\\circ C$$\nQuesto valore è pericolosamente vicino al limite massimo di 175°C.3 Pertanto, qualsiasi applicazione dell\u0026rsquo;IRF530 che preveda correnti superiori a 3 Ampere richiede obbligatoriamente un dissipatore di calore per abbassare la resistenza termica totale.\n7. Alimentatori Switching (SMPS) e Considerazioni sulla Frequenza Negli alimentatori moderni (caricabatterie USB-C, alimentatori PC), i MOSFET operano a frequenze elevate per ridurre le dimensioni dei trasformatori.\nL\u0026rsquo;IRF530, essendo una tecnologia datata, ha tempi di commutazione non trascurabili:\nTempo di salita ($t_r$): 34 ns Tempo di discesa ($t_f$): 24 ns.25 A frequenze di commutazione elevate (es. 200 kHz), questi tempi di transizione rappresentano una porzione significativa del ciclo. Durante la transizione, il MOSFET attraversa la regione lineare dove tensione e corrente sono presenti simultaneamente, generando picchi di potenza dissipata (\u0026ldquo;Switching Losses\u0026rdquo;).15\n$$P_{switching} \\approx 0.5 \\times V_{in} \\times I_{out} \\times (t_r + t_f) \\times f_{sw}$$\nSe commutiamo 50V e 5A a 100 kHz:\n$$P_{sw} \\approx 0.5 \\times 50 \\times 5 \\times (58ns) \\times 100.000 \\approx 0,725 W$$\nQuesta perdita si somma alla perdita per conduzione ($I^2R$), aumentando ulteriormente il \u0026ldquo;consumo\u0026rdquo; totale del dispositivo.\n8. Conclusioni L\u0026rsquo;analisi dell\u0026rsquo;utilizzo dei MOSFET nell\u0026rsquo;elettronica di consumo e la caratterizzazione dei consumi di un classico come l\u0026rsquo;IRF530 portano a conclusioni sfaccettate:\nRuolo Insostituibile: I MOSFET rimangono i \u0026ldquo;muscoli\u0026rdquo; dell\u0026rsquo;elettronica moderna, indispensabili per la conversione di potenza e l\u0026rsquo;attuazione meccanica. Il Mito del Basso Consumo: Sebbene il consumo di gate sia minimo (µA-mA), il \u0026ldquo;consumo\u0026rdquo; reale sotto forma di perdite resistive ($I^2R$) è significativo per i dispositivi classici. Un IRF530 sotto un carico di 10A non è un interruttore efficiente, ma una stufa da 16 Watt. Il Paradosso del Rating: Il rating di \u0026ldquo;14 Ampere\u0026rdquo; è un limite termico teorico. Nel mondo reale dell\u0026rsquo;elettronica di consumo (spazi chiusi, raffreddamento passivo), il limite operativo sicuro per questi dispositivi classici è spesso inferiore ai 4 Ampere. Evoluzione Necessaria: Per applicazioni ad alta corrente (\u0026gt;5A) o bassa tensione di pilotaggio (3.3V/5V), i dispositivi \u0026ldquo;classici\u0026rdquo; come l\u0026rsquo;IRF530 sono tecnologicamente obsoleti. L\u0026rsquo;industria si è spostata verso MOSFET Logic-Level a bassissima resistenza (TrenchFET), che riducono i consumi di conduzione di oltre un ordine di grandezza, rendendo possibili le moderne prestazioni di droni, stampanti 3D veloci e alimentatori miniaturizzati. In definitiva, stabilire il consumo di un MOSFET richiede un\u0026rsquo;analisi olistica che consideri non solo la corrente che attraversa il dispositivo, ma l\u0026rsquo;efficienza con cui esso la gestisce, le perdite che introduce e l\u0026rsquo;energia richiesta per controllarlo.\nCapitolo 1: Il Ruolo del MOSFET nell\u0026rsquo;Elettronica di Consumo Moderna 1.1 La Transizione Storica: Dal BJT al MOSFET La storia dell\u0026rsquo;elettronica di consumo è intrinsecamente legata all\u0026rsquo;evoluzione dei dispositivi di commutazione. Negli anni \u0026lsquo;70 e \u0026lsquo;80, gli amplificatori audio, gli alimentatori lineari e i primi controlli motori si basavano prevalentemente sui Transistor a Giunzione Bipolare (BJT). Il BJT, pur essendo un componente robusto, presentava un limite fondamentale per l\u0026rsquo;efficienza: è un dispositivo controllato in corrente.\nConsideriamo un BJT di potenza (come il classico 2N3055) utilizzato per controllare un motore da 10 Ampere. Con un guadagno tipico ($h_{FE}$) di 20-50 a correnti elevate, la base del transistor richiederebbe una corrente di pilotaggio compresa tra 0,2A e 0,5A.\n$$I_{Base} = I_{Collettore} / h_{FE}$$\nQuesta corrente di base deve essere fornita costantemente per mantenere il transistor acceso. In un dispositivo portatile, questo rappresenta uno spreco di energia inaccettabile, oltre a richiedere stadi di pre-amplificazione (driver Darlington) che aumentano la complessità e la caduta di tensione complessiva ($V_{CE(sat)}$).1\nL\u0026rsquo;introduzione massiva del MOSFET (Metal-Oxide-Semiconductor Field-Effect Transistor) negli anni \u0026lsquo;90 ha cambiato le regole del gioco. Il MOSFET è un dispositivo controllato in tensione. La presenza di uno strato isolante di ossido di silicio ($SiO_2$) tra il terminale di controllo (Gate) e il canale di conduzione significa che, in condizioni statiche, non scorre corrente nel gate. L\u0026rsquo;impedenza di ingresso è nell\u0026rsquo;ordine dei Mega-Ohm o Giga-Ohm. Per mantenere acceso un MOSFET che controlla 10A, la corrente di gate necessaria è teoricamente zero (trascurando le perdite di leakage), rappresentando un salto quantico nell\u0026rsquo;efficienza del controllo.2\n1.2 Architettura e Tipologie nel Mercato Consumer Nel vasto ecosistema dell\u0026rsquo;elettronica di consumo, i MOSFET non sono tutti uguali. Esistono due grandi famiglie: a canale N (N-Channel) e a canale P (P-Channel), ciascuna disponibile in modalità \u0026ldquo;Enhancement\u0026rdquo; (arricchimento) o \u0026ldquo;Depletion\u0026rdquo; (svuotamento).\n1.2.1 La Predominanza dell\u0026rsquo;Enhancement N-Channel La quasi totalità (oltre l'85%) dei MOSFET di potenza utilizzati oggi nei beni di consumo sono di tipo N-Channel Enhancement Mode.6\nEnhancement Mode: Significa che il dispositivo è \u0026ldquo;Normalmente Spento\u0026rdquo; (Normally Off). Se non applichiamo tensione al gate, non passa corrente. Questa è una caratteristica di sicurezza fondamentale: se il circuito di controllo si guasta o perde alimentazione, il motore o il riscaldatore si spengono. Canale N vs P: La preferenza per il canale N deriva dalla fisica dello stato solido. Gli elettroni (portatori di carica nel canale N) hanno una mobilità circa 2-3 volte superiore alle lacune (portatori nel canale P). Questo significa che, a parità di dimensioni del chip di silicio e di costo, un MOSFET a canale N avrà una resistenza interna ($R_{DS(on)}$) molto più bassa di uno a canale P. In un mercato sensibile ai costi come quello consumer, l\u0026rsquo;efficienza per millimetro quadrato di silicio è determinante.6 1.2.2 Struttura DMOS e TrenchFET I MOSFET \u0026ldquo;classici\u0026rdquo; oggetto di questa analisi (come l\u0026rsquo;IRF530) utilizzano spesso una struttura planare o DMOS (Double-diffused MOS). Questa struttura è molto robusta e tollera bene tensioni elevate (valanghe), ma non è la più efficiente in termini di resistenza per area.\nI dispositivi più moderni utilizzano strutture \u0026ldquo;Trench\u0026rdquo; (trincea), dove il gate è scavato verticalmente nel silicio per aumentare l\u0026rsquo;area superficiale del canale senza aumentare l\u0026rsquo;ingombro orizzontale. Tuttavia, per l\u0026rsquo;analisi dei dispositivi \u0026ldquo;classici\u0026rdquo; largamente diffusi, ci concentreremo sulla tecnologia planare/DMOS che caratterizza componenti ubiqui come la serie IRF.\n1.3 Il Concetto di \u0026ldquo;Classico\u0026rdquo; Sotto i 30 Ampere La richiesta utente specifica di analizzare un \u0026ldquo;classico MOSFET di larga diffusione sotto i 30 ampere\u0026rdquo;. In questo contesto, alcuni codici parte sono diventati veri e propri standard industriali, presenti nei cassetti di ogni riparatore e nei progetti di ogni ingegnere.\nI rappresentanti ideali di questa categoria sono:\nIRF530: (100V, 14A, $0.16\\Omega$) - Il perfetto equilibrio per applicazioni a media tensione. IRF520: (100V, 9.7A, $0.27\\Omega$) - Spesso usato in kit Arduino a basso costo.18 IRF640: (200V, 18A, $0.15\\Omega$) - Utilizzato dove la tensione potrebbe salire, come nei driver per motori a 110V rettificati o applicazioni industriali leggere. IRF540N: (100V, 33A) - Spesso citato, ma tecnicamente sopra i 30A nominali, anche se usato spesso a correnti inferiori. Per rigore scientifico e aderenza alla richiesta, utilizzeremo l\u0026rsquo;IRF530 come caso studio principale (\u0026ldquo;DUT\u0026rdquo; - Device Under Test) per i calcoli di consumo, in quanto il suo rating di 14A è perfettamente centrato nella fascia richiesta e la sua diffusione è capillare.3\nCapitolo 2: Anatomia dei Consumi in Corrente La richiesta di \u0026ldquo;stabilire i consumi in corrente\u0026rdquo; di un MOSFET è tecnicamente insidiosa. Un profano potrebbe chiedere \u0026ldquo;quanta corrente consuma questo componente?\u0026rdquo;, aspettandosi una risposta simile a quella per una lampadina (es. \u0026ldquo;consuma 0,5 Ampere\u0026rdquo;). Per un MOSFET, la risposta deve essere scomposta vettorialmente. Il dispositivo non è il carico, è il rubinetto. Tuttavia, il rubinetto stesso ha delle perdite e richiede energia per essere aperto e chiuso.\n2.1 Vettore 1: Corrente di Carica del Gate (Consumo Dinamico) In corrente continua (DC), il gate è un circuito aperto. Ma l\u0026rsquo;elettronica di consumo vive di commutazione. Ogni volta che accendiamo il MOSFET, dobbiamo riempire il condensatore di gate di elettroni; ogni volta che lo spegniamo, dobbiamo svuotarlo.\n2.1.1 La Carica Totale di Gate ($Q_g$) Il parametro $Q_g$ (Total Gate Charge) è molto più utile della semplice capacità ($C_{iss}$) perché tiene conto dell\u0026rsquo;effetto Miller (la capacità variabile tra gate e drain che si oppone al cambiamento di tensione durante la commutazione).\nPer un IRF530, il datasheet riporta un $Q_g$ massimo di 26 nC (nano-Coulomb) quando pilotato a 10V.3\n2.1.2 Calcolo della Corrente Media del Driver La corrente media che il circuito di pilotaggio (il \u0026ldquo;driver\u0026rdquo;) deve fornire è data dalla formula:\n$$I_{gate(avg)} = Q_g \\times f_{sw}$$\nDove $f_{sw}$ è la frequenza di switching.\nAnalisi di Scenario:\nInterruttore On/Off (Statico): Accensione di una lampada. $f \\approx 0$. Consumo corrente gate $\\approx 0$.\nDimmer LED (PWM Audio-frequenza): $f = 1 kHz$.\n$$I_{gate} = 26 nC \\times 1000 = 26 \\mu A$$\nInterpretazione: 26 microampere sono trascurabili. Qualsiasi pin GPIO di un microcontrollore può fornirli.\nAlimentatore Switching DC-DC: $f = 200 kHz$.\n$$I_{gate} = 26 nC \\times 200.000 = 5,2 mA$$\nInterpretazione: 5,2 mA iniziano a essere significativi. Se un controller deve pilotare 4 MOSFET contemporaneamente (es. un ponte H), siamo a oltre 20mA, vicino al limite di molti chip logici.\n2.1.3 Il Paradosso della Corrente di Picco Sebbene la corrente media sia bassa, la corrente istantanea è altissima. Per far commutare il MOSFET in modo efficiente, bisogna caricare quei 26 nC il più velocemente possibile per attraversare rapidamente la zona ohmica (lineare) dove il transistor dissipa molto calore.\nSe vogliamo un tempo di commutazione ($t_{sw}$) di 50 nanosecondi:\n$$I_{peak} = Q_g / t_{sw} = 26 \\times 10^{-9} / 50 \\times 10^{-9} = 0,52 A$$\nIl driver deve essere capace di sparare un impulso di 0,52 Ampere. Se non ci riesce, il tempo di commutazione si allunga, e il MOSFET si surriscalda (aumentano le perdite di switching). Questo è un \u0026ldquo;consumo\u0026rdquo; di risorse del circuito, non di energia media totale, ma è critico per il dimensionamento.\n2.2 Vettore 2: Correnti di Dispersione (Leakage) Questo è il vero \u0026ldquo;consumo a vuoto\u0026rdquo;. Quando il dispositivo è spento ($V_{GS} = 0$), quanta corrente passa comunque?\nDrain-to-Source Leakage ($I_{DSS}$): È la corrente che riesce a passare attraverso il canale chiuso. IRF530: Max 25 µA a 100V ($T_J = 25^\\circ C$). A temperature elevate ($150^\\circ C$), questo valore sale drasticamente a 250 µA.3 Significato: In un alimentatore TV spento ma caldo, il MOSFET potrebbe disperdere 0,25 mA. A 100V, sono $100V \\times 0.00025A = 0.025 Watt$ di energia sprecata. Trascurabile per la bolletta, ma importante per il design termico. Gate-to-Source Leakage ($I_{GSS}$): È la corrente che attraversa l\u0026rsquo;isolante del gate. IRF530: Max ±100 nA. Significato: Assolutamente trascurabile in termini di potenza. Importante solo per circuiti di sample-and-hold o timer analogici a lunghissima durata. 2.3 Vettore 3: Consumo per Dissipazione Resistiva ($R_{DS(on)}$) Questa è la voce di \u0026ldquo;costo\u0026rdquo; più alta per l\u0026rsquo;utilizzo di un MOSFET classico. A differenza di un interruttore meccanico ideale (resistenza zero), il MOSFET acceso è un resistore.\nPer l\u0026rsquo;IRF530, $R_{DS(on)} = 0,16 \\Omega$ (a $V_{GS}=10V$).\nPossiamo modellare la potenza consumata (trasformata in calore) come:\n$$P_{conduzione} = I_{RMS}^2 \\times R_{DS(on)}$$\nAnalizziamo il comportamento a diverse correnti operative per un dispositivo \u0026ldquo;sotto i 30A\u0026rdquo;:\nTabella Dettagliata Consumi Resistivi IRF530\nCarico (Ampere) Caduta di Tensione (Vdrop​) Potenza Dissipata (Watt) Note Pratiche 0.5 A 0.08 V 0.04 W Consumo irrilevante. Dispositivo freddo. 2.0 A 0.32 V 0.64 W Il case TO-220 diventa caldo al tatto (~65°C in aria). 5.0 A 0.80 V 4.00 W Soglia Critica. Senza dissipatore, il dispositivo raggiunge \u0026gt;200°C e brucia. 10.0 A 1.60 V 16.00 W Richiede un dissipatore massiccio (es. tipo CPU vecchia). Inefficiente. 14.0 A (Rated) 2.24 V 31.36 W Teoricamente possibile, praticamente ingestibile in un prodotto consumer compatto. Conclusione sui Consumi: Il \u0026ldquo;consumo\u0026rdquo; di un classico MOSFET come l\u0026rsquo;IRF530 cresce col quadrato della corrente. A 10A, \u0026ldquo;consuma\u0026rdquo; 16 Watt. Per confronto, un MOSFET moderno (es. IRLB3034 con $R_{DS(on)} = 0.0017 \\Omega$) alla stessa corrente consumerebbe solo $10^2 \\times 0.0017 = 0.17 Watt$.\nL\u0026rsquo;utilizzo di un \u0026ldquo;classico\u0026rdquo; oggi comporta un \u0026ldquo;consumo\u0026rdquo; energetico circa 100 volte superiore rispetto allo stato dell\u0026rsquo;arte per la stessa funzione di commutazione.\nCapitolo 3: Applicazioni Pratiche e Analisi dei Casi d\u0026rsquo;Uso 3.1 Stampanti 3D: Il Caso del Letto Riscaldato (Heated Bed) Una delle applicazioni più comuni dei MOSFET sotto i 30A nel mondo maker/consumer è il controllo del piano di stampa riscaldato. Un letto standard MK2/MK3 (20x20cm) a 12V ha una resistenza di circa 1,0-1,2 $\\Omega$, assorbendo quindi circa 10-12 Ampere.10\nL\u0026rsquo;Errore Storico: Molte schede di controllo (come la RAMPS 1.4 o la scheda Anet A8) utilizzavano MOSFET di qualità variabile o connettori sottodimensionati per gestire questa corrente direttamente sulla scheda madre. Questo ha portato a numerosi casi di connettori fusi e MOSFET surriscaldati, talvolta con rischio di incendio, poiché dissipare \u0026gt;15W su una scheda PCB senza ventilazione forzata è problematico.17\nL\u0026rsquo;Uso del MOSFET Esterno: Per mitigare questo rischio, è diventata prassi comune l\u0026rsquo;uso di moduli MOSFET esterni. Questi moduli spesso usano MOSFET più moderni (come il HA210N06 o simili) montati su grandi dissipatori in alluminio. Tuttavia, se un utente dovesse costruirsi un modulo usando un classico IRF530, si ritroverebbe con un sistema altamente inefficiente. La caduta di tensione di 1,6V a 10A (calcolata sopra) significherebbe che il letto riceve solo 10,4V invece di 12V. Poiché la potenza termica del letto è $V^2/R$, la potenza di riscaldamento crollerebbe a $(10.4^2)/1.2 = 90W$ contro i $144W$ teorici a 12V.\nRisultato: Il letto impiega molto più tempo a scaldarsi e il MOSFET spreca energia preziosa.\n3.2 Illuminazione a LED: Dimming e Gestione del Colore Le strisce LED RGB funzionano tipicamente a 12V o 24V. Ogni canale (Rosso, Verde, Blu) richiede un MOSFET per il controllo PWM.\nUna striscia 5050 standard assorbe circa 1,2A per metro (bianco pieno). Una bobina da 5 metri assorbe 6 Ampere.\nAnalisi PWM (Pulse Width Modulation):\nPer regolare la luminosità, il MOSFET viene acceso e spento velocemente (es. 1 kHz).\nSe usiamo un IRF530 per 5 metri di LED (6A), la dissipazione statica sarebbe $6^2 \\times 0.16 = 5.76 W$. Troppo per un uso senza dissipatore. Inoltre, pilotando il gate con logica a 5V (tipico dei controller LED economici), la resistenza $R_{DS(on)}$ non sarà 0,16 $\\Omega$ ma molto più alta (poiché 5V non saturano l\u0026rsquo;IRF530), portando a un surriscaldamento immediato.28 3.3 Amplificatori Audio: La Nicchia della Classe AB Mentre nelle applicazioni di potenza (3D printer, LED) l\u0026rsquo;alta resistenza dell\u0026rsquo;IRF530 è un difetto, nell\u0026rsquo;audio può essere gestita.\nGli amplificatori consumer di fascia media (50-100W per canale) utilizzano spesso coppie complementari IRF530 (N-channel) e IRF9530 (P-channel) in configurazione push-pull.24\nModalità Lineare: Qui il MOSFET lavora nella \u0026ldquo;zona ohmica\u0026rdquo; o lineare. Non è mai completamente acceso o spento.\nBias e Stabilità Termica: Una caratteristica apprezzata dei MOSFET verticali di potenza come l\u0026rsquo;IRF530 è che, ad alti livelli di corrente, hanno un coefficiente di temperatura negativo per la transconduttanza. In parole semplici: se si scaldano troppo, tendono a condurre meno (auto-limitazione), il che li rende più immuni al \u0026ldquo;Thermal Runaway\u0026rdquo; (fuga termica) rispetto ai transistor BJT, che invece conducono di più quando si scaldano, rischiando di autodistruggersi.5\nTuttavia, il consumo a riposo (Quiescent Current) necessario per polarizzare i gate appena sotto la soglia di conduzione (per eliminare la distorsione di crossover) comporta un consumo costante di energia, rendendo questi amplificatori poco efficienti (efficienza reale 50-60%) rispetto ai moderni Classe D (\u0026gt;90%).\nCapitolo 4: La Criticità del Livello Logico (Logic Level vs Standard) Un\u0026rsquo;analisi completa non può ignorare il punto di fallimento più comune nell\u0026rsquo;utilizzo di questi dispositivi classici oggi: l\u0026rsquo;interfaccia con la logica digitale.\n4.1 Il Malinteso della Soglia ($V_{GS(th)}$) Il datasheet dell\u0026rsquo;IRF530 indica una $V_{GS(th)}$ min/max di 2.0V - 4.0V.\nPer un hobbista con un Arduino (5V) o un ESP32 (3.3V), sembra perfetto. \u0026ldquo;La soglia è 2V, io ho 3.3V, quindi funziona\u0026rdquo;.\nQuesto è falso.\nLa tensione di soglia è definita come la tensione alla quale scorre una corrente microscopica di 250 µA. È il punto in cui il MOSFET si è \u0026ldquo;appena svegliato\u0026rdquo;, non il punto in cui lavora bene.3\n4.2 La Curva di Trasferimento Guardando le curve caratteristiche (Typical Transfer Characteristics 3), si vede che a $V_{GS} = 5V$, un IRF530 potrebbe lasciar passare solo 3-4 Ampere massimo, e lo farebbe con una resistenza interna elevata.\nSe il carico richiede 5A, il MOSFET agirà come un limitatore di corrente, dissipando tutta la tensione in eccesso e bruciando istantaneamente.\nPer saturare un IRF530 e ottenere i famosi $0,16 \\Omega$, serve una tensione di gate di 10 Volt.\n4.3 La Soluzione: Serie IRL Per l\u0026rsquo;elettronica di consumo moderna integrata (smart home, IoT), l\u0026rsquo;industria utilizza varianti \u0026ldquo;Logic Level\u0026rdquo;, spesso prefissate con IRL (es. IRL540, IRLZ44). Questi dispositivi hanno uno strato di ossido di gate più sottile, che permette la piena saturazione a 4.5V o 5V.18\nUtilizzare un IRF standard al posto di un IRL in un circuito a 5V è la causa numero uno di \u0026ldquo;consumi anomali\u0026rdquo; (surriscaldamento) nei prototipi hobbistici.\nCapitolo 5: Conclusioni e Sintesi dei Dati L\u0026rsquo;indagine sull\u0026rsquo;utilizzo e sui consumi dei MOSFET classici sotto i 30A nell\u0026rsquo;elettronica di consumo rivela un componente che è al contempo un pilastro storico e una tecnologia che mostra i suoi limiti.\nAnalisi dei Consumi: Pilotaggio: Il consumo di corrente al gate è trascurabile in media (µA), ma richiede picchi elevati (0,5-1,0 A) per commutazioni veloci ed efficienti. Standby: Il leakage è basso (\u0026lt;25 µA) per dispositivi connessi alla rete, ma potenzialmente problematico per dispositivi a batteria a lunghissima durata. Efficienza: Il vero \u0026ldquo;consumo\u0026rdquo; è la perdita resistiva. L\u0026rsquo;IRF530 dissipa $0.16 \\Omega \\times I^2$. Questo lo rende energeticamente costoso sopra i 3-4 Ampere. Verdetto sull\u0026rsquo;Utilizzo: Per applicazioni lineari (Audio) e applicazioni industriali a tensioni elevate (\u0026gt;50V), i classici IRF530/640 rimangono validi e robusti. Per applicazioni di potenza a bassa tensione (Stampanti 3D, Droni, LED), questi dispositivi sono obsoleti. L\u0026rsquo;alta resistenza interna comporta sprechi di energia e necessità di dissipazione termica incompatibili con la miniaturizzazione moderna. L\u0026rsquo;adozione di MOSFET moderni a bassa $R_{DS(on)}$ (milli-ohm) è la scelta tecnica obbligata per ridurre i \u0026ldquo;consumi\u0026rdquo; intesi come perdite di sistema. In conclusione, \u0026ldquo;stabilire i consumi\u0026rdquo; di un MOSFET classico significa riconoscere che, sebbene il dispositivo in sé assorba poco per \u0026ldquo;funzionare\u0026rdquo;, la sua inefficienza intrinseca impone una \u0026ldquo;tassa energetica\u0026rdquo; sul sistema che cresce esponenzialmente con il carico applicato.\nWorks cited Exploring MOSFETs: Advantages and Applications - Tomson Electronics, accessed January 17, 2026, https://www.tomsonelectronics.com/blogs/news/exploring-mosfets-advantages-and-applications What Is a MOSFET? Power Electronics Applications - Patsnap Eureka, accessed January 17, 2026, https://eureka.patsnap.com/article/what-is-a-mosfet-power-electronics-applications IRF530 Power MOSFET - Vishay, accessed January 17, 2026, https://www.vishay.com/docs/91019/irf530.pdf IRF640, SiHF640 Power MOSFET - Vishay, accessed January 17, 2026, https://www.vishay.com/docs/91036/sihf640.pdf List of MOSFET applications - Wikipedia, accessed January 17, 2026, https://en.wikipedia.org/wiki/List_of_MOSFET_applications Comparison of different types of MOSFETs and their uses. - Wonderful PCB, accessed January 17, 2026, https://www.wonderfulpcb.com/blog/comparison-types-of-mosfets-and-their-uses-applications/ MOSFET as a Switch - Using Power MOSFET Switching - Electronics Tutorials, accessed January 17, 2026, https://www.electronics-tutorials.ws/transistor/tran_7.html Popular MOSFETs Commonly Used in Power Electronics Designs - IC Components, accessed January 17, 2026, https://www.ic-components.com/blog/popular-mosfets-commonly-used-in-power-electronics-designs.jsp Comparing the Best MOSFETs for Power Electronics - Octopart, accessed January 17, 2026, https://octopart.com/pulse/p/comparing-the-best-mosfets-for-power-electronics Overheating heated bed mosfet - RepRap, accessed January 17, 2026, https://reprap.org/forum/read.php?158,130702 IRF520 - DigiKey, accessed January 17, 2026, https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/1157/IRF520.pdf AB-022: PWM Frequency For Linear Motion Control - Precision Microdrives, accessed January 17, 2026, https://www.precisionmicrodrives.com/ab-022 Understanding the Effect of PWM When Controlling a Brushless DC Motor - Portescap, accessed January 17, 2026, https://www.portescap.com/en/newsroom/whitepapers/2021/10/understanding-the-effect-of-pwm-when-controlling-a-brushless-dc-motor DC-DC converter switching frequencies – fixed or variable? | Blogs - TDK-Lambda Americas, accessed January 17, 2026, https://www.us.lambda.tdk.com/resources/blogs/20220425.html High frequency implications for switch-mode DC-DC converter design - EE Times, accessed January 17, 2026, https://www.eetimes.com/high-frequency-implications-for-switch-mode-dc-dc-converter-design/ Controlling MOSFET with 12 V from board to heat bed with 24 V PSU, accessed January 17, 2026, https://3dprinting.stackexchange.com/questions/20480/controlling-mosfet-with-12-v-from-board-to-heat-bed-with-24-v-psu Using a MOSFET on hot end. Good or bad? : r/3Dprinting - Reddit, accessed January 17, 2026, https://www.reddit.com/r/3Dprinting/comments/7vs3mw/using_a_mosfet_on_hot_end_good_or_bad/ Why isn\u0026rsquo;t there a logic level MOSFET on the (cheap but popular) breakout boards? - Reddit, accessed January 17, 2026, https://www.reddit.com/r/arduino/comments/1kskv3y/why_isnt_there_a_logic_level_mosfet_on_the_cheap/ IRF530N + LED stripe + arduino - General Electronics, accessed January 17, 2026, https://forum.arduino.cc/t/irf530n-led-stripe-arduino/571594 Logic Level MOSFETs, IRL or IRF? - Academy for Arduino, accessed January 17, 2026, https://learnarduinonow.com/2017/06/02/logic-level-mosfets-irl-or-irf.html IRL vs IRF MOSFET, can I use an IRF MOSFET for logic level application? - Reddit, accessed January 17, 2026, https://www.reddit.com/r/AskElectronics/comments/q2pisu/irl_vs_irf_mosfet_can_i_use_an_irf_mosfet_for/ Class AB Amplifier Design and Class AB Biasing - Electronics Tutorials, accessed January 17, 2026, https://www.electronics-tutorials.ws/amplifier/class-ab-amplifier.html IRF530 HF Amplifier: Real-World Performance, Applications, and Why It Still Matters in Modern RF Designs - AliExpress, accessed January 17, 2026, https://www.aliexpress.com/p/wiki/article.html?keywords=irf530-hf-amplifier IRF530 MOSFET: Pinout, Equivalent, Applications and Circuit Diagram - DEV Community, accessed January 17, 2026, https://dev.to/zheng2a2e5f5b/irf530-mosfet-pinout-equivalent-applications-and-circuit-diagram-253i IRF530 Vishay / Siliconix - Mouser Electronics, accessed January 17, 2026, https://www.mouser.com/ProductDetail/Vishay-Siliconix/IRF530?qs=zorda86t5M82LGK1FZZ7rg%3D%3D Frequency Selection in Switching Power Supply Designs (Part I) | Article | MPS, accessed January 17, 2026, http://www.monolithicpower.com/learning/resources/frequency-selection-in-switching-power-supply-designs-part-i How to Install External MOSFET to Any 3D Printer! : 5 Steps - Instructables, accessed January 17, 2026, https://www.instructables.com/How-to-Install-External-MOSFET-to-Any-3D-Printer/ Arduino Controlled LED Strip Holiday Lighting : 3 Steps - Instructables, accessed January 17, 2026, https://www.instructables.com/Arduino-Controlled-LED-Strip-Holiday-Lighting/ Mosfet IRF 530: is it possible to replace it with more tiny component? - Arduino Forum, accessed January 17, 2026, https://forum.arduino.cc/t/mosfet-irf-530-is-it-possible-to-replace-it-with-more-tiny-component/319036 Continua su Gemini col tuo account Clicca per clonare questa sessione tecnica e fare le tue domande. ","permalink":"https://www.robotdazero.it/blog/guida-ai-mosfet-nella-domotica-iot-come-scegliere-e-utilizzare-i-migliori/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/guida-ai-mosfet-nella-domotica-iot-come-scegliere-e-utilizzare-i-migliori/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch1 id=\"analisi-approfondita-dell\"\u003e\u003cstrong\u003eAnalisi Approfondita dell\u0026rsquo;Utilizzo dei MOSFET nell\u0026rsquo;Elettronica di Consumo e Caratterizzazione dei Consumi di Corrente dei Dispositivi Classici Sotto i 30 Ampere\u003c/strong\u003e\u003c/h1\u003e\n\u003ch2 id=\"1-introduzione-l\"\u003e\u003cstrong\u003e1. Introduzione: L\u0026rsquo;Ubiquità Silenziosa del MOSFET\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;elettronica di consumo moderna, dai caricabatterie compatti agli elettrodomestici intelligenti, fino ai sistemi di intrattenimento ad alta fedeltà, poggia le sue fondamenta su un componente critico: il Transistor a Effetto di Campo a Metallo-Ossido-Semicondotto, universalmente noto come MOSFET. Sebbene invisibile all\u0026rsquo;utente finale, questo dispositivo è il principale attuatore della conversione di potenza e del controllo del segnale nel XXI secolo. A differenza dei suoi predecessori, i transistor a giunzione bipolare (BJT), che operavano come dispositivi controllati in corrente richiedendo un flusso costante di elettroni alla base per mantenere la conduzione, il MOSFET ha introdotto un paradigma di controllo in tensione.1 Questa caratteristica, apparentemente semplice, ha rivoluzionato l\u0026rsquo;efficienza energetica, permettendo la miniaturizzazione dei dispositivi e l\u0026rsquo;estensione della durata delle batterie nei sistemi portatili.\u003c/p\u003e","title":"Guida ai MOSFET nella Domotica IOT: Come Scegliere e Utilizzare i Migliori"},{"content":"\nSiamo alla ricerca di appassionati di coltivazioni idroponiche interessati a testare il nostro software Agritech Kaspian.🌱💧💻\nSe vuoi provare in anteprima le nostre soluzioni e darci il tuo feedback, visita subito: https://www.robotdazero.it/assistenza.html\nComunica lì la tua disponibilità e unisciti alla community di beta tester per contribuire a migliorare i nostri impianti idroponici smart.\n","permalink":"https://www.robotdazero.it/blog/cerchiamo-beta-tester-per-kaspian/","summary":"\u003cp\u003e\u003cimg alt=\"Kaspian Dashboard per idroponica\" loading=\"lazy\" src=\"/blog/cerchiamo-beta-tester-per-kaspian/header.png\"\u003e\u003c/p\u003e\n\u003cp\u003eSiamo alla ricerca di appassionati di coltivazioni idroponiche interessati a testare il nostro software Agritech Kaspian.🌱💧💻\u003c/p\u003e\n\u003cp\u003eSe vuoi provare in anteprima le nostre soluzioni e darci il tuo feedback, visita subito:\n\u003ca href=\"https://www.robotdazero.it/assistenza.html\"\u003ehttps://www.robotdazero.it/assistenza.html\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eComunica lì la tua disponibilità e unisciti alla community di beta tester per contribuire a migliorare i nostri impianti idroponici smart.\u003c/p\u003e","title":"Cerchiamo beta tester per Kaspian!"},{"content":"\n🌱 Kaspian 1.0 (Core): Vogliamo cambiare l\u0026rsquo;Agricoltura Moderna, Senza Compromessi su Privacy e Semplicità Il futuro dell\u0026rsquo;agricoltura idroponica e dell\u0026rsquo;agri-tech è qui, ed è più smart e accessibile che mai. Siamo entusiasti di annunciare il debutto ufficiale di Kaspian 1.0, la piattaforma IoT avanzata progettata per mettere il controllo totale della tua coltura nelle tue mani.\nChe tu sia un hobbista che coltiva in casa o un agricoltore professionista che gestisce una serra di medie dimensioni, Kaspian 1.0 è la soluzione ideale per ottimizzare la produzione con precisione svizzera e una semplicità disarmante.\nControllo Totale e Massima Semplicità Dimentica la complessità. Con Kaspian, la configurazione è rapida: puoi monitorare istantaneamente parametri critici come pH, EC e temperatura attraverso sensori configurabili. La vera magia avviene con l\u0026rsquo;automazione: puoi collegare attuatori (pompe, luci LED) e impostare regole IF-THEN personalizzate (es. “se pH \u0026lt; 5.5, attiva pompa nutrienti”) e scheduler per cicli di irrigazione e illuminazione perfetti.\nLa nostra dashboard interattiva ti offre una panoramica in tempo reale, permettendoti di controllare il tuo impianto da remoto, ovunque tu sia, grazie al nostro servizio SaaS gestito via HTTPS.\n🧠 Intelligente e Rispettoso della Privacy Kaspian non si limita a misurare; ti aiuta a crescere meglio. L\u0026rsquo;integrazione con l\u0026rsquo;intelligenza artificiale locale (basata su scikit-learn) analizza i tuoi dati e fornisce previsioni utili per ottimizzare la resa—parliamo di potenziali aumenti del 15%!\nMa la vera rivoluzione è la privacy: tutti i tuoi dati vengono elaborati localmente sul tuo dispositivo, non lasciano mai il tuo controllo. Massima sicurezza, totale conformità.\n🚀 Il Tuo MVP in Soli 20 Giorni Comprendiamo che ogni impianto è unico. Per questo, offriamo un MVP (Minimum Viable Product) personalizzato che si adatta esattamente alle tue esigenze, utilizzando microcontrollori ESP32 economici per garantire sostanziali risparmi sui costi senza sacrificare le prestazioni.\nTi promettiamo la consegna del tuo MVP su misura in soli 20 giorni lavorativi. Puoi testare la soluzione immediatamente e concentrarti subito su ciò che conta: far prosperare le tue colture.\nKaspian 1.0 unisce innovazione, semplicità e costi contenuti, rendendo l\u0026rsquo;agri-tech avanzato accessibile a tutti. È il momento di dare una svolta alla tua agricoltura.\nSmetti di perdere il tuo raccolto a causa di un pH che sfugge al controllo. Attiva le Notifiche Salva-Raccolto Ora!\nPuoi ottenere l\u0026rsquo;App Gratuita in Cambio di una Storia di Successo Inviaci i dettagli del tuo impianto Agricolo o Idroponico. I candidati selezionati riceveranno accesso gratuito e supporto personalizzato. invia subito un’email con oggetto “app free\u0026quot; a info@robotdazero.it e visita robotdazero.it per altri progetti e guide sull’automazione ambientale.\nSebadima è un maker e sviluppatore indipendente. Lavora tra automazione IoT e intelligenza artificiale, e scrive per passione di tecnologia “umana”, quella che rispetta chi la usa.\nRobotdazero.it - post - R.187.1.4.0\n","permalink":"https://www.robotdazero.it/blog/kaspian-10-al-debutto-rivoluzioniamo-idroponica-e-agri-tech/","summary":"\u003cp\u003e\u003cimg alt=\"Immagine dela dashboard di Kaspian 1.0\" loading=\"lazy\" src=\"/blog/kaspian-10-al-debutto-rivoluzioniamo-idroponica-e-agri-tech/header.png\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch3 id=\"-kaspian-10-core-vogliamo-cambiare-lagricoltura-moderna-senza-compromessi-su-privacy-e-semplicità\"\u003e🌱 Kaspian 1.0 (Core): Vogliamo cambiare l\u0026rsquo;Agricoltura Moderna, Senza Compromessi su Privacy e Semplicità\u003c/h3\u003e\n\u003cp\u003eIl futuro dell\u0026rsquo;agricoltura idroponica e dell\u0026rsquo;agri-tech è qui, ed è più smart e accessibile che mai. Siamo entusiasti di annunciare il debutto ufficiale di Kaspian 1.0, la piattaforma IoT avanzata progettata per mettere il controllo totale della tua coltura nelle tue mani.\u003c/p\u003e\n\u003cp\u003eChe tu sia un hobbista che coltiva in casa o un agricoltore professionista che gestisce una serra di medie dimensioni, Kaspian 1.0 è la soluzione ideale per ottimizzare la produzione con precisione svizzera e una semplicità disarmante.\u003c/p\u003e","title":"Kaspian 1.0 al debutto - Rivoluzioniamo Idroponica e Agri-tech"},{"content":"\nDa sviluppatore, passo le mie giornate a scrivere codice, testare API e integrare servizi. Non mi spaventano modelli di linguaggio, reti neurali o librerie complicate. Ma c’è una cosa che riesce ancora a farmi perdere ore preziose: le interfacce e i piani tariffari pensati da chi non ha mai usato il proprio prodotto.\nL’esperienza OpenAI: un labirinto travestito da “Free Tier” Qualche giorno fa ho deciso di integrare ChatGPT via API per un progetto personale. Mi aspettavo un processo lineare: accedo, genero una chiave, pago qualche euro, testo il modello. Invece mi sono ritrovato in un dedalo di termini e condizioni poco chiari: Free, Tier 1, Usage Limits, Credits, Top-Up, Soft Cap, Hard Cap… A ogni click una nuova pagina, a ogni riga un dubbio in più.\nRisultato: 20 minuti passati a cercare di capire come “pagare” per usare un servizio a pagamento.\nPoi ho provato Scaleway! Per curiosità (e un pizzico di disperazione), ho aperto la console di Scaleway Generative API . In meno di 15 minuti avevo:\nletto prezzi chiari e leggibili (“€0.20 per milione di token, free tier di 1.000.000 di token, fine.”), generato una chiave API, eseguito la mia prima chiamata Python con requests . Tutto funzionava. Nessun tier misterioso, nessuna ricarica minima nascosta. Solo API europee, documentazione essenziale e chiarezza totale.\nNon è questione di potenza, ma di rispetto\nI modelli OpenAI restano probabilmente i migliori al mondo. Ma la potenza senza chiarezza non serve a nessuno. Un developer vuole sapere quanto costa, cosa può fare e dove può trovarlo — senza sentirsi in trappola tra termini ambigui e finestre modali.\nScaleway, invece, ha capito una cosa semplice:\nla user experience è parte del prodotto, non un accessorio grafico. Una lezione per chi progetta piattaforme AI Il messaggio è chiaro: Non basta costruire modelli brillanti, bisogna rispettare il tempo e la lucidità mentale di chi li usa. Un’interfaccia chiara, un pricing trasparente e un flusso logico valgono più di mille promesse di “AI avanzata”.\nAlla fine, ho scelto Scaleway per migliorare la nostra app Kaspian non per i modelli, ma per il senso di fiducia che ho provato dopo cinque minuti. Una sensazione che, in un mondo di dashboard autistiche e piani “free” che non lo sono, vale più di qualunque benchmark.\n💡 Vuoi saperne di più su Kaspian Hydro?\nVisita robotdazero.it per altri progetti e guide sull’automazione ambientale.\nSergio Rame è un maker e sviluppatore indipendente. Lavora tra automazione IoT e intelligenza artificiale, e scrive per passione di tecnologia “umana”, quella che rispetta chi la usa. Robotdazero.it - post - R.186.1.1.0\n","permalink":"https://www.robotdazero.it/blog/ho-scelto-scaleway-invece-di-openai/","summary":"\u003cp\u003e\u003cimg alt=\"Immagine della console di Scaleway\" loading=\"lazy\" src=\"/blog/ho-scelto-scaleway-invece-di-openai/header.png\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cem\u003eDa sviluppatore, passo le mie giornate a scrivere codice, testare API e integrare servizi.\nNon mi spaventano modelli di linguaggio, reti neurali o librerie complicate.\nMa c’è una cosa che riesce ancora a farmi perdere ore preziose: le interfacce e i piani tariffari pensati da chi non ha mai usato il proprio prodotto.\u003c/em\u003e\u003c/p\u003e\n\u003ch3 id=\"lesperienza-openai-un-labirinto-travestito-da-free-tier\"\u003eL’esperienza OpenAI: un labirinto travestito da “Free Tier”\u003c/h3\u003e\n\u003cp\u003eQualche giorno fa ho deciso di integrare ChatGPT via \u003ca href=\"https://platform.openai.com/docs\" target=\"_blank\" rel=\"noopener noreferrer\"\u003eAPI\u003c/a\u003e\nper un progetto personale.\nMi aspettavo un processo lineare: accedo, genero una chiave, pago qualche euro, testo il modello.\nInvece mi sono ritrovato in un dedalo di termini e condizioni poco chiari: Free, Tier 1, Usage Limits, Credits, Top-Up, Soft Cap, Hard Cap…\nA ogni click una nuova pagina, a ogni riga un dubbio in più.\u003c/p\u003e","title":"Quando la chiarezza batte la potenza: perché ho scelto Scaleway invece di OpenAI"},{"content":"\nQuando si parla di Internet delle Cose (IoT) applicato all’agricoltura o ai sistemi ambientali, il DHT11 è uno dei primi sensori che si incontrano. È economico, semplice da collegare e fornisce dati essenziali: temperatura e umidità dell’aria. Queste due grandezze sono fondamentali in ogni contesto in cui serve controllare il Microclima, che si tratti di una serra, di una Grow box domestica o di un piccolo laboratorio sperimentale.\nNonostante la sua apparente semplicità, il DHT11 rappresenta un perfetto punto di partenza per monitorare serre con decine o centinaia di sensori di temperatura e umidità grazie al suo costo estremamente ridotto. L\u0026rsquo;errore di misurazione del DHT11 rispetto a dispositivi più prestigiosi è generalmente trascurabile in applicazioni come la agricoltura smart e la Idroponica.\nCome Funziona il DHT11 Il DHT11 contiene due elementi principali: un Sensore capacitivo per l’umidità e un termistore per la temperatura. Entrambi sono collegati a un chip che elabora e converte le misure in un segnale digitale. Questo significa che non serve un Convertitore Analogico Digitale (ADC), e il microcontrollore può leggere i dati direttamente con una singola linea dati.\nLa comunicazione avviene tramite un protocollo proprietario molto semplice: il microcontrollore invia un segnale di start e il DHT11 risponde trasmettendo una sequenza di 40 bit che rappresentano l’umidità e la temperatura, oltre a un checksum per verificare la correttezza dei dati. Il tutto avviene in pochi millisecondi.\nIl DHT11 nel Contesto di Kaspian Hydro Nel progetto Kaspian Hydro, il DHT11 è uno dei sensori di base usati per la raccolta di dati ambientali. Collegato all’ESP32, fornisce letture periodiche che vengono poi inviate in modo sicuro al backend dell’applicazione tramite API REST. Ogni pacchetto di dati contiene:\nil valore della temperatura il valore dell’umidità il device_id univoco dell’hardware la chiave di autenticazione (API key ) il timestamp della lettura Questi dati vengono salvati nel database centrale e resi disponibili in tempo reale sulla dashboard, dove l’utente può visualizzare grafici, medie temporali e trend stagionali.\nTabella Comparativa: DHT11 vs DHT22 Caratteristica DHT11 DHT22 Intervallo Temperatura -10 °C – +50 °C -40 °C – +80 °C Precisione Temperatura ± 1 °C ± 0.5 °C Intervallo Umidità 20 % – 80 % 0 % – 100 % Precisione Umidità ± 5 % ± 2 % Frequenza di Campionamento 1 Hz (una lettura al secondo) 0.5 Hz (una lettura ogni 2 s) Tensione Operativa 3 V – 5 V 3.3 V – 6 V Costo Indicativo Basso Medio Come si può vedere, il DHT11 è meno preciso rispetto al DHT22, ma il suo costo e la sua disponibilità lo rendono una scelta strategica nei progetti di prototipazione e sperimentazione rapida. Inoltre, per un sistema come Kaspian Hydro che integra più fonti di dati e algoritmi di mediazione, l’errore del singolo sensore è facilmente compensabile.\nIl Ruolo del DHT11 nell’Architettura Kaspian Hydro Kaspian Hydro è progettato con un’architettura distribuita che separa la logica di acquisizione dati da quella di analisi e automazione. Il DHT11 risiede nel livello “Edge”, ovvero sul dispositivo fisico (ESP32 o Raspberry Pi), mentre l’elaborazione, le regole e le automazioni vengono gestite a livello di server (backend Django + Celery + PostgreSQL).\nIl flusso dati si può riassumere così:\nIl sensore DHT11 misura temperatura e umidità ogni N secondi. L’ESP32 invia le letture al server tramite HTTPS POST. Il backend salva i dati nel database e li invia in tempo reale alla dashboard frontend (tramite WebSocket o REST polling). I worker Celery valutano le regole di automazione e decidono se attivare attuatori come ventole, pompe, luci o altri attuatori e generare notifiche all’utente. Questo modello architetturale permette a Kaspian di scalare facilmente: aggiungere un nuovo sensore o un nuovo dispositivo è solo questione di registrarlo nel sistema e assegnargli una chiave API.\nSistema di Allarmi e Notifiche Una delle funzioni più apprezzate dagli utenti è il sistema di allarmi intelligenti. Ogni parametro monitorato (temperatura, umidità, pH, EC, livello acqua, ecc.) può essere associato a soglie minime e massime configurabili. Quando una lettura supera o scende al di sotto di tali soglie, il sistema genera un allarme e lo invia tramite email.\nIl backend utilizza Celery per gestire questi eventi in modo asincrono , evitando blocchi del sistema. Anche in caso di centinaia di dispositivi connessi, gli allarmi vengono processati in parallelo, garantendo tempi di risposta rapidi.\nIl ciclo di vita di un allarme segue questo schema:\nLettura anomala rilevata dal task Celery periodico. Generazione di un record nel database con timestamp e livello di severità. Invio email tramite SMTP, con oggetto e corpo personalizzati (es. “Allarme temperatura alta su dispositivo #12”). Attivazione opzionale di attuatori, se configurati in modalità automatica. Sistema di Cooldown e Notifiche Intelligenti Per evitare spam di notifiche, Kaspian introduce una finestra temporale di cooldown: se un parametro resta oltre soglia per un periodo prolungato, il sistema invia una sola notifica e attende che la condizione torni nella norma prima di generare un nuovo alert. Questo aumenta l’affidabilità percepita e riduce il rumore informativo .\nScalabilità e Modularità Uno dei punti di forza di Kaspian Hydro è la modularità. Ogni sensore è trattato come una fonte indipendente di dati, definita da un tipo, un’unità di misura e una relazione con un dispositivo. Questo permette di sostituire il DHT11 con sensori più avanzati (come il BME280 o il SHT31 ) senza modificare il resto del sistema. Il codice che gestisce le automazioni non dipende dal tipo di sensore, ma solo dai dati che esso fornisce.\nEsempio di Regola Automatica “Se la temperatura supera i 30°C per più di 5 minuti, accendi la ventola principale per 10 minuti.”\nQuesta logica viene tradotta internamente in una serie di task Celery che controllano continuamente le letture e, se le condizioni sono soddisfatte, inviano il comando MQTT all’attuatore . L’utente vede tutto questo come una semplice regola configurabile da interfaccia grafica, ma dietro c’è un sistema complesso di processi paralleli e sincronizzazione tra più nodi.\nLe notifiche nell’IoT e il vantaggio dell’email rispetto alle app Nel mondo dell’Internet delle Cose (IoT), la capacità di ricevere notifiche tempestive e affidabili è tanto cruciale quanto la raccolta dei dati stessi. Un sensore che misura parametri ambientali non ha valore se l’informazione non raggiunge in tempo l’utente che deve reagire. Le notifiche rappresentano quindi il punto di contatto vitale tra il sistema automatico e la decisione umana.\nNel caso di Kaspian Hydro, la possibilità di ricevere avvisi via email offre un vantaggio pratico e tecnico rispetto alle notifiche in-app. Le app mobili, pur essendo comode per il monitoraggio in tempo reale, dipendono da fattori come la connessione di rete, l’attività del dispositivo, o la gestione delle notifiche da parte del sistema operativo. È sufficiente che l’utente disattivi una notifica o che l’app venga chiusa in background perché un allarme critico passi inosservato.\nL’email, al contrario, è un canale universale, asincrono e indipendente. Un messaggio inviato al server di posta viene recapitato e archiviato, garantendo tracciabilità e storicità. L’utente può accedere all’avviso da qualsiasi dispositivo — smartphone, tablet, computer — anche dopo ore o giorni, mantenendo un registro preciso degli eventi.\nIn sintesi, l’approccio ibrido di Kaspian — automazione locale e notifica remota via email — consente di bilanciare affidabilità e controllo umano, assicurando che ogni evento rilevante venga non solo gestito dal sistema, ma anche compreso e verificato dall’utente.\nConclusione Il DHT11, pur essendo un sensore economico e limitato, ha un enorme valore didattico e pratico. In un ecosistema ben progettato come Kaspian Hydro, diventa parte di un sistema intelligente, scalabile (IoT) e affidabile. È la dimostrazione che l’efficacia di una piattaforma non dipende solo dalla qualità del singolo componente, ma dalla coerenza con cui ogni parte comunica e coopera con le altre.\nKaspian Hydro trasforma il semplice monitoraggio in azione: raccoglie dati, li analizza, e reagisce. E tutto parte da un piccolo sensore blu da pochi euro, il DHT11, che se integrato in un sistema intelligente può diventare la prima scintilla dell’automazione ambientale.\nL’automazione di Kaspian è smart, non solo semplice.\n💡 Vuoi saperne di più su Kaspian Hydro?\nVisita robotdazero.it per altri progetti e guide sull’automazione ambientale.\nRobotdazero.it - post - R.185.1.6.0\n","permalink":"https://www.robotdazero.it/blog/dht11-e-kaspian-hydro-come-funzionano-gli-allarmi-smart-per-salvare-il-tuo-raccolto/","summary":"\u003cp\u003e\u003cimg alt=\"immagine della console di gestione dei sensori DHT11 Kaspian\" loading=\"lazy\" src=\"/blog/dht11-e-kaspian-hydro-come-funzionano-gli-allarmi-smart-per-salvare-il-tuo-raccolto/header.png\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eQuando si parla di Internet delle Cose (IoT) applicato all’agricoltura o ai sistemi ambientali, il \u003ca href=\"https://it.wikipedia.org/wiki/DHT11\" title=\"DHT11 su Wikipedia\"\u003eDHT11\u003c/a\u003e è uno dei primi sensori che si incontrano. È economico, semplice da collegare e fornisce dati essenziali: temperatura e umidità dell’aria. Queste due grandezze sono fondamentali in ogni contesto in cui serve controllare il \u003ca href=\"https://it.wikipedia.org/wiki/Microclima\" title=\"Microclima su Wikipedia\"\u003eMicroclima\u003c/a\u003e, che si tratti di una serra, di una \u003ca href=\"https://it.wikipedia.org/wiki/Grow_box\" title=\"Grow box su Wikipedia\"\u003eGrow box\u003c/a\u003e domestica o di un piccolo laboratorio sperimentale.\u003c/p\u003e","title":"DHT11 e Kaspian Hydro: Come Funzionano gli Allarmi Smart per Salvare il Tuo Raccolto"},{"content":"\nQuesti oggetti sono pensati per chi vuole migliorare l\u0026rsquo;estetica del giardino, ridurre la fatica o aumentare la produttività.\nLetti rialzati in metallo (Metal Raised Beds) Sebbene più costosi di quelli in legno, i letti in metallo (come quelli in acciaio Aluzinc) durano oltre 20 anni senza marcire. Sono modulari, eleganti e aiutano il terreno a scaldarsi più velocemente in primavera.\nFioriera verticale GreenStalk Un sistema a torre che permette di coltivare fino a 42 piante in pochissimo spazio. Il suo punto di forza è il sistema di irrigazione brevettato che distribuisce l\u0026rsquo;acqua uniformemente in ogni livello, ideale per chi ha poco spazio come balconi o patii.\nSerra \u0026ldquo;Cold Frame\u0026rdquo; (Epic GardenBox) Una struttura compatta per proteggere le piante dal gelo e dal vento. È perfetta per chi vive in climi freddi e vuole anticipare le semine primaverili o continuare a raccogliere insalata durante l\u0026rsquo;inverno.\nLuci a LED per la semina (Grow Lights) Indispensabili per chi inizia a coltivare partendo dal seme in casa. A differenza dei davanzali poco illuminati, queste luci garantiscono piantine robuste, compatte e sane, evitando che crescano deboli e \u0026ldquo;filate\u0026rdquo;.\nKit completo per la semina Un pacchetto \u0026ldquo;chiavi in mano\u0026rdquo; che include vassoi, luci e contenitori universali. È il regalo ideale per eliminare lo stress della scelta dei singoli componenti, garantendo che tutto sia compatibile e di alta qualità.\nCesto da raccolta specializzato Un oggetto di artigianato ispirato ai cesti tradizionali del New England. Oltre a essere bello da vedere (un potenziale cimelio di famiglia), permette di sciacquare le verdure direttamente nel cesto grazie al fondo in rete metallica.\nTraliccio ad \u0026ldquo;A\u0026rdquo; (A-Frame Trellis) Strutture robuste e di design per far crescere piante rampicanti come piselli, cetrioli o zucche. Sfruttano la verticalità del giardino e, a differenza di quelli economici, non si piegano sotto il peso del raccolto.\nArco da giardino (Arbor) Un elemento architettonico che funge da punto focale e ingresso scenografico. È ideale per rose rampicanti o viti e trasforma istantaneamente l\u0026rsquo;aspetto estetico di qualsiasi spazio esterno.\nTrivella da giardino (Auger) Una punta da applicare al trapano per scavare fori senza sforzo. È utilissima per chi deve piantare centinaia di bulbi o piccoli arbusti, risparmiando tempo e salvaguardando la schiena e le ginocchia.\nKit di irrigazione \u0026ldquo;Olla\u0026rdquo; Un sistema antico e modernizzato che utilizza vasi di terracotta porosa interrati. Rasciano l\u0026rsquo;acqua lentamente solo quando il terreno è asciutto, riducendo il consumo idrico del 61% e permettendo di andare in vacanza senza pensieri.\n","permalink":"https://www.robotdazero.it/blog/10-regali-di-lusso-per-il-giardinaggio/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/10-regali-di-lusso-per-il-giardinaggio/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eQuesti oggetti sono pensati per chi vuole migliorare l\u0026rsquo;estetica del giardino, ridurre la fatica o aumentare la produttività.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eLetti rialzati in metallo (Metal Raised Beds)\nSebbene più costosi di quelli in legno, i letti in metallo (come quelli in acciaio Aluzinc) durano oltre 20 anni senza marcire. Sono modulari, eleganti e aiutano il terreno a scaldarsi più velocemente in primavera.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFioriera verticale GreenStalk\nUn sistema a torre che permette di coltivare fino a 42 piante in pochissimo spazio. Il suo punto di forza è il sistema di irrigazione brevettato che distribuisce l\u0026rsquo;acqua uniformemente in ogni livello, ideale per chi ha poco spazio come balconi o patii.\u003c/p\u003e","title":"10 regali di lusso per il giardinaggio"},{"content":"\nCome Cancellare la Memoria Flash dell'ESP32 e Ottenere un Reset di Fabbrica Questa guida mostra come resettare completamente un ESP32 — sia tramite il pulsante hardware che mediante la cancellazione totale della memoria Flash — per riportarlo allo stato originale di fabbrica. Questa procedura è utile per eliminare firmware precedenti, configurazioni persistenti (come le credenziali Wi-Fi) o per recuperare una scheda apparentemente bloccata che non accetta più nuovo codice. Reset Hardware Immediato In caso di blocchi o anomalie temporanee, è possibile riavviare l’ESP32 senza toccare la memoria Flash. Basta tenere premuto per circa 5 secondi il pulsante EN (Enable) o RST (Reset), come mostrato di seguito: Dopo il rilascio, la scheda si riavvia eseguendo il codice dal bootloader interno. È lo stesso processo che avviene all’accensione o durante l’upload di un nuovo firmware. Il reset hardware dell’ESP32 comporta:\nCancellazione di tutte le variabili in RAM. Riavvio immediato del programma dall’inizio. Ripristino delle periferiche interne allo stato iniziale. Non cancella i dati non volatili nella Flash, come configurazioni o credenziali Wi-Fi salvate.\nIl Processo di Boot dell’ESP32 e il Ruolo del RTOS Quando l’ESP32 viene acceso o resettato, il boot segue una sequenza precisa: Bootloader Fase 1: presente nella ROM, inizializza il sistema e carica la Fase 2 da Flash (offset 0x1000). Bootloader Fase 2: legge la tabella delle partizioni e carica l’immagine firmware principale. Avvio del kernel FreeRTOS, che gestisce le attività sui due core della CPU. Lo scheduler RTOS assegna tempo di esecuzione ai vari task in base alla priorità, permettendo un’elaborazione efficiente e deterministica — aspetto cruciale nei sistemi IoT. Principi dello scheduler RTOS:\nOgni task ha una priorità fissa. Il task con priorità più alta viene eseguito per primo (preemption). Task con pari priorità vengono eseguiti a rotazione (time slicing). Perché a Volte Serve un Reset Completo Il reset hardware è utile per un riavvio rapido, ma non risolve problemi legati a dati corrotti o configurazioni errate nella memoria Flash. In questi casi, serve un reset di fabbrica — cioè la cancellazione totale della memoria Flash. Situazioni Tipiche: Firmware corrotto: l’ESP32 non si avvia o rifiuta nuovi upload. Dati persistenti da rimuovere: credenziali Wi-Fi, file in SPIFFS/LittleFS, variabili NVS. Passaggio di framework: da Arduino a ESP-IDF o viceversa. Problemi di boot loop: il chip non trova un’immagine valida e si riavvia continuamente. Errori di runtime: crash o instabilità dovuti a residui di vecchi firmware. Reset di Fabbrica con esptool.py Per cancellare completamente la memoria Flash, si usa esptool.py, un’utility ufficiale Espressif basata su Python che comunica con il bootloader dell’ESP32. 1️⃣ Installazione di ESPTOOL Assicurati di avere Python 3.8 o superiore, poi installa esptool con: pip install esptool Copy Se necessario: pip3 install esptool Copy oppure\npython -m pip install esptool Copy Verifica l’installazione: python -m esptool Copy 2️⃣ Cancellazione della Flash Segui questi passaggi: Collega l’ESP32 al PC via USB. Tieni premuto il pulsante BOOT (o FLASH). Identifica la porta seriale del dispositivo: Linux: /dev/ttyUSB0 o /dev/ttyACM0 macOS: /dev/cu.usbserial-xxxx Windows: COM3, COM4, ecc. Esegui il comando: python -m esptool --chip esp32 --port /dev/ttyUSB0 erase_flash Copy Rilascia il pulsante BOOT quando compare la scritta “Connecting...”. Se tutto va a buon fine, vedrai un messaggio come: esptool.py v4.7.0 Connecting.... Chip is ESP32-D0WD-V3 Erasing flash (this may take a while)... Chip erase completed successfully in 10.4s Hard resetting via RTS pin... A questo punto, la memoria Flash dell’ESP32 è completamente cancellata. La scheda è pronta per ricevere un nuovo firmware pulito. Reset Hardware vs Reset di Fabbrica Il reset hardware riavvia semplicemente l’esecuzione del firmware attuale, mentre la cancellazione della Flash tramite esptool.py elimina tutto ciò che risiede nella memoria non volatile. Conoscere la differenza tra i due è cruciale per gestire correttamente progetti IoT, soprattutto quando si lavora con dispositivi remoti o integrati in reti distribuite. Conclusioni e Riferimenti Ufficiali L’ESP32 combina un’architettura dual-core con un sistema operativo real-time integrato, offrendo prestazioni notevoli per l’IoT e i sistemi embedded. Sapere come riportarlo allo stato di fabbrica è un’abilità essenziale per chi sviluppa firmware, poiché permette di risolvere rapidamente problemi legati a blocchi, dati corrotti o errori di partizionamento. Per approfondire, consulta la documentazione ufficiale Espressif: Espressif ESPTOOL — Utility ufficiale per Flash e Reset ESP-IDF Bootloader Guide Gestione della memoria SPI Flash Con questi strumenti e una corretta conoscenza del processo di reset, puoi mantenere ogni ESP32 stabile, pulito e sempre pronto per nuovi sviluppi. Robotdazero.it - post - R.119.3.4.6\n","permalink":"https://www.robotdazero.it/blog/come-resettare-lesp32/","summary":"\u003cp\u003e\u003cimg alt=\"come resettare la scheda ESP32\" loading=\"lazy\" src=\"/blog/come-resettare-lesp32/header.jpeg\"\u003e\u003c/p\u003e\n\u003ch1\u003eCome Cancellare la Memoria Flash dell'ESP32 e Ottenere un Reset di Fabbrica\u003c/h1\u003e\n\u003cp\u003e\nQuesta guida mostra come resettare completamente un ESP32 — sia tramite il pulsante hardware che mediante la cancellazione totale della memoria Flash — per riportarlo allo stato originale di fabbrica. Questa procedura è utile per eliminare firmware precedenti, configurazioni persistenti (come le credenziali Wi-Fi) o per recuperare una scheda apparentemente bloccata che non accetta più nuovo codice.\n\u003c/p\u003e","title":"Come resettare l'ESP32"},{"content":"\nBreve Storia di PlatformIO PlatformIO è nato nel 2014 come un progetto open-source ideato da Ivan Kravets, un appassionato di sviluppo embedded che cercava un’alternativa più efficiente agli IDE tradizionali come Arduino IDE. L’idea iniziale era creare un ambiente unificato per sviluppare, compilare e caricare codice su microcontrollori, eliminando la frammentazione tra piattaforme hardware diverse. Partendo da un semplice script, PlatformIO si è evoluto rapidamente grazie alla sua integrazione con editor moderni come Visual Studio Code, diventando un ecosistema completo per lo sviluppo IoT ed embedded. La sua forza risiede nell’approccio modulare: un file di configurazione centrale, platformio.ini, permette di definire piattaforme (es. ESP32, Arduino), framework (Arduino, ESP-IDF) e librerie, rendendo il workflow scalabile e riproducibile.\nNel corso degli anni, PlatformIO ha guadagnato popolarità grazie alla community open-source e al supporto per oltre 1.000 schede hardware, coprendo produttori come Espressif, STMicroelectronics e Nordic Semiconductor. Una svolta significativa è arrivata con l’introduzione del PlatformIO Registry, un repository centralizzato per le librerie, che ha semplificato la gestione delle dipendenze. Nel 2016, l’aggiunta del supporto per il debugging avanzato e il monitor seriale ha consolidato la sua reputazione come strumento professionale.\nOggi, con aggiornamenti regolari e una versione Core gratuita accanto a edizioni a pagamento (PlatformIO Plus), è utilizzato da hobbisti, ingegneri e aziende per progetti complessi.La filosofia di PlatformIO si basa sull’automazione e sulla portabilità, eliminando la necessità di installare IDE pesanti.\nSupporta ambienti Linux, macOS e Windows, ed è particolarmente apprezzato per la sua integrazione con CI/CD e il comando da terminale, ideale per workflow agili. Questa introduzione al suo utilizzo con ESP32, come descritto in questo articolo, è un ottimo punto di partenza per esplorare le sue potenzialità, dalla compilazione alla gestione remota, aprendo la porta a un mondo di innovazione nell’IoT.\nCome iniziare Ti serviranno tre files per creare un progetto con Platformio, ma per fortuna li abbiamo assemblati in un file .ZIP che troverai più avanti. Prima di partire con la parte pratica vediamo in dettaglio quali files ci servono e quali comandi lanciare da terminale.\nIl codice sorgente Si tratta del file dove inserirai le istruzioni in C++, un esempio lo trovi qua sotto. Il brevissimo file di esempio serve ad ottenere l\u0026rsquo;indirizzo MAC di un ESP32, un dato che ti servirà sempre quando lo usi in una rete MESH o per ogni progetto di networking.\nFile: main.ino #include \u0026#34;WiFi.h\u0026#34; void setup(){ Serial.begin(115200); WiFi.mode(WIFI_MODE_STA); Serial.print(\u0026#34;indirizzo MAC=\u0026#34;); Serial.println(WiFi.macAddress()); } void loop(){ } Ti servirà inoltre un file di configurazione chiamato \u0026ldquo;platformio.ini\u0026rdquo;. Questo è il file di configurazione principale per il tuo progetto. Puoi specificare qui la piattaforma hardware, l\u0026rsquo;ambiente di sviluppo, le librerie utilizzate, ecc. Ad esempio:\nFile: platformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] upload_port = /dev/ttyUSB0 platform = espressif32 board = esp32dev framework = arduino lib_deps = Opzioni avanzate: puoi passare varie opzioni al comando platformio per personalizzare il processo di compilazione. Puoi ad esempio, specificare la directory di output, abilitare/disabilitare la generazione di mappe dei simboli, ecc. Nel mio caso ho specificato la opzione \u0026ldquo;upload_port = /dev/ttyUSB0\u0026rdquo; perchè volevo usare una specifica porta del mio Raspberry PI.\nIl terzo file (eccoli tutti in formato zippato) è un classico di Linux e si chiama \u0026ldquo;Makefile\u0026rdquo; con il primo carattere maiuscolo. Makefile non richiede nessuna modifica per adattarlo ai diversi progetti ma deve essere sempre presente nella directory del progetto.\nFile: Makefile # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update Se hai problemi nel download dei tre files zippati, prova a fare copia e incolla dell\u0026rsquo;URL nella barra indirizzi del tuo browser:\nhttps://www.robotdazero.it/zip/platformio-template.zip Dopo il download troverai il file nella cartella di default del tuo browser e potrai copiarla dove preferisci, ad esempio in una cartella di lavoro. quindi fai click destro da Windows/Linux e scegli \u0026ldquo;scompatta\u0026rdquo; o \u0026ldquo;estrai\u0026rdquo;. Se stai usando un terminale a linea di comando scrivi:\nunzip platformio-template.zip Il programma \u0026ldquo;unzip\u0026rdquo; potrebbe non essere installato di default su Linux, in questo caso basta copiare e incollare questa singola riga:\nsudo apt-get install unzip La compilazione da terminale Dopo avere estratto i tre files digita questo comando per compilare e caricare il codice oggetto su ESP32 o Arduino:\nmake upload Il risultato sul terminale sarà: make upload pio -f -c vim run --target upload Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino) Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html PLATFORM: Espressif 32 (6.4.0) \u0026gt; Espressif ESP32 Dev Module HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20011.230801 (2.0.11) - tool-esptoolpy @ 1.40501.0 (4.5.1) - tool-mkfatfs @ 2.0.1 - tool-mklittlefs @ 1.203.210628 (2.3) - tool-mkspiffs @ 2.230.0 (2.30) - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 Converting main.ino LDF: Library Dependency Finder -\u0026gt; https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 33 compatible libraries Scanning dependencies... Dependency Graph |-- WiFi @ 2.0.0 Building in release mode Compiling .pio/build/esp32dev/src/main.ino.cpp.o Retrieving maximum program size .pio/build/esp32dev/firmware.elf Checking size .pio/build/esp32dev/firmware.elf Advanced Memory Usage is available via \u0026#34;PlatformIO Home \u0026gt; Project Inspect\u0026#34; RAM: [= ] 12.9% (used 42320 bytes from 327680 bytes) Flash: [===== ] 54.3% (used 712333 bytes from 1310720 bytes) Configuring upload protocol... AVAILABLE: cmsis-dap, esp-bridge, esp-prog, espota, esptool, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa CURRENT: upload_protocol = esptool Looking for upload port... Using manually specified: /dev/ttyUSB0 Uploading .pio/build/esp32dev/firmware.bin esptool.py v4.5.1 Serial port /dev/ttyUSB0 Connecting..... Chip is ESP32-D0WD-V3 (revision v3.1) Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None Crystal is 40MHz MAC: 08:d1:f9:99:2d:84 Uploading stub... Running stub... Stub running... Changing baud rate to 460800 Changed. Configuring flash size... Flash will be erased from 0x00001000 to 0x00005fff... Flash will be erased from 0x00008000 to 0x00008fff... Flash will be erased from 0x0000e000 to 0x0000ffff... Flash will be erased from 0x00010000 to 0x000bffff... Compressed 17536 bytes to 12203... Writing at 0x00001000... (100 %) Wrote 17536 bytes (12203 compressed) at 0x00001000 in 0.4 seconds (effective 351.9 kbit/s)... Hash of data verified. Compressed 3072 bytes to 146... Writing at 0x00008000... (100 %) Wrote 3072 bytes (146 compressed) at 0x00008000 in 0.0 seconds (effective 969.1 kbit/s)... Hash of data verified. Compressed 8192 bytes to 47... Writing at 0x0000e000... (100 %) Wrote 8192 bytes (47 compressed) at 0x0000e000 in 0.0 seconds (effective 1489.9 kbit/s)... Hash of data verified. Compressed 718080 bytes to 466296... Writing at 0x00010000... (3 %) Writing at 0x0001c12a... (6 %) Writing at 0x00027041... (10 %) ... Writing at 0x000b7350... (96 %) Writing at 0x000bcbca... (100 %) Wrote 718080 bytes (466296 compressed) at 0x00010000 in 10.7 seconds (effective 539.3 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... sebadima@raspberrypi:~/esp32/esp_now_ESP32_mac_address $ Il monitor seriale Dopo avere compilato e fatto l\u0026rsquo;upload del programma possiamo lanciare il monitor per vedere i messaggi della sched e leggere l\u0026rsquo;indirzzo MAC, lo scopo finale del programmino\u0026hellip;\nplatformio device monitor --baud 115200 --rts 0 --dtr 0 Il risultato sul terminale sarà: platformio device monitor --baud 115200 --rts 0 --dtr 0 --- forcing DTR inactive --- forcing RTS inactive --- Terminal on /dev/ttyUSB0 | 115200 8-N-1 --- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time --- More details at https://bit.ly/pio-monitor-filters --- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ets Jul 29 2019 12:21:46 rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13232 load:0x40080400,len:3028 entry 0x400805e4 indirizzo MAC=indirizzo MAC=08:D1:F9:99:2D:84 🔑 Il monitor di PlatformIO funziona anche in remoto se siete collegati con SSH e soprattutto senza lanciare il \"pesante\" IDE di Visual studio Code (in genere assone più di un GB di RAM) o di Arduino. E\u0026rsquo; importante non omettere i flag: \u0026ldquo;\u0026ndash;rts 0 \u0026ndash;dtr 0\u0026rdquo; perchè avresti molti problemi nel visualizzare il \u0026ldquo;monitoring\u0026rdquo; dell\u0026rsquo;ESP32-CAM. La ESP32-CAM ha caratteristiche hardware molto diverse dalla scheda normale e, a parte la presenza della camera OV2640 ha un numero di piedini molto inferiore. Inolre necessita di un modulo di alimentazione esterno.\nCome creare un progetto con la ESP32-CAM Se vuoi usare la versione dell\u0026rsquo;ESP32 con la CAM OV2640 incoporata il progetto è sostanzialmente uguale ma dovrai modificare il file:\nFile: platformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32cam] platform = espressif32 board = esp32cam framework = arduino monitor_speed=115200 lib_ldf_mode=deep build_flags = -I../lib/esp32-camera lib_deps = Come vedi sono cambiate due righe:\nla riga \u0026ldquo;[env:esp32dev]\u0026rdquo; diventata \u0026ldquo;[env:esp32cam]\u0026rdquo; la riga \u0026ldquo;board = esp32dev\u0026rdquo; diventa \u0026ldquo;board = esp32cam\u0026rdquo; inoltre abbiamo dovuto aggiungere il flag: \u0026ldquo;build_flags = -I../lib/esp32-camera\u0026rdquo;. Il file main.ino e il Makefile rimangono invariati\nConclusione Con questo articolo hai fatto il primo passo nel mondo di PlatformIO, un potente strumento che trasforma il modo in cui sviluppi per microcontrollori come ESP32 e ESP32-CAM. Abbiamo esplorato come configurare un progetto base, compilare e caricare codice tramite terminale, e monitorare i risultati, il tutto senza dipendere da IDE pesanti. L’esempio pratico di ottenere l’indirizzo MAC di un ESP32 dimostra quanto PlatformIO sia intuitivo e versatile, adatto sia a principianti che a sviluppatori esperti. La possibilità di adattare il progetto per la ESP32-CAM, con semplici modifiche al file platformio.ini, evidenzia la sua flessibilità per hardware diversi.\nPer chi inizia con PlatformIO, il viaggio non finisce qui. La documentazione ufficiale è un tesoro di risorse: visita https://docs.platformio.org/ per guide dettagliate, configurazioni avanzate e troubleshooting. Il sito include tutorial su come integrare librerie, configurare il debugging e ottimizzare i build. Per un’introduzione pratica, il canale YouTube ufficiale PlatformIO offre video step-by-step, ideali per visualizzare i processi descritti. Se preferisci una comunità attiva, il forum https://community.platformio.org/ è perfetto per porre domande e condividere soluzioni.\nUn altro punto di forza è l’accesso al PlatformIO Registry (https://registry.platformio.org/), dove puoi esplorare migliaia di librerie pronte all’uso, da WiFi a sensoristica. Per iniziare con ESP32, il sito di Espressif https://docs.espressif.com/projects/esp-idf/en/latest/esp32/ offre documentazione complementare, anche se PlatformIO semplifica l’integrazione. Per progetti remoti su Raspberry Pi, come nel tuo caso, consulta https://randomnerdtutorials.com/, che include guide su SSH e terminale.\nLa sfida ora è sperimentare. Prova ad aggiungere librerie come ESPAsyncWebServer per creare un server web sull’ESP32 o esplora il supporto per OTA (Over-The-Air) updates, documentato su https://docs.platformio.org/en/latest/plus/ota.html. Ricorda di salvare regolarmente i tuoi file e di testare su porte diverse (es. /dev/ttyUSB1) se /dev/ttyUSB0 non risponde. L’errore è parte del processo: usa il monitor seriale per debuggare e il comando pio update per mantenere tutto aggiornato.\n","permalink":"https://www.robotdazero.it/blog/come-compilare-un-programma-con-platformio/","summary":"\u003cp\u003e\u003cimg alt=\"esp32 alimentato con batterie ricaricabili\" loading=\"lazy\" src=\"/blog/come-compilare-un-programma-con-platformio/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"breve-storia-di-platformio\"\u003eBreve Storia di PlatformIO\u003c/h2\u003e\n\u003cp\u003ePlatformIO è nato nel 2014 come un progetto open-source ideato da Ivan Kravets, un appassionato di sviluppo embedded che cercava un’alternativa più efficiente agli IDE tradizionali come Arduino IDE. L’idea iniziale era creare un ambiente unificato per sviluppare, compilare e caricare codice su microcontrollori, eliminando la frammentazione tra piattaforme hardware diverse. Partendo da un semplice script, PlatformIO si è evoluto rapidamente grazie alla sua integrazione con editor moderni come Visual Studio Code, diventando un ecosistema completo per lo sviluppo IoT ed embedded. La sua forza risiede nell’approccio modulare: un file di configurazione centrale, platformio.ini, permette di definire piattaforme (es. ESP32, Arduino), framework (Arduino, ESP-IDF) e librerie, rendendo il workflow scalabile e riproducibile.\u003c/p\u003e","title":"Come compilare un programma con PlatformIO"},{"content":"\nVuoi trasformare qualsiasi progetto in un oggetto connesso a Internet? La scheda ESP8266 è la tua chiave d’accesso al mondo dell’Internet of Things (IoT), un dispositivo che unisce potenza, versatilità e un costo irrisorio, rendendolo il sogno di ogni maker, ingegnere e appassionato di elettronica. Piccola ma straordinaria, questa scheda ha rivoluzionato il modo in cui interagiamo con la tecnologia, permettendo a chiunque di creare soluzioni smart con un investimento minimo. Preparati a scoprire come questa meraviglia tecnologica può cambiare il tuo approccio alla creatività digitale!\nL’ESP8266 è un microcontrollore Wi-Fi a basso costo e altamente integrato, sviluppato da Espressif Systems, un’azienda leader nel settore dei semiconduttori. La sua popolarità esplode grazie alla capacità di combinare un microcontrollore con una connessione TCP/IP integrata, rendendolo ideale per progetti IoT. Non è un’esagerazione dire che l’ESP8266 ha democratizzato l’accesso alla connettività wireless, portando l’innovazione nelle mani di hobbisti, studenti e professionisti. Disponibile in vari formati—dalla scheda base al modulo espandibile—è un alleato versatile per chiunque voglia esplorare il futuro della tecnologia.\nLe caratteristiche principali che rendono l’ESP8266 unico Processore potente e flessibile: Al cuore dell’ESP8266 c’è una CPU RISC a 32 bit basata sull’architettura Tensilica Diamond, che opera a 80 MHz di default, con la possibilità di overcloccare fino a 160 MHz. Questa potenza consente di gestire compiti complessi, dalla comunicazione di rete all’elaborazione di dati da sensori, il tutto con una reattività sorprendente. Per dettagli tecnici, consulta il datasheet ufficiale di Espressif (PDF).\nMemoria adeguata alle esigenze: L’ESP8266 offre 32 KiB di RAM per le istruzioni e 80 KiB di RAM per i dati utente, supportando inoltre una memoria flash esterna che varia da 512 KiB a 16 MiB. Questo spazio permette di archiviare programmi, firmware e credenziali Wi-Fi, rendendolo perfetto per progetti che richiedono un po’ di memoria extra. Il documento ESP8266 SDK Guide (PDF) approfondisce queste specifiche.\nConnettività Wi-Fi all’avanguardia: Supporta i protocolli IEEE 802.11 b/g/n, garantendo una connessione wireless stabile e affidabile. Può operare in modalità station (connessione a una rete esistente), access point (creazione di una propria rete) o entrambe, offrendo flessibilità per ogni esigenza. Per una panoramica tecnica, visita il supporto tecnico di Espressif.\nI pin GPIO: il cuore dell’interazione L’ESP8266 dispone di fino a 17 pin GPIO, di cui 11 generalmente disponibili per uso generale. Questi pin sono configurabili per funzioni come ingresso/uscita digitale, output PWM e comunicazione I2C o SPI, permettendo di connettere una vasta gamma di sensori e attuatori. La guida ESP8266 Pinout di Random Nerd Tutorials è un’ottima risorsa per capire come sfruttarli al meglio.\nConvertitore ADC per segnali analogici Ingresso analogico: Include un convertitore analogico-digitale (ADC) a 10 bit su un pin (A0), capace di leggere segnali analogici da 0 a 1V (con un partitore di tensione per espandere a 0-3.3V). Questo lo rende perfetto per sensori come quelli di luce o temperatura. Per dettagli, vedi il Technical Reference Manual (PDF).\nEfficienza energetica Basso consumo: Progettato per minimizzare il consumo, l’ESP8266 entra in una modalità di sospensione profonda che consuma meno di 10 µA, ideale per dispositivi alimentati a batteria. Questo lo rende una scelta ecologica e pratica per progetti portatili, come documentato nel Power Consumption Guide (PDF).\nLe applicazioni dell’ESP8266: un mondo di possibilità La versatilità dell’ESP8266 lo rende perfetto per una vasta gamma di progetti IoT. Nella domotica, puoi controllare luci, prese o termostati con un’app sul telefono. Nelle reti di sensori, raccoglie dati ambientali come temperatura, umidità o qualità dell’aria, inviandoli a un server. Nei dispositivi indossabili, integra connettività in braccialetti smart per monitorare battito cardiaco o passi. Per esempi concreti, esplora Hackster.io.\nSchede di sviluppo: L’ESP8266 è alla base di piattaforme come NodeMCU e Wemos D1 Mini, che includono alimentazione e USB, semplificando l’uso. Inoltre, alimenta dispositivi commerciali come Shelly e Sonoff per l’automazione domestica.\nCome programmare la scheda: un viaggio creativo L’ESP8266 si programma con diverse piattaforme. L’IDE Arduino è il più popolare grazie alla sua interfaccia intuitiva e alle librerie dedicate. Per un’alternativa moderna, prova MicroPython, ideale per scripting veloce, o PlatformIO per un ambiente professionale. La documentazione ESP8266 RTOS SDK offre supporto avanzato.\nProgetti pratici per iniziare Per i principianti, un ottimo punto di partenza è un sensore di temperatura Wi-Fi. Collega un sensore DHT11, usa l’IDE Arduino e invia i dati a ThingSpeak per monitorarli online. Un altro progetto è un interruttore smart: collega un relè e controllalo via app con Blynk. Questi esempi, dettagliati su Random Nerd Tutorials, ti guideranno passo-passo.\nConclusione: il tuo futuro nell’IoT inizia qui In conclusione, l’ESP8266 non è solo un microcontrollore, ma una rivoluzione accessibile che apre le porte all’Internet of Things (IoT). Con la sua combinazione di potenza di calcolo, connettività Wi-Fi integrata e un costo irrisorio—meno di 5 euro a scheda—offre a maker, ingegneri e appassionati l’opportunità di trasformare idee creative in progetti tangibili. Che si tratti di controllare luci da remoto, monitorare l’umidità di una serra o sviluppare dispositivi indossabili per la salute, l’ESP8266 si adatta a innumerevoli scenari con una flessibilità impressionante. La sua semplicità d’uso, supportata da una comunità globale e da strumenti come l’IDE Arduino, lo rende ideale anche per i principianti, mentre il basso consumo energetico lo rende perfetto per applicazioni a lungo termine, come sensori alimentati a batteria. Questo lo posiziona come un pilastro della domotica moderna e dell’innovazione fai-da-te.\nPer chi vuole spingersi oltre, risorse come Hackster.io offrono ispirazione con progetti dettagliati, mentre Random Nerd Tutorials fornisce guide passo-passo per padroneggiare la programmazione. Per restare aggiornato sulle tendenze IoT, IoT For All è una miniera di informazioni, e per una base tecnica solida, Electronics Tutorials è un punto di riferimento. L’ESP8266 non è solo un dispositivo: è un invito a esplorare, sperimentare e innovare. Con un investimento minimo e un po’ di tempo, puoi connettere il tuo mondo, dall’automazione domestica alla raccolta dati in tempo reale. Non si tratta di un futuro lontano, ma di una realtà che puoi costruire oggi, alle 18:03 CEST di domenica 12 ottobre 2025, mentre la tua creatività prende vita. Prendi un ESP8266, scarica un IDE e inizia—la tua avventura nell’IoT aspetta solo te!\nRobotdazero.it - post - R.180.3.1.0\n","permalink":"https://www.robotdazero.it/blog/la-scheda-esp8266-di-espressif/","summary":"\u003cp\u003e\u003cimg alt=\"La scheda ESP8266\" loading=\"lazy\" src=\"/blog/la-scheda-esp8266-di-espressif/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eVuoi trasformare qualsiasi progetto in un oggetto connesso a Internet? La scheda ESP8266 è la tua chiave d’accesso al mondo dell’Internet of Things (IoT), un dispositivo che unisce potenza, versatilità e un costo irrisorio, rendendolo il sogno di ogni maker, ingegnere e appassionato di elettronica. Piccola ma straordinaria, questa scheda ha rivoluzionato il modo in cui interagiamo con la tecnologia, permettendo a chiunque di creare soluzioni smart con un investimento minimo. Preparati a scoprire come questa meraviglia tecnologica può cambiare il tuo approccio alla creatività digitale!\u003c/p\u003e","title":"La scheda ESP8266 di Espressif"},{"content":"\nPerché riavviare periodicamente MySQL può essere una buona idea Se gestisci un blog su un server \u0026ldquo;Cloud\u0026rdquo;, come molti di noi, potresti occasionalmente imbatterti in problemi frustranti che bloccano il sito, con messaggi d’errore come \u0026ldquo;Database not found\u0026rdquo; o \u0026ldquo;MySQL not found\u0026rdquo;. Questi inconvenienti possono verificarsi per diversi motivi, tra cui server con RAM insufficiente, configurazioni non ottimizzate o attacchi informatici come il \u0026ldquo;Forza Bruta\u0026rdquo; o i DDoS (Distributed Denial of Service). Un server con risorse limitate potrebbe non riuscire a gestire correttamente le query al database, portando a crash improvvisi.\nInoltre, gli attacchi DDoS possono sovraccaricare il sistema, causando interruzioni che compromettono l’accessibilità del tuo sito WordPress. La frequenza di questi problemi dipende spesso dal traffico del sito, dalla qualità del provider cloud e da una cattiva gestione delle risorse.\nLa soluzione più immediata potrebbe sembrare quella di aumentare la RAM del server o investire in un firewall premium come Wordfence, noto per la sua capacità di proteggere i siti WordPress da minacce. Tuttavia, non tutti hanno il budget per queste opzioni. Fortunatamente, esiste una soluzione gratuita e sorprendentemente efficace: configurare un riavvio automatico del server MySQL ogni volta che si verifica un errore. Questo approccio risolve i problemi rapidamente, mantenendo il blog operativo senza costi aggiuntivi, almeno come misura temporanea. Il riavvio periodico di MySQL può liberare risorse bloccate, ripulire connessioni inattive e ripristinare il servizio in caso di malfunzionamenti, riducendo i tempi di inattività.\nSecondo alcune best practice condivise nella comunità di sviluppatori (come quelle su Stack Overflow), questo metodo è particolarmente utile per server condivisi o con risorse limitate. Tuttavia, è fondamentale monitorare i log del server (ad esempio tramite phpMyAdmin) per identificare le cause profonde e implementare soluzioni a lungo termine, come un’ottimizzazione del database con strumenti come WP-Optimize. Questo processo può includere la pulizia di tabelle inutilizzate e l’indicizzazione corretta, migliorando le prestazioni complessive. Inoltre, un riavvio automatico ben configurato può essere un salva-vita per chi non ha accesso immediato a un amministratore di sistema, dando tempo di reagire senza perdere visitatori. Per chi utilizza WordPress su server cloud, è utile considerare l’impatto delle cache. Plugin come WP Rocket possono ridurre il carico su MySQL, complementando il riavvio automatico. Guide dettagliate su DigitalOcean offrono tutorial su come configurare server sicuri e ottimizzati, inclusi firewall e protezione da attacchi. Monitorare il sito con strumenti come UptimeRobot può aiutarti a ricevere avvisi in tempo reale sui downtime, permettendoti di intervenire tempestivamente.\nÈ anche importante notare che un downtime prolungato può influire sul SEO, quindi questa soluzione temporanea può essere un ottimo punto di partenza. Per approfondire, potresti esplorare l’ottimizzazione del database con strumenti avanzati come MySQL Workbench, che consente di analizzare i log e identificare colli di bottiglia. Inoltre, configurare backup regolari con servizi come UpdraftPlus è essenziale per proteggere i dati in caso di problemi persistenti. Un altro aspetto da considerare è l’uso di un CDN come Cloudflare, che riduce il carico sul server migliorando la resilienza complessiva del sito. Questi strumenti, combinati con il riavvio automatico, possono offrire una protezione a tutto tondo.\nCome Procedere Per implementare questa soluzione gratuita, segui questi semplici passaggi:\nApri il terminale del tuo server e digita il seguente comando per modificare il crontab: sudo crontab -e Premi il tasto “i” per entrare in modalità inserimento e aggiungi il codice seguente, che verifica lo stato di MySQL e lo riavvia se necessario: * * * * * service mysql status \u003e /dev/null || service mysql start Premi “ESC” per uscire dalla modalità inserimento. Salva e chiudi il file premendo “SHIFT” + “zz”. Come Funziona il Comando La seconda parte del comando, dopo il simbolo “||”, viene eseguita solo se la prima parte restituisce un errore (codice di uscita maggiore di zero). In pratica, il comando service mysql status verifica se MySQL è attivo; se non lo è, service mysql start lo riavvia automaticamente. Nota bene: stai usando “||” invece del più comune “\u0026amp;\u0026amp;”, il che significa che il riavvio avviene solo in caso di problemi, evitando cicli inutili. Questo meccanismo è particolarmente efficace perché riduce al minimo l’intervento manuale e mantiene il sito online senza bisogno di supervisione costante. Questo trucco assicura che i tempi di inattività del tuo blog siano ridotti a meno di un minuto, permettendoti di concentrarti su altri aspetti del tuo lavoro. Se preferisci non controllare lo stato ogni minuto (potenzialmente troppo frequente), puoi impostare un intervallo di 5 minuti modificando il crontab in questo modo:\n*/5 * * * * service mysql status \u003e /dev/null || service mysql start Suggerimenti Aggiuntivi Monitoraggio: Usa strumenti come UptimeRobot per tenere sotto controllo la disponibilità del tuo sito e ricevere notifiche in caso di problemi. Ottimizzazione: Per prevenire errori ricorrenti, considera di ottimizzare il tuo database WordPress con plugin come WP Rocket, che migliorano le prestazioni riducendo il carico su MySQL. Sicurezza: Rafforza la sicurezza del server con guide come quelle su DigitalOcean, che offrono tutorial su firewall e protezione da attacchi. Analisi Log: Per un monitoraggio avanzato, usa MySQL Workbench per analizzare i log e identificare colli di bottiglia. Backup: Configura backup regolari con UpdraftPlus per proteggere i dati in caso di problemi persistenti. Con questa configurazione, il tuo blog rimarrà più stabile, e avrai un sistema di recupero automatico che ti risparmia tempo e stress. Se noti problemi persistenti, analizza i log di MySQL per individuare colli di bottiglia o configurazioni da migliorare. Inoltre, potresti valutare l’aggiornamento del piano hosting o l’integrazione di un CDN come Cloudflare per ridurre il carico sul server. Un approccio olistico che combina queste strategie può garantire una maggiore affidabilità e prestazioni nel tempo.\nRobotdazero.it - post - R.125.2.4.0 ","permalink":"https://www.robotdazero.it/blog/riavviare-periodicamente-il-database-di-wordpress/","summary":"\u003cp\u003e\u003cimg alt=\"immagine header del post su riavviare periodicamente il database di Wordpress\" loading=\"lazy\" src=\"/blog/riavviare-periodicamente-il-database-di-wordpress/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"perché-riavviare-periodicamente-mysql-può-essere-una-buona-idea\"\u003ePerché riavviare periodicamente MySQL può essere una buona idea\u003c/h2\u003e\n\u003cp\u003eSe gestisci un blog su un server \u0026ldquo;Cloud\u0026rdquo;, come molti di noi, potresti occasionalmente imbatterti in problemi frustranti che bloccano il sito, con messaggi d’errore come \u0026ldquo;Database not found\u0026rdquo; o \u0026ldquo;MySQL not found\u0026rdquo;. Questi inconvenienti possono verificarsi per diversi motivi, tra cui server con RAM insufficiente, configurazioni non ottimizzate o attacchi informatici come il \u0026ldquo;Forza Bruta\u0026rdquo; o i DDoS (Distributed Denial of Service). Un server con risorse limitate potrebbe non riuscire a gestire correttamente le query al database, portando a crash improvvisi.\u003c/p\u003e","title":"Riavviare periodicamente il database di Wordpress"},{"content":"\nLa \u0026ldquo;telecamera\u0026rdquo; OV2640 CAM La ESP32-CAM con il modulo OV2640 rappresenta una soluzione completa e compatta per la visione artificiale embedded, integrando una fotocamera digitale a colori con risoluzione di 2 megapixel direttamente sul chip ESP32-S. Questo dispositivo low-cost, ideale per progetti IoT, combina connettività Wi-Fi e Bluetooth con capacità di elaborazione edge, permettendo applicazioni come il riconoscimento facciale o lo streaming video in tempo reale. Grazie alla sua versatilità, è perfetto per prototipi rapidi senza hardware aggiuntivo: la camera supporta formati JPEG e BMP, con un sensore CMOS che cattura immagini nitide fino a 1600x1200 pixel, anche in condizioni di scarsa illuminazione grazie al LED flash integrato.\nIl suo prezzo accessibile la rende popolare tra hobbisti e professionisti: su Amazon, un kit con due moduli ESP32-CAM OV2640 costa intorno ai 15-20€, inclusi adattatori USB per il flashing. Per opzioni ancora più economiche, AliExpress offre varianti a partire da 5-7€, con spedizione rapida e bundle che includono schede FTDI per la programmazione. Per un tutorial completo su come configurare la camera e impostare parametri come luminosità, contrasto e risoluzione, consulta la guida di Random Nerd Tutorials, che include codice Arduino per ottimizzare le prestazioni.\nUna delle sue peculiarità è la facilità di connessione Wi-Fi: non richiede di hardcodare credenziali di rete nel firmware. Utilizzando la libreria WiFiManager, l\u0026rsquo;ESP32-CAM crea un access point temporaneo e una interfaccia web captive, permettendo di selezionare e configurare qualsiasi rete SSID e password tramite browser (es. su smartphone o PC). Questo approccio è essenziale per deployment remoti, come il monitoraggio di corridoi, accessi o ambienti bui, dove il LED IR integrato garantisce visibilità notturna. Per esempi pratici, esplora il progetto di Instructables su streaming video over Wi-Fi, che include schemi di cablaggio e codice per server web.\nIn sintesi, l\u0026rsquo;ESP32-CAM OV2640 è un alleato insostituibile per chi entra nel mondo della computer vision low-cost, con consumi ridotti (fino a 180mA) e supporto per microSD per storage locale. Che tu stia realizzando un sistema di sorveglianza domestica o un prototipo IoT, la sua combinazione di potenza e semplicità la rende ideale per innovazione accessibile.\nPer sorvegliare zone multiple potete acquistare più esemplari della CAM ed ognuno di essi sarà in grado di ottenere il suo indirizzo IP dal router fino ad un massimo di 128 telecamere.\nPer installazioni \u0026ldquo;interne\u0026rdquo; potete semplicemente adoperare la scheda \u0026ldquo;al naturale\u0026rdquo; ma per installazioni su balconi o nel prospetto dei \u0026ldquo;villini\u0026rdquo; in campagna ti suggerisco di utilizzare un piccolo box di derivazione tipo elettricista oppure di acquistare nel nostro ecommerce il case in 3D progettato appositamente per ottenere il minimo ingombro e la massima discrezione.\nMateriali necessari Per realizzare il progetto avrai bisogno dei seguenti materiali:\nUna ESP32 Cam con fotocamera OV2640 Un adattatore USB per la presa accendisigari della vettura Una scheda SD-card da almeno 16GB Come compilare con PlatformIO Se hai installato PlatformIO sul tuo PC puoi compilare l\u0026rsquo;intero programma facendo copia e incolla delle quattro righe sottostanti e premendo il tasto \u0026ldquo;INVIO\u0026rdquo; su PowerShell di Windows o sul terminale di Linux\ngit clone git@github.com:sebadima/spyder-cam.git cd spyder-cam make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 --port /dev/ttyUSB0 Copy Se tutto è andato correttamente dovreste vedere il seguente LOG con i passi dettagliati della compilazione\nVerbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32cam.html PLATFORM: Espressif 32 (6.4.0) \u0026gt; AI Thinker ESP32-CAM HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20011.230801 (2.0.11) - tool-esptoolpy @ 1.40501.0 (4.5.1) - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 Converting CameraWebServer.ino LDF: Library Dependency Finder -\u0026gt; https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ deep+, Compatibility ~ soft Found 36 compatible libraries Scanning dependencies... Dependency Graph |-- ESP Async WebServer @ 1.2.3+sha.f71e3d4 |-- WiFiManager @ 2.0.16-rc.2+sha.b1720d2 |-- WiFi @ 2.0.0 |-- Update @ 2.0.0 |-- WebServer @ 2.0.0 |-- DNSServer @ 2.0.0 Building in release mode Compiling .pio/build/esp32cam/src/CameraWebServer.ino.cpp.o Retrieving maximum program size .pio/build/esp32cam/firmware.elf Checking size .pio/build/esp32cam/firmware.elf Advanced Memory Usage is available via \u0026#34;PlatformIO Home \u0026gt; Project Inspect\u0026#34; RAM: [== ] 22.0% (used 72212 bytes from 327680 bytes) Flash: [===== ] 51.8% (used 1629385 bytes from 3145728 bytes) Il codice del programma scaricato da Github #include \u0026#34;esp_camera.h\u0026#34; #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;WiFiManager.h\u0026gt; #define CAMERA_MODEL_AI_THINKER // Has PSRAM #include \u0026#34;camera_pins.h\u0026#34; void startCameraServer(); void setupLedFlash(int pin); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sccb_sda = SIOD_GPIO_NUM; config.pin_sccb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 2000000; config.frame_size = FRAMESIZE_UXGA; config.pixel_format = PIXFORMAT_JPEG; // for streaming //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition config.grab_mode = CAMERA_GRAB_WHEN_EMPTY; config.fb_location = CAMERA_FB_IN_PSRAM; config.jpeg_quality = 12; config.fb_count = 10; // if PSRAM IC present, init with UXGA resolution and higher JPEG quality // for larger pre-allocated frame buffer. if (config.pixel_format == PIXFORMAT_JPEG) { if (psramFound()) { config.jpeg_quality = 10; config.fb_count = 2; config.grab_mode = CAMERA_GRAB_LATEST; } else { // Limit the frame size when PSRAM is not available config.frame_size = FRAMESIZE_SVGA; config.fb_location = CAMERA_FB_IN_DRAM; } } else { // Best option for face detection/recognition config.frame_size = FRAMESIZE_240X240; #if CONFIG_IDF_TARGET_ESP32S3 config.fb_count = 2; #endif } #if defined(CAMERA_MODEL_ESP_EYE) pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); #endif // camera init esp_err_t err = esp_camera_init( \u0026amp; config); if (err != ESP_OK) { Serial.printf(\u0026#34;Camera init failed with error 0x%x\u0026#34;, err); return; } sensor_t * s = esp_camera_sensor_get(); // initial sensors are flipped vertically and colors are a bit saturated if (s -\u0026gt; id.PID == OV3660_PID) { s -\u0026gt; set_vflip(s, 1); // flip it back s -\u0026gt; set_brightness(s, 1); // up the brightness just a bit s -\u0026gt; set_saturation(s, -2); // lower the saturation } // drop down frame size for higher initial frame rate if (config.pixel_format == PIXFORMAT_JPEG) { s -\u0026gt; set_framesize(s, FRAMESIZE_QVGA); // old value s -\u0026gt; set_framesize(s, FRAMESIZE_VGA); } #if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM) s -\u0026gt; set_vflip(s, 1); s -\u0026gt; set_hmirror(s, 1); #endif #if defined(CAMERA_MODEL_ESP32S3_EYE) s -\u0026gt; set_vflip(s, 1); #endif // Setup LED FLash if LED pin is defined in camera_pins.h #if defined(LED_GPIO_NUM) setupLedFlash(LED_GPIO_NUM); #endif WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP // it is a good practice to make sure your code sets wifi mode how you want it. Serial.begin(115200); //WiFiManager, Local intialization. Once its business is done, there is no need to keep it around WiFiManager wm; bool res; // res = wm.autoConnect(); // auto generated AP name from chipid // res = wm.autoConnect(\u0026#34;AutoConnectAP\u0026#34;); // anonymous ap res = wm.autoConnect(\u0026#34;AutoConnectAP\u0026#34;, \u0026#34;password\u0026#34;); // password protected ap if (!res) { Serial.println(\u0026#34;Failed to connect\u0026#34;); // ESP.restart(); } else { //if you get here you have connected to the WiFi Serial.println(\u0026#34;Connected\u0026#34;); } startCameraServer(); Serial.print(\u0026#34;Camera Ready! Use \u0026#39;http://\u0026#34;); Serial.print(WiFi.localIP()); Serial.println(\u0026#34;\u0026#39; to connect\u0026#34;); } void loop() { } Copy Se non hai ancora installato PlatformIO Per compilare e caricare un programma usando PlatformIO, è necessario seguire questi passaggi:\nPassaggio 1: Installare PlatformIO Per installare PlatformIO, è possibile utilizzare il gestore di pacchetti del proprio IDE. Per esempio, se si utilizza Visual Studio Code, è possibile aprire la barra laterale di Extensions e cercare \u0026ldquo;PlatformIO IDE\u0026rdquo;. Una volta trovata l\u0026rsquo;estensione, è possibile installarla facendo clic sul pulsante \u0026ldquo;Install\u0026rdquo;.\nPassaggio 2: Creare un nuovo progetto Per creare un nuovo progetto, è possibile utilizzare la funzione \u0026ldquo;New Project\u0026rdquo; del proprio IDE. Per esempio, in Visual Studio Code, è possibile aprire la barra laterale di Projects e fare clic sul pulsante \u0026ldquo;New Project\u0026rdquo;.\nNella finestra di dialogo \u0026ldquo;New Project\u0026rdquo;, è necessario selezionare il tipo di progetto da creare. Per i progetti Arduino, è necessario selezionare \u0026ldquo;Arduino\u0026rdquo;. È inoltre necessario selezionare la scheda Arduino da utilizzare.\nPassaggio 3: Scrivere il codice del programma Una volta creato il progetto, è possibile scrivere il codice del programma. Il codice può essere scritto in qualsiasi linguaggio supportato da PlatformIO, tra cui C/C++, Python, JavaScript e TypeScript.\nPer esempio, ecco un semplice programma Arduino che fa lampeggiare un LED:\n#include \u0026lt;Arduino.h\u0026gt; void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } Copy Passaggio 4: Compilare il programma Una volta scritto il codice del programma, è possibile compilarlo. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Build\u0026rdquo; del proprio IDE.\nIn Visual Studio Code, è possibile eseguire il comando \u0026ldquo;PlatformIO Build\u0026rdquo; premendo la scorciatoia da tastiera Ctrl+Shift+B.\nPassaggio 5: Caricare il programma sulla scheda Una volta compilato il programma, è possibile caricarlo sulla scheda. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Upload\u0026rdquo; del proprio IDE.\nIn Visual Studio Code, è possibile eseguire il comando \u0026ldquo;PlatformIO Upload\u0026rdquo; premendo la scorciatoia da tastiera Ctrl+Shift+U.\nDopo il caricamento e l\u0026rsquo;upload, il programma dovrebbe essere pronto.\nCome compilare il programma usando Arduino Se preferisci usare l\u0026rsquo;IDE di Arduino, è necessario seguire questi passaggi:\nApri l\u0026rsquo;Arduino IDE. Crea un nuovo progetto o aprite un progetto esistente. Inserisci il codice del programma nel file .ino. Collega la scheda Arduino al computer. Seleziona la scheda Arduino dal menu Strumenti. Fai clic sul pulsante Compila. Se la compilazione è andata a buon fine, il pulsante Carica diventerà attivo. Fai clic sul pulsante Carica per caricare il programma sulla scheda Arduino.\nSTEP 1: Apri l\u0026rsquo;Arduino IDE Per aprire l\u0026rsquo;Arduino IDE, è possibile fare doppio clic sull\u0026rsquo;icona dell\u0026rsquo;applicazione sul desktop. Se non hai ancora installato l\u0026rsquo;Arduino IDE, puoi scaricarlo dal sito web di Arduino.\nSTEP 2: Crea un nuovo progetto o apri un progetto esistente Per creare un nuovo progetto, fai clic sul menu File e seleziona Nuovo. Per aprire un progetto esistente, fai clic sul menu File e seleziona Apri.\nSTEP 3: Inserisci il codice del programma nel file .ino Il file .ino è il file di testo che contiene il codice del programma. Per inserire il codice del programma nel file .ino, puoi utilizzare un editor di testo qualsiasi.\nSTEP 4: Collega la scheda Arduino al computer Per collegare la scheda Arduino al computer, devi usare un cavo USB. La porta USB della scheda Arduino è contrassegnata con il simbolo USB.\nSTEP 5: Seleziona la scheda Arduino dal menu Strumenti Per selezionare la scheda Arduino dal menu Strumenti, fai clic sul menu Strumenti e seleziona la scheda Arduino che hai collegato al computer.\nSTEP 6: Fai clic sul pulsante Compila Per compilare il programma, fai clic sul pulsante Compila. Se la compilazione è andata a buon fine, non verranno visualizzati errori nella finestra del terminale.\nSTEP 7: il pulsante Carica diventerà attivo Se la compilazione è andata a buon fine, il pulsante Carica diventerà attivo.\nSTEP 8: Fare clic sul pulsante Carica Per caricare il programma sulla scheda Arduino, fai clic sul pulsante Carica. Il programma verrà copiato sulla scheda Arduino e inizierà a funzionare.\nConclusione Superato lo scoglio della compilazione, il tuo progetto con la ESP32-CAM OV2640 si trasforma in un sistema di sorveglianza economico e potente, perfetto per monitorare l’esterno della tua vettura o altre aree sensibili. Collegandola alla presa accendisigari, avrai a disposizione una soluzione pratica per registrare immagini e utilizzarle come prova in caso di atti vandalici, dimostrando come la tecnologia low-cost possa offrire funzionalità avanzate. Questo progetto non solo apre le porte all’automazione IoT, ma stimola la creatività, permettendoti di espandere il sistema con sensori o storage aggiuntivo. La semplicità di PlatformIO e Arduino IDE rende l’esperienza accessibile a tutti, dai maker ai professionisti, consolidando la ESP32-CAM come un pilastro dell’innovazione domestica.\nPer approfondire, esplora la documentazione ufficiale di Espressif per dettagli tecnici sulla ESP32. Per tutorial pratici, visita Random Nerd Tutorials, che offre guide su salvataggio su microSD. La community di Arduino Forum è ideale per supporto e idee, mentre All About Circuits fornisce basi teoriche sui circuiti. Infine, per progetti di sorveglianza avanzata, consulta Instructables, con schemi e codici open-source. Questi strumenti ti guideranno verso nuove avventure IoT, dalla domotica alla sicurezza, con un occhio alla sostenibilità e all’innovazione. Unisciti alla nostra community Telegram per condividere i tuoi successi e scoprire altri segreti dell’automazione smart!\n","permalink":"https://www.robotdazero.it/blog/usiamo-la-esp32-cam-come-una-telecamera-di-sorveglianza/","summary":"\u003cp\u003e\u003cimg alt=\"immagine di presentazione della ESP32-CAM come fornita dal produttore\" loading=\"lazy\" src=\"/blog/usiamo-la-esp32-cam-come-una-telecamera-di-sorveglianza/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"la-telecamera-ov2640-cam\"\u003eLa \u0026ldquo;telecamera\u0026rdquo; OV2640 CAM\u003c/h2\u003e\n\u003cp\u003eLa \u003cstrong\u003eESP32-CAM\u003c/strong\u003e con il modulo \u003cstrong\u003eOV2640\u003c/strong\u003e rappresenta una soluzione completa e compatta per la visione artificiale embedded, integrando una fotocamera digitale a colori con risoluzione di 2 megapixel direttamente sul chip ESP32-S. Questo dispositivo low-cost, ideale per progetti IoT, combina connettività Wi-Fi e Bluetooth con capacità di elaborazione edge, permettendo applicazioni come il riconoscimento facciale o lo streaming video in tempo reale. Grazie alla sua versatilità, è perfetto per prototipi rapidi senza hardware aggiuntivo: la camera supporta formati JPEG e BMP, con un sensore CMOS che cattura immagini nitide fino a 1600x1200 pixel, anche in condizioni di scarsa illuminazione grazie al LED flash integrato.\u003c/p\u003e","title":"Usiamo la ESP32 CAM come una telecamera di sorveglianza"},{"content":"\nRivoluziona il Tuo Vecchio PC con Ubuntu: La Guida Completa per il 2025 Hai un PC dimenticato in soffitta o un laptop che non usi più? Con Ubuntu, puoi trasformarlo in un potente server per videosorveglianza, un hub per progetti IoT, una piattaforma per intelligenza artificiale o anche una workstation per uso quotidiano, tutto a costo zero! Questa guida dettagliata ti accompagnerà passo-passo nell’installazione di Ubuntu, con un focus su Ubuntu Server, perfetto per hardware con appena 1-2 GB di RAM. Scoprirai perché Ubuntu è una scelta ecologica, economica e innovativa rispetto a Windows e macOS, con tutte le novità delle versioni 2025. Pronto a cambiare il modo in cui usi la tecnologia? Inizia ora!\nPerché scegliere Ubuntu? La libertà digitale a portata di mano Anni fa, installare Linux accanto a Windows era una pratica diffusa, ma non priva di rischi. Ricordo i miei primi tentativi: un errore con parted o fdisk e puff, l’intera partizione di Windows sparita! Oggi, Ubuntu rende l’installazione più semplice e sicura, ma per ottenere il massimo ti consiglio di dedicare un vecchio PC a Ubuntu. Ecco i vantaggi:\nNessun rischio per i dati: su un PC dedicato, non devi preoccuparti di perdere file importanti. Risparmio economico: un PC usato su eBay o nei mercatini costa meno di 50 euro. Ecologia: riciclare hardware riduce i rifiuti elettronici, un gesto per il pianeta. Versatilità estrema: Ubuntu Server è perfetto per progetti come videosorveglianza, raccolta dati da Arduino, o persino hosting di un sito web. Se preferisci mantenere Windows, puoi provare il Windows Subsystem for Linux (WSL) per eseguire Ubuntu senza installazione completa. Scopri come configurarlo qui.\nRequisiti minimi per installare Ubuntu Per iniziare, assicurati di avere:\nChiavetta USB: almeno 8 GB (meglio USB 3.0 per velocità). PC: processore dual-core da 2 GHz o superiore. Spazio su disco: minimo 25 GB liberi. RAM: 1 GB per Ubuntu Server, 4 GB per Ubuntu Desktop. Connessione Internet (opzionale): per scaricare aggiornamenti durante o dopo l’installazione. Attenzione: questa procedura cancellerà tutti i dati sul disco. Fai un backup su un disco esterno, Google Drive, Dropbox o OneDrive prima di procedere.\nPreparazione: cosa sapere prima di iniziare Prima di tuffarti nell’installazione, ecco alcune informazioni utili:\nVersioni di Ubuntu: puoi scegliere tra Ubuntu Desktop (con interfaccia grafica) o Ubuntu Server (leggero, senza GUI, ideale per PC datati). Backup: anche se usi un PC dedicato, verifica che non ci siano dati importanti sul disco. Hardware moderno vs datato: Ubuntu 24.04 LTS e 24.10 supportano sia PC recenti che vecchi di 10-15 anni, rendendoli perfetti per il riciclo. Strumenti consigliati: una chiavetta USB di qualità e un PC con porte USB funzionanti sono essenziali per un’installazione fluida. Guida all’installazione di Ubuntu in 8 step STEP 1: Scarica l’ultima versione di Ubuntu Visita ubuntu.com e scarica l’ISO di Ubuntu, un file da circa 4 GB. Scegli tra:\nUbuntu 24.04 LTS (Noble Numbat): supporto fino al 2029, perfetta per stabilità. Ubuntu 24.10 (Oracular Oriole): per le ultime funzionalità, con aggiornamenti fino a luglio 2025. Per connessioni lente, usa i torrent dalla pagina di download alternativa. Verifica l’integrità dell’ISO con il checksum SHA256 fornito sul sito per garantire che il file non sia corrotto.\nSTEP 2: Crea una chiavetta USB avviabile Trasforma l’ISO in una USB avviabile con uno di questi strumenti gratuiti:\nRufus: veloce e intuitivo, ideale per Windows. Balena Etcher: moderno, multipiattaforma, con un’interfaccia minimalista. Unetbootin: leggero e compatibile con Linux, Windows e macOS. Inserisci la chiavetta, seleziona l’ISO e segui le istruzioni. Usa una USB 3.0 per velocizzare il processo e assicurati di formattarla correttamente (FAT32 o exFAT).\nSTEP 3: Configura il BIOS per l’avvio da USB Collega la chiavetta USB e riavvia il PC. Accedi al BIOS premendo F2, F10, F12 o Del (dipende dal produttore: HP, Dell, Acer, Lenovo, ecc.) quando appare il logo iniziale. Nella sezione Boot Order, sposta la USB in cima alla lista. Se il tuo PC usa UEFI, disabilita il Secure Boot per evitare problemi. Salva con F10 ed esci.\nSTEP 4: Avvia Ubuntu con GRUB All’avvio, vedrai la schermata di GRUB, il bootloader di Ubuntu. Qui puoi:\nProva Ubuntu: testare il sistema senza installarlo, utile per verificarne la compatibilità. Installa Ubuntu: procedere con l’installazione completa. Scegli Installa Ubuntu per questa guida. Se riscontri problemi, seleziona la modalità “Safe Graphics” per hardware più vecchi.\nSTEP 5: Configura lingua e tastiera Dopo 20-30 secondi (o più con USB lente), si avvia l’ambiente live di Ubuntu. Clicca su Installa Ubuntu e configura:\nLingua: Italiano (o la tua lingua preferita). Tastiera: layout italiano. Connessione: collega il PC a Internet via Wi-Fi o Ethernet per opzioni aggiuntive. Deseleziona l’opzione “Scarica aggiornamenti durante l’installazione” per velocizzare il processo; potrai aggiornarli successivamente con sudo apt update \u0026amp;\u0026amp; sudo apt upgrade.\nSTEP 6: Formatta il disco Questa è la fase critica. Scegli Cancella disco e installa Ubuntu per sovrascrivere tutto il disco. Se vuoi un dual-boot con Windows, seleziona l’opzione corrispondente, ma assicurati di avere un backup. Ignora gli avvisi di formattazione: stai usando un PC dedicato, quindi procedi con sicurezza.\nSTEP 7: Imposta fuso orario e account Seleziona il fuso orario (es. Roma per l’Italia), crea un nome utente, scegli un nome per il PC e imposta una password sicura (almeno 8 caratteri, con lettere e numeri). Durante l’installazione, goditi la presentazione interattiva di Ubuntu, che ti mostra le sue funzionalità e possibilità.\nSTEP 8: Completa l’installazione Al termine, Ubuntu ti chiederà di riavviare. Rimuovi la chiavetta USB quando richiesto, premi Invio e avvia il tuo nuovo sistema Ubuntu. Congratulazioni, hai trasformato il tuo PC!\nUbuntu 2025: Innovazione e Versatilità A ottobre 2025, Ubuntu offre due versioni principali, entrambe supportate da Canonical e dalla comunità open-source:\nUbuntu 24.04 LTS (Noble Numbat): supporto a lungo termine fino al 2029, ideale per server, workstation e ambienti critici. Ubuntu 24.10 (Oracular Oriole): per chi cerca le ultime innovazioni, con aggiornamenti fino a luglio 2025. Caratteristiche principali di Ubuntu 2025 GNOME 46: un’interfaccia moderna e fluida, con supporto per schermi 4K, gesture multitouch e gestione avanzata delle finestre. Kernel Linux 6.8+: ottimizzato per hardware moderno, con supporto migliorato per GPU NVIDIA/AMD, Wi-Fi 6 e maggiore efficienza energetica. Sicurezza avanzata: AppArmor, pacchetti Snap e crittografia LUKS proteggono i tuoi dati da minacce informatiche. Leggerezza estrema: Ubuntu Server funziona su PC con 1-2 GB di RAM, rendendo il riciclo di hardware datato una scelta ecologica. AI e sviluppo: pacchetti preinstallati come TensorFlow, PyTorch e strumenti per container (Docker, Kubernetes) semplificano lo sviluppo di progetti AI e IoT. Cloud e edge computing: Ubuntu è leader nei server cloud (AWS, Azure, Google Cloud) e in applicazioni edge per dispositivi IoT. Esempi pratici di utilizzo Videosorveglianza domestica: installa ZoneMinder o Motion su Ubuntu Server per gestire flussi video da telecamere IP su un PC con 1 GB di RAM. Progetti IoT: usa Ubuntu con Mosquitto MQTT per creare un hub che raccolga dati da sensori Arduino (es. temperatura, umidità). Intelligenza artificiale: configura un ambiente di machine learning con TensorFlow per analizzare dati o addestrare modelli su hardware economico. Server web: ospita un sito con Apache o Nginx, sfruttando la leggerezza di Ubuntu Server. Gaming retrò: trasforma un vecchio PC in una console per emulatori come RetroPie, usando Ubuntu Desktop. Ubuntu vs macOS vs Windows: Il Confronto Definitivo Ubuntu si distingue come alternativa open-source a macOS e Windows, con vantaggi che lo rendono ideale per utenti creativi, sviluppatori e appassionati di tecnologia. Ecco un confronto dettagliato:\n1. Costo Ubuntu: gratuito, senza costi di licenza. Un PC usato da 20-50 euro diventa un server o una workstation. macOS: legato a hardware Apple costoso (es. MacBook Air da 1200+ euro). Windows: richiede licenze (Windows 11 Home/Pro da 100-150 euro; Windows Server fino a migliaia di euro). 2. Personalizzazione Ubuntu: scegli tra GNOME, KDE, XFCE o altre interfacce, o usa Ubuntu Server senza GUI. Personalizza ogni dettaglio, dai temi ai comandi. macOS: interfaccia elegante ma rigida, con poche opzioni di personalizzazione. Windows: limitato a temi predefiniti e impostazioni base, con poca flessibilità. 3. Supporto hardware Ubuntu: funziona su PC con 1-2 GB di RAM (Server) o 4 GB (Desktop), perfetto per riciclare hardware vecchio di 10-15 anni. macOS: esclusivo per hardware Apple recente (minimo 8 GB di RAM per macOS Ventura o successivi). Windows: Windows 11 richiede 4 GB di RAM, TPM 2.0 e CPU moderne, escludendo molti PC datati. 4. Sicurezza e privacy Ubuntu: codice open-source, aggiornamenti rapidi e strumenti come AppArmor garantiscono trasparenza e protezione. macOS: sicuro, ma chiuso nell’ecosistema Apple, con poca trasparenza sul codice. Windows: vulnerabilità frequenti e critiche sulla privacy (es. telemetria invasiva e raccolta dati). 5. Sviluppo e IoT Ubuntu: piattaforma preferita per sviluppatori, con supporto nativo per Python, Go, Docker, Kubernetes e strumenti AI. Ideale per server e IoT. macOS: eccellente per sviluppo iOS/macOS, ma limitato per server e IoT. Windows: richiede configurazioni complesse per ambienti di sviluppo avanzati; Windows Server è costoso e meno flessibile. 6. Comunità e supporto Ubuntu: supportato da Canonical e da una comunità globale, con forum come Ask Ubuntu e documentazione dettagliata. macOS: supporto Apple ufficiale, ma costoso fuori garanzia e con poca assistenza per usi non standard. Windows: supporto Microsoft, ma spesso limitato per versioni non recenti o hardware obsoleto. 7. Applicazioni e compatibilità Ubuntu: migliaia di applicazioni open-source (GIMP, LibreOffice, VLC) e supporto per software come Steam per il gaming. macOS: vasto ecosistema di app professionali (Final Cut Pro, Logic), ma costose e limitate a Mac. Windows: compatibilità con la maggior parte dei software commerciali, ma molti richiedono licenze costose. Verdetto: Ubuntu eccelle per costo, flessibilità e supporto hardware datato, rendendolo la scelta ideale per riciclare PC, progetti IoT e sviluppo avanzato.\nPerché Ubuntu è il futuro? Ubuntu non è solo un sistema operativo: è una filosofia di libertà, innovazione e sostenibilità. Ecco perché dovresti sceglierlo:\nEcologico: riduci i rifiuti elettronici dando nuova vita a vecchi PC. Gratuito: zero costi di licenza, a differenza di Windows e macOS. Scalabile: da un PC con 1 GB di RAM a un cluster cloud, Ubuntu si adatta a tutto. Innovativo: strumenti AI, IoT e cloud integrati ti preparano per le tecnologie del futuro. Comunità globale: milioni di utenti e sviluppatori condividono guide, script e soluzioni. Come iniziare dopo l’installazione Aggiorna il sistema: apri il terminale e digita sudo apt update \u0026amp;\u0026amp; sudo apt upgrade. Installa software utili: ZoneMinder o Motion per videosorveglianza. Mosquitto per progetti IoT con MQTT. TensorFlow o PyTorch per machine learning. Apache/Nginx per un server web. Personalizza: installa ambienti desktop alternativi (es. KDE Plasma) o temi con sudo apt install ubuntu-gnome-desktop. Esplora la comunità: unisciti a Ask Ubuntu o al forum ufficiale Ubuntu per supporto e ispirazione. Sicurezza: configura un firewall con ufw (sudo ufw enable) e usa password forti. Risorse utili Documentazione ufficiale Ubuntu: guide per ogni livello. Ubuntu Community Hub: forum per discutere e imparare. Snap Store: migliaia di app pronte all’uso. Conclusione: Abbraccia la rivoluzione open-source con Ubuntu! Immagina un mondo dove non devi spendere centinaia di euro per un PC nuovo o una licenza software. Con Ubuntu, quel vecchio computer in cantina si trasforma in un server per videosorveglianza, un hub IoT per controllare la tua casa, o una piattaforma per sviluppare il prossimo grande progetto di intelligenza artificiale. Ubuntu 24.04 LTS e 24.10 offrono potenza, stabilità e innovazione, superando i limiti di Windows e macOS con un sistema gratuito, sicuro e personalizzabile. Ricicla il tuo hardware, rispetta l’ambiente e unisciti a una comunità globale che crede nella libertà digitale. Non è solo un sistema operativo: è una rivoluzione che mette il controllo nelle tue mani. Scarica Ubuntu, segui questi 8 semplici step e scopri un universo di possibilità. Il futuro è open-source, e il tuo viaggio inizia ora!\n","permalink":"https://www.robotdazero.it/blog/come-installare-ubuntu/","summary":"\u003cp\u003e\u003cimg alt=\"immagine header del post con pc ubuntu\" loading=\"lazy\" src=\"/blog/come-installare-ubuntu/header.jpeg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"rivoluziona-il-tuo-vecchio-pc-con-ubuntu-la-guida-completa-per-il-2025\"\u003eRivoluziona il Tuo Vecchio PC con Ubuntu: La Guida Completa per il 2025\u003c/h2\u003e\n\u003cp\u003eHai un PC dimenticato in soffitta o un laptop che non usi più? Con \u003cstrong\u003eUbuntu\u003c/strong\u003e, puoi trasformarlo in un potente server per videosorveglianza, un hub per progetti IoT, una piattaforma per intelligenza artificiale o anche una workstation per uso quotidiano, tutto \u003cstrong\u003ea costo zero\u003c/strong\u003e! Questa guida dettagliata ti accompagnerà passo-passo nell’installazione di Ubuntu, con un focus su \u003cstrong\u003eUbuntu Server\u003c/strong\u003e, perfetto per hardware con appena 1-2 GB di RAM. Scoprirai perché Ubuntu è una scelta ecologica, economica e innovativa rispetto a Windows e macOS, con tutte le novità delle versioni 2025. Pronto a cambiare il modo in cui usi la tecnologia? Inizia ora!\u003c/p\u003e","title":"Come installare Ubuntu"},{"content":"\nUna breve premessa L’elettronica è la branca della fisica che studia il comportamento e l’utilizzo di cariche elettriche in dispositivi e sistemi, un campo nato ufficialmente nel XIX secolo con le scoperte di Michael Faraday e perfezionatosi nel XX secolo grazie a invenzioni come il transistor e il circuito integrato. Essa rappresenta una delle tecnologie più pervasive e rivoluzionarie della nostra era, plasmando ogni aspetto della vita quotidiana con applicazioni innumerevoli. Dagli smartphone che usiamo per comunicare, agli elettrodomestici che semplificano le faccende domestiche, fino ai sistemi di navigazione nei veicoli e alle apparecchiature mediche come gli ECG, l’elettronica è ovunque.\nLa sua evoluzione ha permesso progressi in settori chiave come le telecomunicazioni, l’automazione industriale e l’intrattenimento digitale, rendendola una pietra miliare dell’innovazione moderna. Per approfondire le basi storiche, puoi consultare la pagina di Wikipedia Italia sull’elettronica, che offre un’introduzione chiara e dettagliata. Inoltre, il sito All About Circuits fornisce tutorial pratici per esplorare i principi fondamentali, mentre SparkFun Learn è ideale per guide hands-on su progetti reali. Questa disciplina continua a evolversi, integrandosi con l’Internet delle Cose (IoT) e l’intelligenza artificiale\nLe Basi teoriche dell\u0026rsquo;elettronica L\u0026rsquo;elettronica si basa su pochi principi teorici consolidati sviluppati nel corso degli ultimi 150 anni e giunti ad una forma \u0026ldquo;moderna\u0026rdquo; intorno al 1920 con la introduzione delle valvole termoioniche. Per fortuna non ci serve conoscere tutta la storia dell\u0026rsquo;elettronica per lavorare con ESP32; tantomeno dobbiamo imparare come funzionavano le valvole dei vecchi televisori. Ci basta imparare pochi principi teorici necessari per le maggiori applicazioni pratiche.\nTeoria dei circuiti Analizza il flusso di corrente e tensione in circuiti elettrici composti da resistori, condensatori, induttori e altri componenti.\nLa teoria dei circuiti elettronici è un ramo fondamentale dell\u0026rsquo;elettronica che studia il comportamento di corrente e tensione in circuiti composti da componenti come resistori, condensatori, induttori e sorgenti di tensione. Essa fornisce le basi per la progettazione e l\u0026rsquo;analisi di qualsiasi circuito elettrico, sia esso semplice o complesso.\nSeppure la elettronica sia comprensibile solo facendo ricorso alla fisica nucleare, le basi pratiche del suo funzionamento sono piuttosto semplici e per iniziare spesso basta conoscere la fondamentale legge di Ohm.\n🔑 La legge di Ohm, una delle leggi più importanti dell'elettronica, afferma che la corrente (I) che scorre in un circuito è direttamente proporzionale alla tensione (V) applicata e inversamente proporzionale alla resistenza (R) del circuito. La legge si esprime con la seguente formula: I = V / R\nComprendere la teoria dei circuiti e la legge di Ohm è fondamentale per: Calcolare la corrente, la tensione e la resistenza in un circuito e per progettare circuiti elettronici con le specifiche desiderate. Altri principi dell\u0026rsquo;elettronica Oltre alla legge di Ohm, altri principi chiave della teoria dei circuiti includono:\nLegge di Kirchhoff delle correnti: La somma delle correnti che entrano in un nodo è uguale alla somma delle correnti che escono dallo stesso nodo. Legge di Kirchhoff delle tensioni: La somma delle tensioni attorno a un circuito chiuso è uguale a zero. Teorema di Thevenin e Norton: Per semplificare l\u0026rsquo;analisi di circuiti complessi, è possibile sostituire una parte di circuito con un circuito equivalente più semplice. Applicazioni dell\u0026rsquo;elettronica moderna L\u0026rsquo;elettronica trova applicazioni in una vastità di settori:\nTelecomunicazioni: Permette la trasmissione di dati e informazioni attraverso reti telefoniche, internet e sistemi wireless. Automazione: Controlla processi industriali, robotica, domotica e sistemi di sicurezza. Medicina: Impiegata in dispositivi diagnostici, terapeutici e di monitoraggio paziente. Trasporti: Gestisce sistemi di controllo e sicurezza in automobili, aerei e altri mezzi di trasporto. Intrattenimento: Permette la fruizione di musica, video, giochi e altri contenuti multimediali. ESP32 e Arduino L\u0026rsquo;avvento di microcontrollori come Arduino e ESP32 ha rivoluzionato il mondo dell\u0026rsquo;elettronica, aprendo nuove possibilità a hobbyisti, \u0026ldquo;maker\u0026rdquo; e ingegneri. Questi dispositivi offrono:\nFacilità d\u0026rsquo;uso: Piattaforme di sviluppo intuitive e linguaggi di programmazione semplici. Costo accessibile: Prezzi contenuti che favoriscono la sperimentazione e la costruzione di prototipi. Flessibilità: Ampia gamma di funzionalità e possibilità di interfacciamento con sensori, attuatori e altri dispositivi. Robotica:\nL\u0026rsquo;elettronica rappresenta il cuore pulsante della robotica, permettendo di:\nControllare i movimenti: Gestire motori, articolazioni e sistemi di propulsione. Percepire l\u0026rsquo;ambiente: Acquisire informazioni attraverso sensori di luce, distanza, temperatura e altri parametri. Elaborare informazioni: Implementare algoritmi di intelligenza artificiale per la presa di decisioni e il controllo autonomo. Nuove applicazioni:\nElettronica e IoT L\u0026rsquo;Internet delle cose (IoT) rappresenta una rivoluzione nel campo dell\u0026rsquo;elettronic, offrendo numerosi vantaggi rispetto ai sistemi tradizionali. Ecco alcuni dei principali:\n1. Maggiore efficienza e produttività: L\u0026rsquo;IoT consente di automatizzare in modo più efficace e preciso diverse attività, ottimizzando i processi e aumentando la produttività. La raccolta e l\u0026rsquo;analisi automatica dei dati in tempo reale permettono di identificare inefficienze e di prendere decisioni più rapide e informate.\n2. Migliore connettività e controllo: L\u0026rsquo;IoT permette di connettere e monitorare da remoto dispositivi e sistemi, garantendo un controllo più preciso e flessibile. La possibilità di accedere alle informazioni in tempo reale facilita la gestione di impianti e infrastrutture, anche da remoto.\n3. Riduzione dei costi: L\u0026rsquo;automazione di diverse attività e l\u0026rsquo;ottimizzazione dei processi possono portare a una significativa riduzione dei costi operativi. L\u0026rsquo;IoT permette di risparmiare tempo e risorse umane, diminuendo la necessità di interventi manuali.\n4. Maggiore sicurezza e affidabilità: L\u0026rsquo;IoT può migliorare la sicurezza e l\u0026rsquo;affidabilità dei sistemi grazie al monitoraggio costante e all\u0026rsquo;analisi dei dati. La capacità di identificare anomalie e potenziali rischi in tempo reale permette di prevenire incidenti e guasti.\n5. Nuove opportunità e innovazione: L\u0026rsquo;IoT apre nuove opportunità per la creazione di nuovi prodotti, servizi e modelli di business. La capacità di connettere e raccogliere dati da un\u0026rsquo;ampia gamma di dispositivi offre un terreno fertile per l\u0026rsquo;innovazione in diversi settori.\nConclusioni Il futuro dell’elettronica appare luminoso, con l’IoT che connette dispositivi in tempo reale e l’AI che potenzia l’automazione intelligente. Queste innovazioni promettono maggiore efficienza, sicurezza e opportunità di business, ma richiedono una comprensione continua e un aggiornamento costante. Per chi desidera approfondire, la documentazione di Espressif per ESP32 (https://docs.espressif.com/projects/esp-idf/en/latest/esp32/) offre dettagli tecnici preziosi. Per un’introduzione pratica, il sito All About Circuits fornisce tutorial su circuiti e componenti, mentre SparkFun Learn include guide hands-on per principianti. La community di Arduino (https://forum.arduino.cc/) è ideale per scambiare idee, e il canale YouTube ElectroBOOM offre spiegazioni divertenti e istruttive.\nPer progetti avanzati, esplora il libro online Electronics Tutorials, che copre teoria e applicazioni pratiche, o il corso gratuito di Coursera Electricity and Electronics per una base solida. Sperimentare con breadboard, sensori e microcontrollori è il modo migliore per imparare: inizia con un piccolo progetto, come un sensore di temperatura con ESP32, e condividi i risultati con la community. L’elettronica non è solo scienza, ma un’arte che può evolvere solo con la tua creatività.\nRobotdazero.it - post - R.161.2.6.8\n","permalink":"https://www.robotdazero.it/blog/introduzione-alla-elettronica/","summary":"\u003cp\u003e\u003cimg alt=\"breadboard collegata con dei connettori Dupont a una scheda Arduino Uno\" loading=\"lazy\" src=\"/blog/introduzione-alla-elettronica/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"una-breve-premessa\"\u003eUna breve premessa\u003c/h2\u003e\n\u003cp\u003eL’elettronica è la branca della fisica che studia il comportamento e l’utilizzo di cariche elettriche in dispositivi e sistemi, un campo nato ufficialmente nel XIX secolo con le scoperte di Michael Faraday e perfezionatosi nel XX secolo grazie a invenzioni come il transistor e il circuito integrato. Essa rappresenta una delle tecnologie più pervasive e rivoluzionarie della nostra era, plasmando ogni aspetto della vita quotidiana con applicazioni innumerevoli. \n\u003cblockquote\u003e\n\u003cp\u003eDagli smartphone che usiamo per comunicare, agli elettrodomestici che semplificano le faccende domestiche, fino ai sistemi di navigazione nei veicoli e alle apparecchiature mediche come gli ECG, l’elettronica è ovunque.\u003c/p\u003e","title":"Introduzione alla elettronica"},{"content":" La piattaforma Kaspian di Robotdazero è un software avanzato per l\u0026rsquo;elaborazione e il deploy di algoritmi di Machine Learning. È pienamente compatibile con le librerie PyTorch, TensorFlow e Scikit-learn, attraverso l\u0026rsquo;utilizzo di notebook Jupyter. Kaspian, integrato con questi strumenti, consente di sviluppare programmi AI autonomi o interfacciati con Home Assistant.\nSfruttando i protocolli REST e Matter, Kaspian è in grado di interfacciarsi con migliaia di dispositivi esterni, interpretando e attivandoli in base ad algoritmi complessi e personalizzabili.\nOpzioni di licenza Kaspian è disponibile in due versioni: open source e commerciale. La variante open source è gratuita e può essere impiegata per qualsiasi progetto. La versione commerciale, a pagamento, include benefici aggiuntivi come supporto tecnico prioritario e aggiornamenti software periodici.\nI prezzi delle licenze commerciali per il framework Kaspian dipendono dal numero di unità acquistate e dal livello di supporto tecnico richiesto. Sono previsti sconti progressivi per acquisti multipli o per clienti con fatturato annuo inferiore a dieci milioni di euro.\nUlteriori informazioni Per dettagli approfonditi sulle licenze e i prezzi di Kaspian, si invita a consultare la pagina dedicata sul nostro sito Web: licenze. Inoltre, la licenza originale è disponibile alla pagina licenza GPL.\nRobotdazero.it - post - R.181.4.3.1 ","permalink":"https://www.robotdazero.it/blog/le-licenze-della-nostra-piattaforma-kaspian/","summary":"\u003cimg src=\"header.jpg\" alt=\"La piattaforma Kaspian di Robotdazero\"\u003e\n\u003chr\u003e\n\u003cp\u003eLa piattaforma Kaspian di Robotdazero è un software avanzato per l\u0026rsquo;elaborazione e il deploy di algoritmi di \u003ca href=\"https://www.oracle.com/it/artificial-intelligence/machine-learning/what-is-machine-learning/\"\u003eMachine Learning\u003c/a\u003e. È pienamente compatibile con le librerie PyTorch, TensorFlow e Scikit-learn, attraverso l\u0026rsquo;utilizzo di notebook Jupyter. Kaspian, integrato con questi strumenti, consente di sviluppare programmi AI autonomi o interfacciati con \u003ca href=\"https://www.home-assistant.io/\"\u003eHome Assistant\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eSfruttando i protocolli \u003ca href=\"https://www.redhat.com/it/topics/api/what-is-a-rest-api\"\u003eREST\u003c/a\u003e e \u003ca href=\"https://developers.home.google.com/matter/overview?hl=it/\"\u003eMatter\u003c/a\u003e, Kaspian è in grado di interfacciarsi con migliaia di dispositivi esterni, interpretando e attivandoli in base ad \u003ca href=\"https://www.ibm.com/it-it/topics/machine-learning-algorithms\"\u003ealgoritmi complessi\u003c/a\u003e e personalizzabili.\u003c/p\u003e","title":"Le licenze della nostra piattaforma AI Kaspian"},{"content":" Introduzione Immergiti nel mondo dell’elettronica fai-da-te e scopri come installare l’IDE di Arduino su Windows, Mac e Linux! Per iniziare, verifica se il tuo PC è a 32 o 64 bit – probabilmente 64 bit, ma meglio controllare. Scarica la versione giusta dal sito ufficiale Arduino, configura i driver e testa il tutto con lo sketch Blink. Questo è il primo passo per progetti IoT e robotica! Approfondisci con Espressif Docs per dettagli tecnici, segui tutorial su Random Nerd, e chiedi supporto sul Forum di Arduino.\nPrimo Passi Come prima cosa devi scaricare il package adatto al tuo computer e perciò devi controllare se hai un PC a 32 o 64 bit. Probabilmente hai un PC a 64 bit perché i 32 bit si trovano solo come “vecchio usato”, ma è sempre meglio controllare. Fatto questo, continua la installazione vai alla pagina di download sul sito di Arduino e leggi il resto del post per installare l’IDE su Windows, MAC e Linux.\nL’IDE di Arduino si può installare su tutte le versioni di Windows, compresa XP, Vista e Windows 7.\nSe hai già controllato la versione (64 o 32 bit) del tuo PC, puoi andare alla pagina di download sul sito di Arduino. Rintraccia la versione che devi scaricare, nel mio caso Windows a 64 bit, e ti ritroverai in una pagina che ti chiede di sostenere il sito con una cifra a tua scelta. Per il momento Premi “just download” e attendi la fine del download.\nInstallare l’IDE di Arduino su Windows Alla fine del download inserisci la tua scheda Arduino nella presa USB e attendi il caricamento dei driver su Windows 10, 8.1, 8.0.\nSe hai Windows 7 o Vista o Xp dovrai aspettare il messaggio del sistema che ti chiede dove sono i driver. Per trovare i driver in ogni caso vai sulla cartella che hai scelto in precedenza e usa il file .inf nella cartella driver. Se hai problemi nella installazione e il sistema si rifiuta di riconoscere la porta USB di Arduino prova a riavviare il PC. Se i problemi persistono scollega il connettore per alcuni secondi, ricollegalo e ripeti la procedura.\nI driver per Windows 10 Dopo la installazione i driver dovrebbero essere già disponibili e nel momento in cui colleghi la scheda Arduino al PC non dovrebbero apparire messaggi di warning. Il sistema, infatti, avrà autonomamente provveduto a generare una porta COM virtuale che puoi trovare nella Gestione dispositivi. Per controllare la porta virtuale, clicca con il tasto destro sul pulsante Start nella parte inferiore sinistra dello schermo, quindi seleziona Gestione dispositivi dal menu che appare. Se espandi le porte (COM e LPT) in Gestione dispositivi, vedrai la porta COM collegata ad Arduino. Se il tuo PC, come probabile, ha altre porte COM, rimuovi l’Arduino a quel punto, controlla la porta COM che scompare dall’elenco: quindi ricollega Arduino per vedere quale porta riappare.\nCosa fare quando l’IDE va in crash con Windows 10 Le versioni di Arduino IDE precedenti alla beta1.9-BUILD-119 mandano in crash Windows 10. A volte accade quando parte il programma e altre volte durante la compilazione degli sketch. L’unica cosa da fare in questo caso è reinstallare l’IDE con la ultima versione disponibile sulla pagina di download del sito arduino.cc.\nPerchè non usare l’IDE fornito da Windows Store Quando usate questa versione vi troverete l’eseguibile nella directory:\nc:/utenti/nomeutente/AppData(directory nascosta)/Local/Packages che non è ovviamente il massimo quando dovete fare debug, cercare i packages di Arduino, fare unzip di nuove librerie. Ci sono vari problemi con l’adattamento di Windows Store e non ci sono vantaggi rispetto ai programmi di installazione tradizionali e per questo motivo gli utenti più smaliziati la sconsigliano decisamente. Se la hai installata e vuoi rimuoverla vai sul pannello di controllo / disinstalla un programma e rimuovi la voce Arduino IDE qualunque versione appaia.\nInstalla soltanto la versione “normale” dell’IDE di Arduino presa da arduino.cc o la versione portable se lavori con PC aziendali “locked”. Installare l’IDE di Arduino su MAC OS X Scarica il file dalla solita pagina di download del sito di Arduino, fai doppio click e trascina la icona del programma nella cartella applicazioni. Se stai usando Arduino UNO o Arduino Mega 2560 la installazione è completa, mentre con versioni più vecchie tipo Diecimila, Duemilanove o Nano, devi installare i driver per la porta seriale. Nella immagine per disco troverai il file SerialDriver_10_4_10.pkg per la tua piattaforma, fai doppio click e segui le istruzioni per la installazione.\nI Driver FTDI per MAC In caso di problemi con vecchie versioni di MAC OS o di Arduino o se stai usando schede Arduino generiche comprate su Ebay, potrebbe essere risolutivo installare i driver FTDI per MAC.\nVai al sito FTDI e scarica il modulo più recente dei driver, quindi procedi in questo modo:\nTrova il sistema operativo del tuo MAC nella lista e clicca su download link. Scarica il driver sul computer Apri il file DMG Apri il file FTDIUSBSerial.pkg Il MAC ti chiederà la password di amministratore li\u0026gt;Clicca su “installa il software” li\u0026gt;Attendi la conclusione della installazione li\u0026gt;Guarda su Tools/Serial Port/ e dovresti vedere DEV/tty.usbmodem e DEV/cu.usbmodem Come testare la installazione Siamo pronti per provare il corretto funzionamento della scheda Arduino:\nAvvia l’IDE di Arduino\u0026lt; Collega la scheda se non lo hai ancora fatto usando il cavetto USB Apri il programma (sketch) andando su: File\u0026gt; Esempi\u0026gt; 1.Basics\u0026gt; Blink Seleziona il tipo di scheda Arduino che stai utilizzando: Strumenti\u0026gt; Scheda\u0026gt; il tipo di scheda Seleziona la porta sequenziale / COM a cui è collegato il tuo Arduino: Strumenti\u0026gt; Porta\u0026gt; COMxx Se non sai a quale porta è collegato il tuo Arduino, controlla le porte disponibili, scollega il tuo Arduino e guarda ancora una volta. Quello che è scomparso è il tuo Arduino! Con la tua scheda Arduino collegata e il programma “Blink” aperto, premi il pulsante “Trasferisci”\nDopo un secondo, dovresti vedere alcuni LED accesi sul tuo Arduino, seguiti dal messaggio “Caricamento completato” nella barra di stato dell’IDE.\nConclusioni Hai ora gli strumenti per configurare il tuo ambiente di sviluppo su Windows, Mac o Linux, sfruttando schede come l’UNO o la Mega 2560, e risolvere eventuali problemi con driver o crash. Questo breve post ti permette di avviare la tua avventura IoT, ma apre anche le porte a creazioni personalizzate, dalla domotica alla robotica. La semplicità dell’IDE, unita alla community globale, rende la programmazione con Arduino accessibile a tutti, dai principianti ai professionisti.\nSe vuoi approfondire, consulta la documentazione di riferimento Arduino, ricca di esempi e API. Per tutorial pratici, visita Arduino Project Hub, con progetti step-by-step. Se hai dubbi, la community Arduino Forum offre supporto diretto. Per basi teoriche, esplora Electronics Tutorials, e per hardware avanzato, dai un’occhiata a SparkFun Electronics. Questi risorse ti guideranno verso nuove idee, dalla programmazione alla sperimentazione con sensori e microcontrollori.\n","permalink":"https://www.robotdazero.it/blog/come-installare-lide-di-arduino/","summary":"\u003cimg src=\"header.jpg\" alt=\"scheda Arduino Uno con schermata sull'IDE e cavetto USB 2.0 specifico per Arduino\"\u003e\n\u003chr\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione\u003c/h2\u003e\n\u003cp\u003eImmergiti nel mondo dell’elettronica fai-da-te e scopri come installare l’IDE di Arduino su Windows, Mac e Linux! Per iniziare, verifica se il tuo PC è a 32 o 64 bit – probabilmente 64 bit, ma meglio controllare. Scarica la versione giusta dal sito ufficiale \u003ca href=\"https://www.arduino.cc/en/software\"\u003eArduino\u003c/a\u003e, configura i driver e testa il tutto con lo sketch Blink. Questo è il primo passo per progetti IoT e robotica! Approfondisci con \u003ca href=\"https://docs.espressif.com/\"\u003eEspressif Docs\u003c/a\u003e per dettagli tecnici, segui tutorial su \u003ca href=\"https://randomnerdtutorials.com/\"\u003eRandom Nerd\u003c/a\u003e, e chiedi supporto sul \u003ca href=\"https://forum.arduino.cc/\"\u003eForum\u003c/a\u003e di Arduino.\u003c/p\u003e","title":"Come installare l'IDE di Arduino"},{"content":" La robotica spesso appare nei titoli dei giornali con un alone di drammaticità, dipinta come un campo impenetrabile riservato a geni in camici bianchi. Eppure, scorrendo i social media, si trovano adolescenti che mostrano con orgoglio i loro robot fai-da-te: creazioni funzionali e impressionanti che sfidano i racconti esagerati dei media. Come è possibile? Sveliamo i miti e immergiamoci nel mondo accessibile della robotica, un universo che non richiede anni di studio o budget da multinazionale, ma piuttosto curiosità, un po' di pazienza e gli strumenti giusti. Questo articolo non è solo una guida per principianti, ma un invito a scoprire un hobby che può trasformarsi in una vera passione o persino in una professione.\nI telegiornali e i quotidiani amano presentare la robotica come una scienza all'avanguardia, accessibile solo a possessori di dottorati nei laboratori della Silicon Valley. Ma la realtà è ben diversa. Molto del lavoro difficile è stato semplificato grazie a potenti microchip chiamati controller. Questi piccoli dispositivi leggono i programmi e gestiscono autonomamente motori, sensori, luci e servocomandi. La cosa migliore? Li puoi trovare su eBay per pochi euro! Non serve essere un esperto di elettronica: con un investimento minimo, chiunque può iniziare a esplorare questo campo. I controller hanno rivoluzionato l’approccio alla robotica, rendendola un hobby alla portata di tutti, dai ragazzi delle scuole medie agli hobbisti in pensione. Pensateci: un dispositivo che costa meno di un gioco per console può aprire le porte a un mondo di innovazione.\nTra questi, il protagonista è Arduino, un nome diventato sinonimo di robotica per principianti. Arduino si occupa del lavoro pesante, caricando i programmi dal tuo PC, verificandone la correttezza ed eseguendoli in pochi secondi. Se qualcosa va storto, un rapido reset ti rimette in carreggiata. È un vero e proprio prodigio plug-and-play che controlla le periferiche esterne con facilità, come sensori di temperatura, accelerometri o motori a passo. Ma cosa lo rende così speciale? La sua semplicità d’uso e la vasta comunità che lo supporta, offrendo tutorial, progetti pronti all’uso e un forum dove scambiare idee. Arduino è nato come progetto open-source, il che significa che chiunque può contribuire al suo sviluppo, rendendolo un ecosistema in continua evoluzione.\nArduino non è solo uno strumento; è una porta d'accesso. Allevia il peso della codifica complessa e ti permette di concentrarti sulla parte divertente: costruire ed sperimentare. Dimenticate l'immagine di bambini prodigio. Questi giovani creativi sono più simili a moderni artigiani, reminiscenti degli entusiasti del Meccano degli anni '70. Stanno assemblando, non reinventando la ruota. I veri innovatori? Sono nascosti nelle università e nei dipartimenti R\u0026S delle multinazionali, probabilmente tenendo i loro progressi sotto chiave, o forse distraendoci con hype. Questo non significa che non ci sia spazio per noi: al contrario, la robotica amatoriale è un campo in crescita, dove l’apprendimento pratico può portare a opportunità concrete, come consulenze o collaborazioni con startup tecnologiche.\nCon il mito sfatato, sorge una domanda naturale: come fa Arduino a rendere la costruzione di robot così semplice? Come può gestire comportamenti complessi senza richiederti di codificare ogni riga da zero? La risposta sta nel suo ecosistema. Arduino prospera grazie alle risorse create dalla comunità. Piattaforme come GitHub, Instructables e persino blog di nicchia offrono frammenti di codice pre-scritti. Puoi scaricare un programma, caricarlo su Arduino e iniziare a sperimentare in pochi minuti. Questo ti lascia libero di esplorare l'aspetto più eccitante della robotica: progettare il comportamento del robot o la sua \"logica di funzionamento\".\nMa cosa significa esattamente \"logica di funzionamento\"? È il cuore del robot, il software che definisce cosa deve fare, come reagire a ostacoli, leggere i dati dai sensori e adattarsi a imprevisti. Immaginate un robot che evita gli ostacoli: la logica decide quando fermarsi o girare basandosi sugli input di un sensore ad ultrasuoni. Scrivere questa logica può sembrare intimidatorio, ma con Arduino diventa un processo graduale. Per iniziare, dai un'occhiata ai tutorial ufficiali di Arduino, che coprono tutto, dalle basi alla programmazione avanzata. Per ispirazione, esplora il Arduino Project Hub, dove gli appassionati condividono progetti dettagliati, dai robot segui-linee ai bracci meccanici.\nUn altro elemento chiave è il \"sistema operativo\" del robot. Non stiamo parlando di Windows o Linux, ma di un software di base che traduce i tuoi programmi in azioni concrete. Con Arduino, questo è già integrato nella scheda, quindi non devi preoccuparti di configurarlo. Basta acquistare una scheda Arduino—come l’Arduino Uno o il più potente Arduino Mega—e sei pronto a partire. Questo aspetto elimina una barriera significativa per i principianti, permettendo di concentrarsi sulla creatività piuttosto che sulla teoria.\nTuttavia, logica e sistema operativo da soli non bastano. Un robot è un’interfaccia con il mondo reale, e per questo servono \"sensori e interfacce\". Senza di essi, avresti un computer senza input o output. I sensori—come quelli di temperatura, luce, o movimento—raccolgono dati dall’ambiente, mentre motori e servocomandi permettono al robot di agire, che si tratti di muoversi o manipolare oggetti. Anche questi componenti sono economici e disponibili su siti come Amazon o AliExpress. Tuttavia, a differenza della programmazione (spesso già pronta) e del sistema operativo (gestito da Arduino), l’installazione di sensori richiede un minimo di sforzo e impegno. Dovrai collegarli correttamente, testarli e magari regolare il codice per ottenere i migliori risultati.\nImparare a usare sensori può essere un’avventura di per sé. Ad esempio, un sensore di distanza ad ultrasuoni ti permette di creare un robot che si ferma prima di colpire un muro. Collegarlo richiede di capire i pin di Arduino e leggere i dati tramite un semplice sketch (programma). Per aiutarti, consulta guide come quelle su Random Nerd Tutorials, che offrono spiegazioni passo-passo con esempi pratici. Con il tempo, questa esperienza pratica ti renderà più sicuro nel personalizzare i tuoi progetti.\nOra, entriamo nel vivo della costruzione. Immagina di voler costruire un robot mobile. Parti con una base a cingoli, che puoi acquistare o costruire con materiali riciclati. Aggiungi un Arduino, un motore a corrente continua con un driver (come lo shield L298N), e un sensore per la navigazione. Scrivi un codice base per muoverlo in avanti e fermarlo quando rileva un ostacolo. Questo è un progetto semplice ma efficace per iniziare. Man mano che acquisisci esperienza, puoi aggiungere funzionalità come il controllo tramite Bluetooth o una telecamera per il riconoscimento degli oggetti.\nLa bellezza della robotica amatoriale sta nella sua flessibilità. Puoi iniziare con un budget limitato—una scheda Arduino costa circa 20-30 euro—e scalare il tuo progetto nel tempo. Vuoi un robot più avanzato? Considera l’aggiunta di un Raspberry Pi, che offre più potenza di calcolo per compiti complessi come l’intelligenza artificiale. Anche se Arduino è il punto di partenza ideale, combinare le due piattaforme può aprire nuove possibilità, come documentato su Hackster.io, una community ricca di idee innovative.\nMa perché dedicarsi alla robotica? Oltre al divertimento, ci sono benefici pratici. La robotica insegna competenze trasversali: problem-solving, programmazione, elettronica di base. Queste abilità sono sempre più richieste nel mercato del lavoro. L’autore di questo articolo, ad esempio, ha trasformato la sua passione in una professione stabile, lavorando come consulente con orari flessibili, senza capi o contratti a breve termine. È una testimonianza di come la robotica possa diventare un ponte verso l’indipendenza professionale.\nPer chi è alle prime armi, il percorso inizia con piccoli passi. Acquista una scheda Arduino, scarica il software gratuito da qui, e prova un progetto base, come accendere un LED. Poi, passa a qualcosa di più complesso, come un robot che segue una linea nera su un foglio. Ogni progetto ti insegnerà qualcosa di nuovo, dalla lettura dei datasheet dei componenti alla gestione degli errori nel codice.\nNon abbiate paura di sbagliare. La robotica è un campo dove gli errori sono parte del processo di apprendimento. Un cavo collegato male o un codice con un bug possono essere frustranti, ma anche occasioni per capire meglio il sistema. Usa forum come Arduino Forum per chiedere aiuto alla comunità globale, che è sempre pronta a supportare i nuovi arrivati.\nGuardando al futuro, la robotica amatoriale sta evolvendo rapidamente. Con l’accesso a kit sempre più avanzati e a risorse online, il confine tra hobbista e professionista si sta assottigliando. Progetti come i droni fai-da-te o i robot educativi nelle scuole dimostrano come questa passione possa ispirare le nuove generazioni. E tu, sei pronto a costruire il tuo primo robot?\nRobotdazero.it - post - R.177.4.6.2\n","permalink":"https://www.robotdazero.it/blog/iniziare-con-la-robotica/","summary":"\u003cimg width=\"980\" class=\"x figure-img img-fluid lazyload blur-up\"  src=\"header.jpg\" alt=\"mini robot con Arduino UNO R3\"\u003e\n\u003cp\u003eLa robotica spesso appare nei titoli dei giornali con un alone di drammaticità, dipinta come un campo impenetrabile riservato a geni in camici bianchi. Eppure, scorrendo i social media, si trovano adolescenti che mostrano con orgoglio i loro robot fai-da-te: creazioni funzionali e impressionanti che sfidano i racconti esagerati dei media. Come è possibile? Sveliamo i miti e immergiamoci nel mondo accessibile della robotica, un universo che non richiede anni di studio o budget da multinazionale, ma piuttosto curiosità, un po' di pazienza e gli strumenti giusti. Questo articolo non è solo una guida per principianti, ma un invito a scoprire un hobby che può trasformarsi in una vera passione o persino in una professione.\u003c/p\u003e","title":"Iniziare con la robotica"},{"content":" La guida aggiornata 2025 Arduino è una piattaforma open-source sviluppata in Italia, progettata per eseguire programmi e interagire con l’ambiente esterno tramite sensori e attuatori. È il cuore di progetti di robotica, automazione industriale, domotica e Internet of Things (IoT), grazie alla sua versatilità, dimensioni compatte e costo accessibile. Il successo di Arduino deriva da un mix intelligente di chip secondari e un potente microcontrollore, che consente di gestire compiti complessi in modo efficiente, anche per chi non ha esperienza avanzata in elettronica.\nNegli ultimi anni, Arduino ha conquistato una popolarità globale grazie alla semplicità del suo linguaggio di programmazione (basato su C/C++), alla vasta comunità di supporto e alla disponibilità di risorse online, come tutorial, librerie e progetti condivisi su piattaforme come Arduino Project Hub. Che tu sia un principiante che vuole accendere un LED o un professionista che sviluppa sistemi IoT, Arduino offre soluzioni per tutti i livelli. Questa guida completa all’acquisto di Arduino ti aiuterà a scegliere la scheda perfetta, evitando errori comuni e comprendendo le differenze tra modelli, accessori e compatibilità.\nArduino non è solo una scheda elettronica, ma un ecosistema completo che include l’IDE Arduino (un software gratuito per programmare), una vasta gamma di accessori e una comunità globale che condivide idee e soluzioni. Ad esempio, su Arduino Forum puoi trovare supporto per qualsiasi problema. Se stai pensando di iniziare, questa guida ti accompagnerà passo dopo passo, con consigli pratici e informazioni aggiornate.\nPerché Scegliere l’Arduino Giusto è un Problema? Acquistare una scheda Arduino è facile: su Amazon.it o AliExpress puoi ordinare modelli popolari in pochi clic. Tuttavia, la grande varietà di versioni, prezzi e caratteristiche tecniche può confondere, soprattutto i principianti. Una scelta sbagliata potrebbe limitare il tuo progetto, rendere la programmazione più complessa o farti spendere più del necessario. Questa guida risponde alle domande più comuni, come quale modello scegliere, se optare per un originale o un compatibile, quali accessori sono essenziali e come evitare schede contraffatte. Con un approccio chiaro e strutturato, ti aiuteremo a navigare tra le opzioni disponibili e a trovare la scheda perfetta per il tuo progetto.\nLa scelta della scheda giusta dipende da fattori come il tipo di progetto, il numero di sensori necessari, le dimensioni della scheda e le funzionalità extra (es. Wi-Fi o Bluetooth). Ad esempio, un progetto semplice come un termometro digitale richiede una scheda base come Arduino UNO, mentre un robot connesso al web potrebbe necessitare di una scheda con Wi-Fi integrato. Continuando a leggere, scoprirai come orientarti tra le tante opzioni e fare una scelta informata.\nLe Cose che Dovresti Sapere Prima di Comprare la Tua Scheda Quale versione di Arduino è più adatta al tuo progetto? È meglio acquistare un Arduino originale o un modello compatibile? Quali accessori sono indispensabili per iniziare? Conviene scegliere una scheda singola o un kit completo? Cosa sono gli “shields” e come possono migliorare il tuo progetto? Quali schede offrono le migliori prestazioni per progetti avanzati? Quali sono le ultime schede Arduino pensate per i principianti? Come evitare errori comuni e schede contraffatte? Quali risorse utilizzare per imparare a programmare Arduino? Come scegliere tra connettività Wi-Fi, Bluetooth o Ethernet? Step #1 - Quale Versione di Arduino Dovresti Scegliere? Visitando il sito ufficiale Arduino.cc, troverai oltre 20 modelli di schede, ciascuno progettato per esigenze specifiche, dal controllo di LED a complessi sistemi IoT. La pagina Wikipedia di Arduino elenca oltre 180 schede compatibili, con qualità che variano da eccellente a scadente. La domanda chiave è: quali schede garantiscono piena compatibilità con l’IDE Arduino e il vasto ecosistema di software disponibile?\nPer i principianti, la risposta è chiara: inizia con una Arduino UNO Rev.3.\nLa Arduino UNO Rev.3 è la scheda più diffusa e versatile, perfetta per chi muove i primi passi. Ecco i motivi principali per sceglierla:\nPopolarità: È la scheda più utilizzata al mondo, con migliaia di tutorial, codici e progetti disponibili su Arduino Tutorials. Compatibilità: La maggior parte degli shields e accessori è progettata per UNO, garantendo un’integrazione senza problemi. Specifiche tecniche: Offre 20 pin I/O (14 digitali, 6 analogici), un microcontrollore ATmega328P, 32 KB di memoria flash, 2 KB di SRAM e 1 KB di EEPROM. È sufficiente per progetti entry-level e intermedi. Facilità d’uso: La documentazione ufficiale e la comunità attiva rendono l’apprendimento rapido e accessibile, anche per chi non ha esperienza. Costo: È economica, con un prezzo medio di 20-25 euro su Amazon.it. Ti consiglio di acquistare una Arduino UNO Rev.3 per iniziare senza complicazioni. È la scelta ideale per progetti come il controllo di LED, sensori di temperatura o semplici robot.\nSebbene la UNO sia una scelta universale, altri modelli possono essere più adatti a seconda delle tue esigenze. Ecco alcune alternative:\nAlternative alla versione UNO R3 Arduino MEGA 2560 Rev.3: Ideale per progetti complessi con molti sensori o attuatori, offre 54 pin I/O (15 PWM, 16 analogici) e un microcontrollore ATmega2560 con 256 KB di flash, 8 KB di SRAM e 4 KB di EEPROM. È compatibile con le librerie di UNO, ma più potente. Ad esempio, è perfetta per un sistema di monitoraggio ambientale con molteplici sensori. Acquistala su Arduino.cc. Schede con Wi-Fi: Per progetti IoT, come un termostato connesso o un robot controllato via web, considera schede con chip ESP8266, come la Adafruit Feather HUZZAH o la SparkFun ESP8266 Thing. Queste schede compatibili offrono connettività Wi-Fi, sono completamente supportate dall’IDE Arduino e spesso costano meno delle schede originali (circa 15-20 euro). Arduino Yún Rev.2: Una scheda originale con Wi-Fi (chip Atheros AR9331), Ethernet, porta USB-A e slot Micro SD. Con 20 pin I/O e 12 ingressi analogici, è ideale per progetti connessi, come un sistema di controllo remoto. Tuttavia, il chip ESP8266 è spesso preferito nei forum per la sua versatilità e semplicità. Disponibile su Arduino.cc. Le versioni più compatte Se hai esperienza con Arduino UNO e cerchi una scheda più compatta, le soluzioni non mancano. Le schede di TinyCircuits, come la TinyDuino, sono tra le più piccole disponibili, con dimensioni inferiori a una moneta. Sono perfette per robot in miniatura, dispositivi indossabili o telecamere motorizzate discrete, mantenendo la compatibilità con l’IDE Arduino. Ad esempio, puoi usarle per creare un orologio intelligente o un sensore portatile.\nLa TinyDuino è dotata di un microcontrollore ATmega328P, lo stesso della UNO, ma con un design ultra-compatto. Include un portabatteria per celle CR2032, rendendola ideale per progetti alimentati a batteria. Tuttavia, richiede una certa esperienza per collegare componenti su breadboard di piccole dimensioni.\nArduino Micro La Arduino Micro, sviluppata in collaborazione con Adafruit, utilizza il microcontrollore ATmega32U4. È una scelta eccellente per progetti che richiedono miniaturizzazione senza sacrificare prestazioni. Offre 20 pin I/O (7 PWM, 12 analogici) ed è facile da integrare su una breadboard, a differenza di alcune schede TinyCircuits.\nIl chip di conversione seriale/USB della Micro è lo stesso della UNO, garantendo compatibilità con Windows, macOS e Linux senza problemi di driver. Non include un portabatteria “coin” come la TinyDuino, ma è perfetta per progetti con sensori multipli, come un sistema di monitoraggio della qualità dell’aria. Per dettagli sull’installazione dell’IDE, consulta questa guida ufficiale.\nStep #2 - È Meglio un Arduino Originale o Compatibile? Un Arduino originale garantisce qualità, supporto diretto e aggiornamenti costanti, ma i compatibili sono spesso più economici. La diffusione dei compatibili è dovuta al modello open-source di Arduino: l’azienda ha reso disponibili i progetti hardware e software, permettendo a terzi di creare versioni alternative. Questo ha portato a un’ampia varietà di schede, ma anche a differenze significative in termini di qualità e affidabilità.\nComprare un originale supporta lo sviluppo del progetto Arduino, ma un compatibile di qualità da marchi affidabili come Adafruit o SparkFun può essere un’ottima alternativa per risparmiare senza sacrificare prestazioni.\nDove Comprare una Scheda Arduino o Compatibile? Per i principianti, consiglio di acquistare da Arduino.cc o Amazon.it. Arduino.cc offre schede originali, supportando direttamente l’azienda italiana e contribuendo allo sviluppo del software. Amazon propone prezzi competitivi e kit completi, ideali per iniziare. Evita piattaforme come eBay o Alibaba, dove il rischio di acquistare cloni di bassa qualità è alto. Ad esempio, su Amazon puoi trovare offerte come il kit UNO Rev.3 con cavi e sensori inclusi.\nAttenzione agli Arduino Contraffatti Alcuni produttori non autorizzati falsificano il logo Arduino, vendendo schede di qualità inferiore. Arduino LLC le definisce “contraffatte” e avverte che possono causare problemi come tensioni imprecise, guasti hardware o incompatibilità con l’IDE. Ad esempio, molte schede UNO contraffatte usano chip economici come FTDI o CH340 invece dell’ATmega16U2, richiedendo driver aggiuntivi o causando errori di connessione. Questi problemi possono danneggiare la scheda o i dispositivi collegati.\nPer evitare contraffazioni, acquista da venditori affidabili e verifica il marchio. Marchi come Adafruit e SparkFun producono compatibili di alta qualità con documentazione chiara e supporto tecnico. Inoltre, acquistare originale contribuisce a finanziare lo sviluppo di nuove schede e librerie, un aspetto importante per la comunità Arduino.\nStep #3 - Gli Accessori Indispensabili per Arduino Non acquistare accessori a caso: inizia con l’essenziale per evitare sprechi e concentrarti sui componenti utili. I componenti base includono:\nBreadboard: Per collegare componenti senza saldature. Cavi jumper: Per connessioni rapide e sicure. Resistenze: Per controllare corrente e tensione. LED: Per progetti visivi con basso consumo. Sensori: Per rilevare dati ambientali (es. temperatura, luce). Questi componenti ti permetteranno di sperimentare una vasta gamma di progetti, dal controllo di luci alla creazione di un sistema di allarme. Per una lista completa, consulta la sezione esempi di Arduino.\nIl Cavo USB Un cavo USB è fondamentale: senza, la tua scheda Arduino è inutilizzabile. Usa un cavo USB tipo AB (come quello delle stampanti), non un Micro-USB da smartphone. Molte schede includono il cavo, ma averne uno di scorta è consigliabile. Per schede compatte come Nano o Micro, verifica se richiedono un cavo Micro-USB o USB-C. Con il cavo giusto, puoi iniziare subito con il tuo primo programma, come il classico “Blink” per far lampeggiare un LED.\nPer configurare la scheda e caricare il primo sketch, segui il tutorial ufficiale su Arduino Getting Started. In pochi minuti vedrai il tuo primo progetto funzionare!\nStep #4 - I Kit da Scegliere per Iniziare con Arduino I kit Arduino sono la soluzione ideale per i principianti, poiché includono tutto il necessario per iniziare senza dover acquistare componenti separati. Cerca kit con sensori (es. temperatura, luce, movimento) per sperimentare progetti pratici. Un buon kit dovrebbe contenere:\nBreadboard: Permette di collegare componenti senza saldature, ideale per prototipi rapidi. Cavi jumper: Economici e indispensabili per collegare i componenti. Resistenze: Usate per controllare corrente e tensione, essenziali per LED e motori. LED: Perfetti per progetti visivi, con basso consumo energetico. Sensori: Come sensori di temperatura (es. DHT11), luce (LDR) o movimento (PIR). Pulsanti e potenziometri: Per aggiungere interattività ai tuoi progetti. Un esempio eccellente è il Arduino Starter Kit, che include una scheda UNO, una breadboard, cavi, sensori e un manuale con 15 progetti guidati, come un termometro digitale o un mini-pianoforte. Per un’opzione più economica, considera il Elegoo UNO Project Starter Kit, che offre un’ampia varietà di componenti a un prezzo accessibile.\nQuando scegli un kit, verifica che i componenti siano compatibili con la tua scheda (es. tensione a 5V o 3.3V) e che includano documentazione chiara. I kit con manuali in italiano sono ideali per i principianti.\nStep #5 - Cosa Sono gli “Shields” di Arduino? Gli shields sono schede aggiuntive che si collegano direttamente ad Arduino, espandendo le sue funzionalità senza bisogno di costruire circuiti complessi. Sono ideali per chi vuole concentrarsi sulla programmazione piuttosto che sull’hardware. Gli shields più comuni includono:\nMotor Shield: Per controllare motori DC o passo-passo, perfetto per robot. Wi-Fi Shield: Per aggiungere connettività wireless a schede senza Wi-Fi integrato. LCD Shield: Per visualizzare dati su un display. Un’opzione popolare è il Arduino Motor Shield, ideale per progetti robotici come un rover controllato. Un altro ottimo prodotto è il Kit-on-a-Shield di Programming Electronics, con 15 circuiti integrati per sperimentare senza cablaggi complessi.\nIn alternativa, il DrDuino Shield offre 12 circuiti aggiuntivi, semplificando i progetti educativi. Gli shields sono particolarmente utili per progetti complessi, come un sistema di irrigazione automatico o un display interattivo.\nStep #6 - I Microcontrollori Arduino Le schede Arduino utilizzano diversi microcontrollori, ciascuno con caratteristiche specifiche. Ecco una panoramica dettagliata:\nATmega328P: Usato su UNO, Nano, Mini, Pro, Fio, LilyPad ed Ethernet. Funziona a 3.3V o 5V, con 32 KB di flash, 2 KB di SRAM e 1 KB di EEPROM. Ideale per progetti standard, come un contatore digitale o un sistema di allarme. ATmega168: Presente su vecchie versioni di LilyPad, Nano e Pro. Con 16 KB di flash, 1 KB di SRAM e 0.5 KB di EEPROM, è ormai obsoleto e sconsigliato. ATmega2560: Monta sulla MEGA, con 256 KB di flash, 8 KB di SRAM, 4 KB di EEPROM e 4 porte seriali. Perfetto per progetti complessi, come un sistema di controllo con 20 sensori. ATtiny85: Usato sulla Gemma, con 8 KB di flash, 0.5 KB di SRAM e 0.5 KB di EEPROM. Ideale per progetti minimali, come l’accensione di LED o interruttori. ATSAMD21: Presente su Arduino Zero, con 256 KB di flash, 32 KB di SRAM e 48 MHz. Ottimo per progetti ad alte prestazioni, come l’elaborazione di dati in tempo reale. ATSAM3X8E: Monta su Arduino Due, con 512 KB di flash, 96 KB di SRAM, 84 MHz e 60+ pin I/O. Ideale per applicazioni avanzate, come droni o sistemi di visione. Per un confronto dettagliato, consulta la pagina di confronto ufficiale su Arduino.cc. Scegli il microcontrollore in base alla complessità del progetto e alle risorse necessarie (memoria, velocità, numero di pin).\nStep #7 - Arduino Teensy La Teensy è una scheda open-source con microcontrollore ARM Cortex-M4, nota per la sua potenza e versatilità. Il modello Teensy 4.1 offre 600 MHz, 1024 KB di RAM, 55 pin I/O e supporto per USB ad alta velocità, rendendola ideale per progetti complessi come sintetizzatori musicali, droni o sistemi di controllo avanzati. È compatibile con l’IDE Arduino e supporta linguaggi come C, C++ e Python, rendendola accessibile anche ai principianti con ambizioni elevate.\nVantaggi di Teensy:\nPotenza: Una delle schede più performanti sul mercato, con un clock fino a 600 MHz. Versatilità: Adatta a progetti che spaziano dalla robotica all’audio digitale, come un sintetizzatore MIDI. Facilità d’uso: Programmabile con l’IDE Arduino, con librerie dedicate disponibili su Teensy Libraries. Comunità: Supportata da una vasta comunità su Teensy Forum, con risorse e supporto per tutti i livelli. Teensy è più costosa di una UNO (circa 30-40 euro), ma offre prestazioni superiori per progetti avanzati. Ad esempio, puoi usarla per creare un controller per videogiochi o un sistema di visione artificiale.\n👉 Se cerchi una scheda potente e versatile, Teensy 4.1 è una scelta eccellente per progetti ambiziosi. Step #8 - Le Ultime Schede Arduino per Principianti: Arduino UNO R4 Nel 2023, Arduino ha introdotto la Arduino UNO R4, disponibile in due versioni: UNO R4 Minima e UNO R4 WiFi. Entrambe sono progettate per i principianti, ma con caratteristiche moderne che le rendono più potenti della UNO Rev.3, mantenendo la semplicità d’uso.\nUNO R4 Minima: Dotata del microcontrollore RA4M1 (48 MHz, 256 KB di flash, 32 KB di RAM), offre prestazioni superiori rispetto alla UNO Rev.3, con un consumo energetico ottimizzato. È compatibile con gli shields UNO e perfetta per progetti base, come un sistema di irrigazione o un contatore digitale. Costa circa 20 euro ed è disponibile su Arduino.cc. UNO R4 WiFi: Include connettività Wi-Fi e Bluetooth (chip ESP32-S3) e una matrice LED 12x8 integrata per progetti creativi, come display o animazioni interattive. È ideale per chi vuole esplorare l’IoT, ad esempio creando un termostato connesso o un sistema di notifiche. Costa circa 25 euro ed è disponibile su Arduino.cc. Entrambe le versioni supportano l’IDE Arduino e sono accompagnate da tutorial aggiornati, come quelli su Arduino Built-In Examples. La UNO R4 WiFi è particolarmente indicata per i principianti che vogliono sperimentare con progetti connessi senza dover acquistare shields aggiuntivi.\nStep #9 - Le Ultime Schede Arduino per Principianti: Arduino Nano Every La Arduino Nano Every è un’altra opzione eccellente per i principianti che preferiscono una scheda compatta. Con il microcontrollore ATmega4809, offre 48 KB di flash, 6 KB di SRAM e 20 pin I/O, mantenendo la compatibilità con l’ecosistema Arduino. È ideale per progetti portatili, come dispositivi indossabili, piccoli robot o sensori IoT.\nVantaggi: Dimensioni ridotte (45x18 mm), prezzo accessibile (circa 10-15 euro) e prestazioni simili alla UNO, ma con più memoria. Applicazioni: Perfetta per progetti con spazio limitato, come un braccialetto intelligente o un sensore di movimento. Supporto: Compatibile con l’IDE Arduino e supportata da una vasta comunità. Connettività: Usa un cavo Micro-USB, più comune rispetto al tipo AB della UNO. Acquistala su Arduino.cc o su Amazon.it. Per un’introduzione pratica, prova il nostro progetto Blink, che ti guiderà passo dopo passo.\nStep #10 - Consigli Pratici per Iniziare con Arduino Se sei un principiante, segui questi passi per partire con il piede giusto:\nScegli un progetto semplice: Inizia con il lampeggio di un LED o un sensore di luce per familiarizzare con l’IDE. Prova il tutorial “Blink” sul nostro Blog. Impara l’IDE Arduino: Scarica il software gratuito da Arduino.cc e segui le guide ufficiali per configurare la scheda. Unisciti alla comunità: Partecipa al Arduino Forum per consigli, soluzioni e ispirazione. Sperimenta: Prova progetti con sensori, shields o connessioni IoT per esplorare le possibilità di Arduino, come un sistema di irrigazione connesso. Usa risorse online: Esplora Arduino Project Hub per trovare idee di progetti per tutti i livelli. Un esempio di progetto per principianti è un termometro digitale con un sensore DHT11, che puoi realizzare con un kit base. Il codice e le istruzioni sono disponibili su Arduino Project Hub.\nStep #11 - Come Evitare Errori Comuni I principianti spesso commettono errori che possono rallentare l’apprendimento. Ecco come evitarli:\nLeggi la documentazione: Ogni scheda ha specifiche uniche. Consulta le schede tecniche su Arduino.cc per conoscere tensioni, pin e limiti. Controlla la compatibilità: Assicurati che shields e sensori siano compatibili con la tua scheda (es. tensione a 3.3V o 5V). Usa alimentazione adeguata: Evita di sovraccaricare la scheda con tensioni errate, che possono danneggiarla. Usa un alimentatore esterno per progetti con molti componenti. Impara dai fallimenti: Gli errori sono parte dell’apprendimento. Usa il monitor seriale dell’IDE per il debug e cerca soluzioni sul Arduino Forum. Evita schede contraffatte: Acquista da venditori affidabili per evitare problemi di compatibilità o guasti. Un errore comune è collegare un sensore con una tensione sbagliata (es. 5V invece di 3.3V), che può bruciare la scheda. Verifica sempre le specifiche tecniche prima di collegare componenti.\nStep #12 - Progetti Pratici per Principianti Per rendere l’apprendimento più divertente, ecco alcune idee di progetti semplici da realizzare con una scheda Arduino UNO o Nano Every:\nLampeggio LED: Un classico per imparare i comandi base di programmazione. Tutorial su Arduino.cc. Termometro digitale: Usa un sensore DHT11 per misurare temperatura e umidità, visualizzandole sul monitor seriale. Semaforo simulato: Collega tre LED (rosso, giallo, verde) per simulare un semaforo con controllo temporizzato. Sensore di luce: Usa un fotodiodo per accendere un LED quando la luce ambientale diminuisce. Controllo servo: Collega un servomotore per creare un braccio robotico semplice. Questi progetti richiedono componenti economici e sono ben documentati su Arduino Project Hub. Inizia con uno di questi per acquisire fiducia e poi passa a progetti più complessi, come un robot a due ruote.\nIn Conclusione: Come Scegliere la Scheda Arduino Perfetta Scegliere la scheda Arduino giusta dipende da diversi fattori. Ecco un riepilogo dettagliato per orientarti:\nScopo del progetto: Per progetti semplici (es. LED, sensori base), scegli UNO R4 o Nano Every. Per progetti complessi (es. robot con molti sensori), opta per MEGA o Due. Pin I/O: Assicurati di avere abbastanza pin per sensori e attuatori. Ad esempio, UNO offre 20 pin, MEGA 54. Microcontrollore: ATmega328P per progetti base, ARM Cortex (es. ATSAMD21, ATSAM3X8E) per alte prestazioni. Dimensioni: Nano, Micro o TinyDuino per progetti compatti; MEGA o Due per progetti più grandi. Funzionalità extra: Wi-Fi (es. UNO R4 WiFi), Bluetooth o Ethernet per progetti connessi. Budget: Le schede compatibili di qualità (es. Adafruit, SparkFun) sono un’opzione economica, ma verifica l’affidabilità del venditore. Supporto: Scegli schede con una vasta comunità e documentazione, come UNO o Nano Every, per facilitare l’apprendimento. Con questa guida, sei pronto a scegliere la scheda Arduino perfetta e iniziare il tuo viaggio nell’elettronica e nella programmazione. Arduino è uno strumento potente e accessibile: sperimenta, sbaglia e impara, e presto realizzerai progetti straordinari! Per ulteriori risorse, visita Arduino.cc o RobotDaZero.\nRobotdazero.it - post - R.174.4.7.3\n","permalink":"https://www.robotdazero.it/blog/la-guida-definitiva-per-scegliere-il-tuo-arduino/","summary":"\u003cimg src=\"header.png\" alt=\"Foto iniziale Arduino\" loading=\"lazy\" /\u003e\n\u003ch2\u003eLa guida aggiornata 2025\u003c/h2\u003e\n\u003cp\u003eArduino è una piattaforma open-source sviluppata in Italia, progettata per eseguire programmi e interagire con l’ambiente esterno tramite sensori e attuatori. È il cuore di progetti di robotica, automazione industriale, domotica e Internet of Things (IoT), grazie alla sua versatilità, dimensioni compatte e costo accessibile. Il successo di Arduino deriva da un mix intelligente di \u003cstrong\u003echip secondari\u003c/strong\u003e e un potente \u003cstrong\u003emicrocontrollore\u003c/strong\u003e, che consente di gestire compiti complessi in modo efficiente, anche per chi non ha esperienza avanzata in elettronica.\u003c/p\u003e","title":"La guida definitiva per scegliere il tuo Arduino"},{"content":"\nIl freddo è il nemico numero uno delle tue piante in vaso! ❄️. Impara le 4 regole d\u0026rsquo;oro per proteggerle dal gelo: raggruppare i vasi, fare una buona pacciamatura e fornire un riparo efficace. Salva le tue radici! 👇\nLe piante in vaso sono più sensibili al freddo rispetto a quelle piantate direttamente nel terreno, poiché il vaso e il terriccio sono esposti e vulnerabili ai rapidi cambiamenti del clima.\nRegola numero uno: Raggruppare i vasi Raggruppare le Piante:Avvicinare i vasi il più possibile: le piante condividono calore tra loro.Se possibile, spostarle vicino a una parete esposta a Sud (nell\u0026rsquo;emisfero settentrionale) per sfruttare il massimo calore solare.\nRegola numero due: La Pacciamatura Riempire gli spazi tra i vasi con foglie cadute, rami di sempreverdi o iuta (burlap) per aumentare l\u0026rsquo;isolamento. Un generoso strato di pacciame (almeno 5 cm / due pollici) sopra il terriccio isola il terreno e protegge le radici dal freddo. Utilizzare pacciame organico come paglia, foglie, corteccia o trucioli di legno. Questo aiuta anche a prevenire l\u0026rsquo;evaporazione dell\u0026rsquo;acqua causata dai venti invernali.\nRegola numero tre: Trovare un Riparo Esterno Se disponibili, utilizzare una serra o un container con una buona chiusura.Posizionare il riparo sul lato della casa che riceve più luce solare per massimizzare il calore. Attenzione: Quando le temperature superano i 15 gradi aprire il riparo per evitare che le foglie si brucino.\nRegola numero quattro: Fornire Barriere Antivento I venti invernali secchi sono tra gli elementi più dannosi, anche per le piante resistenti al freddo.Utilizzare strutture esistenti come pareti della casa, siepi, filari di alberi o recinzioni robuste in pietra come barriere naturali.\nCoprire le Piante: In caso di freddo estremo, raggruppare i vasi, avvicinarli a una barriera antivento e poi coprirli. Si possono usare lenzuola o asciugamani vecchi. Il panno antigelo è una buona opzione ma la plastica da serra è la più efficace, ma deve essere rimossa quando le temperature salgono oltre i 15 gradi per evitare di surriscaldare le piante. Suggerimento per il gelo profondo: Utilizzare una combinazione di lenzuola/asciugamani sormontati dalla plastica da serra per la massima protezione.\n","permalink":"https://www.robotdazero.it/blog/come-proteggere-le-piante-in-vaso-dal-freddo/","summary":"\u003cp\u003e\u003cimg alt=\"header\" loading=\"lazy\" src=\"/blog/come-proteggere-le-piante-in-vaso-dal-freddo/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003eIl freddo è il nemico numero uno delle tue piante in vaso! ❄️. Impara le 4 regole d\u0026rsquo;oro per proteggerle dal gelo: raggruppare i vasi, fare una buona pacciamatura e fornire un riparo efficace. Salva le tue radici! 👇\u003c/p\u003e\n\u003cp\u003e\u003cem\u003eLe piante in vaso sono più sensibili al freddo rispetto a quelle piantate direttamente nel terreno, poiché il vaso e il terriccio sono esposti e vulnerabili ai rapidi cambiamenti del clima.\u003c/em\u003e\u003c/p\u003e","title":"Come Proteggere le Piante in Vaso dal Freddo"},{"content":"\nIL CROLLO DEL POTERE: SE L’AGI RENDE IL CAPITALE IRRILEVANTE C’è un errore di fondo in quasi tutte le discussioni sull’Intelligenza Generale Artificiale (AGI). Analisti, economisti e \u0026ldquo;apocalittici\u0026rdquo; la guardano con le lenti del vecchio mondo: la vedono come un super-dipendente, un software più veloce, un tool per ottimizzare i profitti delle Big Tech. Sbagliato.\nL\u0026rsquo;AGI non è un miglioramento incrementale del capitalismo. È l’inizio della sua deflazione strutturale. Non parlo di prezzi che scendono al supermercato, ma della deflazione del potere stesso.\n1. Il collasso del legame tra Ricchezza e Controllo Per secoli, il potere è stato sinonimo di accumulo di risorse scarse: terra, oro, petrolio e, infine, lavoro umano organizzato. Per fare grandi cose servivano grandi capitali, perché coordinare migliaia di umani è costoso, inefficiente e richiede gerarchie.\nAGI, o Intelligenza Artificiale Generale, non è un programma specifico. Immagina piuttosto un\u0026rsquo;intelligenza artificiale con la capacità di comprendere, apprendere e applicare la conoscenza in un\u0026rsquo;ampia varietà di compiti, proprio come un essere umano. Non è limitata a un singolo compito, ma può adattarsi a nuove sfide e problemi in modo autonomo.\nL’AGI rompe questo schema. Quando il costo dell\u0026rsquo;intelligenza, della progettazione e della coordinazione tende a zero, il vantaggio competitivo del miliardario evapora. Se oggi per costruire un’infrastruttura o lanciare un’impresa servono milioni di dollari in stipendi e burocrazia, domani basterà l’intento di un singolo individuo supportato da un\u0026rsquo;agenzia sintetica. Il capitale smette di essere il \u0026ldquo;permesso per agire\u0026rdquo;.\n2. La fine dell\u0026rsquo;intermediazione umana Il potere politico ed economico oggi si annida negli intermediari: banche, manager, apparati statali. Questi soggetti gestiscono la scarsità di informazione e coordinamento. L’AGI è una forza disintermediante brutale.\nSe un individuo può progettare, simulare e gestire processi complessi al costo della sola energia elettrica, perché dovrebbe sottostare alle strutture di finanziamento tradizionali? La leva finanziaria, il grande totem del XX secolo, perde mordente se l\u0026rsquo;azione nel mondo fisico diventa \u0026ldquo;troppo economica per essere monopolizzata\u0026rdquo;.\n3. Dal Capitale alla Fisica (Energia e Materia) Il nuovo collo di bottiglia non sarà più il denaro, ma la fisica. Il potere si sposta dal mondo astratto dei fogli Excel a quello reale dell\u0026rsquo;energia e delle materie prime.\nIn un mondo post-AGI, un miliardo di dollari in banca vale meno di un gigawatt di energia e di una flotta di droni produttivi. È un ritorno alla realtà brutale. Il potere non sarà più di chi \u0026ldquo;possiede\u0026rdquo; il valore nominale, ma di chi ha l\u0026rsquo;intento e l\u0026rsquo;accesso alle risorse fisiche per trasformare quell\u0026rsquo;intento in realtà.\n4. La sovranità individuale come sottoprodotto tecnico La conseguenza politica è una forma di anarchia tecnologica. Se la capacità produttiva e difensiva viene democratizzata dalla tecnologia, lo Stato e le grandi Corporation perdono il monopolio dell\u0026rsquo;efficacia.\nNon è un\u0026rsquo;utopia, è una conseguenza logica della caduta dei costi di coordinamento. Quando non hai più bisogno di un\u0026rsquo;organizzazione complessa per cambiare il mondo, l\u0026rsquo;organizzazione complessa (lo Stato, la multinazionale) diventa solo un parassita costoso.\nConclusione: Prepararsi alla deflazione del comando Il vero shock non sarà la disoccupazione, ma l’irrilevanza delle élite attuali. I \u0026ldquo;padroni del vapore\u0026rdquo; si troveranno con forzieri pieni di una moneta che non può più comprare il controllo, perché il controllo è diventato un bene comune generato dal silicio.\nSiamo pronti per un mondo in cui il potere costa così poco da non poter più essere accumulato? La sfida non è economica, è psicologica. Dobbiamo imparare a vivere in un sistema dove la scarsità non è più la frusta che ci spinge a muoverci.\n[INFO: NOTA DI TRASPARENZA]\nQuesto contenuto non è un testo originale dell'autore del blog. Si tratta di una sintesi ragionata e di una rielaborazione dei concetti espressi nel post: \"The Deflation of Power: How AGI Collapses the Link Between Capital and Agency\". Fonte: Discussione su r/accelerate (Reddit) ","permalink":"https://www.robotdazero.it/blog/agi-collasso-capitalismo-capitale-irrilevante/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/agi-collasso-capitalismo-capitale-irrilevante/header.png\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"il-crollo-del-potere-se-lagi-rende-il-capitale-irrilevante\"\u003eIL CROLLO DEL POTERE: SE L’AGI RENDE IL CAPITALE IRRILEVANTE\u003c/h2\u003e\n\u003cp\u003eC’è un errore di fondo in quasi tutte le discussioni sull’Intelligenza Generale Artificiale (AGI). Analisti, economisti e \u0026ldquo;apocalittici\u0026rdquo; la guardano con le lenti del vecchio mondo: la vedono come un super-dipendente, un software più veloce, un tool per ottimizzare i profitti delle Big Tech. \u003cstrong\u003eSbagliato\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eL\u0026rsquo;AGI non è un miglioramento incrementale del capitalismo. È l’inizio della sua deflazione strutturale. Non parlo di prezzi che scendono al supermercato, ma della deflazione del potere stesso.\u003c/p\u003e","title":"AGI e il Collasso del Capitalismo: Perché il Capitale diventerà Irrilevante"},{"content":"\nIntroduzione Il monitoraggio HACCP non è una questione di estetica, ma di integrità del dato. In un ambiente industriale o di conservazione alimentare, un \u0026ldquo;buco\u0026rdquo; nei log non è un’opzione. Se il database non riceve dati perché il WiFi è caduto o il clock interno è andato in deriva, il sistema è fallato alla base.\nIn questo post analizziamo un\u0026rsquo;architettura di monitoraggio professionale basata su tre pilastri di base:\nEdge Layer (ESP32): Gestisce l\u0026rsquo;acquisizione e la trasmissione. L\u0026rsquo;uso del chip DS3231 via I2C garantisce che ogni pacchetto dati abbia un timestamp preciso al secondo, indipendentemente dalla connessione NTP.\nNetwork Layer (HTTP/JSON): Il trasporto avviene tramite POST serializzate in JSON verso un endpoint Flask dedicato.\nStorage \u0026amp; Visualization Layer (Raspberry Pi): Un server Flask riceve i dati, li scrive su un database SQLite e genera un’interfaccia di controllo in tempo reale con grafici dinamici (Chart.js) e funzioni di export per i report mensili obbligatori.\nNon usiamo delay bloccanti. Il sistema lavora su cicli di polling definiti, garantendo la reattività del watchdog e la continuità del servizio. Se cerchi un giocattolo per vedere la temperatura di casa, sei nel posto sbagliato. Se ti serve un sistema che generi log pronti per un\u0026rsquo;ispezione sanitaria, continua a leggere.\nNote Tecniche rapide prima di iniziare: Il programma consta di vari \u0026ldquo;snippet\u0026rdquo; di codice, ma concettualmente è molto semplice e si appoggia su un componente hardware economico ma incredibilmente preciso e su un\u0026rsquo;architettura software ultra-semplice, che potete facilmente modificare con Gemini Thinking o ChatGPT. Questi i nodi salienti:\nRTC DS3231: Indispensabile. Il timer interno dell\u0026rsquo;ESP32 drifta troppo. Usiamo la libreria RTClib per gestire il bus I2C (Pin 21/22).\nFlask Backend: Configurato per girare su porta 5040. Assicurati che il firewall del Raspberry permetta l\u0026rsquo;ingresso dei pacchetti dall\u0026rsquo;IP dell\u0026rsquo;ESP32.\nPersistence: SQLite è scelto per la sua natura zero-config e la facilità di backup del singolo file .db.\nLicenza del programma Questo software è rilasciato sotto licenza Robotdazero Custom Liberal.\nCosa puoi fare:\nCopiare, modificare e distribuire il codice sorgente, usarlo per i tuoi progetti personali, didattici o prototipi industriali interni. Puoi montarlo e rimontarlo come meglio credi.\nCosa NON puoi fare:\nRivenderlo: Non puoi prendere questo codice (o una sua versione modificata) e venderlo come prodotto chiuso o servizio commerciale senza autorizzazione. In breve: Puoi fare quello che vuoi, basta che non provi a fare soldi con il mio lavoro. Nell\u0026rsquo;immagine in basso vedi l\u0026rsquo;output del programma con sensori simulati per brevità. Nella prossima revisione introdurremo la capacità di leggere direttamente un DS1820, un DHT11 e un sensore di pressione e umidità.\nCome installare il programma Dopo avere scaricato da GIT con il comando:\ngit clone git@github.com:sebadima/public.git sudo apt update \u0026amp;\u0026amp; sudo apt install -y python3-pip python3-venv sqlite3 ufw python3 -m venv venv source venv/bin/activate pip install flask chmod +x crea_tabella.sh ./crea_tabella.sh sudo ufw allow 5040/tcp python3 app.py Copy se preferisci non usare Github puoi scaricare tuuti i nostri programmi con:\nDownload Rapido Se non hai Git o non vuoi configurare chiavi SSH, scarica il nostro pacchetto \"public\" completo con un click. Scarica justpaste_env.zip 55555555555555555555555555555555555555555\nsqlite3 haccp_monitor.db \u0026lt; schema.sql I Sorgenti per ESP32 Makefile: all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update Copy platformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 lib_deps = adafruit/RTClib @ ^2.1.3 adafruit/Adafruit BusIO @ ^1.14.5 bblanchon/ArduinoJson @ ^6.21.3 knolleary/PubSubClient @ ^2.8 SPI Wire Copy main.ino (sorgente C++) #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;HTTPClient.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; #include \u0026#34;RTClib.h\u0026#34; const char* ssid = \u0026#34;SSID\u0026#34;; const char* password = \u0026#34;PASSWORD_WIFI\u0026#34;; const char* serverUrl = \u0026#34;http://192.168.1.153:5040/ingest\u0026#34;; RTC_DS3231 rtc; unsigned long lastMillis = 0; const long interval = 15000; void setup() { Serial.begin(115200); Wire.begin(21, 22); if (!rtc.begin()) { Serial.println(\u0026#34;[CRITICAL] RTC_NOT_FOUND\u0026#34;); while (1); } WiFi.begin(ssid, password); Serial.println(\u0026#34;[SYSTEM] START_MONITORING\u0026#34;); } void loop() { if (millis() - lastMillis \u0026gt;= interval) { lastMillis = millis(); // 1. LETTURA DATI DAL TIMER E SENSORI SIMULATI DateTime now = rtc.now(); float t1 = -18.0 + (random(-100, 100) / 100.0); float t2 = 14.0 + (random(-100, 100) / 100.0); float hum = 80.0 + (random(-50, 50) / 10.0); float pres = 1013.25 + (random(-100, 100) / 100.0); // 2. LOG SERIALE BRUTALE (Sempre attivo) char timestamp[20]; sprintf(timestamp, \u0026#34;%04d-%02d-%02d %02d:%02d:%02d\u0026#34;, now.year(), now.month(), now.day(), now.hour(), now.minute(), now.second()); Serial.print(\u0026#34;\u0026gt; DATA_LOG: \u0026#34;); Serial.print(timestamp); Serial.print(\u0026#34; | T1: \u0026#34;); Serial.print(t1); Serial.print(\u0026#34; | T2: \u0026#34;); Serial.print(t2); Serial.print(\u0026#34; | HUM: \u0026#34;); Serial.print(hum); Serial.print(\u0026#34; | PRES: \u0026#34;); Serial.println(pres); // 3. INVIO A FLASK (Se WiFi disponibile) if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin(serverUrl); http.addHeader(\u0026#34;Content-Type\u0026#34;, \u0026#34;application/json\u0026#34;); String json = \u0026#34;{\\\u0026#34;timestamp\\\u0026#34;:\\\u0026#34;\u0026#34; + String(timestamp) + \u0026#34;\\\u0026#34;,\u0026#34;; json += \u0026#34;\\\u0026#34;t1\\\u0026#34;:\u0026#34; + String(t1, 2) + \u0026#34;,\u0026#34;; json += \u0026#34;\\\u0026#34;t2\\\u0026#34;:\u0026#34; + String(t2, 2) + \u0026#34;,\u0026#34;; json += \u0026#34;\\\u0026#34;hum\\\u0026#34;:\u0026#34; + String(hum, 2) + \u0026#34;,\u0026#34;; json += \u0026#34;\\\u0026#34;pres\\\u0026#34;:\u0026#34; + String(pres, 2) + \u0026#34;}\u0026#34;; int code = http.POST(json); Serial.printf(\u0026#34;[NETWORK] SEND_STATUS: HTTP_%d\\n\u0026#34;, code); http.end(); } else { Serial.println(\u0026#34;[NETWORK] OFFLINE - DATA_NOT_SENT\u0026#34;); } Serial.println(\u0026#34;------------------------------------------------------------------\u0026#34;); } } Copy I programmi del server Flask Il file schema.sql CREATE TABLE IF NOT EXISTS haccp_log ( id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp DATETIME DEFAULT CURRENT_TIMESTAMP, temp_cella_1 REAL, temp_cella_2 REAL, umidita_relativa REAL, pressione_pa REAL ); Copy Il file app.py (sorgente flask) import sqlite3 import csv import io from flask import Flask, request, jsonify, Response, render_template_string from datetime import datetime, timedelta app = Flask(__name__) DB_FILE = \u0026#34;haccp_monitor.db\u0026#34; def query_db(query, args=(), one=False): with sqlite3.connect(DB_FILE) as conn: conn.row_factory = sqlite3.Row cur = conn.execute(query, args) rv = cur.fetchall() return (rv[0] if rv else None) if one else rv @app.route(\u0026#39;/ingest\u0026#39;, methods=[\u0026#39;POST\u0026#39;]) def ingest(): data = request.json try: ts = data.get(\u0026#39;timestamp\u0026#39;) with sqlite3.connect(DB_FILE) as conn: if ts: conn.execute( \u0026#34;INSERT INTO haccp_log (timestamp, temp_cella_1, temp_cella_2, umidita_relativa, pressione_pa) VALUES (?, ?, ?, ?, ?)\u0026#34;, (ts, data[\u0026#39;t1\u0026#39;], data[\u0026#39;t2\u0026#39;], data[\u0026#39;hum\u0026#39;], data[\u0026#39;pres\u0026#39;]) ) else: conn.execute( \u0026#34;INSERT INTO haccp_log (temp_cella_1, temp_cella_2, umidita_relativa, pressione_pa) VALUES (?, ?, ?, ?)\u0026#34;, (data[\u0026#39;t1\u0026#39;], data[\u0026#39;t2\u0026#39;], data[\u0026#39;hum\u0026#39;], data[\u0026#39;pres\u0026#39;]) ) return jsonify({\u0026#34;status\u0026#34;: \u0026#34;OK\u0026#34;}), 201 except Exception as e: return jsonify({\u0026#34;status\u0026#34;: \u0026#34;ERROR\u0026#34;, \u0026#34;msg\u0026#34;: str(e)}), 500 @app.route(\u0026#39;/data\u0026#39;) def get_data(): # Endpoint tecnico per il refresh AJAX del grafico data = query_db(\u0026#34;SELECT * FROM haccp_log ORDER BY timestamp DESC LIMIT 100\u0026#34;) return jsonify([dict(row) for row in data]) @app.route(\u0026#39;/export/\u0026lt;period\u0026gt;\u0026#39;) def export_csv(period): days = {\u0026#34;24h\u0026#34;: 1, \u0026#34;week\u0026#34;: 7, \u0026#34;month\u0026#34;: 30}.get(period, 1) since = (datetime.now() - timedelta(days=days)).strftime(\u0026#39;%Y-%m-%d %H:%M:%S\u0026#39;) rows = query_db(\u0026#34;SELECT * FROM haccp_log WHERE timestamp \u0026gt; ? ORDER BY timestamp ASC\u0026#34;, (since,)) output = io.StringIO() writer = csv.writer(output) writer.writerow([\u0026#39;ID\u0026#39;, \u0026#39;TIMESTAMP\u0026#39;, \u0026#39;TEMP_CELLA_1\u0026#39;, \u0026#39;TEMP_CELLA_2\u0026#39;, \u0026#39;UMIDITA_REL\u0026#39;, \u0026#39;PRESSIONE_PA\u0026#39;]) for row in rows: writer.writerow([row[\u0026#39;id\u0026#39;], row[\u0026#39;timestamp\u0026#39;], row[\u0026#39;temp_cella_1\u0026#39;], row[\u0026#39;temp_cella_2\u0026#39;], row[\u0026#39;umidita_relativa\u0026#39;], row[\u0026#39;pressione_pa\u0026#39;]]) return Response(output.getvalue(), mimetype=\u0026#34;text/csv\u0026#34;, headers={\u0026#34;Content-Disposition\u0026#34;: f\u0026#34;attachment; filename=haccp_report_{period}.csv\u0026#34;}) @app.route(\u0026#39;/\u0026#39;) def index(): data = query_db(\u0026#34;SELECT * FROM haccp_log ORDER BY timestamp DESC LIMIT 100\u0026#34;) data_list = [dict(row) for row in data] return render_template_string(HTML_UI, data=data_list) HTML_UI = \u0026#34;\u0026#34;\u0026#34; \u0026lt;!DOCTYPE html\u0026gt; \u0026lt;html lang=\u0026#34;it\u0026#34;\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta charset=\u0026#34;UTF-8\u0026#34;\u0026gt; \u0026lt;title\u0026gt;HACCP_LIVE_MONITOR\u0026lt;/title\u0026gt; \u0026lt;script src=\u0026#34;https://cdn.jsdelivr.net/npm/chart.js\u0026#34;\u0026gt;\u0026lt;/script\u0026gt; \u0026lt;style\u0026gt; body { background: #000; color: #0f0; font-family: \u0026#39;Courier New\u0026#39;, monospace; padding: 20px; } .container { max-width: 1200px; margin: 0 auto; } .header { border-bottom: 1px solid #0f0; padding-bottom: 10px; margin-bottom: 20px; } .btns { margin-bottom: 30px; display: flex; gap: 10px; } button { background: transparent; border: 1px solid #0f0; color: #0f0; padding: 10px 20px; cursor: pointer; font-weight: bold;} button:hover { background: #0f0; color: #000; } .chart-container { background: #050505; border: 1px solid #222; padding: 20px; height: 500px; position: relative; } .status-led { color: #0f0; font-size: 0.8em; float: right; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div class=\u0026#34;container\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;header\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;status-led\u0026#34; id=\u0026#34;sync-status\u0026#34;\u0026gt;SYNC: OK\u0026lt;/span\u0026gt; \u0026lt;h2\u0026gt;[ HACCP_MONITORING_SYSTEM_v1.4 ]\u0026lt;/h2\u0026gt; \u0026lt;p\u0026gt;SISTEMA: TEMPERATURE_CORE | REFRESH: AUTO (15s)\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;btns\u0026#34;\u0026gt; \u0026lt;button onclick=\u0026#34;location.href=\u0026#39;/export/24h\u0026#39;\u0026#34;\u0026gt;LOG_24H\u0026lt;/button\u0026gt; \u0026lt;button onclick=\u0026#34;location.href=\u0026#39;/export/week\u0026#39;\u0026#34;\u0026gt;LOG_SETTIMANA\u0026lt;/button\u0026gt; \u0026lt;button onclick=\u0026#34;location.href=\u0026#39;/export/month\u0026#39;\u0026#34;\u0026gt;REPORT_MENSILE\u0026lt;/button\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;chart-container\u0026#34;\u0026gt; \u0026lt;canvas id=\u0026#34;haccpChart\u0026#34;\u0026gt;\u0026lt;/canvas\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;script\u0026gt; let haccpChart; const ctx = document.getElementById(\u0026#39;haccpChart\u0026#39;).getContext(\u0026#39;2d\u0026#39;); function initChart(initialData) { const labels = initialData.map(r =\u0026gt; r.timestamp).reverse(); haccpChart = new Chart(ctx, { type: \u0026#39;line\u0026#39;, data: { labels: labels, datasets: [ { label: \u0026#39;Cella 1 (°C)\u0026#39;, data: initialData.map(r =\u0026gt; r.temp_cella_1).reverse(), borderColor: \u0026#39;#f00\u0026#39;, borderWidth: 2, tension: 0.3, pointRadius: 2 }, { label: \u0026#39;Cella 2 (°C)\u0026#39;, data: initialData.map(r =\u0026gt; r.temp_cella_2).reverse(), borderColor: \u0026#39;#ff0\u0026#39;, borderWidth: 2, tension: 0.3, pointRadius: 2 } ] }, options: { responsive: true, maintainAspectRatio: false, animation: false, scales: { x: { ticks: { color: \u0026#39;#0f0\u0026#39;, maxRotation: 45 }, grid: { color: \u0026#39;#111\u0026#39; } }, y: { ticks: { color: \u0026#39;#0f0\u0026#39; }, grid: { color: \u0026#39;#222\u0026#39; } } }, plugins: { legend: { labels: { color: \u0026#39;#0f0\u0026#39; } } } } }); } async function refreshData() { try { const response = await fetch(\u0026#39;/data\u0026#39;); const newData = await response.json(); const labels = newData.map(r =\u0026gt; r.timestamp).reverse(); haccpChart.data.labels = labels; haccpChart.data.datasets[0].data = newData.map(r =\u0026gt; r.temp_cella_1).reverse(); haccpChart.data.datasets[1].data = newData.map(r =\u0026gt; r.temp_cella_2).reverse(); haccpChart.update(\u0026#39;none\u0026#39;); document.getElementById(\u0026#39;sync-status\u0026#39;).innerText = \u0026#34;LAST_SYNC: \u0026#34; + new Date().toLocaleTimeString(); } catch (e) { document.getElementById(\u0026#39;sync-status\u0026#39;).innerText = \u0026#34;SYNC: ERROR\u0026#34;; } } // Avvio const initialData = {{ data|tojson }}; initChart(initialData); // Refresh ogni 15 secondi (allineato al timer 0x68) setInterval(refreshData, 15000); \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt; \u0026#34;\u0026#34;\u0026#34; if __name__ == \u0026#39;__main__\u0026#39;: app.run(host=\u0026#39;0.0.0.0\u0026#39;, port=5040, debug=False) Copy Il file /etc/systemd/system/haccp.service [Unit] Description=Sentinel HACCP Backend Service After=network.target [Service] User=pi WorkingDirectory=/home/pi/haccp ExecStart=/usr/bin/python3 app.py Restart=always RestartSec=5 [Install] WantedBy=multi-user.target Copy Systemd Service: Gestione Professionale del Processo In ambiente Linux (Raspberry Pi OS), un Service File è lo standard industriale per trasformare uno script Python in un servizio di sistema resiliente. Permette al monitoraggio HACCP di essere autonomo, avviandosi al boot e ripristinandosi automaticamente dopo ogni crash. Analisi Parametri \"Field-Ready\" 🚀 After=network.target: Garantisce che Flask parta solo quando la rete è pronta. 🔄 Restart=always: Monitoraggio attivo 24/7. Se il processo muore, il sistema lo resuscita. ⏱️ RestartSec=5: Previene il churning della CPU in caso di errori hardware persistenti. 🛡️ User=pi: Sicurezza prima di tutto. Il servizio opera senza privilegi di root non necessari. Deployment Rapido (Terminale) Esegui questi comandi atomici per rendere il monitoraggio immortale:\n# 1. Creazione del file descrittore sudo nano /etc/systemd/system/haccp.service # 2. Registrazione del nuovo servizio sudo systemctl daemon-reload # 3. Abilitazione all'avvio automatico (Boot) sudo systemctl enable haccp.service # 4. Esecuzione immediata sudo systemctl start haccp.service Strumenti di Diagnostica Comando Funzione systemctl status haccp Verifica lo stato di salute del servizio. journalctl -u haccp -f Analisi dei log in tempo reale (STDOUT). Sentinel Node Infrastructure - Rev. 2026 Conclusioni Implementare un sistema di monitoraggio HACCP non significa solo leggere una temperatura, ma garantire che quel dato sia immutabile, tracciabile e sempre disponibile. L\u0026rsquo;accoppiata ESP32 e Raspberry Pi, se configurata con i criteri che abbiamo visto, trasforma un ammasso di silicio in uno strumento di precisione professionale.\nPunti chiave del sistema:\nAffidabilità del Tempo: Senza un RTC fisico (DS3231), i tuoi log valgono zero. La deriva software è il nemico numero uno della conformità.\nResilienza della Rete: L\u0026rsquo;ESP32 logga su seriale anche se il WiFi muore. È la tua \u0026ldquo;scatola nera\u0026rdquo; in caso di crash del server.\nProprietà del Dato: I dati sono nel tuo database SQLite, non su un cloud di terzi che potrebbe sparire o chiederti un abbonamento domani.\nQuesto progetto è la base di partenza. Se vuoi portarlo al livello successivo (Field-Ready), il passo obbligatorio è l\u0026rsquo;ingegnerizzazione dell\u0026rsquo;hardware per proteggere i componenti dalle interferenze elettromagnetiche e dagli sbalzi di tensione. Il codice è pronto. Il database è inizializzato. Ora tocca a te alimentare il sistema e smettere di segnare le temperature a mano su fogli di carta che finiranno persi.\nDEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY ","permalink":"https://www.robotdazero.it/blog/monitoraggio-haccp-con-esp32-raspberry-pi-timer-rtc-ds3231/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/monitoraggio-haccp-con-esp32-raspberry-pi-timer-rtc-ds3231/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione\u003c/h2\u003e\n\u003cp\u003eIl monitoraggio HACCP non è una questione di estetica, ma di integrità del dato. In un ambiente industriale o di conservazione alimentare, un \u0026ldquo;buco\u0026rdquo; nei log non è un’opzione. Se il database non riceve dati perché il WiFi è caduto o il clock interno è andato in deriva, il sistema è fallato alla base.\u003c/p\u003e\n\u003cp\u003eIn questo post analizziamo un\u0026rsquo;architettura di monitoraggio professionale basata su \u003cstrong\u003etre pilastri\u003c/strong\u003e di base:\u003c/p\u003e","title":"Monitoraggio HACCP con ESP32, Raspberry Pi e il timer RTC DS3231"},{"content":"\nDimenticate il DHT11 e le sue letture approssimative. Se volete davvero domare la termodinamica di un sistema, serve un loop di controllo serio, non un giocattolo. In questo progetto ho portato l\u0026rsquo;ESP32 oltre il semplice monitoraggio passivo. Partendo dalle saldature a stagno su convertitori di tensione e ventole PWM — perché i breadboard sono per i prototipi che non funzionano — ho implementato un algoritmo PID (Proporzionale-Integrale-Derivativo) puro, interfacciato a un sensore DS18B20 via protocollo OneWire.\nIl risultato? Un sistema di raffreddamento attivo che non si limita a \u0026ldquo;scattare\u0026rdquo; in modo isterico quando supera una soglia, ma accompagna la temperatura verso il setpoint con una precisione chirurgica di 0.06°C. Niente interfacce pesanti, niente bloatware: solo codice C++ RAW, log via terminale e automazione industriale nel palmo di una mano.\nPerché il controllo ON/OFF ha fallito (e il PID ha vinto) Chiunque abbia provato a raffreddare un piccolo ambiente (come una camera di fermentazione o un rack server DIY) conosce il problema dell\u0026rsquo;overshoot. Con un termostato classico (ON/OFF):\nLa temperatura sale. La ventola parte al 100%. Il sensore si raffredda in ritardo, ma l\u0026rsquo;aria fredda continua a spingere. La temperatura crolla ben sotto il target. Questo crea un\u0026rsquo;onda sinusoidale di temperatura che stressa i componenti. Il PID, invece, modula la potenza della ventola (PWM) calcolando non solo l\u0026rsquo;errore attuale, ma anche la sua storia (Integrale) e la sua velocità di cambiamento (Derivativo). È la differenza tra inchiodare in auto e frenare dolcemente al semaforo.\nL\u0026rsquo;Hardware: Scelte Critiche Per ottenere risultati stabili, ho dovuto eliminare due colli di bottiglia:\nIl Sensore: Il DHT11 ha una risoluzione ridicola (spesso ±1°C) e un protocollo lento. Il DS18B20 lavora su bus OneWire digitale e offre risoluzioni decimale reali (es. 17.19°C, 17.25°C). Le Connessioni: I jumper ballano. Per un termine Derivativo ($K_d$) stabile, il segnale deve essere pulito. Saldare i collegamenti è stato l\u0026rsquo;unico modo per eliminare il rumore elettrico che il PID avrebbe interpretato come picchi di calore. Pinout utilizzato su ESP32 GPIO 27: Bus OneWire (DS18B20) con resistenza di pull-up da 4.7kΩ. GPIO 33: Output PWM per il controllo MOSFET/Ventola. Figura 1: Schema dei collegamenti hardware per il controllo PID\nFigura 2: Hardware di recupero: ventola DC estratta da una workstation dismessa.\nFigura 3: Immagine reale del prototipo della ventola con controllo PID.\nIl Codice: Implementazione RAW Ecco l\u0026rsquo;implementazione completa. Ho evitato librerie PID pronte per avere il controllo totale sulla formula e sul \u0026ldquo;Windup\u0026rdquo; dell\u0026rsquo;integrale. Notate l\u0026rsquo;uso di Serial.printf per generare un log CSV-ready direttamente da hardware.\n#include \u0026lt;Arduino.h\u0026gt; #include \u0026lt;OneWire.h\u0026gt; #include \u0026lt;DallasTemperature.h\u0026gt; // --- HARDWARE --- #define ONE_WIRE_BUS 27 #define FAN_PIN 33 // --- PID --- double setpoint = 17.5; double Kp = 130.0; double Ki = 12.0; double Kd = 30.0; double input, lastInput, cumError; bool fanWasOff = true; // --- PWM --- #define PWM_CHAN 0 #define PWM_FREQ 5000 #define PWM_RES 8 OneWire oneWire(ONE_WIRE_BUS); DallasTemperature sensors(\u0026amp;oneWire); void setup() { Serial.begin(115200); pinMode(ONE_WIRE_BUS, INPUT_PULLUP); sensors.begin(); ledcSetup(PWM_CHAN, PWM_FREQ, PWM_RES); ledcAttachPin(FAN_PIN, PWM_CHAN); ledcWrite(PWM_CHAN, 0); delay(1000); Serial.print(\u0026#34;--- START PID LOG ---\\r\\n\u0026#34;); } void loop() { sensors.requestTemperatures(); float tempRead = sensors.getTempCByIndex(0); if (tempRead == DEVICE_DISCONNECTED_C) { ledcWrite(PWM_CHAN, 0); return; } input = tempRead; double output = 0; double error = input - setpoint; const char* fanStatus = \u0026#34;FAN=Off\u0026#34;; if (error \u0026lt;= 0) { output = 0; cumError = 0; fanWasOff = true; fanStatus = \u0026#34;FAN=Off\u0026#34;; } else { cumError += error; if (cumError \u0026gt; 30) cumError = 30; double rateError = input - lastInput; output = (Kp * error) + (Ki * cumError) - (Kd * rateError); if (fanWasOff \u0026amp;\u0026amp; output \u0026gt; 10) { ledcWrite(PWM_CHAN, 255); delay(150); fanWasOff = false; } if (output \u0026lt; 160) output = 160; if (output \u0026gt; 255) output = 255; fanStatus = \u0026#34;FAN=On\u0026#34;; } ledcWrite(PWM_CHAN, (int)output); lastInput = input; // Log ultra-descrittivo per il terminale Serial.printf(\u0026#34;Timestamp: %lu, Temp: %.2f, Err: %.2f, PWM: %.0f, %s\\r\\n\u0026#34;, millis(), input, error, output, fanStatus); delay(800); } Copy Il LOG del programma Non c\u0026rsquo;è automazione senza dati. Ho collegato l\u0026rsquo;ESP32 al mio Raspberry Pi e ho catturato l\u0026rsquo;output seriale con picocom per verificare la risposta al gradino (avvicinando una fonte di calore). Ecco uno stralcio del log reale catturato durante lo stress test:\nTo exit picocom, use CNTL-A followed by CNTL-X. picocom v3.1 port is : /dev/ttyUSB0 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no hangup is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : omap is : emap is : crcrlf,delbs, logfile is : none initstring : none exit_after is : not set exit is : no Type [C-a] [C-h] to see available commands Terminal ready Timestamp: 33467, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 34297, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 35127, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 35957, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 36787, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 37617, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Timestamp: 38447, Temp: 16.81, Err: -0.69, PWM: 0, FAN=Off Timestamp: 39277, Temp: 16.94, Err: -0.56, PWM: 0, FAN=Off Timestamp: 40107, Temp: 17.06, Err: -0.44, PWM: 0, FAN=Off Timestamp: 40937, Temp: 17.19, Err: -0.31, PWM: 0, FAN=Off Timestamp: 41767, Temp: 17.44, Err: -0.06, PWM: 0, FAN=Off Timestamp: 42747, Temp: 17.69, Err: 0.19, PWM: 160, FAN=On Timestamp: 43577, Temp: 18.00, Err: 0.50, PWM: 160, FAN=On Timestamp: 44407, Temp: 18.38, Err: 0.88, PWM: 160, FAN=On Timestamp: 45237, Temp: 18.62, Err: 1.12, PWM: 171, FAN=On Timestamp: 46067, Temp: 18.94, Err: 1.44, PWM: 227, FAN=On Timestamp: 46897, Temp: 19.19, Err: 1.69, PWM: 255, FAN=On Timestamp: 47727, Temp: 19.44, Err: 1.94, PWM: 255, FAN=On Timestamp: 48557, Temp: 19.62, Err: 2.12, PWM: 255, FAN=On Timestamp: 54367, Temp: 17.44, Err: -0.06, PWM: 0, FAN=Off Timestamp: 55197, Temp: 17.19, Err: -0.31, PWM: 0, FAN=Off Timestamp: 56027, Temp: 16.94, Err: -0.56, PWM: 0, FAN=Off Timestamp: 56857, Temp: 16.81, Err: -0.69, PWM: 0, FAN=Off Timestamp: 57687, Temp: 16.75, Err: -0.75, PWM: 0, FAN=Off Terminating... Thanks for using picocom Analisi del Comportamento PID e Logica di Controllo Il log non mente ma per essere utile ppuntualizzo qualche dato interessante\nStabilità in Idle e Identificazione Setpoint Fino al timestamp 41767, il sistema rimane in stato di riposo con una temperatura media di 16.75°C. Considerando che l\u0026rsquo;errore diventa positivo solo al superamento dei 17.5°C, si deduce un setpoint di riferimento impostato a circa 17.5°C - come viene confermato dalla riga di programma: double setpoint = 17.5;. In questa fase il PWM è a 0, indicando che la componente integrale (se presente) non ha accumulato errore pregresso. Soglia di Attivazione e Risposta Istantanea Al timestamp 42747, la temperatura tocca i 17.69°C ($Err: 0.19$). Il controller reagisce immediatamente applicando un PWM di 160, che rappresenta il floor (valore minimo di attivazione) per vincere l\u0026rsquo;inerzia meccanica della ventola e garantire l\u0026rsquo;avvio del flusso d\u0026rsquo;aria. Azione Proporzionale e Saturazione Il log evidenzia una chiara progressione della componente proporzionale ($K_p$):Con $Err: 1.12$, il PWM sale a 171.Con $Err: 1.44$, il PWM accelera a 227.Al raggiungimento di un errore di 1.69, il sistema entra in saturazione (PWM 255), erogando la massima potenza per contrastare il trend termico crescente. Isteresi e Fase di Spegnimento (Raffreddamento) Nella fase di rientro (dal timestamp 54367), si nota il comportamento dell\u0026rsquo;isteresi:La ventola rimane attiva durante tutta la discesa termica finché l\u0026rsquo;errore non torna negativo.Lo spegnimento (FAN=Off) avviene esattamente al timestamp 54367, quando la temperatura scende a 17.44°C ($Err: -0.06$). Questo conferma che il sistema non utilizza un\u0026rsquo;isteresi temporale, ma si basa puramente sul segno dell\u0026rsquo;errore rispetto al setpoint per il cutoff del segnale PWM.\nI dati di Sintesi Operativa del controller \"artigianale\" Fase Operativa Temperatura (°C) Errore ($Err$) PWM Stato Ventola Idle / Riposo 16.75 -0.75 0 Off Soglia Attivazione 17.69 +0.19 160 On Saturazione (Max) 19.19 +1.69 255 On Spegnimento Isteresi 17.44 -0.06 0 Off Analisi Logica del Controller Configurazione Setpoint: Il setpoint di riferimento è identificato a 17.5°C. Il sistema mantiene lo stato di idle finché $T \\le 17.5$°C. Risposta Proporzionale ($K_p$): Superata la soglia di attivazione, il controller applica un incremento dinamico. Il passaggio da PWM 171 ($Err +1.12$) a PWM 227 ($Err +1.44$) evidenzia un guadagno proporzionale attivo prima della saturazione a 255. Vincolo Meccanico (Floor PWM): È impostato un valore minimo di 160. Questa soglia evita lo stallo del motore, garantendo che la ventola operi sempre all'interno del proprio regime di rotazione lineare. Gestione Isteresi: Il sistema non effettua uno spegnimento immediato al ritorno sul setpoint, ma attende che l'errore diventi negativo ($Err \u003c 0$). La ventola viene disattivata a 17.44°C, prevenendo cicli di accensione/spegnimento troppo frequenti (chattering) in prossimità del valore critico. Il controller PID: Teoria, Matematica e Implementazione Reale Siamo arrivati al nodo cruciale. Finora abbiamo parlato di saldature e di collegamenti, ma la vera magia di questo progetto è invisibile: risiede nella matematica. Molti maker si fermano al controllo \"Bang-Bang\" (acceso/spento), trattando l'ESP32 come se fosse un semplice interruttore bimetallico degli anni '50. Ma quando implementiamo un PID (Proporzionale-Integrale-Derivativo), stiamo facendo compiere al microcontrollore un salto quantico: da semplice esecutore a sistema predittivo. 1. Oltre l'ON/OFF: La Fisica del Controllo Immaginate di guidare un'auto e di dovervi fermare a un semaforo rosso. Un sistema ON/OFF (come un termostato classico) accelererebbe al massimo fino alla linea di arresto, per poi inchiodare istantaneamente. Risultato? I passeggeri (o nel nostro caso, i componenti elettronici) subiscono uno stress inutile e l'auto probabilmente si fermerebbe oltre la linea (Overshoot). Il PID, invece, guida come un pilota esperto: inizia a frenare dolcemente molto prima, dosando la pressione sul pedale in base alla distanza rimanente e alla velocità attuale. In termini termodinamici, questo significa che il sistema non aspetta di superare il target per spegnere la ventola, ma ne riduce la potenza man mano che l'errore diminuisce. 2. La Matematica spiegata (Senza mal di testa) L'algoritmo PID non è altro che una somma pesata di tre termini che agiscono su tre dimensioni temporali diverse. Vediamoli nel dettaglio, perché capire questo significa capire l'automazione industriale: Il Termine Proporzionale ($K_p$ - Il Presente):\nÈ la forza bruta. Guarda l'errore attuale ($SetPoint - Temperatura Attuale$). Se l'errore è grande, l'uscita è grande. È come una molla: più la tiri, più forza oppone. Nel codice: Kp * error Il Termine Integrale ($K_i$ - Il Passato):\nQuesta è la \"memoria\" del sistema. Se il termine Proporzionale non è sufficiente a raggiungere il target (errore a regime o Steady-State Error), l'Integrale accumula questo errore nel tempo. \"Ricorda\" che non siamo ancora arrivati e aggiunge potenza extra finché il gap non si chiude. Nel codice: Ki * cumError Il Termine Derivativo ($K_d$ - Il Futuro):\nIl più affascinante. Analizza la velocità con cui la temperatura sta cambiando. Se stiamo avvicinandoci al target troppo velocemente, il Derivativo \"frena\" preventivamente l'uscita per evitare di superare il bersaglio. È l'ammortizzatore del sistema. Nel codice: Kd * rateError 3. Dall'IoT all'Aeronautica: Perché è uno standard? Perché insistere tanto su un algoritmo del 1922 in un blog del 2026? Perché il PID è l'algoritmo che \"regge il mondo\". Lo stesso codice C++ che gira su questo ESP32 da 5 euro è concettualmente identico a quello che mantiene in volo un quadricottero (correggendo la velocità dei motori migliaia di volte al secondo per contrastare il vento) o che stabilizza l'assetto di un aereo di linea. In ambito IoT (Internet of Things), l'uso del PID è ciò che distingue un gadget amatoriale da un prodotto professionale. Un sistema di riscaldamento smart che usa il PID consuma meno energia (evitando picchi continui) e prolunga la vita dei relè e delle batterie, modulando l'intervento invece di stressare l'hardware con cicli continui di accensione e spegnimento. 4. Un codice sorgente brevissimo: Spesso si pensa che per fare cose complesse servano librerie enormi. Il mio approccio è opposto: Less is More. Guardate come l'intera logica di controllo si risolva in pochissime righe di C++ puro. Questo snippet è portabile, leggero ed estremamente veloce: // 1. Calcolo dell'Errore Attuale (Il Presente) double error = input - setpoint; // 2. Calcolo dell'Accumulo (Il Passato) // Nota: aggiungiamo un limite (clamp) a 30 per evitare il \"Windup\" eccessivo cumError += error; if (cumError \u003e 30) cumError = 30; // 3. Calcolo della Velocità di variazione (Il Futuro) double rateError = input - lastInput; // 4. LA SOMMA PESATA (L'Output finale) output = (Kp * error) + (Ki * cumError) - (Kd * rateError); Notate la gestione del \"Integral Windup\" (if (cumError \u003e 30)...). Senza questa riga, se lasciaste il sistema acceso senza ventola collegata, l'errore accumulato crescerebbe all'infinito. Quando ricolleghereste la ventola, questa rimarrebbe al 100% per ore prima di scaricare l'errore accumulato. Piccoli dettagli che fanno la differenza tra un codice che compila e uno che funziona nel mondo reale. 5. Sperimenta: La Guida al Tuning Il valore di questo progetto non è copiarlo, ma adattarlo. La vostra ventola, il vostro dissipatore e il vostro ambiente hanno un'inerzia termica diversa dalla mia. Ecco come potete modificare i parametri all'inizio dello sketch per adattarli alle vostre esigenze: Il sistema è lento a reagire? Aumentate Kp. Se lo alzate troppo, il sistema inizierà a oscillare violentemente. La temperatura si stabilizza ma rimane sotto il target (es. 17.2°C invece di 17.5°C)? Aumentate Ki. Questo darà la spinta finale per chiudere l'errore. Il sistema raggiunge il target ma lo supera spesso (Overshoot)? Aumentate Kd. Questo aumenterà l'effetto \"frenante\" all'avvicinarsi della meta. Fonti e Riferimenti Tecnici DS18B20 Datasheet (Maxim Integrated)\nIl documento fondamentale per capire i tempi di conversione a 12-bit e i registri interni del sensore. Espressif LEDC PWM Documentation\nLa documentazione ufficiale per la gestione hardware del PWM (LEDC) su architettura ESP32. PID Theory Explained (Wikipedia)\nLa matematica pura dietro l'algoritmo di controllo e la spiegazione dei tre termini (P, I, D). Maxim Integrated App Note 126: 1-Wire Communication\nApprofondimento tecnico sul protocollo di comunicazione digitale usato per interrogare il sensore senza errori di parità. Improving the Beginner’s PID\nUn'ottima lettura tecnica che spiega problematiche avanzate come l'Integral Windup e il Derivative Kick, risolte nel nostro codice RAW. PID Tuning Guide\nMetodi empirici (come il metodo Ziegler-Nichols) per trovare i valori K senza andare a tentativi. ","permalink":"https://www.robotdazero.it/blog/esp32-ds18b20-implementare-un-controllo-pid-reale-per-ventole-pwm/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/esp32-ds18b20-implementare-un-controllo-pid-reale-per-ventole-pwm/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\nDimenticate il DHT11 e le sue letture approssimative. Se volete davvero domare la termodinamica di un sistema, serve un loop di controllo serio, non un giocattolo.\n\u003cp\u003eIn questo progetto ho portato l\u0026rsquo;\u003cstrong\u003eESP32\u003c/strong\u003e oltre il semplice monitoraggio passivo. Partendo dalle saldature a stagno su convertitori di tensione e ventole PWM — perché i breadboard sono per i prototipi che non funzionano — ho implementato un algoritmo \u003cstrong\u003ePID (Proporzionale-Integrale-Derivativo)\u003c/strong\u003e puro, interfacciato a un sensore \u003cstrong\u003eDS18B20\u003c/strong\u003e via protocollo OneWire.\u003c/p\u003e","title":"ESP32 + DS18B20: Implementare un controllo PID reale per ventole PWM"},{"content":"\nIl sensore ad ultrasuoni HC-SR04 è un dispositivo di rilevamento basato sulla tecnologia degli ultrasuoni, che utilizza un segnale sonoro ad alta frequenza per misurare la distanza tra il sensore e un oggetto.\nQuesto sensore è ampiamente utilizzato in una vasta gamma di applicazioni, come la robotica, l’automazione industriale, la sicurezza e la domotica.\nCosa sono gli ultrasuoni? Gli ultrasuoni sono onde sonore ad alta frequenza, al di sopra del limite di udibilità dell’orecchio umano, ovvero superiori ai 20.000 Hz. Queste onde sonore si propagano attraverso il mezzo in cui si trovano, come ad esempio l’aria o l’acqua.\nGli ultrasuoni vengono utilizzati in una vasta gamma di applicazioni, come ad esempio la medicina, l’industria, la ricerca, la sicurezza e la robotica. Ad esempio, in medicina gli ultrasuoni vengono utilizzati per diagnosticare e monitorare le condizioni dei pazienti, in particolare per immagini ecografiche. In industria, gli ultrasuoni vengono utilizzati per misurare la distanza, rilevare le imperfezioni nei materiali e per la pulizia ad ultrasuoni.\nGli ultrasuoni sono generati da dispositivi chiamati trasduttori ad ultrasuoni, che convertono un segnale elettrico in un’onda sonora ad alta frequenza. Quando gli ultrasuoni incontrano un oggetto, parte dell’energia viene riflessa e ritorna al trasduttore. In questo modo, il trasduttore può rilevare la presenza e la posizione dell’oggetto.\nSi propagano in svariati mezzi, anche non trasparenti come i metalli si riflettono sugli oggetti che incontrano. Ciò significa che gli ultrasuoni possono essere utilizzati per rilevare la presenza di oggetti, anche se non visibili, come ad esempio all’interno di una parete o sotto il terreno. Possono essere utilizzati per misurare la distanza grazie alla capacità di misurare il tempo impiegato dal segnale sonoro per viaggiare dalla sorgente al bersaglio e ritornare. Questo principio è utilizzato in diversi dispositivi, come nel sensore che trattiamo in questo post.\nCome funziona Il funzionamento del sensore ad ultrasuoni HC-SR04 è abbastanza semplice. Il sensore invia un impulso sonoro ad alta frequenza nell’ambiente circostante, che viene poi riflesso da un oggetto.\nGli impulsi ad alta frequenza sono segnali acustici o elettromagnetici che si ripetono rapidamente nel tempo, con una frequenza superiore a quella delle onde sonore udibili dall’orecchio umano (20 Hz – 20.000 Hz). Solitamente si parla di impulsi ad alta frequenza quando la frequenza supera i 100.000 Hz, o 100 kHz. Sono utilizzati in diverse applicazioni, tra cui la comunicazione wireless, la tecnologia radar, la pulizia ad ultrasuoni, la saldatura ad alta frequenza.\nIl sensore riceve quindi il segnale riflettente e misura il tempo impiegato dal segnale per viaggiare dalla sorgente al bersaglio e ritornare al sensore. Questo tempo di volo viene poi convertito in una distanza utilizzando una semplice formula matematica.\nIl sensore ad ultrasuoni HC-SR04 è in grado di rilevare oggetti entro una gamma di distanze che può variare da pochi centimetri fino a diversi metri, a seconda della configurazione del sensore. Inoltre, il sensore è in grado di rilevare oggetti indipendentemente dal loro colore, forma e consistenza, il che lo rende adatto per una vasta gamma di applicazioni.\nIl sensore ad ultrasuoni HC-SR04 può essere facilmente interfacciato con microcontrollori come l’Arduino o Raspberry Pi, attraverso un’interfaccia digitale come GPIO o PWM. Inoltre, il sensore ad ultrasuoni HC-SR04 è dotato di un’uscita digitale che fornisce un segnale logico ad alta o bassa tensione in base alla presenza o assenza di un oggetto rilevato.\nInoltre, il sensore ad ultrasuoni HC-SR04 è facile da utilizzare e configurare, grazie alla disponibilità di librerie software e di codice di esempio per i principali microcontrollori. Ciò rende il sensore ad ultrasuoni HC-SR04 una scelta ideale per i progetti di robotica e automazione, in cui la rilevazione di oggetti è fondamentale.\nIn conclusione il sensore ad ultrasuoni HC-SR04 è un dispositivo di rilevamento semplice ma efficace, che offre una vasta gamma di applicazioni. Grazie alla sua facilità d’uso, al costo contenuto e alle prestazioni elevate, questo sensore è una scelta popolare tra i progettisti di robotica, automazione e sicurezza.\nRobotdazero.it - post - R.179.3.4.0\n","permalink":"https://www.robotdazero.it/blog/il-sensore-ad-ultrasuoni-hc-sr04/","summary":"\u003cp\u003e\u003cimg alt=\"sensore ad ultrasuoni hc sr04 img1\" loading=\"lazy\" src=\"/blog/il-sensore-ad-ultrasuoni-hc-sr04/header.jpeg\"\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cp\u003eIl sensore ad ultrasuoni HC-SR04 è un dispositivo di rilevamento basato sulla tecnologia degli ultrasuoni, che utilizza un segnale sonoro ad alta frequenza per misurare la distanza tra il sensore e un oggetto.\u003c/p\u003e\n\u003cp\u003eQuesto sensore è ampiamente utilizzato in una vasta gamma di applicazioni, come la robotica, l’automazione industriale, la sicurezza e la domotica.\u003c/p\u003e\n\u003ch2 id=\"cosa-sono-gli-ultrasuoni\"\u003eCosa sono gli ultrasuoni?\u003c/h2\u003e\n\u003cp\u003eGli ultrasuoni sono onde sonore ad alta frequenza, al di sopra del limite di udibilità dell’orecchio umano, ovvero superiori ai 20.000 Hz. Queste onde sonore si propagano attraverso il mezzo in cui si trovano, come ad esempio l’aria o l’acqua.\u003c/p\u003e","title":"Il sensore ad ultrasuoni HC-SR04"},{"content":"\nL\u0026rsquo;esempio fornito da Espressif per il Provisioning delle password Wi-FI con Bluetooth pare non funzionare correttamente su Platformio nella ultima release delle librerie. Vediamo come correggere velocemente questo errore \u0026hellip;\nDescrizione generale L\u0026rsquo;uso di esp_bt_controller_mem_release non sembra corretto in esp32-hal-misc.c. Nella funzione initArduino () se hai impostato BT_ENABLED in sdkconfig, chiamerà btInUse per determinare se rilasciare la memoria BT. Ci sono due problemi.\nInnanzitutto, utilizzando lo schizzo di esempio riportato di seguito (una versione leggermente modificata dell\u0026rsquo;esempio di provisioning incluso in questa libreria) non sembra collegarsi correttamente. L\u0026rsquo;esempio non funzionerà correttamente poiché la memoria BT viene rilasciata in initArduino, quindi il tentativo di abilitare BT in seguito per il provisioning non riesce. Il collegamento debole non funziona come previsto.\nUn esempio dell\u0026rsquo;errore 259 ### Debug Message E (912) wifi_prov_scheme_ble: bt_mem_release of classic BT failed 259 I (920) phy_init: phy_version 4670,719f9f6,Feb 18 2021,17:07:07 I (1022) wifi:mode : sta (ac:0b:fb:6c:f4:8c) I (1023) wifi:enable tsf I (1024) wifi:Set ps type: 1 E (1027) simple_ble: simple_ble_start enable controller failed 259 E (1028) protocomm_ble: simple_ble_start failed w/ error code 0x103 E (1035) wifi_prov_scheme_ble: Failed to start protocomm BLE service E (1041) wifi_prov_mgr: Failed to start service In secondo luogo, anche questo modello sembra sbagliato. Il codice in initArduino() implicherebbe che si potrebbe avere CONFIG_BT_ENABLED ma btInUse () restituisce false che, per il codice, non sarebbe mai possibile. Se CONFIG_BT_ENABLED è sì allora esp32-hal-bt.c dichiara btInUse () per restituire sempre true. Quindi non c\u0026rsquo;è uno scenario in cui se la configurazione è abilitata btInUse() dovrebbe restituire false (anche se lo fa per il primo problema menzionato sopra).\nQuesto rende il seguente blocco di codice in esp32-hal-misc.c un poco sconcertante:\n#ifdef CONFIG_BT_ENABLED if(!btInUse()){ esp_bt_controller_mem_release(ESP_BT_MODE_BTDM); } #endif Come risolvere l\u0026rsquo;Errore 259 su ESP32 Per far funzionare il codice di esempio di provisioning, la chiamata a esp_bt_controller_mem_release NON deve essere chiamata in initArduino.\nRisoluzione dell\u0026rsquo;errore step by step Trova il file esp32-hal-misc.c Lancia il tuo editor preferito Trova la riga 266 Commenta con \u0026ldquo;//\u0026rdquo; la linea: \u0026ldquo;esp_bt_controller_mem_release(ESP_BT_MODE_BTDM);\u0026rdquo; Salva il file e ricompila con \u0026ldquo;Make\u0026rdquo; i programmi affetti dall\u0026rsquo;errore \u0026ldquo;simple_ble_start enable controller failed 259\u0026rdquo;. 266 #ifdef CONFIG_BT_ENABLED 267 if(!btInUse()){ 268 //esp_bt_controller_mem_release(ESP_BT_MODE_BTDM); 269 } 270 #endif 271 init(); 272 initVariant(); 273 } 274 ","permalink":"https://www.robotdazero.it/blog/come-correggere-errore-259-sui-programmi-esp32-per-bluetooth/","summary":"\u003cp\u003e\u003cimg alt=\"immagine dell ESP32 con il logo del Bluetooth\" loading=\"lazy\" src=\"/blog/come-correggere-errore-259-sui-programmi-esp32-per-bluetooth/header.webp\"\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cem\u003eL\u0026rsquo;esempio fornito da Espressif per il Provisioning delle password Wi-FI con Bluetooth pare non funzionare correttamente su Platformio nella ultima release delle librerie. Vediamo come correggere velocemente questo errore \u0026hellip;\u003c/em\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"descrizione-generale\"\u003eDescrizione generale\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;uso di esp_bt_controller_mem_release non sembra corretto in esp32-hal-misc.c. Nella funzione initArduino () se hai impostato BT_ENABLED in sdkconfig, chiamerà btInUse per determinare se rilasciare la memoria BT. Ci sono due problemi.\u003c/p\u003e","title":"Come correggere Errore 259 sui programmi ESP32 per Bluetooth"},{"content":" Questo è il driver del motore più semplice che potrebbe essere costruito utilizzando un solo transistor NPN, che è controllato e guidato dalla scheda micro controller ESP32.\nUn motore DC (motore a corrente continua) è un dispositivo elettromeccanico estremamente diffuso nella automazione di fabbrica, nella robotica e nella elettronica di consumo. Riesce a convertire l\u0026rsquo;energia elettrica in energia meccanica ed è costituito da una combinazione di componenti elettrici e magnetici che consentono il movimento rotatorio.\nUn motore a corrente continua è costituito da due componenti principali: Statore e Rotore. Lo statore è la parte fissa del motore ed è composto da un magnete permanente e da una serie di avvolgimenti di filo di rame, che creano un campo magnetico stazionario. Il rotore è la parte mobile del motore, anch\u0026rsquo;esso contiene degli di avvolgimenti (noti come avvolgimenti del rotore), che creano un campo magnetico aggiuntivo. La interazione tra i due campi magnetici di statore e rotore permette di creare il movimento di rotazione.\nMateriali e componenti Microcontrollore ESP32 Motore a corrente continua Transistor BC337 Resistenza da 100Ω Diodo N4148 connettori Dupont Breadboard Collegamento del segnale Collegare una resistenza da 100Ω al pin di base (centrale) del transistor NPN per proteggere la scheda EPS32 da sovratensione, quindi collegarla in serie a D5\nLa alimentazione Collegare il pin del collettore (a destra) a terra. Collegare il perno dell\u0026rsquo;emettitore (a sinistra) al perno positivo del diodo per uso generale. Collegare il pin negativo del diodo general purpose a 3.3 V.\nIl motore DC Collegare il motore DC Collegare uno dei pin a entrambe le estremità del diodo. L\u0026rsquo;ordine non ha importanza, cambia solo la rotazione che è arbitraria e può essere codificata come alta attiva o bassa attiva. Nella immagine in basso il motore elettrico smontato, come si vede si tratta del solito motorino economico che troviamo in molti gadget e giocattoli.\nIn questa immagine invece vediamo il motorino con il moltiplicatore collegato per aumentare la coppia e i due fili per il collegamento. La polarità dei due fili rosso e nero non ha particolare importanza nel nostro progettino didattico, ma per applicazioni più complesse si dovrebbe sempre fare attenzione alla polarità e al verso di rotazione.\nLo schema elettrico Il programma Scegliere ESP32 come la scheda sotto strumenti,e collegarlo. Scegli la porta USB corrispondente etichettata ESP32, quindi carica il seguente codice sulla scheda.\nIl codice completo const int motorPin = 5; void setup() { pinMode(motorPin, OUTPUT); } void loop() { motorOnThenOff(); } void motorOnThenOff() { int onTime = 3000; int offTime = 3000; digitalWrite(motorPin, HIGH); delay(onTime); digitalWrite(motorPin, LOW); delay(offTime); } Robotdazero.it - post - R.160.1.2.0\n","permalink":"https://www.robotdazero.it/blog/come-pilotare-un-motore-elettrico-usando-esp32/","summary":"\u003c!--\nhttps://www.instructables.com/DIY-Motor-Driver-With-ESP32-Controller/\n--\u003e\n\u003cp\u003eQuesto è il driver del motore più semplice che potrebbe essere costruito utilizzando un solo transistor NPN, che è controllato e guidato dalla scheda micro controller ESP32.\u003c/p\u003e\n\u003cp\u003eUn motore DC (motore a corrente continua) è un dispositivo elettromeccanico estremamente diffuso nella automazione di fabbrica, nella robotica e nella elettronica di consumo. Riesce a convertire l\u0026rsquo;energia elettrica in energia meccanica ed è costituito da una combinazione di componenti elettrici e magnetici che consentono il movimento rotatorio.\u003c/p\u003e","title":"Come Pilotare un motore elettrico usando ESP32"},{"content":" Introduzione La nostra centralina \u0026ldquo;meteo\u0026rdquo; con sensori di gas nocivi può catturare in tempo reale la presenza di +25 sostanze tossiche, tra cui idrocarburi e ossidi di azoto e visualizzare la concentrazione dei gas, la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;aria su un qualunque dispositivo dotato di browser Web.\nLe scelte di progetto Il progetto usa stazioni trasmittenti multiple, da collocare in zone anche distanti e non coperte dal segnale Wi-Fi: Sfruttando il protocollo ESP-NOW di Espressif la centralina può visualizzare i dati dei sensori posti fino a 800 metri di distanza!\nPer la stazione trasmittente abbiamo inoltre selezionato dei componenti di pregio, come i due sensori di gas MQ2 e MQ135. Questi dispositivi garantiscono delle misurazioni affidabili ad un un costo contenuto, ed essendo dotati di connettori con passo di 2.54 mm permettono di assemblare tutto il prototipo su una classica breadboard da 830 punti.\nIl progetto è facilmente estensibile per leggere il valore di otto diversi trasmettitori con minime modifiche ai programmi. A tale scopo tutto il software viene distribuito in modalità \u0026ldquo;Open Source\u0026rdquo; e quindi completamente gratuito e personalizzabile.\nUtilizzo della centralina in ambienti \u0026ldquo;chiusi\u0026rdquo; Con il dispositivo potresti, ad esempio, controllare la qualità dell\u0026rsquo;aria nella tua casa e monitorare gas come CO, metano, GPL e fumi di combustione. In questo modo otterresti un ambiente più sicuro in tutti locali compresi box e garage esterni. Inoltre il sensore MQ2 potrebbe diventare un alleato prezioso per anticipare problemi all\u0026rsquo;impianto del metano, a stufe e scaldabagni a gas.\nLa centralina può sicuramente aiutarti a prevenire malanni legati agli sbalzi di temperatura e definire una qualità dell\u0026rsquo;aria superiore grazie al sensore incorporato MQ135. Il sensore infatti riesce a tracciare la infiltrazione di molti inquinanti industriali, come il benzene e gli ossidi di azoto e i dannosi \u0026ldquo;vapori\u0026rdquo; di ammoniaca e trielina.\nUtilizzo della centralina in ambienti \u0026ldquo;aperti\u0026rdquo; All\u0026rsquo;aperto la centralina può controllare la qualità dell\u0026rsquo;aria in giardini, parchi e camping grazie ai due sensori MQ. Avrai solo bisogno di una sorgente di alimentazione a 5V con attacco USB, una esigenza che puoi assolvere facilmente con degli economici power bank per telefonia mobile.\nPer quanto riguarda i dati e il server Web, la centralina funziona egregiamente sfruttando il solo hotspot del telefonino e con un consumo di dati molto ridotto grazie alla tecnologia di programmazione \u0026ldquo;AJAX\u0026rdquo;.\nGli utilizzi professionali della nostra centralina Nell\u0026rsquo;ambito della domotica potresti integrare la centralina nel tuo sistema domestico, per offrire anche il controllo completo dell\u0026rsquo;aria e dei gas pericolosi.\nNel giardinaggio potresti monitorare a basso costo le condizioni climatiche delle tue piante direttamente sul terreno e lontano dalla rete Wi-Fi. E nel campo della industria e limitatamente alla qualità dell\u0026rsquo;aria, il dispositivo potrebbe controllare la conformità delle aziende alle normative ambientali.\nPerchè proprio ESP32 e non Arduino Abbiamo scelto ESP32 per la sua formidabile connettività: la rete ESP-NOW, disponibile solo su questo controller, permette di porre i sensori ad oltre 800 metri dalla stazione ricevente: Una prestazione impossibile da ottenere con il solo Arduino e la normale copertura del Wi-Fi.\nI valori da noi indicati si riferiscono alle normali installazioni di ESP-NOW in modalità \"long range\" e senza antenne speciali o amplificatori RF. I dispositivi possono certamente raggiungere queste portate, ma solo a patto di posizionarli in posizioni elevate e lontane da interferenze fisiche (muri, palazzi, alberi). Nelle versioni future della centralina useremo gli stessi sensori e le schede di comunicazione dati \u0026ldquo;LoRa\u0026rdquo; per consentire la trasmissione fino a 2/3 chilometri in ambiente urbano e 10/15 chilometri in aria libera.\ni componenti e il software #1 - Il trasmettitore Pe realizzare il trasmettitore ti serviranno questi materiali:\nSensore MQ-2 - vedi su Amazon Sensore MQ-135 - vedi su Amazon Sensore DHT11 - vedi su Amazon Scheda ESP32 - vedi su Amazon Breadboard per montaggi elettronici Assemblaggio del trasmettitore Per costruire il trasmettitore puoi usare i connettori Dupont seguendo lo schema elettrico che vedi in basso. Ti suggerisco di inserire innanzitutto la scheda ESP32 e quindi i connettori per i sensori e l\u0026rsquo;alimentazione. Solo \u0026ldquo;dopo\u0026rdquo; dovresti inserire i sensori con il vantaggio di avere la filatura già pronta. Per montare il trasmettitore non serve alcuna saldatura a meno che tu non voglia creare un prodotto molto robusto da distribuire commercialmente: Anche in questo caso, comunque potresti ridurre al minimo le saldature utilizzando la scheda multifunzione disponibile nel nostro ecommerce.\nConfigurazione software del trasmettitore Per la compilazione di questo progetto puoi usare Arduino Ide o il compilatore a linea di Comando PlatformIO. Esiste una terza possibilità per compilare i programmi e cioè usare PlatformIO integrato in Visual Studio Code; ma per il momento ti forniremo istruzioni dettagliate solo per le prime due opzioni.\nCompilazione con Arduino IDE Per ottenere il codice sorgente specifico per il trasmettitore ti basta lanciare il comando GIT seguito dall\u0026rsquo;indirizzo del repository \u0026ldquo;corso-ESP32-centralina-meteo-trasmettitore\u0026rdquo; preparato per il nostro corso on-line. Puoi fare copia e incolla dagli esempio in basso, modificando se vuoi il nome della directory.\nsu Windows con PowerShell: md c:\\Progetti_Arduino cd c:\\Progetti_Arduino git clone git@github.com:sebadima/corso-ESP32-centralina-meteo-trasmettitore.git sul Terminale di Linux: cd mkdir Progetti_Arduino cd Progetti_Arduino git clone git@github.com:sebadima/corso-ESP32-centralina-meteo-trasmettitore.git Fatto questo puoi aprire il programma con: \u0026ldquo;File\u0026rdquo;-\u0026gt; \u0026ldquo;Apri\u0026rdquo; dall\u0026rsquo;IDE e rispondere alla eventuale richiesta di spostare la directory o il \u0026ldquo;file main.ino\u0026rdquo;. Potresti teoricamente compilare subito il programma, ma otterresti solo degli errori relativi alle librerie mancanti. Ad esempio potrebbero mancare due librerie come la \u0026ldquo;esp_now\u0026rdquo; o la \u0026ldquo;DHT\u0026rdquo; dedicata al sensore DHT11. Detto ciò vediamo come risolvere il problema delle librerie mancanti\u0026hellip;\nCome installare le librerie su Arduino IDE Per installare le librerie mancanti puoi procedere in questo modo:\nApri Arduino IDE Clicca su \u0026ldquo;Sketch\u0026rdquo; -\u0026gt; \u0026ldquo;Includi libreria\u0026rdquo; -\u0026gt; \u0026ldquo;Gestisci librerie\u0026rdquo;. Nella casella di ricerca, digita il nome della libreria mancante. Clicca sul pulsante \u0026ldquo;Installa\u0026rdquo; accanto alla libreria desiderata. Ad esempio per installare la libreria del DHT11 puoi eseguire gli stessi passi digitando: \u0026ldquo;DHT\u0026rdquo;:\nVedrai sulla sinistra un elenco delle librerie possibili e nel nostro caso puoi scegliere la libreria \u0026ldquo;DHT Sensor Lybrary\u0026rdquo; di Adafruit nella versione 1.4.6.\nClicca su \u0026ldquo;INSTALL\u0026rdquo; e potrai rilanciare la compilazione dello sketch. Purtroppo dovrai eseguire questi passaggi per ogni libreria mancante fino a quando il programma verrà compilato correttamente. Dopo di ciò potrai fare l\u0026rsquo;upload sulla ESP32 cliccando su \u0026ldquo;Sketch\u0026rdquo;-\u0026gt;\u0026ldquo;Upload\u0026rdquo;.\nCompilazione con PlatformIO La compilazione con Platformio è molto più diretta perchè questo software provvede a installare le librerie leggendo il file \u0026ldquo;platformio.ini\u0026rdquo; che abbiamo inserito su Github. Per compilare puoi procedere semplicemente facendo copia e incolla dei comandi sottostanti:\ngit clone git@github.com:sebadima/corso-ESP32-centralina-meteo-trasmettitore.git cd corso-ESP32-centralina-meteo-trasmettitore make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 --port /dev/ttyUSB0 Dopo la compilazione il comando \u0026ldquo;platformio device monitor\u0026rdquo; provvede a lanciare il monitor seriale sulla porta ttyUSB0. Se questo valore non dovesse corrispondere con la porta del tuo sistema Linux o Windows dovresti rilanciare la ultima riga con la porta realmente in uso.\nIl codice sorgente del trasmettitore 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 #include \u0026lt;Arduino.h\u0026gt; #include \u0026lt;esp_now.h\u0026gt; #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;esp_wifi.h\u0026gt; #include \u0026#34;DHT.h\u0026#34; #include \u0026#34;soc/soc.h\u0026#34; #include \u0026#34;soc/rtc_cntl_reg.h\u0026#34; constexpr char WIFI_SSID[] = \u0026#34;SSID-da-modificare\u0026#34;; // Indirizzi MAC dei dispositivi di destinazione // trovati con la utility apposita // indirizzo MAC di destinazione: A0:A3:B3:97:83:E8 constexpr uint8_t ESP_NOW_RECEIVER[] = { 0xA0, 0xA3, 0xB3, 0x97, 0x83, 0xE8 }; // Struct per definire il formato dei dati typedef struct struct_messaggio { char a[32]; int umidita; float temperatura; float gas_1; float gas_2; int contatore; } struct_messaggio; struct_messaggio Dati; esp_now_peer_info_t peerInfo; #define DHTPIN 13 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float t, h, g_1, g_2; int lost_packages; int ix; int Gas_1 = 33; int Gas_2 = 35; #define DELAY_RECONNECT 600 // intervallo in secondi per forzare il reboot volatile int interruptCounter; int totalInterruptCounter; hw_timer_t * timer = NULL; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; void IRAM_ATTR onTimer() { // https://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/Timer/RepeatTimer/RepeatTimer.ino portENTER_CRITICAL_ISR(\u0026amp;timerMux); interruptCounter++; if (lost_packages \u0026gt;=15) { ESP.restart(); // Riesegui la connessione al nuovo canale WIFI } portEXIT_CRITICAL_ISR(\u0026amp;timerMux); } int32_t getWiFiChannel(const char *ssid) { if (int32_t n = WiFi.scanNetworks()) { for (uint8_t i=0; i\u0026lt;n; i++) { if (!strcmp(ssid, WiFi.SSID(i).c_str())) { return WiFi.channel(i); } } } return 0; } void initWiFi() { WiFi.mode(WIFI_MODE_STA); // acquisice il canale usato dalla WIFI int32_t channel = getWiFiChannel(WIFI_SSID); esp_wifi_set_promiscuous(true); esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE); esp_wifi_set_promiscuous(false); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); } void initEspNow() { if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;ESP NOW failed to initialize\u0026#34;); while (1); } memcpy(peerInfo.peer_addr, ESP_NOW_RECEIVER, 6); peerInfo.ifidx = WIFI_IF_STA; peerInfo.encrypt = false; if (esp_now_add_peer(\u0026amp;peerInfo) != ESP_OK) { Serial.println(\u0026#34;ESP NOW pairing failure\u0026#34;); while (1); } } void suInvioDati(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print(\u0026#34;\\r\\nStatus invio:\\t\u0026#34;); Serial.println(status == ESP_NOW_SEND_SUCCESS ? \u0026#34;Consegna positiva\u0026#34; : \u0026#34;Errore di consegna\u0026#34;); if (status != ESP_NOW_SEND_SUCCESS) { lost_packages ++; } if (lost_packages \u0026gt;=15) { Serial.println(\u0026#34;ESP restarting on lost packages\u0026#34;); ESP.restart(); // Riesegui la connessione al nuovo canale WIFI } } void setup() { Serial.begin(115200); WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector initWiFi(); initEspNow(); timer = timerBegin(0, 80, true); timerAttachInterrupt(timer, \u0026amp;onTimer, true); timerAlarmWrite(timer, DELAY_RECONNECT * 1000000, true); timerAlarmEnable(timer); dht.begin(); pinMode(Gas_1, INPUT); pinMode(Gas_2, INPUT); esp_now_register_send_cb(suInvioDati); ix = 1; } void loop() { h = dht.readHumidity(); t = dht.readTemperature(); g_1 = analogRead(Gas_1); g_2 = analogRead(Gas_2); if (isnan(g_1) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore di GAS 1!\u0026#34;)); return; } if (isnan(g_2) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore di GAS 2!\u0026#34;)); return; } if (isnan(t) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore DHT!\u0026#34;)); return; } Serial.print(\u0026#34;Temperatura: \u0026#34;); Serial.println(t); Serial.print(\u0026#34;Umidità: \u0026#34;); Serial.println(h); Serial.print(\u0026#34;Gas_1: \u0026#34;); Serial.println(g_1); Serial.print(\u0026#34;Gas_2: \u0026#34;); Serial.println(g_2); strcpy(Dati.a, \u0026#34;Rilevazioni DHT11\u0026#34;); Dati.umidita = (int) h; Dati.temperatura = t; Dati.gas_1 = g_1; Dati.gas_2 = g_2; Dati.contatore = ix; // invio del messaggio a ESP1 esp_err_t result = esp_now_send(0, (uint8_t *) \u0026amp;Dati, sizeof(Dati)); if (result == ESP_OK) { Serial.println(\u0026#34;Messaggio inviato con successo\u0026#34;); } else { Serial.println(\u0026#34;Errore di invio\u0026#34;); } ix = ix + 1; delay(2000); } Un breve commento al programma Il nome della rete Per usare il programma con la tua rete Wi-Fi o hotspot devi modificare la riga #9:\nconstexpr char WIFI_SSID[] = \u0026#34;SSID-da-modificare\u0026#34;; e inserire il SSID (il nome) della tua rete fissa o mobile.\nL\u0026rsquo;indirizzo MAC della \u0026ldquo;ricevente\u0026rdquo; Per funzionare la rete ESP-NOW pretende di sapere l\u0026rsquo;indirizzo MAC univoco della scheda ESP32 di destinazione.\nUn indirizzo MAC (Media Access Control) è un identificativo univoco assegnato a ogni scheda di rete (NIC) presente in un dispositivo informatico. È un numero di 12 cifre esadecimali, solitamente rappresentato in gruppi di due coppie separate da due punti (ad esempio, 00:11:22:33:44:55).\n// indirizzo MAC di destinazione: A0:A3:B3:97:83:E8 constexpr uint8_t ESP_NOW_RECEIVER[] = { 0xA0, 0xA3, 0xB3, 0x97, 0x83, 0xE8 }; Per ottenere il valore MAC della scheda abbiamo usato il programma descritto nella sezione #7.2 del nostro corso e quindi ti rimandiamo alle istruzioni lì pubblicate. Dopo avere ottenuto l\u0026rsquo;indirizzo MAC della tua scheda dovrai ovviamente inserirlo nel programma mantendendo la forma di scrittura 0x00.\nLa struttura dati: \u0026ldquo;struct_messaggio\u0026rdquo; // Struct per definire il formato dei dati typedef struct struct_messaggio { char a[32]; int umidita; float temperatura; float gas_1; float gas_2; int contatore; } struct_messaggio; I dati dei sensori non vengono comunicati separatamente ma sono raggruppati in una struct del linguaggio C++. La struct è un costrutto sintattico che si limita a definire soltanto il \u0026ldquo;typedef\u0026rdquo; (il formato) senza realmente creare spazio nella zona variabili della RAM.\nLa istruzione successiva e cioè \u0026ldquo;struct_messaggio Dati;\u0026rdquo; crea effettivamente uno spazio nella RAM del controller e gli assegna il valore prescelto: Nel nostro caso semplicemente \u0026ldquo;Dati\u0026rdquo;, che useremo per gestire e trasmettere le letture dei sensori e il contatore numerico.\nLa prossima istruzione (contenuta all\u0026rsquo;interno della funzione loop) utilizza le variabili prelevandole con il puntatore \u0026ldquo;\u0026amp;Dati\u0026rdquo; e li fornisce alla funzione \u0026ldquo;esp_now_send()\u0026rdquo;.\nLa esp_now_send() effettua una chiamata alla libreria Espressif per trasmettere i dati alla scheda ricevente. Anche se il tutto non appare proprio semplicissimo, potrai apprezzare come la trasmissione fisica sia gestita in toto dalla libreria con una singola istruzione. La maggior parte della complessità viene gestita dalla libreria esterna, per cui il programma risulta alla fine abbastanza semplice e breve. Il reset automatico degli interrupt Il programma utilizza delle funzioni avanzate di ESP32 per resettare la scheda dopo 15 pacchetti dati persi. Come in ogni applicazione IoT non possiamo pensare di stare al computer per monitorare il comportamento dei dispositivi e dobbiamo prevedere delle istruzione di \u0026ldquo;recupero\u0026rdquo; automatico della connessione in caso di problemi.\nI controller ESP32 sono dotati di 4 timer hardware, ognuno dei quali è un contatore up/down a 64 bit generico con un prescaler a 16 bit. Fa eccezione la scheda ESP 32C3 che ha solo 2 timer ognuno dei quali è invece di 54 bit. I timer di ESP32 funzionano in modalità roll e alla fine del conteggio ad esempio 800000 ripartono da zero.\n#define DELAY_RECONNECT 600 // intervallo in secondi per forzare il reboot volatile int interruptCounter; int totalInterruptCounter; hw_timer_t * timer = NULL; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; void IRAM_ATTR onTimer() { portENTER_CRITICAL_ISR(\u0026amp;timerMux); interruptCounter++; if (lost_packages \u0026gt;=15) { ESP.restart(); // Riesegui la connessione al nuovo canale WIFI } portEXIT_CRITICAL_ISR(\u0026amp;timerMux); } La configurazione di interrupt viene completata dentro la funzione \u0026ldquo;setup()\u0026rdquo;\ntimer = timerBegin(0, 80, true); timerAttachInterrupt(timer, \u0026amp;onTimer, true); timerAlarmWrite(timer, DELAY_RECONNECT * 1000000, true); timerAlarmEnable(timer); Le prime cinque righe impostano la struttura dati suggerita da Espressif per la gestione degli interrupt mentre la successiva funzione \u0026ldquo;onTimer()\u0026rdquo; viene richiamata automaticamente dal sistema.\nLa ricerca del canale Wi-Fi del ricevitore Il ricevitore della centraline è collegato alla rete Wi-Fi per fornire in HTML i dati dei sensori, e la necessità di fare convivere ESP-NOW e Wi-Fi impone che il dure operino nello stesso canale. Con il pezzo di programma sotto il trasmettitore legge il nome della rete dal parametro passato alla funzione:\n\u0026ldquo;getWiFiChannel\u0026rdquo; con il parametro: \u0026ldquo;(const char *ssid)\u0026rdquo; ed effettua una semplice scansione di tutti i canali.\nPer determinare il numero real dei canali disponibili il programma usa la istruzione \u0026ldquo;int32_t n = WiFi.scanNetworks()\u0026rdquo; e quindi lancia un ciclo in loop con: \u0026ldquo;for (uint8_t i=0; i\u0026lt;n; i++)\u0026rdquo; dove \u0026ldquo;i\u0026lt;n;\u0026rdquo; serve a limitare il numero di ripetizioni. Se la istruzione \u0026ldquo;strcmp()\u0026rdquo; rileva il canale con il nome giusto ne ritorna il codice al resto del programma. La funzione \u0026ldquo;InitWiFi()\u0026rdquo; userà il codice ottenuto durante la fase di boot del controller.\nint32_t getWiFiChannel(const char *ssid) { if (int32_t n = WiFi.scanNetworks()) { for (uint8_t i=0; i\u0026lt;n; i++) { if (!strcmp(ssid, WiFi.SSID(i).c_str())) { return WiFi.channel(i); } } } return 0; } Come controllare se ESP-NOW è collegato Questa è forse la parte più importante el programma e usa la istruzione \u0026ldquo;if (lost_packages \u0026gt;=15)\u0026rdquo; per attivare la procedura di restart del controller e rilanciare la connessione al canale Wi-Fi esatto.\nvoid suInvioDati(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print(\u0026#34;\\r\\nStatus invio:\\t\u0026#34;); Serial.println(status == ESP_NOW_SEND_SUCCESS ? \u0026#34;Consegna positiva\u0026#34; : \u0026#34;Errore di consegna\u0026#34;); if (status != ESP_NOW_SEND_SUCCESS) { lost_packages ++; } if (lost_packages \u0026gt;=15) { Serial.println(\u0026#34;ESP restarting on lost packages\u0026#34;); ESP.restart(); // Riesegui la connessione al nuovo canale WIFI } } #2 - Il ricevitore Assemblaggio del ricevitore Il ricevitore non necessita realmente di una fase di assemblaggio a parte la saldatura di una antenna esterna per ESP32 come vedi nella foto sotto, ma anche questa fase può essere evitata usando una ESP32CAM come ricevitore con la presa per antenna\nConfigurazione software del ricevitore Puoi usare Arduino Ide o il compilatore a linea di Comando PlatformIO. Noi in genere preferiamo Platformio ma ciò non significa che il programma non possa essere compilato con Arduino IDE o che il codice oggetto sia migliore: semplicemente preferiamo installare le librerie in automatico come riesce a fare comodamente PlatformIO.\nCompilazione con Arduino IDE Per scaricare il codice sorgente del ricevitore puoi andare nella linea di comando di Windows usando la PowerShell o nel terminale di Linux e digitare o fare copia e incolla di:\ngit clone git@github.com:sebadima/corso-ESP32-centralina-meteo_ricevitore.git Fatto questo puoi aprire il programma con: \u0026ldquo;File\u0026rdquo;-\u0026gt; \u0026ldquo;Apri\u0026rdquo; dall\u0026rsquo;IDE e rispondere alla eventuale richiesta di spostare la directory o il \u0026ldquo;file main.ino\u0026rdquo;. Per installare le librerie mancanti. Per installare le librerie mancanti puoi procedere in questo modo:\nApri Arduino IDE Clicca su \u0026ldquo;Sketch\u0026rdquo; -\u0026gt; \u0026ldquo;Includi libreria\u0026rdquo; -\u0026gt; \u0026ldquo;Gestisci librerie\u0026rdquo;. Nella casella di ricerca, digita il nome della libreria mancante. Clicc sul pulsante \u0026ldquo;Installa\u0026rdquo; accanto alla libreria desiderata. Se non vuoi usare Github puoi fare copia e incolla del programma sottostante e procedere allo stesso modo:\nIl codice sorgente del ricevitore 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 #include \u0026#34;ESPAsyncWebServer.h\u0026#34; #include \u0026lt;Arduino_JSON.h\u0026gt; #include \u0026lt;Arduino.h\u0026gt; #include \u0026lt;esp_now.h\u0026gt; #include \u0026lt;esp_wifi.h\u0026gt; #include \u0026lt;WiFi.h\u0026gt; #include \u0026#34;soc/soc.h\u0026#34; #include \u0026#34;soc/rtc_cntl_reg.h\u0026#34; #include \u0026#34;BluetoothSerial.h\u0026#34; constexpr char WIFI_SSID[] = \u0026#34;SSID-da-modificare\u0026#34;; constexpr char WIFI_PASS[] = \u0026#34;PASSWORD-da-modificare\u0026#34;; // Setta un indirizzo IP Fisso IPAddress local_IP(192, 168, 1, 200); // Setta l\u0026#39;indirizzo del Gateway IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); //opzionale IPAddress secondaryDNS(8, 8, 4, 4); //opzionale // Struttura dati, deve corrispondere a quella del mittente typedef struct struttura_dati { char v0[32]; int v1; float v2; float v3; float v4; unsigned int progressivo; } struttura_dati; struttura_dati LettureSensori; #if !defined(CONFIG_BT_ENABLED) || !defined(CONFIG_BLUEDROID_ENABLED) #error Bluetooth is not enabled! Please run `make menuconfig` to and enable it #endif BluetoothSerial SerialBT; JSONVar board; AsyncWebServer server(80); AsyncEventSource events(\u0026#34;/events\u0026#34;); volatile int interruptCounter; int totalInterruptCounter; hw_timer_t * timer = NULL; portMUX_TYPE timerMux = portMUX_INITIALIZER_UNLOCKED; #define DELAY_RECONNECT 60 void IRAM_ATTR onTimer() { // https://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/Timer/RepeatTimer/RepeatTimer.ino portENTER_CRITICAL_ISR(\u0026amp;timerMux); interruptCounter++; if (WiFi.status() != WL_CONNECTED) { ESP.restart(); } portEXIT_CRITICAL_ISR(\u0026amp;timerMux); } void suDatiRicevuti(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { // Copi l\u0026#39;indirizzo MAC del mittente char macStr[18]; Serial.print(\u0026#34;Pacchetto ricevuto da: \u0026#34;); snprintf(macStr, sizeof(macStr), \u0026#34;%02x:%02x:%02x:%02x:%02x:%02x\u0026#34;, mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); Serial.println(macStr); memcpy(\u0026amp;LettureSensori, incomingData, sizeof(LettureSensori)); board[\u0026#34;v1\u0026#34;] = LettureSensori.v1; board[\u0026#34;v2\u0026#34;] = LettureSensori.v2; board[\u0026#34;v3\u0026#34;] = LettureSensori.v3; board[\u0026#34;v4\u0026#34;] = LettureSensori.v4; board[\u0026#34;progressivo\u0026#34;] = String(LettureSensori.progressivo); String jsonString = JSON.stringify(board); events.send(jsonString.c_str(), \u0026#34;new_readings\u0026#34;, millis()); Serial.printf(\u0026#34;Board ID %u: %u bytes\\n\u0026#34;, LettureSensori.v1, len); Serial.printf(\u0026#34;t valore: %4.2f \\n\u0026#34;, LettureSensori.v2); Serial.printf(\u0026#34;h valore: %4.2f \\n\u0026#34;, LettureSensori.v3); Serial.printf(\u0026#34;Progressivo: %d \\n\u0026#34;, LettureSensori.progressivo); Serial.println(); } const char index_html[] PROGMEM = R\u0026#34;rawliteral( \u0026lt;!DOCTYPE HTML\u0026gt;\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Robotdazero - rete \u0026#34;Ambientale\u0026#34; con ESP32\u0026lt;/title\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1\u0026#34;\u0026gt; \u0026lt;link rel=\u0026#34;stylesheet\u0026#34; href=\u0026#34;https://use.fontawesome.com/releases/v5.7.2/css/all.css\u0026#34; integrity=\u0026#34;sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr\u0026#34; crossorigin=\u0026#34;anonymous\u0026#34;\u0026gt; \u0026lt;link rel=\u0026#34;icon\u0026#34; href=\u0026#34;data:,\u0026#34;\u0026gt; \u0026lt;style\u0026gt; html {font-family: Arial; display: inline-block; text-align: center;} p { font-size: 1.2rem;} body { margin: 0;} .topnav { overflow: hidden; background-color: #2f4468; color: white; font-size: 1.7rem; } .content { padding: 20px; } .card { background-color: white; box-shadow: 2px 2px 12px 1px rgba(140,140,140,.5); } .cards { max-width: 700px; margin: 0 auto; display: grid; grid-gap: 2rem; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); } .reading { font-size: 2.8rem; } .packet { color: #bebebe; } .card.temperature { color: #fd7e14; } .card.humidity { color: #1b78e2; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div class=\u0026#34;topnav\u0026#34;\u0026gt; \u0026lt;h3\u0026gt;ROBOTDAZERO - rete \u0026#34;Ambientale\u0026#34; con ESP32\u0026lt;/h3\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;content\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;cards\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;card temperature\u0026#34;\u0026gt; \u0026lt;h4\u0026gt;\u0026lt;i class=\u0026#34;fas fa-thermometer-half\u0026#34;\u0026gt;\u0026lt;/i\u0026gt; SCHEDA #1 - TEMPERATURA\u0026lt;/h4\u0026gt;\u0026lt;p\u0026gt;\u0026lt;span class=\u0026#34;reading\u0026#34;\u0026gt;\u0026lt;span id=\u0026#34;t1\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; \u0026amp;deg;C\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt;\u0026lt;p class=\u0026#34;packet\u0026#34;\u0026gt;sensore DHT11: \u0026lt;span id=\u0026#34;rt1\u0026#34;\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;card humidity\u0026#34;\u0026gt; \u0026lt;h4\u0026gt;\u0026lt;i class=\u0026#34;fas fa-tint\u0026#34;\u0026gt;\u0026lt;/i\u0026gt; SCHEDA #1 - UMIDITA\u0026#39;\u0026lt;/h4\u0026gt;\u0026lt;p\u0026gt;\u0026lt;span class=\u0026#34;reading\u0026#34;\u0026gt;\u0026lt;span id=\u0026#34;h1\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; \u0026amp;percnt;\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt;\u0026lt;p class=\u0026#34;packet\u0026#34;\u0026gt;sensore DHT11: \u0026lt;span id=\u0026#34;rh1\u0026#34;\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;card temperature\u0026#34;\u0026gt; \u0026lt;h4\u0026gt;\u0026lt;i class=\u0026#34;far fa-bell\u0026#34;\u0026gt;\u0026lt;/i\u0026gt; SCHEDA #1 - Fumo/Metano\u0026lt;/h4\u0026gt;\u0026lt;p\u0026gt;\u0026lt;span class=\u0026#34;reading\u0026#34;\u0026gt;\u0026lt;span id=\u0026#34;t2\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; ppm\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt;\u0026lt;p class=\u0026#34;packet\u0026#34;\u0026gt;sensore MQ-2: \u0026lt;span id=\u0026#34;rt2\u0026#34;\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div class=\u0026#34;card humidity\u0026#34;\u0026gt; \u0026lt;h4\u0026gt;\u0026lt;i class=\u0026#34;far fa-bell\u0026#34;\u0026gt;\u0026lt;/i\u0026gt; SCHEDA #1 - Qualita\u0026#39; dell\u0026#39;aria\u0026lt;/h4\u0026gt;\u0026lt;p\u0026gt;\u0026lt;span class=\u0026#34;reading\u0026#34;\u0026gt;\u0026lt;span id=\u0026#34;h2\u0026#34;\u0026gt;\u0026lt;/span\u0026gt; ppm\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt;\u0026lt;p class=\u0026#34;packet\u0026#34;\u0026gt;sensore MQ-135: \u0026lt;span id=\u0026#34;rh2\u0026#34;\u0026gt;\u0026lt;/span\u0026gt;\u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;script\u0026gt; if (!!window.EventSource) { var source = new EventSource(\u0026#39;/events\u0026#39;); source.addEventListener(\u0026#39;open\u0026#39;, function(e) { console.log(\u0026#34;Events Connected\u0026#34;); }, false); source.addEventListener(\u0026#39;error\u0026#39;, function(e) { if (e.target.readyState != EventSource.OPEN) { console.log(\u0026#34;Events Disconnected\u0026#34;); } }, false); source.addEventListener(\u0026#39;message\u0026#39;, function(e) { console.log(\u0026#34;message\u0026#34;, e.data); }, false); source.addEventListener(\u0026#39;new_readings\u0026#39;, function(e) { console.log(\u0026#34;new_readings\u0026#34;, e.data); var obj = JSON.parse(e.data); document.getElementById(\u0026#34;t1\u0026#34;).innerHTML = Math.round(obj.v2 * 100) / 100; document.getElementById(\u0026#34;h1\u0026#34;).innerHTML = obj.v1; document.getElementById(\u0026#34;t2\u0026#34;).innerHTML = obj.v3; document.getElementById(\u0026#34;h2\u0026#34;).innerHTML = obj.v4; }, false); } \u0026lt;/script\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt;)rawliteral\u0026#34;; void initBT() { SerialBT.begin(\u0026#34;ESP32-sensori\u0026#34;); Serial.println(\u0026#34;Dispositivo avviato, puoi accoppiarlo con bluetooth...\u0026#34;); } void initWiFi() { WiFi.mode(WIFI_MODE_APSTA); if(!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;STA Failed to configure\u0026#34;); } WiFi.begin(WIFI_SSID, WIFI_PASS); Serial.printf(\u0026#34;Connecting to %s .\u0026#34;, WIFI_SSID); while (WiFi.status() != WL_CONNECTED) { Serial.print(\u0026#34;.\u0026#34;); delay(200); } Serial.println(\u0026#34;ok\u0026#34;); IPAddress ip = WiFi.localIP(); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); Serial.printf(\u0026#34;IP: %u.%u.%u.%u\\n\u0026#34;, ip \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 8) \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 16) \u0026amp; 0xff, ip \u0026gt;\u0026gt; 24); } void initEspNow() { if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;ESP NOW failed to initialize\u0026#34;); while (1); } esp_now_register_recv_cb(suDatiRicevuti); } void setup() { Serial.begin(115200); WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disabilita brownout detector initWiFi(); initEspNow(); initBT(); timer = timerBegin(0, 80, true); timerAttachInterrupt(timer, \u0026amp;onTimer, true); timerAlarmWrite(timer, DELAY_RECONNECT * 1000000, true); timerAlarmEnable(timer); server.on(\u0026#34;/\u0026#34;, HTTP_GET, [](AsyncWebServerRequest *request){ request-\u0026gt;send_P(200, \u0026#34;text/html\u0026#34;, index_html); }); events.onConnect([](AsyncEventSourceClient *client){ if(client-\u0026gt;lastId()){ Serial.printf(\u0026#34;Riconnessione! Ultmo messaggio ricevuto: %u\\n\u0026#34;, client-\u0026gt;lastId()); } client-\u0026gt;send(\u0026#34;hello!\u0026#34;, NULL, millis(), 10000); }); server.addHandler(\u0026amp;events); server.begin(); } void loop() { static unsigned long lastEventTime = millis(); static const unsigned long EVENT_INTERVAL_MS = 5000; if ((millis() - lastEventTime) \u0026gt; EVENT_INTERVAL_MS) { events.send(\u0026#34;ping\u0026#34;,NULL,millis()); lastEventTime = millis(); } } Compilazione con PlatformIO git clone git@github.com:sebadima/corso-ESP32-centralina-meteo_ricevitore.git cd corso-ESP32-centralina-meteo-trasmettitore make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 --port /dev/ttyUSB0 Un breve commento al programma La connessione alla rete Wi-Fi Poichè il ricevitore si collega effettivamente alla rete Wi-Fi, nelle righe successive dobbiamo impostare le variabili per la connessione. DNon cis sono particolarità da notare a parte la riga \u0026ldquo;IPAddress local_IP(192, 168, 1, 200);\u0026rdquo; che si servirà ad impostare l\u0026rsquo;IP fisso del server Web. Se preferisci puoi cambiarlo per evitare una collisione con altri dispositivi collegati.\nconstexpr char WIFI_SSID[] = \u0026#34;SSID-da-modificare\u0026#34;; constexpr char WIFI_PASS[] = \u0026#34;PASSWORD-da-modificare\u0026#34;; // Setta un indirizzo IP Fisso IPAddress local_IP(192, 168, 1, 200); // Setta indirizzo del Gateway IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); //opzionale IPAddress secondaryDNS(8, 8, 4, 4); //opzionale Nella funzione \u0026ldquo;initWiFi()\u0026rdquo; la radio dell\u0026rsquo;ESP32 viene inizializzata in modalità mista con il comando: \u0026ldquo;WiFi.mode(WIFI_MODE_APSTA);\u0026rdquo; per permette l\u0026rsquo;uso simultaneo di ESP-NOW e Wi-Fi. La istruzione \u0026quot; Serial.printf(\u0026ldquo;Channel: %u\\n\u0026rdquo;, WiFi.channel());\u0026quot; serve in modalità di debug per controllare il canale in cui avviene la connessione. E\u0026rsquo; importante avere una idea del canale perchè alcuni router potrebbero essere configurati solo con il Wi-Fi a 5Ghz attivato e dare risultati imprevedibili.\nvoid initWiFi() { WiFi.mode(WIFI_MODE_APSTA); if(!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;STA Failed to configure\u0026#34;); } WiFi.begin(WIFI_SSID, WIFI_PASS); Serial.printf(\u0026#34;Connecting to %s .\u0026#34;, WIFI_SSID); while (WiFi.status() != WL_CONNECTED) { Serial.print(\u0026#34;.\u0026#34;); delay(200); } Serial.println(\u0026#34;ok\u0026#34;); IPAddress ip = WiFi.localIP(); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); Serial.printf(\u0026#34;IP: %u.%u.%u.%u\\n\u0026#34;, ip \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 8) \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 16) \u0026amp; 0xff, ip \u0026gt;\u0026gt; 24); } La struttura dati in ricezione I dati ricevuti dal trasmettitore devono seguire necessariamente lo stesso formato pena errori imprevedibili o blocco completo della trasmissione. Se torni al sorgente del trasmettitore vedrai che formato e sequenza delle variabili sono le stesse, mentre teoricamente non è necessario che abbiano lo stesso identificativo.\n// Struttura dati, deve corrispondere a quella del mittente typedef struct struttura_dati { char v0[32]; int v1; float v2; float v3; float v4; unsigned int progressivo; } struttura_dati; La lettura dei dati Dopo avere letto i dati da ESP-NOw dobbiamo usarli nel nostro server Web e quindi li importiamo nella variabile JSON board che abbiamo definito ad inizio programma con \u0026ldquo;JSONVar board;\u0026rdquo;. I valori v1,v2,v3,v4 verrano poi usati dal server con queste istruzioni: \u0026ldquo;document.getElementById(\u0026ldquo;t1\u0026rdquo;).innerHTML = Math.round(obj.v2 * 100) / 100;\u0026rdquo;.\nPoichè si tratta di un argomento un poco complesso lo tratteremo in una sezione successiva. Un altro pezzo interessante è la print dell\u0026rsquo;indirizzo MAC del mittente ottenuta con:\nsnprintf(macStr, sizeof(macStr), \u0026#34;%02x:%02x:%02x:%02x:%02x:%02x\u0026#34; snprintf è estremamente simile a sprintf: Dopo tutto, i nomi delle funzioni differiscono solo dal carattere \u0026rsquo;n\u0026rsquo;! Questa è in realtà una convenzione abbastanza comune in C: la funzione con la \u0026rsquo;n\u0026rsquo; richiede un limite superiore nel nostro caso lo definiamo con \u0026ldquo;sizeof(macStr)\u0026rdquo;. In genere la versione\u0026rsquo; n \u0026rsquo; delle funzioni è più sicura e meno suscettibile agli overflow del buffer.\nvoid suDatiRicevuti(const uint8_t * mac_addr, const uint8_t *incomingData, int len) { // Copia indirizzo MAC del mittente char macStr[18]; Serial.print(\u0026#34;Pacchetto ricevuto da: \u0026#34;); snprintf(macStr, sizeof(macStr), \u0026#34;%02x:%02x:%02x:%02x:%02x:%02x\u0026#34;, mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3], mac_addr[4], mac_addr[5]); Serial.println(macStr); memcpy(\u0026amp;LettureSensori, incomingData, sizeof(LettureSensori)); board[\u0026#34;v1\u0026#34;] = LettureSensori.v1; board[\u0026#34;v2\u0026#34;] = LettureSensori.v2; board[\u0026#34;v3\u0026#34;] = LettureSensori.v3; board[\u0026#34;v4\u0026#34;] = LettureSensori.v4; board[\u0026#34;progressivo\u0026#34;] = String(LettureSensori.progressivo); String jsonString = JSON.stringify(board); events.send(jsonString.c_str(), \u0026#34;new_readings\u0026#34;, millis()); Serial.printf(\u0026#34;Board ID %u: %u bytes\\n\u0026#34;, LettureSensori.v1, len); Serial.printf(\u0026#34;t valore: %4.2f \\n\u0026#34;, LettureSensori.v2); Serial.printf(\u0026#34;h valore: %4.2f \\n\u0026#34;, LettureSensori.v3); Serial.printf(\u0026#34;Progressivo: %d \\n\u0026#34;, LettureSensori.progressivo); Serial.println(); } La connessione ad ESP-NOW In questa sezione è utile notare la funzione \u0026ldquo;esp_now_register_recv_cb(suDatiRicevuti);\u0026rdquo; che definisce un hook verso \u0026ldquo;suDatiRicevuti\u0026rdquo; che verrà invocata in maniera automatica (asincrona) ogni volta che la scheda riceve dei dati. E\u0026rsquo; importante definire in maniere asincrona le routine di ricezione dati per evitare che la schede sprechi preziosi cicli di clock per controllare continuamente se sono arrivati dei dati.\nLa programmazione asincrona è una tecnica che consente al programma di avviare un\u0026rsquo;attività potenzialmente di lunga durata e di essere ancora in grado di rispondere ad altri eventi durante l\u0026rsquo;esecuzione di tale attività, piuttosto che dover attendere che tale attività sia terminata. Una volta che l\u0026rsquo;attività è terminata, il programma viene presentato con il risultato.\nvoid initEspNow() { if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;ESP NOW failed to initialize\u0026#34;); while (1); } esp_now_register_recv_cb(suDatiRicevuti); } Il server Web Il server dopo la connessione ad ESP-NOW e alla rete Wi-Fi riesce a mostrare in tempo reale le letture dei sensori: HTML non è adatto a questo tipo di visualizzazione e deve essere necessariamente integrato con la tecnologia Ajax. Ma iniziamo per gradi e vediamo intanto come viene conservato nella ram il codice HTML:\nconst char index_html[] PROGMEM = R\u0026#34;rawliteral( \u0026lt;!DOCTYPE HTML\u0026gt;\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; ... ... \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; ... ... \u0026lt;/body\u0026gt; \u0026lt;script\u0026gt; if (!!window.EventSource) { var source = new EventSource(\u0026#39;/events\u0026#39;); source.addEventListener(\u0026#39;open\u0026#39;, function(e) { console.log(\u0026#34;Events Connected\u0026#34;); }, false); source.addEventListener(\u0026#39;error\u0026#39;, function(e) { if (e.target.readyState != EventSource.OPEN) { console.log(\u0026#34;Events Disconnected\u0026#34;); } }, false); source.addEventListener(\u0026#39;message\u0026#39;, function(e) { console.log(\u0026#34;message\u0026#34;, e.data); }, false); source.addEventListener(\u0026#39;new_readings\u0026#39;, function(e) { console.log(\u0026#34;new_readings\u0026#34;, e.data); var obj = JSON.parse(e.data); document.getElementById(\u0026#34;t1\u0026#34;).innerHTML = Math.round(obj.v2 * 100) / 100; document.getElementById(\u0026#34;h1\u0026#34;).innerHTML = obj.v1; document.getElementById(\u0026#34;t2\u0026#34;).innerHTML = obj.v3; document.getElementById(\u0026#34;h2\u0026#34;).innerHTML = obj.v4; }, false); } \u0026lt;/script\u0026gt; Nelle sezioni precedenti abbiamo già parlato di come implementare un server Web e quindi in questo caso ci concentriamo soprattutto sulle novità e sul funzionamenti di AJAX.\nLa istruzione \u0026ldquo;var source = new EventSource(\u0026rsquo;/events\u0026rsquo;);\u0026rdquo; aggiunge un una routine asincrona che viene attivata dall\u0026rsquo;arrivo dei nuovi dati e lo segnale sul monitor seriale con \u0026ldquo;console.log(\u0026ldquo;new_readings\u0026rdquo;, e.data);\u0026rdquo; ma soprattutto provvede a modificare il documento HTML con la istruzione: \u0026ldquo;document.getElementById(\u0026ldquo;h1\u0026rdquo;).innerHTML = obj.v1;\u0026rdquo;.\nTroubleshooting Le cause di un malfunzionamento possono essere molte, ma ricadono fondamentalmente in queste tre tipologie:\nun errato collegamento dei connettori: Il diagramma che ti forniamo rappresenta fedelmente il progetto realizzato da Robotdazero. ma ciò non garantisce che alcune versioni commerciali del DHT11 non possano avere diverse disposizioni del connettore dati. Se i pin di alimentazione sembrano restare coerenti nelle varie versioni in commercio, il pin dati potrebbe essere collegato a uno qualsiasi dei due pin liberi. Il problema comunque facilmente risolvibile facendo un poco di attenzione e ricontrollando \u0026ldquo;a vista\u0026rdquo; i connettori. Per facilitare il lavori di controllo ti consigliamo di adottare sempre colori nero e rosso per la alimentazione e verde o giallo per il segnale dati, in tal modi capire se il pin dati e stato collegato correttamente diventa quasi banale.\nun problema alla alimentazione fornita dalla USB: La tensione fornito dalla USB in condizioni ideali riesce ad erogare la minima corrente richiesta dall\u0026rsquo;ESP32 e dai sensori, parliamo di mezzo di 350mA al massimo, ma su alcuni piccoli laptop o desktop danneggiati anche tale carico potrebbe rappresentare un problema. Inoltre ricorda che gli HUB per USB non sono sempre trasparenti alla corrente e potrebbero assorbirne una parte per il loro funzionamento. Inoltre, nel caso peggiore, l\u0026rsquo;UHB potrebbe avere difficoltà a mantenere la tensione costante se troppi dispositivi assorbono corrente nello stesso momento.\nun problema hardware: Ad esempio il sistema potrebbe non funzionare per la rottura di uno dei sensori, un connettore Dupont spezzato (magari solo all\u0026rsquo;interno), la sezione radio dell\u0026rsquo;ESP32 danneggiata perchè hai collegato due antenne \u0026ldquo;troppo\u0026rdquo; vicine, un piedino rotto dell\u0026rsquo;ESP32, una breadboard difettosa, un cavo USB difettoso (un caso molto comune).\nConclusioni In questo articolo, abbiamo esplorato le potenzialità dell\u0026rsquo;IoT per la casa e il lavoro, utilizzando un ESP32 con sensori di qualità dell\u0026rsquo;aria e gas pericolosi come esempio pratico.\nA livello domestico, l\u0026rsquo;implementazione di un sistema di monitoraggio IoT può portare a una maggiore sicurezza e comfort. La capacità di monitorare la qualità dell\u0026rsquo;aria e la temperatura può aiutare a creare un ambiente più sano e confortevole per la propria famiglia. Inoltre, la rilevazione di gas pericolosi può fornire un avvertimento tempestivo in caso di emergenza.\nIn ambito lavorativo, l\u0026rsquo;IoT può migliorare l\u0026rsquo;efficienza e la produttività. I sensori possono essere utilizzati per monitorare le condizioni ambientali in un singolo ufficio o in molteplici locali, garantendo un ambiente di lavoro sicuro e confortevole.\nRobotdazero.it - post - R.159.3.4.0\n","permalink":"https://www.robotdazero.it/blog/una-centralina-meteo-con-esp32-esp-now-e-wi-fi/","summary":"\u003c!-- \nhttps://github.com/espressif/arduino-esp32/blob/master/libraries/ESP32/examples/Timer/RepeatTimer/RepeatTimer.ino\nhttps://espressif-docs.readthedocs-hosted.com/projects/arduino-esp32/en/latest/api/timer.html\nhttps://randomnerdtutorials.com/esp32-cam-connect-external-antenna/\nhttps://deepbluembedded.com/esp32-timers-timer-interrupt-tutorial-arduino-ide/\n\n--\u003e\n\u003cp\u003e\u003cimg alt=\"header\" loading=\"lazy\" src=\"/blog/una-centralina-meteo-con-esp32-esp-now-e-wi-fi/header.jpeg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione\u003c/h2\u003e\n\u003cp\u003eLa nostra centralina \u0026ldquo;meteo\u0026rdquo; con sensori di gas nocivi può catturare in tempo reale la presenza di +25 sostanze tossiche, tra cui idrocarburi  e ossidi di azoto e visualizzare la concentrazione dei gas, la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;aria su un qualunque dispositivo dotato di browser Web.\u003c/p\u003e\n\u003ch3 id=\"le-scelte-di-progetto\"\u003eLe scelte di progetto\u003c/h3\u003e\n\u003cp\u003eIl progetto usa stazioni trasmittenti multiple, da collocare in zone anche distanti e non coperte dal segnale Wi-Fi: Sfruttando il protocollo ESP-NOW di Espressif la centralina può visualizzare i dati dei sensori posti fino a 800 metri di distanza!\u003cbr\u003e\u003c/p\u003e","title":"Una centralina meteo con ESP32, ESP-NOW e Wi-Fi"},{"content":" Come collegare un sensore elettronico ad ESP32 Per essere collegato ad ESP32, un sensore elettronico deve avere le seguenti caratteristiche:\nTensione di alimentazione compatibile: Il sensore dovrebbe in linea di massima usare la stessa tensione di alimentazione di ESP32, che è di 3,3V. Se il sensore richiede una tensione diversa, è necessario utilizzare un convertitore di tensione. In genere i convertitori di tensione sono dei dispositivi molto economici ma la loro presenza tende a complicare il progetto complessivo. Nel dubbio sarebbe meglio evitare sensori con alimentazione fuori dal range 3.3~5.0 V.\nLivello di segnale ben definito: Il sensore deve fornire segnali digitali o analogici compatibili con l\u0026rsquo;ESP32. Per i segnali digitali, il sensore deve utilizzare una tensione di 3,3V per indicare \u0026ldquo;1\u0026rdquo; e 0V per indicare \u0026ldquo;0\u0026rdquo;. Per i segnali analogici, il sensore deve fornire una tensione compresa tra 0V e 3,3V che rappresenta il valore misurato. Segnali fuori range possono danneggiare i pin GPIO usati come input. Al contrario segnali troppo bassi o oscilanti richiedono delle resistenze di \u0026ldquo;pull-up\u0026rdquo; o \u0026ldquo;pull-down\u0026rdquo;.\nI canali di comunicazione disponibili Il sensore deve utilizzare un\u0026rsquo;interfaccia di comunicazione compatibile con l\u0026rsquo;ESP32, come:\nI2C: Interfaccia di comunicazione seriale a due fili. L\u0026rsquo;I2C (Inter-Integrated Circuit) è un\u0026rsquo;interfaccia di comunicazione seriale sincrona a due fili utilizzata per collegare dispositivi a un microcontrollore, come l\u0026rsquo;ESP32. I due fili sono: SDA (Serial Data): Bidirezionale per la trasmissione e la ricezione di dati. SCL (Serial Clock): Fornisce un segnale di clock per sincronizzare la comunicazione.\nSPI: Interfaccia di comunicazione seriale a quattro fili. SPI (Serial Peripheral Interface) è un\u0026rsquo;interfaccia di comunicazione seriale sincrona a quattro fili utilizzata per collegare dispositivi a un microcontrollore, come l\u0026rsquo;ESP32. I quattro fili di SPI sono: MOSI (Master Out Slave In): Il master invia dati allo slave. MISO (Master In Slave Out): Lo slave invia dati al master. SCK (Serial Clock): Il master fornisce un segnale di clock per sincronizzare la comunicazione. SS (Slave Select): Il master seleziona lo slave con cui comunicare.\nUART: Interfaccia di comunicazione seriale asincrona. L\u0026rsquo;UART (Universal Asynchronous Receiver Transmitter) è un\u0026rsquo;interfaccia di comunicazione seriale asincrona che utilizza un solo filo per la trasmissione dati e uno per la ricezione.\nGPIO: Sono i normali pin di input e output dell\u0026rsquo;ESP32 e possono leggere sia i valori dei sensori analogici quanto quelli dei sensori digitali. Un pin GPIO che legga un sensore digitle è la situazione più semplice per collegare un sensore. Sensori come il sensore DHT11 ricadono in questa casistica. Le librerie di comunicazione software per ESP32 I2C: Libreria Wire: Libreria ufficiale Espressif per la comunicazione I2C. Semplice da usare e compatibile con la maggior parte dei dispositivi I2C. Adafruit_I2C: Libreria Adafruit con molte funzioni avanzate per la comunicazione I2C, come la scansione dei dispositivi e la gestione di più bus I2C.\nSPI: Libreria SPI: Libreria ufficiale Espressif per la comunicazione SPI. Semplice da usare e compatibile con la maggior parte dei dispositivi SPI. Adafruit_SPIDevice: Libreria Adafruit che facilita la comunicazione con dispositivi SPI specifici, come display LCD e schede SD.\nUART: SoftwareSerial: Libreria ufficiale Espressif per la comunicazione UART software. Permette di utilizzare i pin GPIO per la comunicazione UART. HardwareSerial: Libreria ufficiale Espressif per la comunicazione UART hardware. Permette di utilizzare le porte UART integrate dell\u0026rsquo;ESP32. Librerie aggiuntive:\nPubSubClient: Libreria per la comunicazione con broker MQTT. WiFiManager: Libreria per la gestione della connessione Wi-Fi. AsyncTCP: Libreria per la comunicazione TCP/IP asincrona.\nEsempi di codice C++ per leggere i sensori I2C Per leggere un sensore I2C con ESP32, è necessario seguire questi passaggi:\nCollegare il sensore all\u0026rsquo;ESP32: Collegare il pin VCC del sensore al pin 3V3 dell\u0026rsquo;ESP32. Collegare il pin GND del sensore al pin GND dell\u0026rsquo;ESP32. Collegare il pin SDA del sensore al pin SDA dell\u0026rsquo;ESP32. Collegare il pin SCL del sensore al pin SCL dell\u0026rsquo;ESP32. 2. Installare la libreria Wire:\nLa libreria Wire fornisce le funzioni per la comunicazione I2C. Apri l\u0026rsquo;IDE di Arduino e vai su \u0026ldquo;Strumenti \u0026gt; Gestisci librerie\u0026rdquo;. Cerca la libreria \u0026ldquo;Wire\u0026rdquo; e clicca su \u0026ldquo;Installa\u0026rdquo;. 3. Icolla il codice seguente:\n#include \u0026lt;Wire.h\u0026gt; void setup() { // Inizializzare la comunicazione I2C Wire.begin(); // Impostare indirizzo del sensore Wire.setI2CAddress(0x42); } void loop() { // Richiedere un byte di dati dal sensore uint8_t data = Wire.read(); // ... // Attendi un secondo delay(1000); } Esempi di codice C++ per leggere i sensori SPI Per leggere dati da un dispositivo slave, è necessario utilizzare la funzione SPI.read(). Esempio di codice per utilizzare SPI con ESP32:\n#include \u0026lt;SPI.h\u0026gt; void setup() { // Configura i pin SPI SPI.begin(SCK, MISO, MOSI, SS); // Imposta la velocità di clock SPI.setFrequency(1000000); // Inizializza la comunicazione SPI SPI.beginTransaction(); } void loop() { // Scrivi i dati su un dispositivo slave SPI.write(0x55); // Leggi i dati da un dispositivo slave uint8_t data = SPI.read(); // ... } Come leggere i valori che giungono dalla interfaccia UART Per leggere i valori che giungono da UART con ESP32, è necessario seguire questi passaggi:\nCollegare il dispositivo UART all\u0026rsquo;ESP32: Collegare il pin TX del dispositivo UART al pin RX dell\u0026rsquo;ESP32. Collegare il pin RX del dispositivo UART al pin TX dell\u0026rsquo;ESP32. Collegare il pin GND del dispositivo UART al pin GND dell\u0026rsquo;ESP32. 2. Configurare la comunicazione UART:\nApri l\u0026rsquo;IDE di Arduino e vai su \u0026ldquo;Strumenti \u0026gt; Porta\u0026rdquo;. Seleziona la porta seriale a cui è collegato il dispositivo UART. Imposta il \u0026ldquo;baud rate\u0026rdquo; della porta seriale. Il baud rate deve essere compatibile con il dispositivo UART. 3. Incolla il codice:\n#include \u0026lt;SoftwareSerial.h\u0026gt; SoftwareSerial mySerial(RX, TX); void setup() { // Inizializza la comunicazione UART mySerial.begin(9600); // ... } void loop() { // Controlla se ci sono dati disponibili if (mySerial.available()) { // Leggi un byte di dati uint8_t data = mySerial.read(); // ... } // Attendi 1 secondo delay(1000); } Come leggere i segnali attraverso i pin GPIO In questo caso dobbiamo\nCollegare il sensore all\u0026rsquo;ESP32: Collegare il pin di uscita del sensore a un pin GPIO dell\u0026rsquo;ESP32. Collegare il pin GND del sensore al pin GND dell\u0026rsquo;ESP32.\nConfigurare il pin GPIO: Impostare il pin GPIO come input. Impostare il pin GPIO come pull-up o pull-down (opzionale).\nIncollare il codice:\n// Imposta il pin GPIO come input pinMode(GPIO_NUM, INPUT); // Imposta il pin GPIO come pull-up digitalWrite(GPIO_NUM, HIGH); void setup() { // ... } void loop() { // Leggi il valore del pin GPIO uint8_t value = digitalRead(GPIO_NUM); // ... // Attendi un secondo delay(1000); } In questo esempio:\nLa funzione pinMode() imposta il pin GPIO come input. La funzione digitalWrite() imposta il pin GPIO come pull-up. La funzione digitalRead() legge il valore del pin GPIO.\nIn conclusione L\u0026rsquo;ESP32 è una scelta eccellente per i progetti che prevedono l\u0026rsquo;utilizzo di sensori. La sua compatibilità con un\u0026rsquo;ampia gamma di sensori, la sua facilità d\u0026rsquo;uso e il suo prezzo accessibile lo rendono una scelta ideale per hobbisti, studenti e professionisti.\nInoltre, la comunità di sviluppatori di ESP32 è molto attiva e fornisce un sacco di supporto e risorse online.\nSe stai cercando un microcontrollore versatile e potente per il tuo prossimo progetto che preveda l\u0026rsquo;utilizzo di sensori, l\u0026rsquo;ESP32 è una scelta eccellente.\n","permalink":"https://www.robotdazero.it/blog/i-sensori-compatibili-con-esp32/","summary":"\u003c!-- \n![schema connessioni](/images/154.png)\n\u003cstrong\u003e1\u003c/strong\u003e. \u003cspan style=\"background-color:#eeeeee\"\u003e Controllo delle versioni\u003c/span\u003e:\nimg width=\"70\" class=\"x figure-img img-fluid lazyload blur-up\"  src=\"/hog/inter.svg\" alt=\"logo sezione\"\u003e\u003cbr\u003e\u003cbr\u003e\n\n```bash\n```     \n\u003cdiv class=\"alert alert-doks d-flexflex-shrink-1\" role=\"alert\"\u003e🔑.\u003c/div\u003e\n--\u003e\n\u003ch2 id=\"come-collegare-un-sensore-elettronico-ad-esp32\"\u003eCome collegare un sensore elettronico ad ESP32\u003c/h2\u003e\n\u003cp\u003ePer essere collegato ad ESP32, un sensore elettronico deve avere le seguenti caratteristiche:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eTensione di alimentazione compatibile:\nIl sensore \u003cem\u003edovrebbe\u003c/em\u003e in linea di massima usare la stessa tensione di alimentazione di ESP32, che è di 3,3V. Se il sensore richiede una tensione diversa, è necessario utilizzare un convertitore di tensione. In genere i convertitori di tensione sono dei dispositivi molto economici ma la loro presenza tende a complicare il progetto complessivo. Nel dubbio sarebbe meglio evitare sensori con alimentazione fuori dal range 3.3~5.0 V.\u003c/p\u003e","title":"I sensori compatibili con ESP32"},{"content":" Espandi le tue abilità nel mondo IoT: Scopri come implementare un Server web con ESP32, ecco la prima parte della guida completa per creare e gestire un server web utilizzando la potente piattaforma ESP32\u0026hellip;\nCosa è un server web Un server web (server HTTP) è un software che gestisce le richieste HTTP (Hypertext Transfer Protocol) da client come web browser o app per mobile. In ambito IoT, un server web può essere implementato su un dispositivo ESP32 per:\nFornire un\u0026rsquo;interfaccia web che gestisca un dispositivo, Restituire dati in formato JSON o XML per l\u0026rsquo;analisi, Ricevere comandi da client remoti. Perchè usare un server web con ESP32 Un progetto che si limiti a presentare i valori dei sensori sul \u0026ldquo;Monitor Seriale\u0026rdquo; di Arduino IDE è una tappa inevitabile per un programmatore IoT, ma si tratta di una applicazione amatoriale e gravata da ovvi limiti. Per realizzare applicazioni professionali abbiamo bisogno di condividere i dati rilevati magari inviandoli a qualche app su Android. Per fare questo salto di qualità dobbiamo imparare delle nuove, semplici tecniche di networking (nulla di complicato) e usare un programma fondamentale nel mondo IoT: Il Server Web.\nIn questo paragrafo vedremo quali sono le strutture dati e le funzioni per creare un server web minimale. Lo stesso codice verrà quindi \u0026ldquo;incorporato\u0026rdquo; nella versione evoluta della nostra Centralina Multi-sensore. Con tale innesto la centralina potrà condividere i dati usando un sito web dinamico con HTML, Javascript e JSON. Il protocollo aggiuntivo JSON diventa necessario perchè vogliamo adottare la tecnologia AJAX.\nAJAX (Asynchronous JavaScript and XML) è una tecnica di sviluppo web che permette di aggiornare una pagina web in modo dinamico, senza ricaricare l\u0026rsquo;intera pagina e senza cliccare sul tasto Aggiorna del browser.\nCome funziona Ajax\nIl meccanismo software si può dividere per semplicità in tre parti:\n- Richiesta: L\u0026rsquo;utente invia una richiesta al server tramite JavaScript. - Elaborazione: Il server elabora la richiesta e restituisce una risposta in formato XML, JSON o testo. - Aggiornamento: Il client JavaScript aggiorna la pagina web in base alla risposta ricevuta.\nUna applicazione IoT moderna dovrebbe necessariamente includere AJAX per i grandi benefici che apporta nella esperienza utente (Le pagine web sono più fluide e reattive), ma anche per la riduzione nel traffico da e verso l\u0026rsquo;ESP32. Seppure i moderni microcontroller siano molto superiori ad Arduino UNO, le loro capacità di elaborazione sono comunque ben lontane dalle classiche CPU per Desktop.\n\u0026ldquo;Se vorrete costruire la nostra centralina con le modifiche che vi presentiamo potrete realizzare a basso costo un efficiente prodotto IoT dalla reale valenza commerciale.\u0026rdquo; Come scrivere un server web con ESP32 ESP32 utilizza (per fortuna) la sterminata libreria di Arduino e chi ha familiarità con questa piattaforma non dovrà imparare alcun nuovo concetto di programmazione. Come avviene con Arduino, per risolvere dei compiti complessi come la creazione di un server web, conviene appoggiarsi a del software già esistente. In questo caso potevamo usare, ad esempio la libreria \u0026ldquo;webServer\u0026rdquo; inclusa nell\u0026rsquo;IDE di Arduino e adottata da Espressif per l\u0026rsquo;ESP32.\nPer dei progetti \u0026ldquo;basici\u0026rdquo; di IoT puoi tranquillamente usare \u0026ldquo;webServer\u0026rdquo;, ma per il nostro server ESP32 con il sistema asincrono AJAX e il rendering dei valori in background, abbiamo preferito utilizzare la più performante libreria ESPAsyncwebServer, asincrona come suggerisce il nome e specifica per l\u0026rsquo;ESP32.\nIl codice Per iniziare vediamo come caricare le librerie che ci servono. Ci bastano le prime due linee con gli #include header delle librerie utilizzate.\nI file header, o file di intestazione, sono file di testo con estensione .h che contengono informazioni utili per la compilazione del codice C++. Le funzioni dei file header sono molteplici e non si limitano ad agganciare librerie come nel nostro caso, ma servono a vari altri scopi come:\n- Dichiarazioni di funzioni: Prototipi di funzioni che definiscono il nome, il tipo di ritorno e i parametri, - Dichiarazioni di classi: Struttura e membri di classi C++. - Definizioni di macro: Costanti simboliche utilizzate nel codice.\nPer chi inizia con il C++, aggiungere altre istruzioni solo per definire quello che vogliamo fare nel resto del programma può sembrare una complicazione inutile, ma non è così. Inoltre parrebbe più semplice caricare tutto nello stesso file sorgente, magari molto lungo e fare delle chiamate a funzioni. Ma le \u0026ldquo;best practices\u0026rdquo; della programmazione strutturata sconsigliano tale approccio:\nI Vantaggi dell'utilizzo dei file header\nNella pratica del C++ è emerso come dichiarare esplicitamente funzioni e librerie sia una pratica vantaggiosa per migliorare la qualità del codice in molti settori come: - Modularità, perchè permettono di dividere il codice in moduli separati e riutilizzabili, - Organizzazione, in quanto migliorano la leggibilità e la manutenibilità del codice,\n- Condivisione del codice perchè facilitano la condivisione di funzioni e librerie con altri sviluppatori. Ecco dunque gli header del programma: #include \u0026#34;ESPAsyncwebServer.h\u0026#34; #include \u0026lt;WiFi.h\u0026gt; Il primo include \u0026ldquo;carica\u0026rdquo; la libreria fondamentale e cioè \u0026ldquo;ESPAsyncwebServer\u0026rdquo;, mentre il secondo mette a disposizione del codice tutte le funzioni per il wireless offerte dalla libreria Wifi di Arduino.\nLe \u0026ldquo;variabili\u0026rdquo; statiche: constexpr char WIFI_SSID[] = \u0026#34;Cambia-il-nome\u0026#34;; constexpr char WIFI_PASS[] = \u0026#34;Cambia-il-nome\u0026#34;; IPAddress local_IP(192, 168, 1, 200); IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); IPAddress secondaryDNS(8, 8, 4, 4); Le prime due righe usano la istruzione \u0026ldquo;constexpr\u0026rdquo; per motivi di ottimizzazione del codice. Con constexpr possiamo assegnare il valore di espressioni (anche complesse) nel momento della compilazione, anziché a tempo di esecuzione, migliorando significativamente le prestazioni del codice.\nLe cinque righe successive assomigliano a delle normali dichiarazioni di variabili, ma sono variabili di un tipo particolare e cioè \u0026ldquo;IPAddress\u0026rdquo; specifico per interfacciarsi con la libreria Wifi. Per fortuna non dobbiamo ridefinire e modificare il loro \u0026ldquo;tipo\u0026rdquo;, ci basta seguire il formato ideato dagli sviluppatori e inserire i quattro numeri di un classico indirizzo IP.\nParlare di variabili in queste instruzioni è un poco ingannevole, perchè si tratta di valori che vengono definiti \u0026ldquo;una tantum\u0026rdquo; nel momento della creazione: Sono in realtà dei parametri per le funzioni OOP della libreria WiFi, ma per semplificare la spiegazione potete pensarle come cinque variabili con un tipo dati ad hoc.\nLa struttura dati principale del server web: AsyncwebServer server(80); const char index_html[] PROGMEM = R\u0026#34;rawliteral( \u0026lt;!DOCTYPE HTML\u0026gt;\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;title\u0026gt;Robotdazero - un semplice sito Statico\u0026lt;/title\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;p\u0026gt;Robotdazero - un semplice sito Statico\u0026lt;/p\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;/html\u0026gt;)rawliteral\u0026#34;; La prima riga crea la \u0026ldquo;istanza\u0026rdquo; dell\u0026rsquo;oggetto AsyncwebServer assegnando nel contempo il valore \u0026ldquo;80\u0026rdquo; alla porta del server. Il valore \u0026ldquo;80\u0026rdquo; viene usato per il normale protocollo HTTP mentre il valore \u0026ldquo;443\u0026rdquo; viene riservato a quello HTTP(S). Il nome dell\u0026rsquo;oggetto creato sarà un generico \u0026ldquo;server\u0026rdquo; e la cosa non è casuale: Se decidiamo di cambiare tipo di server e libreria collegata non avremo bisogno di modificare tutte le istruzioni nel codice, ma ci basta cambiare la riga:\nAsyncwebServer server(80); in\nwebServer server(80); La riga successiva: const char index_html[] PROGMEM = R\u0026quot;rawliteral(\u0026hellip; \u0026hellip;)rawliteral\u0026quot;\n(si tratta di una singola riga!) crea un oggetto String \u0026ldquo;index_html\u0026rdquo; che usa il \u0026ldquo;modificatore di variabile\u0026rdquo; PROGMEM per caricare la String nella zona di memoria flash di ESP32.\nSi tratta dunque di un trucco specifico per l\u0026rsquo;ESP32: Nel caso in questione, vista la ridotta lunghezza della stringa, potevamo fare a meno di usarlo, ma ti ricordo che stiamo illustrando il funzionamento di un server HTTP minimale. Nella versione completa che useremo nella Centralina Multi-sensore, l\u0026rsquo;accorgimento invece diventerà indispensabile per poter compilare il programma. Nella nota seguente cercheremo di chiarire l\u0026rsquo;altro comando misterioso della riga e cioè il costrutto sintattico \u0026ldquo;R()\u0026rdquo;.\nNel C++ di Arduino, la parola chiave R\u0026quot;()\u0026quot; (rawliteral) consente di definire stringhe letterali senza interpretare caratteri di escape come \\n o \\t. Questo significa che i caratteri di escape vengono trattati come caratteri letterali all\u0026rsquo;interno della stringa. La cosa è molto utile quando si tratta di stringhe che includono i caratteri \u0026ldquo;slash\u0026rdquo; e \u0026ldquo;back-slash\u0026rdquo; onnipresenti nei tag del codice HTML e XML.\nLa parola rawliteral non ha un valore particolare e viene usata solo per consuetudine: puoi usare qualsiasi altra parola come delimitatore.\nLa connessione al WI-Fi: void initWiFi() { WiFi.mode(WIFI_MODE_STA); if(!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;Non riesco a configurare la modalità station (STA)\u0026#34;); } WiFi.begin(WIFI_SSID, WIFI_PASS); Serial.printf(\u0026#34;In connessione a %s .\u0026#34;, WIFI_SSID); while (WiFi.status() != WL_CONNECTED) { Serial.print(\u0026#34;.\u0026#34;); delay(200); } Serial.println(\u0026#34;connesso!\u0026#34;); IPAddress ip = WiFi.localIP(); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Canale: %u\\n\u0026#34;, WiFi.channel()); Serial.printf(\u0026#34;IP: %u.%u.%u.%u\\n\u0026#34;, ip \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 8) \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 16) \u0026amp; 0xff, ip \u0026gt;\u0026gt; 24); } La funzione \u0026ldquo;initWiFi()\u0026rdquo; è una nostra funzione utente, priva di parametri in ingresso e non presenta \u0026ldquo;sottigliezze\u0026rdquo; particolari: E\u0026rsquo; una pura sequenza di istruzioni, destinata ad essere invocata dal \u0026ldquo;setup()\u0026rdquo; del programma. Una funzione di questo tipo, cioè senza parametri in ingresso e valore in uscita, potrebbe essere meglio chiamata una \u0026ldquo;procedura\u0026rdquo;.\nLa prima istruzione che incontriamo è:\n\u0026ldquo;WiFi.mode(WIFI_MODE_STA);\u0026quot;\nche assegna alla sezione radio dell\u0026rsquo;ESP32 la modalità \u0026ldquo;STATION\u0026rdquo; per collegarsi al Wi-Fi. Esistono altre modalità, ad esempio di tipo misto come \u0026ldquo;APSTA\u0026rdquo; di cui dovremo occuparci meglio in seguito.\nLa chiamata di funzione\n\u0026quot;WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)\u0026quot;\nserve a configurare l\u0026rsquo;oggetto Wifi con i parametri definiti in precedenza. L\u0026rsquo;operatore \u0026ldquo;.\u0026rdquo; è tipico dei linguaggi di programmazione OOP. In caso di errore il programma scriverà un messaggio di errore sul monitor seriale.\nLe istruzioni\n\u0026ldquo;while (WiFi.status() != WL_CONNECTED) { Serial.print(\u0026rdquo;.\u0026rdquo;); delay(200); }\u0026quot;\nmettono in loop il programma in attesa che lo stato della connessione sia = \u0026ldquo;WL_CONNECTED\u0026rdquo;. La istruzione \u0026ldquo;IPAddress ip = WiFi.localIP();\u0026rdquo; serve a settare l\u0026rsquo;indirizzo IP statico che avevamo definito ad inizio programma.\nUna istruzione interessante è \u0026ldquo;Serial.printf(\u0026ldquo;Canale: %u\\n\u0026rdquo;, WiFi.channel());\u0026rdquo; perchè permette di leggere il valore del canale Wi-Fi su cui opera la connessione: un dato fondamentale per lavorare con il protocollo ESP-NOW.\nLa funzione setup() e la funzione loop() void setup() { Serial.begin(115200); initWiFi(); server.on(\u0026#34;/\u0026#34;, HTTP_GET, [](AsyncwebServerRequest *request){ request-\u0026gt;send_P(200, \u0026#34;text/html\u0026#34;, index_html); }); server.begin(); } void loop() {} La funzione loop è vuota perchè stiamo considerando solo la struttura minima di un server HTTP, mentre la funzione \u0026ldquo;setup()\u0026rdquo; presenta una importante chiamata di funzione e cioè\n\u0026ldquo;*server.on(\u0026rdquo;/\u0026quot;, HTTP_GET, [](AsyncwebServerRequest request){ request-\u0026gt;send_P(200, \u0026ldquo;text/html\u0026rdquo;, index_html);\u0026quot;\nche mappa in RAM l\u0026rsquo;oggetto \u0026ldquo;server\u0026rdquo; (ricordate il nome molto generico?). L\u0026rsquo;oggetto request è di tipo AsyncwebServerRequest. Lo puoi considerare una zona di buffer dove sono conservate e manipolate moltissime informazioni quali ad esempio: il metodo HTTP utilizzato (GET, POST, ecc.), l\u0026rsquo;URL richiesto, i parametri passati nella \u0026ldquo;query string\u0026rdquo;, le intestazioni HTTP e moltissime altre informazioni.\nIn conclusione I server web (server HTTP) per ESP32 e Arduino offrono una serie di grandi opportunità nello sviluppo di applicazioni IoT:\nControllo e monitoraggio remoti: Permettono di controllare e monitorare i dispositivi IoT da qualsiasi luogo con un dispositivo connesso a internet. Interfacce utente web: Consentono di creare interfacce utente web per interagire con i dispositivi IoT. Comunicazione dati: Facilitano la comunicazione di dati tra dispositivi IoT e server remoti. Flessibilità: Offrono una piattaforma flessibile per creare applicazioni IoT personalizzate. Capire questo versione minimale del Server Web ti sarà di grande aiuto nell\u0026rsquo;affrontare gli altri progetti software più sofisticati che svilupperemo su Robotdazero.\n","permalink":"https://www.robotdazero.it/blog/come-scrivere-un-server-web-con-esp32/","summary":"\u003c!-- \nHTTPs://rntlab.com/question/web-servers-with-the-esp32-and-esp8266-1-1-hello-world-web-server/\n--\u003e\n\u003cp\u003e\u003cimg alt=\"header image\" loading=\"lazy\" src=\"/blog/come-scrivere-un-server-web-con-esp32/header.jpeg\"\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cem\u003eEspandi le tue abilità nel mondo IoT: Scopri come implementare un Server web con ESP32, ecco la prima parte della guida completa per creare e gestire un server web utilizzando la potente piattaforma ESP32\u0026hellip;\u003c/em\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"cosa-è-un-server-web\"\u003eCosa è un server web\u003c/h2\u003e\n\u003cp\u003eUn server web (server HTTP) è un software che gestisce le richieste HTTP (Hypertext Transfer Protocol) da client come web browser o app per mobile. In ambito IoT, un server web può essere implementato su un dispositivo ESP32 per:\u003c/p\u003e","title":"Come scrivere un server web con ESP32"},{"content":" Perchè parliamo di sensori ambientali ed ESP32 L\u0026rsquo;inquinamento atmosferico può avere gravi conseguenze sulla nostra salute. La esposizione prolungata a inquinanti come polveri sottili, ossidi di azoto, biossido di zolfo e ozono può causare importanti problemi respiratori oltre ad una serie di malattie specifiche di cui non ci occuperemo perchè estranee al nucleo delle nostre competenze.\nNon possediamo i titoli per illustrare i risvolti medici del problema, ma come informatici vogliamo sottolineare un fatto: L\u0026rsquo;utilizzo esteso dei sensori per IoT permette di dare un contributo nuovo e decisivo al monitoraggio dell\u0026rsquo;ambiente. E ciò sta avvenendo per due motivi principali:\nLa disponibilità di sensori elettronici di qualità a costo contenuto, Il successo dei programmi \u0026ldquo;Open Source\u0026rdquo; (free) per salvare, elaborare e mostrare sul WEB i dati dei sensori. Per questo motivo ti guideremo passo passo alla realizzazione pratica di una centralina Multi Sensore con server Web integrato e connessione ESP-NOW per ESP32. Il protocollo di comunicazione ESP-NOW ci servirà a piazzare dei sensori anche in posizioni remote, mantenendo la connessione in tempo reale ed evitando la memorizzazione ed estrazione dei dati da una SD-Card.\n🔑 Al momento non esiste una funzionalità equivalente ad ESP-NOW sulle schede Arduino e per questo concentreremo la nostra attenzione solo sulla scheda di Espressif. Prossimamente pubblicheremo altri lavori compatibili \"anche\" con Arduino mediante l'uso di schede esterne di tipo LoRa. Abbiamo usato ESP-NOW per la nostra centralina Multi Sensore perchè in applicazioni reali come il controllo dei terreni agricoli o degli impianti, l\u0026rsquo;uso della rete Wi-Fi diventa improponibile per motivi di \u0026ldquo;range\u0026rdquo;. Da pochi anni comunque innovazioni proprietarie come quella di Espressif oppure \u0026ldquo;Open Hardware\u0026rdquo; come la scheda LoRa, hanno permesso di ampliare il raggio operativo dei dispositivi IoT a costi molto contenuti.\nCosa sono le schede LoRa LoRa è una tecnologia wireless che permette di comunicare su lunghe distanze e viene spesso utilizzata nell\u0026rsquo;ambito dell\u0026rsquo;IoT. La sua impostazione di base privilegia aspetti come:\n- la trasmissione dei dati su distanze estese (anche diversi chilometri)\n- la efficienza di trasmissione in condizioni in cui altre tecnologie wireless potrebbero avere difficoltà, come ad esempio in ambienti urbani densamente popolati o in aree rurali.\nL\u0026rsquo;hardware delle schede LoRa Fisicamente le schede sono dei dispositivi hardware che integrano un modulo radio insieme a un microcontroller (ad esempio un ESP32) e altri componenti necessari per la comunicazione wireless e il controllo dei sensori. Queste schede forniscono una piattaforma completa per creare dei dispositivi IoT che trasmettano da posizioni \u0026ldquo;lontane\u0026rdquo; verso un gateway centrale, a sua colta connesso ad un sistema satellitare e/o alla rete Wi-fi.\nCome collegare i sensori ambientali ad ESP32 Collegare i sensori ambientali a una scheda ESP32 non è complicato ma richiede un minimo di accortezza nel classificare il tipo di sensore. Dal datasheet infatti in via preliminare dobbiamo controllare se il dispositivo ci fornisca in uscita solo un valore di tensione e sia quindi un sensore analogico oppure riesca a fornire il dato numerico esatto e in tal caso possiamo parlare di sensore digitale.\nIn linea di massima per collegare un sensore \u0026ldquo;ignoto\u0026rdquo; all\u0026rsquo;ESP32 dovrai:\nTrovare il pin del segnale dati e quindi collegarlo a un pin digitale o analogico dell\u0026rsquo;ESP32. Dovrai scegliere un pin appropriato in base alle specifiche del sensore e al tipo di segnale dati che fornisce.\nTrovare il pin della alimentazione (+V o Vcc) e collegarlo al pin di alimentazione dell\u0026rsquo;ESP32 (solitamente 5V o 3.3V, a seconda del sensore e della scheda ESP32 utilizzata).\nIdentificare la massa (GND) del sensore e collegarla al pin GND dell\u0026rsquo;ESP32.\nUna scheda ESP32 di solito ha più di un pin di \u0026ldquo;massa\u0026rdquo;, generalmente denominati GND o Ground. Il numero di pin è variabile a seconda del produttore e del modello specifico della scheda. Tuttavia, in genere, ci si aspetta di trovare almeno 2 pin GND su una scheda ESP32 per garantire una distribuzione uniforme e affidabile della massa.\nE infine dovrai chiarire il ruolo delle resistenze di pull-up o pull-down: Alcuni sensori digitali e/o con protocollo di comunicazione I2C, possono richiedere resistenze di pull-up o pull-down sui pin dati. Consulta il datasheet del sensore per determinare se sono necessarie e dove posizionarle. Conclusione Questo articolo offre una breve introduzione su come i nuovi sensori per IoT ed l\u0026rsquo;ESP32 possano trasformare il modo in cui monitoriamo e interagiamo con l\u0026rsquo;ambiente circostante. Mantenendo il giusto focus sull\u0026rsquo;efficienza energetica, l\u0026rsquo;accessibilità e le applicazioni pratiche, nelle prossime sezioni useremo tale hardware per un progetto \u0026ldquo;ambientale\u0026rdquo; abbastanza complesso.\n","permalink":"https://www.robotdazero.it/blog/i-sensori-ambientali-ed-esp32/","summary":"\u003c!-- \n\u003ca href=\"https://www.electrosoftcloud.com/en/esp32-wifi-and-esp-now-simultaneously/\" target=\"_blank\"\u003elink\u003c/a\u003e\n\u003ca href=\"/blog/come-installare-platformio\"\u003epost\u003c/a\u003e\n\u003ca href=\"/zip/platformio-template.zip\u003c/a\u003e\n```bash\n```     \n\u003cdiv class=\"alert alert-doks d-flexflex-shrink-1\" role=\"alert\"\u003e🔑.\u003c/div\u003e\n--\u003e\n\u003ch2 id=\"perchè-parliamo-di-sensori-ambientali-ed-esp32\"\u003ePerchè parliamo di sensori ambientali ed ESP32\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;inquinamento atmosferico può avere gravi conseguenze sulla nostra salute. La esposizione prolungata a inquinanti come polveri sottili, ossidi di azoto, biossido di zolfo e ozono può causare importanti problemi respiratori oltre ad una serie di malattie specifiche di cui non ci occuperemo perchè estranee al nucleo delle nostre competenze.\u003c/p\u003e\n\u003cp\u003eNon possediamo i titoli per illustrare i risvolti medici del problema, ma come informatici vogliamo sottolineare un fatto: L\u0026rsquo;utilizzo esteso dei sensori per IoT permette di dare un contributo nuovo e decisivo al monitoraggio dell\u0026rsquo;ambiente. \u003cbr\u003e\nE ciò sta avvenendo per due motivi principali:\u003c/p\u003e","title":"I sensori ambientali ed ESP32"},{"content":" Una breve premessa La connessione simultanea WIFI ed ESP-NOW con l\u0026rsquo;ESP32 presenta alcune sfide di programmazione non indifferenti e per questo abbiamo deciso di trattare l\u0026rsquo;argomento in modo esteso, prima di presentare dei nuovi progetti che sfruttano a fondo entrambe le tecnologie.\nCosa è ESP-NOW ESP-NOW è un protocollo di rete proprietario sviluppato da Espressif per la comunicazione a bassa latenza e basso consumo energetico tra dispositivi ESP32. Offre un\u0026rsquo;alternativa al Wi-Fi per la connessione di dispositivi in reti locali, con alcuni vantaggi:\nMaggiore affidabilità: ESP-NOW è progettato per ambienti con interferenze RF elevate e offre una maggiore affidabilità rispetto al Wi-Fi. Minore latenza: ESP-NOW offre una latenza inferiore rispetto al Wi-Fi, rendendola ideale per applicazioni in tempo reale. Minore consumo energetico: ESP-NOW consuma meno energia rispetto al Wi-Fi, prolungando la durata della batteria dei dispositivi. Il programma basico per commettersi ad ESP-NOW La trasmissione dati tra due ESP32 utilizzando il protocollo ESP-NOW è ben documentata da Espressif e il codice per inviare dati ad una scheda di cui conosciamo l\u0026rsquo;indirizzo MAC si limita a poche righe come queste:\nEsempio di base per ESP-NOW #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;esp_now.h\u0026gt; // Indirizzo MAC della scheda slave uint8_t slave_mac[] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX}; // Messaggio da inviare char message[] = \u0026#34;Ciao da ESP32 Master!\u0026#34;; void setup() { Serial.begin(115200); // Inizializzazione ESP-NOW if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;Errore durante l\u0026#39;inizializzazione!\u0026#34;); while(1); } // Imposta la scheda come master esp_now_set_self_role(ESP_NOW_ROLE_MASTER); // Aggiungi la scheda slave esp_now_add_peer(slave_mac); } void loop() { // Invia il messaggio alla scheda slave esp_now_send(slave_mac, (uint8_t*)message, strlen(message)); Serial.println(\u0026#34;Messaggio inviato: \u0026#34; + String(message)); // Attendi 10 secondi prima di inviare di nuovo il messaggio delay(10000); } I problemi nell\u0026rsquo;utilizzo simultaneo di Wi-Fi e ESP-NOW Dall\u0026rsquo;esempio precedente si nota come ESP-NOW non sia un protocollo \u0026ldquo;difficile\u0026rdquo; da inserire nei nostri programmi, ma la sua coesistenza con il Wi-Fi sull\u0026rsquo;ESP32 presenta delle sfide non banali. Tra queste la maggiore è sicuramente la dotazione di una singola radio (e antenna) che deve essere condivisa tra i due sistemi. Questa limitazione tecnica può causare, e spesso causa, conflitti e rallentamenti in entrambe le connessioni.\nPossibili soluzioni Avendo deciso di costruire una centralina di monitoraggio dell\u0026rsquo;aria con sensori ESP-NOW e server WEB, abbiamo sperimentato alcune scappatoie per aggirare il problema. Il primo passo è stato studiare le limitazioni per l\u0026rsquo;uso in simultanea dei due protocolli che ti riassumiamo in breve:\nLa schede ESP32 trasmittente deve utilizzare lo stesso canale Wi-Fi della scheda ricevente. Purtroppo il canale WiFi della scheda ricevente viene assegnato in automatico dal router WiFi e questo è già una fonte di potenziali problemi. I problemi dell\u0026rsquo;approccio basico ad ESP-NOW Se, come noi, hai usato l\u0026rsquo;esempio base aggiungendo la connessione Wi-Fi, avrai notato come non appena questa viene attivata, la maggior parte dei pacchetti ESP-NOW smette di arrivre. Questa anomalia sembra essere correlata al modo in cui funzionano i router Wi-Fi in genere e non direttamente all\u0026rsquo;ESP32. Vediamo meglio come risolvere il problema e analizziamo nello specifico il ruolo di master e slave:\nL\u0026rsquo;esempio di base e i problemi con il \u0026ldquo;Master\u0026rdquo; Il master è il nodo che invierà i dati ESP-NOW allo slave, che a sua volta si occuperà di connettersi al WiFi. Il Master non si connetterà al WiFi e quindi lo useremo solo per inviare.\nCosa sono Master e Slave in ESP-NOW di Espressif per ESP32: - Master: Invia dati ad altri dispositivi (slave), avvia la comunicazione con gli slave, può comunicare con più slave contemporaneamente. - Slave: Riceve dati dal master, risponde alle richieste del master, può comunicare con un solo master alla volta. Configurazione Master/Slave in ESP-NOW: La configurazione del ruolo master/slave avviene tramite software. La libreria software ESP-NOW (link) fornisce funzioni per impostare il ruolo del dispositivo ESP32, mentre questa pagina fornisce (in inglese) la documentazione completa dell\u0026rsquo;intero pacchetto.\nI problemi della scheda \u0026ldquo;Slave\u0026rdquo; Lo slave sarà dunque il nodo che si connette al WiFi per poter inviare i dati su Internet. È proprio in questo nodo che troveremo il problema dei pacchetti che non arrivano con conseguente perdita di dati. Se per il master non si poteva parlare di un vero e proprio difetto di progettazione, con lo slave siamo costretti a modificare il programma di base per adattarlo alla doppia connessione.\nPerchè la colpa è realmente della connessione WI-FI: Se hai usato l'esempio di base Espressif ed hai aggiunto i comandi per collegarsi al tuo Wi-Fi, avrai osservato che i pacchetti non riescono a passare tra il nodo master e il nodo slave. Ma ciò accade solo DOPO che viene attivato il WiFi: Infatti, se commenti la linea \"WiFi.begin()\" nel tuo programma l'errore scompare! Una prima parziale soluzione Abbiamo visto, per esempio in questo sito che i progettisti sono ricorsi a due schede \u0026ldquo;gateway\u0026rdquo; che scambiano dati via JSON sulla porta seriale, con il primo gateway collegato ai sensori ESP-NOW e il secondo alla rete Wi-Fi.\nNel box in rosso si vede come le due schede ESP32 provvedano a dividersi i compiti e a scambiarsi i dati dei sensori usando JSON su un cavetto seriale. In questo modo si risolve l\u0026rsquo;anomalia ma si è costretti ad usare una seconda ESP32 e un \u0026ldquo;terzo\u0026rdquo; protocollo (JSON) solo per aggirare il problema. Viene dunque introdotto un nuovo livello di complessità al sistema e sappiamo per esperienza che la complessità provoca sempre conseguenze \u0026ldquo;indesiderate\u0026rdquo;.\nOvviamente abbiamo scartato questa soluzione di ripiego, abbiamo cercato nuovi approfondimenti sulla questione e li abbiamo trovati a questo link di Electrosoftcloud.com. Nell\u0026rsquo;articolo si suggerisce di non connettersi alla Wi-Fi usando la istruzione:\nWiFi.modalità(WIFI_STA); ma di usare invece questa istruzione:\nWiFi.modalità(WIFI_AP_STA); che permette di riconfigurare la ricetrasmittente hardware della scheda ESP32. I motivi precisi per cui questo accade vengono meglio spiegati nella prossima nota:\nIl problema principale sembra essere causato dalla modalità station WiFi che entra in modalità sleep non appena smette di ricevere dati. Ciò significa che non \u0026ldquo;ascolta\u0026rdquo; mentre gli vengono inviati i pacchetti ESP-NOW, che vengono dunque persi. Per risolvere questo problema dovremo forzare il nostro microcontrollore ad ascoltare continuamente, e questo si ottiene trasformandolo in un AP (Access Point). Forzando la scheda a funzionare come \u0026ldquo;AP\u0026rdquo; e Stazione allo stesso tempo abbiamo realizzato un passo importante verso la soluzione definitiva.\nLa soluzione definitiva Con il semplice cambiamento descritto nella sezione precedente, si risolve il 70% dei problemi della rete mista con ESP32, ma non tutti. La anomalia sui dati potrebbe ripresentarsi cambiando router, schede e configurazione, proprio perchè dobbiamo ancora risolvere alla radice il problema del canale Wi-Fi. Per questo motivo abbiamo sperimentato come progetti che funzionavano per ore apparentemente in modo perfetto, smettevano di funzionare semplicemente riavviando il router!\nLa soluzione definitiva consiste nell\u0026rsquo;aggiungere qualche riga in più ai programmi che scriverai per collegare ESP32 al Wi-fi e in basso trovi il codice commentato come lo utilizziamo nei nostri progetti. Dopo questi aggiustamenti il collegamento in rete mista dovrebbe sempre funzionare: La funzione \u0026ldquo;getWiFiChannel()\u0026rdquo; infatti aggancia in automatico il canale della ricevente.\nCon questo accorgimento la connessione diventa stabile e la possiamo usare per \u0026ldquo;potenziare\u0026rdquo; la nostra centralina di controllo della qualità dell\u0026rsquo;aria. Con la ESP-NOW possiamo infatti piazzare più sensori anche a distanza di 200 metri dalla ricevente. Con l\u0026rsquo;utilizzo di una antenna ad alto guadagno possiamo intercettare i segnali delle ESP32 più lontane superando di molto la portata del router Wi-Fi.\nIn basso trovi lo \u0026ldquo;scheletro\u0026rdquo; del codice definitivo per far convivere ESP-NOW e Wi-Fi. Lo presentiamo separatamente per il \u0026ldquo;master\u0026rdquo; e lo \u0026ldquo;slave\u0026rdquo;, ma tieni a mente che non sono dei programmi completi, ma delle \u0026ldquo;patch\u0026rdquo; che spiegano come scrivere dei programmi compatibili con entrambe le tecnologie.\nCodice della scheda ESP32 \u0026ldquo;ricevente\u0026rdquo; void initWiFi() { WiFi.mode(WIFI_MODE_APSTA); if(!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;Errore di configurazione\u0026#34;); } WiFi.begin(WIFI_SSID, WIFI_PASS); Serial.printf(\u0026#34;In connessione a %s .\u0026#34;, WIFI_SSID); while (WiFi.status() != WL_CONNECTED) { Serial.print(\u0026#34;.\u0026#34;); delay(200); } Serial.println(\u0026#34;ok\u0026#34;); IPAddress ip = WiFi.localIP(); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); Serial.printf(\u0026#34;IP: %u.%u.%u.%u\\n\u0026#34;, ip \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 8) \u0026amp; 0xff, (ip \u0026gt;\u0026gt; 16) \u0026amp; 0xff, ip \u0026gt;\u0026gt; 24); } void initEspNow() { if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;Errore di inizializzazione di ESP NOW\u0026#34;); while (1); } esp_now_register_recv_cb(suDatiRicevuti); } void setup() { initWiFi(); initEspNow(); } Codice della ESP32 \u0026ldquo;trasmittente\u0026rdquo; int32_t getWiFiChannel(const char *ssid) { if (int32_t n = WiFi.scanNetworks()) { for (uint8_t i=0; i\u0026lt;n; i++) { if (!strcmp(ssid, WiFi.SSID(i).c_str())) { return WiFi.channel(i); } } } return 0; } void initWiFi() { WiFi.mode(WIFI_MODE_STA); // acquisice il canale usato dalla WIFI int32_t channel = getWiFiChannel(WIFI_SSID); esp_wifi_set_promiscuous(true); esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE); esp_wifi_set_promiscuous(false); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); } void initEspNow() { if (esp_now_init() != ESP_OK) { Serial.println(\u0026#34;ESP NOW failed to initialize\u0026#34;); while (1); } memcpy(peerInfo.peer_addr, ESP_NOW_RECEIVER, 6); peerInfo.ifidx = WIFI_IF_STA; peerInfo.encrypt = false; if (esp_now_add_peer(\u0026amp;peerInfo) != ESP_OK) { Serial.println(\u0026#34;ESP NOW pairing failure\u0026#34;); while (1); } } void setup() { initWiFi(); initEspNow(); } E questo è infine il pezzo di programma che riesce a sincronizzare le due schede ESP32 in versione ricevente e trasmittente sullo stesso canale. Un semplice ciclo \u0026ldquo;for\u0026rdquo; effettua la scansione dei canali disponibili sulla rete = \u0026ldquo;WIFI_SSID\u0026rdquo;.\nint32_t getWiFiChannel(const char *ssid) { if (int32_t n = WiFi.scanNetworks()) { for (uint8_t i=0; i\u0026lt;n; i++) { if (!strcmp(ssid, WiFi.SSID(i).c_str())) { return WiFi.channel(i); } } } return 0; } void initWiFi() { WiFi.mode(WIFI_MODE_STA); // la parte chiave del programma int32_t channel = getWiFiChannel(WIFI_SSID); esp_wifi_set_promiscuous(true); esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE); esp_wifi_set_promiscuous(false); Serial.printf(\u0026#34;SSID: %s\\n\u0026#34;, WIFI_SSID); Serial.printf(\u0026#34;Channel: %u\\n\u0026#34;, WiFi.channel()); } Conclusione Se vuoi vedere il programma completo con la doppia connessione e server Web AJAX integrato e lettura di sensori multipli ti rimando alle sezioni successive con piani dettagliati, programmi e istruzioni per il montaggio\nRobotdazero.it - post - R.155.1.4.0\n","permalink":"https://www.robotdazero.it/blog/la-connessione-simultanea-tra-wifi-ed-espnow/","summary":"\u003c!-- \nhttps://www.electrosoftcloud.com/en/esp32-wifi-and-esp-now-simultaneously/\nhttps://randomnerdtutorials.com/esp32-ESP-NOW-wi-fi-web-server/  \nhttps://rntlab.com/question/how-to-know-and-or-set-the-wifi-channel-on-an-esp32/?utm_source=pocket_saves\nhttps://github.com/HarringayMakerSpace/ESP-Now/blob/master/espnow-sensor-minimal/espnow-sensor-minimal.ino\n--\u003e\n\u003cp\u003e\u003cimg alt=\"anteprima sito web\" loading=\"lazy\" src=\"/blog/la-connessione-simultanea-tra-wifi-ed-espnow/header.jpeg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"una-breve-premessa\"\u003eUna breve premessa\u003c/h2\u003e\n\u003cp\u003eLa connessione simultanea WIFI ed ESP-NOW con l\u0026rsquo;ESP32 presenta alcune sfide di programmazione non indifferenti e per questo abbiamo deciso di trattare l\u0026rsquo;argomento in modo esteso, prima di presentare dei nuovi progetti che sfruttano a fondo entrambe le tecnologie.\u003c/p\u003e\n\u003ch3 id=\"cosa-è-esp-now\"\u003eCosa è ESP-NOW\u003c/h3\u003e\n\u003cp\u003eESP-NOW è un protocollo di rete proprietario sviluppato da Espressif per la comunicazione a bassa latenza e basso consumo energetico tra dispositivi ESP32. Offre un\u0026rsquo;alternativa al Wi-Fi per la connessione di dispositivi in reti locali, con alcuni vantaggi:\u003c/p\u003e","title":"La connessione simultanea tra WIFI ed ESPNOW"},{"content":"\nCosa sono i display LCD? I display a cristalli liquidi (LCD) sono una tecnologia di visualizzazione ampiamente utilizzata in un\u0026rsquo;ampia varietà di dispositivi, tra cui computer, smartphone, televisori e monitor. Funzionano sfruttando le proprietà ottiche dei cristalli liquidi per modulare la luce.\nI cristalli liquidi sono una fase della materia che si trova tra lo stato solido e quello liquido. A differenza dei cristalli solidi, che hanno una struttura ordinata, i cristalli liquidi hanno una struttura disordinata. Tuttavia, a differenza dei liquidi, i cristalli liquidi hanno la capacità di allineare le loro molecole in un campo elettrico.\nNei display LCD le molecole di cristalli liquidi sono disposte tra due strati di materiale polarizzante. Quando un campo elettrico viene applicato alle molecole, esse si allineano in modo da ruotare la polarizzazione della luce che le attraversa. La luce ruotata, infine viene quindi \u0026ldquo;notata\u0026rdquo; da un osservatore.\nFisicamente sono composti da almeno 4 diversi componenti principali:\nUn pannello di vetro: Il pannello di vetro fornisce una superficie di supporto per gli altri componenti del display. Un filtro polarizzante: Il filtro polarizzante polarizza la luce che attraversa il display. Uno strato di cristalli liquidi: Lo strato di cristalli liquidi modula la luce che lo attraversa in base al campo elettrico applicato. Un altro filtro polarizzante: Il secondo filtro polarizzante blocca la luce che non è stata ruotata dalle molecole di cristalli liquidi. Nei display con retroilluminazione esiste un altro componente: Un elettroluminescente (EL), in genere formato da più LED dello stesso colore, che fornisce la luce che illumina il display.\nI display LCD sono disponibili in due almeno due diverse varietà, e precisamente: Display LCD a matrice passiva: I display LCD a matrice passiva sono i più semplici e convenienti. Tuttavia, hanno un tempo di risposta più lento e un angolo di visione più ristretto rispetto ad altri tipi di display LCD. Display LCD a matrice attiva: I display LCD a matrice attiva offrono una migliore qualità dell\u0026rsquo;immagine e un angolo di visione più ampio rispetto ai display LCD a matrice passiva. Tuttavia, sono anche più costosi. Utilizzo dei display LCD nel mondo IoT I display LCD sono ampiamente utilizzati nel mondo dell\u0026rsquo;Internet of Things (IoT) per visualizzare informazioni e dati in tempo reale da sensori, attuatori e altri dispositivi connessi. Il motivo si può trovare nella efficienza energetica di questo dispositivo che permette la alimentazione a batteria senza gravare sui consumi ma anche nella economicità del prodotto. I display LCD infatti sono diventati accessori comunissimi nei progetti IoT a basso costo, rendendoli il mezzo preferito per la visualizzazione di informazioni testuali e grafiche.\nNella Domotica i display LCD possono mostrare dati su temperatura, umidità, consumo energetico e controllare dispositivi intelligenti e il loro utilizzo non si limita alle \u0026ldquo;abitazioni\u0026rdquo; civili ma si estende alla cosiddetta \u0026ldquo;Industria 4.0\u0026rdquo;: I display LCD possono visualizzare informazioni su macchinari, produzione e manutenzione in tempo reale.\nE se questo non bastasse a giustificare l\u0026rsquo;interesse ti ricordo come negli ultimi anni gli Smartwatch con LCD possono mostrare ora, frequenza cardiaca, notifiche e molto altro con ingombri ridottissimi, una vera mini rivoluzione nel campo IoT.\nProtocolli di comunicazione per i display LCD I moderni display LCD sono dispositivi sofisticati e non \u0026ldquo;comunicano\u0026rdquo; con segnali elettrici \u0026ldquo;grezzi\u0026rdquo; o solo con la interfaccia seriale. Nel tempo hanno attirato la attenzione dei progettisti che li hanno dotati di molteplici protocolli di comunicazione ad alto livello. Tra questi il più interessante è il protocollo I2C, sviluppato in origine da Philips negli anni \u0026lsquo;80.\nIl protocollo I2C (Inter-Integrated Circuit) è una tecnologia di comunicazione seriale a due fili ampiamente utilizzata nell\u0026rsquo;Internet of Things (IoT) per la comunicazione tra dispositivi a corto raggio. Il fattore chiave per la sua diffusione è stato certamente la semplicità di connessione: I2C richiede solo due fili di segnale (SDA e SCL) per la comunicazione, rendendolo facile da implementare e cablare. Inoltre I2C è un protocollo a basso costo, poiché non richiede componenti costosi o complessi, può essere utilizzato per collegare una varietà di dispositivi, come sensori, attuatori, display e memorie. Possiede inoltre una elevata efficienza energetica che lo rende ideale per dispositivi alimentati a batteria.\nLe caratteristiche elettriche del protocollo I2C Il bus Inter-Integrated Circuit (I2C) è un meccanismo di comunicazione seriale a livello di chip che opera su soli due fili. Alcuni sviluppatori pronunciano il nome del bus eye-two-see, altri eye-squared-see, ma entrambi si riferiscono alla stessa cosa. Dal 1982 è diventato uno standard de facto supportato da molti dispositivi come Arduino, ESP32 o Raspberry Pi. Il bus fisico\nI2C si compone di due fili. Una linea I2C trasmette i dati, l'altra i segnali di clock che sincronizzano la conversazione tra dispositivi. La linea dati è chiamata 'SDA‘, la linea di clock’SCL'. Le resistenze di \"pull-up\"\nIn genere, sia SDA che SCL sono collegati a una linea di alimentazione da 3,3 o 5 V attraverso una resistenza di \"pull-up\". L'aggiunta delle resistenze garantisce il preciso riconoscimento dei valori digitali 0 e 1. Esistono altri protocolli di comunicazione per collegare i display LCD, come ad esempio l\u0026rsquo;SPI: Protocollo di comunicazione seriale a quattro fili, più veloce di I2C e l\u0026rsquo;UART: Un Protocollo di comunicazione seriale asincrono, adatto per lunghe distanze.\nIl software per i display LCD Esistono diverse librerie e framework per semplificare l\u0026rsquo;utilizzo dei display LCD con l\u0026rsquo;IoT, come ad esempio:\nLiquidCrystal_I2C: Una libreria per Arduino o ESP32 per l\u0026rsquo;uso dei display LCD con la interfaccia I2C. U8g2: Una libreria per la gestione di diversi tipi di display grafici. Adafruit GFX: Per la gestione di display grafici con diverse interfacce. Le connessioni del display con l\u0026rsquo;ESP32 Avendo illustrato quali librerie sono a disposizione per il funzionamento del software, vediamo adesso quali sono i collegamenti hardware per testare le librerie I2C. Per collegare il display LCD all\u0026rsquo;ESP32 usando l\u0026rsquo;interfaccia I2C, puoi seguire questi facili passaggi:\nCollega il pin Vcc del display LCD al pin 5V di ESP32. Collega il pin GND del display LCD al pin GND di ESP32. Collega il pin SDA del display LCD al pin SDA (GPIO 23) di ESP32. Collega il pin SCL del display LCD al pin SCL (GPIO 18) di ESP32. ![schema connessioni su come scrivere su un display LCD con ESP32](images/154.png) Esaurita la parte dei collegamenti, che puoi portare a termine usando dei semplici connettori Dupont femmina/femmina e senza breadboard, non ci resta che occuparci del software e di come compilarlo con PlatformIO e Arduino IDE.\nIl software completo per scrivere sul display LCD Questo è il programma completo per testare il funzionamento del dispositivo: Provvede a settare delle impostazioni standard per il display, a caricare la libreria e lanciare un semplice conteggio da uno a dieci. Più in basso trovi le istruzioni per compilarlo con PlatformIO e Arduino IDE.\nil file \u0026ldquo;main.ino\u0026rdquo; #include \u0026lt;LiquidCrystal_I2C.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; #define I2C_SDA 23 #define I2C_SCL 18 LiquidCrystal_I2C lcd(0x27,16,2); void setup() { Serial.begin(115200); Wire.begin(I2C_SDA, I2C_SCL, 10000); lcd.init(); lcd.clear(); lcd.backlight(); lcd.setContrast(30); // Valore di contrasto (da 0 a 255) lcd.setCursor(0,0); lcd.print(\u0026#34;Inizio conteggio\u0026#34;); delay(3000); for (int ix=1; ix\u0026lt;=10; ix++) { lcd.clear(); Serial.println(ix); lcd.print(ix); delay(1000); } lcd.clear(); lcd.print(\u0026#34;Fine conteggio\u0026#34;); } void loop() { } L\u0026rsquo;output del programma Dopo la compilazione se tutto è andato nel modo previsto dovresti vedere sul display la scritta \u0026ldquo;Inizio conteggio\u0026rdquo; e quindi la sequenza di numeri dall\u0026rsquo;uno al dieci. Alla fine della sequenza dovrebbe apparire il messaggio \u0026ldquo;Fine conteggio\u0026rdquo;.\nUn breve commento alle istruzioni del programma Le linee: #include \u0026lt;LiquidCrystal_I2C.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; servono a caricare la libreria LiquidCrystal_I2C di Marco Schwartz e la libreria complementare Wire, entrambe destinate alla gestione dei dispositivi I2C.\nLe linee: #define I2C_SDA 23 #define I2C_SCL 18 servono a definire i pin dell\u0026rsquo;ESP32 che useremo per la comunicazione I2C: Il protocollo è così semplice da richiedere appena due pin. Dopo la definizione possiamo fare riferimento ai pin con il loro equivalente simbolico. Se vogliamo cambiare pin e connessione ci basta cambiare solo queste due righe senza modificare oltre il programma originale.\nLa linea: Wire.begin(I2C_SDA, I2C_SCL, 10000); permette all\u0026rsquo;ESP32 di collegarsi all\u0026rsquo;I2C come \u0026ldquo;master\u0026rdquo;: Se stai usando (come in questo caso) un display LCD devi sempre collegarti come \u0026ldquo;master\u0026rdquo;.\nLe linee: lcd.init(); lcd.clear(); lcd.backlight(); lcd.setContrast(30); // Valore di contrasto (da 0 a 255) lcd.setCursor(0,0); servono a impostare i parametri di base del display, in particolare la prima istruzione \u0026ldquo;lcd.init();\u0026rdquo; serve a inizializzare il dispositivo mentre la ultima istruzione \u0026ldquo;lcd.setCursor(0,0);\u0026rdquo; permette di portare il cursore a inizio riga.\nInfine le linee: for (int ix=1; ix\u0026lt;=10; ix++) { lcd.clear(); Serial.println(ix); lcd.print(ix); delay(1000); } dichiarano una variabile ix da usare per un loop a 10 steps: Ad ogni step viene ripulito il display con la istruzione \u0026ldquo;lcd.clear();\u0026rdquo;. Quindi la istruzione \u0026ldquo;lcd.print(ix);\u0026rdquo; stampa il valore numerico sul display e la istruzione successiva \u0026ldquo;delay(1000);\u0026rdquo; effettua una pausa di un secondo. La istruzione \u0026ldquo;lcd.print()\u0026rdquo; non ha bisogno di conversione da numerico ad alfanumerico.\nCome compilare il programma con PlatformIO Per usare PlatformIO abbiamo predisposto la solita procedura copie e incolla che non richiedere alcun intervento manuale a condizione che tu abbia installato PlatformIO come spiegato in questo post del nostro blog.\nFai copia e incolla del testo in basso. Se sposti il mouse sopra la zona gialla apparirà la scritta \u0026ldquo;Copy\u0026rdquo; in rosso; quindi vai sulla PowerShell di Windows o sul terminale di Linux e fai incolla.\ngit clone git@github.com:sebadima/corso-esp32-scrittura-display-LCD.git cd corso-esp32-scrittura-display-LCD/ make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Dopo avere premuto \u0026ldquo;INVIO\u0026rdquo; apparirà il log della compilazione e del linking del programma come vedi nello specchietto in basso:\nCloning into \u0026#39;corso-esp32-scrittura-display-LCD\u0026#39;... remote: Enumerating objects: 18, done. remote: Counting objects: 100% (18/18), done. remote: Compressing objects: 100% (9/9), done. remote: Total 18 (delta 4), reused 17 (delta 3), pack-reused 0 Receiving objects: 100% (18/18), done. Resolving deltas: 100% (4/4), done. pio -f -c vim run Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino) --------------------------------------------------------------------------------- Library Manager: Installing marcoschwartz/LiquidCrystal_I2C @ ^1.1.4 Unpacking [####################################] 100% Library Manager: LiquidCrystal_I2C@1.1.4 has been installed! Verbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32dev.html PLATFORM: Espressif 32 (6.4.0) \u0026gt; Espressif ESP32 Dev Module HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, IoT-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20011.230801 (2.0.11) - tool-esptoolpy @ 1.40501.0 (4.5.1) - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 Converting main.ino LDF: Library Dependency Finder -\u0026gt; https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ chain, Compatibility ~ soft Found 34 compatible libraries Scanning dependencies... Dependency Graph |-- LiquidCrystal_I2C @ 1.1.4 |-- Wire @ 2.0.0 Building in release mode Compiling .pio/build/esp32dev/src/main.ino.cpp.o Building .pio/build/esp32dev/bootloader.bin Generating partitions .pio/build/esp32dev/partitions.bin esptool.py v4.5.1 Creating esp32 image... Merged 1 ELF section Successfully created esp32 image. Compiling .pio/build/esp32dev/lib253/Wire/Wire.cpp.o Compiling .pio/build/esp32dev/libe44/LiquidCrystal_I2C/LiquidCrystal_I2C.cpp.o Compiling .pio/build/esp32dev/FrameworkArduino/Esp.cpp.o ... ... Compiling .pio/build/esp32dev/FrameworkArduino/wiring_pulse.c.o Compiling .pio/build/esp32dev/FrameworkArduino/wiring_shift.c.o Archiving .pio/build/esp32dev/libFrameworkArduino.a Indexing .pio/build/esp32dev/libFrameworkArduino.a Linking .pio/build/esp32dev/firmware.elf Retrieving maximum program size .pio/build/esp32dev/firmware.elf Checking size .pio/build/esp32dev/firmware.elf Advanced Memory Usage is available via \u0026#34;PlatformIO Home \u0026gt; Project Inspect\u0026#34; RAM: [= ] 6.6% (used 21760 bytes from 327680 bytes) Flash: [== ] 21.5% (used 281933 bytes from 1310720 bytes) Building .pio/build/esp32dev/firmware.bin esptool.py v4.5.1 Creating esp32 image... Merged 2 ELF sections Successfully created esp32 image. Il comando proseguirà inoltre a fare l\u0026rsquo;upload del file oggetto nella memoria dell\u0026rsquo;ESP32 e a lanciare il monitor seriale di PlatformIO.\nCome compilare il programma con Arduino IDE Se non hai usato PlaformIO come nell\u0026rsquo;esempio precedente puoi comunque compilare il file \u0026ldquo;main.ino\u0026rdquo; con il software di Arduino e per fare ciò ti basta seguire questi passaggi:\nApri Arduino IDE, Crea un nuovo progetto cliccando su \u0026ldquo;File\u0026rdquo; \u0026gt; \u0026ldquo;Nuovo\u0026rdquo;. Verrà creato un nuovo progetto vuoto, Incolla il codice \u0026ldquo;main.ino\u0026rdquo; nell\u0026rsquo;area di testo principale, Con Arduino devi installare manualmente la libreria \u0026ldquo;LiquidCrystal_I2C\u0026rdquo; e per fare ciò puoi cliccare su Sketch\u0026gt; #Includi libreria\u0026gt; Gestione librerie. Il programma verificherà tutte le librerie presenti e mostrerà una casella di ricerca, a questo punto digita il nome della libreria \u0026ldquo;LiquidCrystal_I2C\u0026rdquo; e clicca su \u0026ldquo;Installa\u0026rdquo;. Al termine della installazione apparirà la dicitura “INSTALLED“: Premi il tasto \u0026ldquo;Chiudi\u0026rdquo; per uscire.\nFinalmente puoi cliccare sul pulsante \u0026ldquo;Verifica\u0026rdquo; nella barra degli strumenti, Se non ci sono errori collega la scheda al computer, Seleziona la scheda ESP32 corretta dal menu \u0026ldquo;Strumenti\u0026rdquo; \u0026gt; \u0026ldquo;Scheda\u0026rdquo;, Clicca sul pulsante \u0026ldquo;Carica\u0026rdquo; nella barra degli strumenti. Adesso Il programma verrà caricato sulla scheda ESP32. Per leggere i messaggi di log del programma ti basta andare su \u0026ldquo;Strumenti\u0026rdquo; \u0026gt; \u0026ldquo;Monitor Seriale\u0026rdquo;.\nI link delle librerie I2C Libreria LiquidCrystal_I2C: link\nLibreria Wire: link\nRobotdazero.it - post - R.154.1.4.0\n","permalink":"https://www.robotdazero.it/blog/come-scrivere-su-un-display-lcd-con-esp32/","summary":"\u003cp\u003e\u003cimg alt=\"ESP32 e display LCD connessioni\" loading=\"lazy\" src=\"/blog/come-scrivere-su-un-display-lcd-con-esp32/display-lcd01.webp\"\u003e\u003c/p\u003e\n\u003ch2 id=\"cosa-sono-i-display-lcd\"\u003eCosa sono i display LCD?\u003c/h2\u003e\n\u003cp\u003eI display a cristalli liquidi (LCD) sono una tecnologia di visualizzazione ampiamente utilizzata in un\u0026rsquo;ampia varietà di dispositivi, tra cui computer, smartphone, televisori e monitor. Funzionano sfruttando le proprietà ottiche dei cristalli liquidi per modulare la luce.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eI cristalli liquidi sono una fase della materia che si trova tra lo stato solido e quello liquido. A differenza dei cristalli solidi, che hanno una struttura ordinata, i cristalli liquidi hanno una struttura disordinata. Tuttavia, a differenza dei liquidi, i cristalli liquidi hanno la capacità di allineare le loro molecole in un campo elettrico.\u003cbr\u003eNei display LCD le molecole di cristalli liquidi sono disposte tra due strati di materiale polarizzante. Quando un campo elettrico viene applicato alle molecole, esse si allineano in modo da ruotare la polarizzazione della luce che le attraversa. La luce ruotata, infine viene quindi \u0026ldquo;notata\u0026rdquo; da un osservatore.\u003c/p\u003e","title":"Come scrivere su un display LCD con ESP32"},{"content":" Introduzione L\u0026rsquo;avvento dell\u0026rsquo;Internet of Things (IoT) ha rivoluzionato il modo in cui interagiamo con la nostra casa. La domotica, in particolare, ha portato all\u0026rsquo;introduzione di dispositivi intelligenti in grado di automatizzare diverse funzioni e di monitorare l\u0026rsquo;ambiente domestico.\nIn questo articolo, presenteremo un progetto per la realizzazione di una centralina multi-sensore basata sulla scheda ESP32. La centralina sarà in grado di:\nRilevare la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;ambiente, Monitorare la qualità dell\u0026rsquo;aria, Rilevare la presenza di gas combustibili. Il progetto è rivolto a hobbisti ed appassionati di elettronica con un livello di conoscenza intermedio. La realizzazione della centralina richiede l\u0026rsquo;utilizzo di componenti elettronici di base, facilmente reperibili online o nei negozi di elettronica.\nCosa troverai in questo articolo:\nLa lista dei componenti necessari, Lo schema elettrico della centralina, Il programma free per ESP32. Il sensore di gas MQ-2 Il sensore di gas MQ-2 è un dispositivo elettronico ampiamente utilizzato per rilevare la presenza di vari gas nel suo ambiente circostante. Questo sensore è particolarmente noto per la sua capacità di rilevare gas infiammabili come metano, propano, butano, idrogeno e altri gas combustibili, oltre a essere sensibile anche a gas nocivi come fumi di sigaretta, alcol, ammoniaca e vapori di benzene.\nIl sensore MQ-2 si basa su una tecnologia di rilevamento nota come sensore di gas a resistenza variabile. Questo tipo di sensore utilizza un elemento sensibile che reagisce chimicamente alla presenza di gas specifici, causando una variazione nella sua resistenza elettrica. Quando il gas viene rilevato, la resistenza dell\u0026rsquo;elemento sensibile cambia e questa variazione viene misurata per determinare la concentrazione del gas nell\u0026rsquo;ambiente.\nDal punto di vista tecnico, il sensore MQ-2 è costituito da diversi componenti chiave, tra cui l\u0026rsquo;elemento sensibile, un circuito di controllo e un dispositivo di rilevamento delle variazioni di resistenza.\n🔑 Il circuito di controllo gestisce tutte le operazioni del sensore, inclusa la conversione del valore di resistenza in un segnale elettrico. Il dispositivo che legge il valore della resistenza si chiama convertitore analogico-digitale ed è in grado di trasformare la tensione analogica in un valore digitale. Tutti i moderni microcontrollori come il nostro ESP32 riescono a leggere senza problemi i segnali digitali. Come funziona il sensore di gas MQ-2 Il sensore è composto da un elemento riscaldante in ossido di stagno (SnO2) posizionato su un substrato di ceramica. Al riscaldamento, l\u0026rsquo;elemento sensibile presenta una conduttività elettrica che varia in base alla concentrazioni di gas combustibili presenti nell\u0026rsquo;aria circostante. In presenza di gas, le molecole di gas si adsorbono sulla superficie dell\u0026rsquo;ossido di stagno, provocando una diminuzione della conduttività.\nLa variazione di conduttività viene misurata da un circuito elettrico e convertita in un segnale analogico proporzionale alla concentrazione di gas presente\nLe migliori qualità del sensore di gas MQ-2 Sensibilità elevata: Il sensore è particolarmente sensibile a gas combustibili come GPL, propano e metano. Ampia gamma di rilevamento: Il sensore è in grado di rilevare concentrazioni di gas da 200 ppm a 10000 ppm. Tempo di risposta rapido: Il sensore ha un tempo di risposta rapido, inferiore a 2 secondi. Facilità di utilizzo: Il sensore è facile da utilizzare e richiede solo una semplice alimentazione a 5V, erogabile dalla uscita a 5V di ESP32. Costo contenuto: Il sensore ha un costo relativamente basso. I campi di applicazione del sensore di gas MQ-2 A parte il semplice progetto che ti presentiamo, il sensore MQ-2 viene utilizzato in svariate applicazioni con Arduino ed ESP32 tra cui:\nRilevamento di fughe di gas: Il sensore può essere utilizzato per rilevare fughe di gas in abitazioni, industrie e ambienti commerciali. Sistemi di allarme antincendio: Il sensore può essere utilizzato in sistemi di allarme antincendio per rilevare la presenza di fumi e gas combustibili. Controllo della qualità dell\u0026rsquo;aria: Il sensore può essere utilizzato per monitorare la qualità dell\u0026rsquo;aria in ambienti interni ed esterni. Domotica: Il sensore può essere utilizzato in sistemi di domotica per controllare la ventilazione in base alla qualità dell\u0026rsquo;aria. Le altre tipologie di sensori di gas Esistono in commercio oltre 40 sensori di gas alternativi a MQ-2, grossomodo riconducibili a tre sole categorie:\n1. Sensori elettrochimici: sono più selettivi rispetto al sensore MQ-2 e sono in grado di distinguere tra diversi tipi di gas.\n2. Sensori a infrarossi: questi sensori sono in grado di rilevare la presenza di gas senza entrare in contatto con essi.\n3. Sensori a stato solido: sono più stabili e affidabili rispetto al sensore MQ-2.\nPerchè abbiamo scelto proprio il sensore MQ-2 Abbiamo testato molti dei sensori alternativi e in alcuni casi abbiamo rilevato tempi di risposta più rapidi o maggiore omogeneità di risultati. Abbiamo comunque preferito l\u0026rsquo;MQ-2 per il rapporto qualità prezzo imbattibile e la robustezza del case metallico, ideale per la costruzione di un prototipo.\nIl sensore di gas MQ-135 Il sensore di gas MQ-135 è un sensore a semiconduttore di tipo chemio-resistivo, progettato per rilevare la presenza di gas combustibili come GPL, propano, metano, idrogeno e fumi in aria.\nIl sensore dell\u0026rsquo;MQ-135 è composto da un elemento riscaldante in ossido di stagno (SnO2) posizionato su un substrato di ceramica. Dopo il pre-riscaldamento, l\u0026rsquo;elemento sensibile presenta una conduttività elettrica che varia in base alla concentrazione di gas combustibili presenti nell\u0026rsquo;aria.\nIn presenza di gas, le molecole di gas si adsorbono sulla superficie dell\u0026rsquo;ossido di stagno, provocando una diminuzione della conduttività. La variazione di conduttività viene misurata da un circuito elettrico e convertita in un segnale analogico proporzionale alla concentrazione di gas presente.\nLa qualità chiave di questo sensore è la sensibilità elevata:\nL\u0026rsquo;MQ-135 è fra i migliori dispositivi per tracciare gas potenzialmente pericolosi come GPL, propano e metano. Possiede inoltre una ampia gamma di rilevamento: Il sensore è in grado di rilevare concentrazioni di gas da 200 ppm a 10000 ppm.\nPerchè abbiamo usato l\u0026rsquo;MQ-135 in questo progetto A parte la somiglianza con l\u0026rsquo;MQ-2 e quindi la estrema robustezza del case metallico lo abbiamo selezionato per due motivi ben precisi:\nIl tempo di risposta rapido: MQ-135 ha un tempo di risposta assai rapido, inferiore ai 2 secondi. Grazie a questa possiamo usarlo con vantaggio in questo prototipo, dove verosimilmente proveremo a testarlo \u0026ldquo;live\u0026rdquo; con svariati gas e vapori. La facilità di di utilizzo: è un prodotto \u0026ldquo;da scaffale\u0026rdquo; facile da utilizzare e richiede una banale alimentazione a 5V. Le connessioni sono adatte ai connettori Dupont a differenza dei sensori industriali che possono richiedere saldature o connettori speciali. Il sensore DHT11 Il sensore DHT11 è un sensore digitale che può svolgere il doppio ruolo di rilevazione della temperatura e della umidità: vediamo brevemente come funziona in entrambi i casi.\n1 - Sensore di temperatura Il DHT11 utilizza un termistore per rilevare la temperatura ambiente. Un termistore è un dispositivo resistivo la cui resistenza varia in base alla temperatura. Nel caso del DHT11, il termistore è costituito da un materiale il cui valore di resistenza diminuisce al crescere della temperatura.\n2 - Sensore di umidità Il DHT11 misura l\u0026rsquo;umidità relativa e per fare questo utilizza un condensatore a film polimerico con un dielettrico. Il dielettrico (isolante) al cambiamento dell\u0026rsquo;umidità modifica la capacità del condensatore. Le variazioni vengono quindi convertite in un segnale elettrico.\nIl funzionamento del DHT11 Il sensore contiene un circuito integrato che si occupa di leggere la resistenza e la capacità in segnali digitali. Il circuito riesce a convertire i valori di temperatura e umidità in un segnale digitale standard. I dati così ottenuti vengono inviati all\u0026rsquo;ESP32 che con questo sistema non deve effettuare nessuna conversione.\nI segnali digitali assumono solo due valori discreti, solitamente rappresentati come \u0026ldquo;0\u0026rdquo; e \u0026ldquo;1\u0026rdquo;. In termini elettrici, questi valori possono corrispondere a due tensioni differenti, come 0V e 5V, oppure a due stati logici, come \u0026ldquo;vero\u0026rdquo; e \u0026ldquo;falso\u0026rdquo;. Caratteristiche: Ampiezza: I segnali digitali hanno un\u0026rsquo;ampiezza ben definita e non possono assumere valori intermedi tra i due livelli discreti. Frequenza: La frequenza di un segnale digitale rappresenta il numero di volte al secondo in cui il segnale cambia stato. Forma d\u0026rsquo;onda: La forma d\u0026rsquo;onda di un segnale digitale può essere quadrata, sinusoidale o di altra forma, a seconda dell\u0026rsquo;applicazione. Esempi di segnali digitali: 1. Bit in un computer 2. Segnali di clock 3.Dati binari 4. Segnali Analogici: I segnali analogici assumono un\u0026rsquo;ampiezza continua all\u0026rsquo;interno di un intervallo specificato. In altre parole, possono assumere qualsiasi valore all\u0026rsquo;interno di tale intervallo. Caratteristiche:\nAmpiezza: L\u0026rsquo;ampiezza di un segnale analogico varia in modo continuo in base al valore che rappresenta. Frequenza: La frequenza di un segnale analogico può essere costante o variabile, a seconda del tipo di segnale. Forma d\u0026rsquo;onda: La forma d\u0026rsquo;onda di un segnale analogico può essere sinusoidale, quadrata, triangolare o di altra forma, a seconda dell\u0026rsquo;applicazione.\nLe caratteristiche tecniche del DHT11 Accuratezza: ±1°C per la temperatura e ±5% per l\u0026rsquo;umidità. Risoluzione: 1°C per la temperatura e 1% per l\u0026rsquo;umidità. Gamma di misurazione: 0-50°C per la temperatura e 20-90% per l\u0026rsquo;umidità. Tempo di risposta: 1 secondo. Come usare questo progetto Questa mini-stazione di controllo dotata di sensori DHT11, MQ-2 e MQ-135 può essere utilizzata per monitorare la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;aria in ambienti interni ed esterni, e risulta ideale per applicazioni in questi settori:\nDomotica in genere: La centralina può controllare la temperatura e l\u0026rsquo;umidità delle singole stanze, Rilevamento di gas pericolosi: La combinazione di MQ2 e MQ135 permette di controllare la maggior parte dei gas domestici pericolosi, Gestione delle serre: Il DHT11 può essere usato nelle serre per monitorare temperatura e umidità. Componenti del progetto Il progetto non usa resistenze o altri componenti passivi e non ha bisogno di saldature: i connettori Dupont e una breadboard sono sufficienti per completare il montaggio. Ti ricordo che dovresti sempre usare dei colori consistenti nella scelta dei fili di collegamento ed usare, ad esempio solo Dupont neri o blu scuro per il negativo, solo rossi per il positivo e gialli/verdi per il segnale elettrico.\nLo schema di colori che ti ho suggerito è solo indicativo e puoi modificarlo secondo le tue preferenze ma ti consiglio di adottarne solo uno e di mantenere le tue scelte nel tempo. Oltre ai connettori ti servirà una breadboard.\nSensore MQ-2 - vedi su Amazon Sensore MQ-135 - vedi su Amazon Sensore DHT11 - vedi su Amazon Scheda ESP32 - vedi su Amazon Breadboard per montaggi elettronici (oppure 2 breadboard unite lungo la linea di mezzeria) Lo schema elettrico La massa (GND) dell\u0026rsquo;ESP32 deve essere collegata al negativo comune della breadboard e il pin 5V sempre dell\u0026rsquo;ESP32 deve essere collegato alla linea rossa della breadboard.\nLe connessioni (+) e (-) dei sensori finiscono sulle righe rosse e blu della breadboard. L\u0026rsquo;assemblaggio non presenta grosse difficoltà: basta seguire scrupolosamente il disegno. Le linee dati dei sensori sono rappresentate in giallo. Il pin centrale del DHT11 viene collegato al pin 13 dell\u0026rsquo;ESP32 mentre i due sensori MQ sono collegati ai pin 33 e 35. Il programma Vediamo adesso come installare il programma sull\u0026rsquo;ESP32: procederemo inizialmente ad usare PlatformIO e poi vederemo come compilare con Arduino IDE. Andiamo sul terminale di Linux o sulla Windows PowerShell e facciamo copia e incolla del riquadro sotto.\ngit clone git@github.com:sebadima/corso-esp32-centralina-multisensore.git cd corso-esp32-centralina-multisensore make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Dopo avere premuto il tasto invio avremo questa sequenza dal terminale:\nCloning into \u0026#39;corso-esp32-centralina-multisensore\u0026#39;... remote: Enumerating objects: 36, done. remote: Counting objects: 100% (36/36), done. remote: Compressing objects: 100% (16/16), done. remote: Total 36 (delta 11), reused 34 (delta 9), pack-reused 0 Receiving objects: 100% (36/36), 6.22 KiB | 1.24 MiB/s, done. Resolving deltas: 100% (11/11), done. pio -f -c vim run --target upload Processing esp32dev (platform: espressif32; board: esp32dev; framework: arduino) Platformio provvederà a compilare il programma, a scaricare le librerie e a linkarle al codice oggetto. Il codice oggetto compilato verrà quindi caricato sulla scheda. In caso di problemi con l\u0026rsquo;upload devi editare il file platformio.ini e modificare la porta utilizzata dall\u0026rsquo;ESP32.\nSe usi Linux puoi trovare la porta utilizzata dalla scheda scrivendo:\nls /dev/ttyUS* mentre su Windows puoi usare il comando:\nGet-CimInstance -Class Win32_SerialPort | Select-Object Name, Description, DeviceID Il file principale \u0026ldquo;main.ino\u0026rdquo; #include \u0026lt;Arduino.h\u0026gt; #include \u0026#34;DHT.h\u0026#34; #include \u0026#34;soc/soc.h\u0026#34; #include \u0026#34;soc/rtc_cntl_reg.h\u0026#34; #define DHTPIN 13 #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float t, h, g_1, g_2; int lost_packages; int Gas_1 = 33; int Gas_2 = 35; void setup() { Serial.begin(115200); WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); //disable brownout detector dht.begin(); pinMode(Gas_1, INPUT); pinMode(Gas_2, INPUT); } void loop() { h = dht.readHumidity(); t = dht.readTemperature(); g_1 = analogRead(Gas_1); g_2 = analogRead(Gas_2); if (isnan(g_1) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore di GAS 1!\u0026#34;)); return; } if (isnan(g_2) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore di GAS 2!\u0026#34;)); return; } if (isnan(t) ) { Serial.println(F(\u0026#34;Non riesco a leggere dal sensore DHT!\u0026#34;)); return; } Serial.print(\u0026#34;Temperatura: \u0026#34;); Serial.println(t); Serial.print(\u0026#34;Umidità: \u0026#34;); Serial.println(h); Serial.print(\u0026#34;Gas_1: \u0026#34;); Serial.println(g_1); Serial.print(\u0026#34;Gas_2: \u0026#34;); Serial.println(g_2); Serial.println(\u0026#34;\u0026#34;); delay(2000); } Come compilare \u0026ldquo;main.ino\u0026rdquo; con Arduino IDE Segui questi passaggi:\nApri Arduino IDE, Crea un nuovo progetto cliccando su \u0026ldquo;File\u0026rdquo; \u0026gt; \u0026ldquo;Nuovo\u0026rdquo;. Verrà creato un nuovo progetto vuoto, Incolla il codice \u0026ldquo;main.ino\u0026rdquo; nell\u0026rsquo;area di testo principale, Clicca sul pulsante \u0026ldquo;Verifica\u0026rdquo; nella barra degli strumenti, Se non ci sono errori collega la scheda Arduino al computer, Seleziona la scheda Arduino corretta dal menu \u0026ldquo;Strumenti\u0026rdquo; \u0026gt; \u0026ldquo;Scheda\u0026rdquo;, Clicca sul pulsante \u0026ldquo;Carica\u0026rdquo; nella barra degli strumenti. Adesso Il programma verrà caricato sulla scheda Arduino. Per leggere i valori dei sensori ti basta andare su \u0026ldquo;Strumenti\u0026rdquo; \u0026gt; \u0026ldquo;Monitor Seriale\u0026rdquo;.\nUn breve commento alle istruzioni del programma La linea: DHT dht(DHTPIN, DHTTYPE); serve ad inizializzare nella RAM l\u0026rsquo;oggetto che rappresenta il driver per il DHT11. La istruzione mappa nella area \u0026ldquo;codice\u0026rdquo; di ESP32 funzioni e variabili interne tipiche della programmazione ad oggetti. A questi valori si può accedere solo usando i metodi di interfaccia tipici dei linguaggi \u0026ldquo;Object Oriented\u0026rdquo;. Più in basso vedremo come il programma riesca ad usare l\u0026rsquo;oggetto \u0026ldquo;DHT dht()\u0026rdquo; per leggere istantaneamente la temperatura.\nLa linea: WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); viene usata per disabilitare il controllo del BROWNOUT dell\u0026rsquo;ESP32. Si tratta di un controllo elettrico voluto dai progettisti per segnalare anomalie nella tensione di alimentazione. Poichè stiamo usando l\u0026rsquo;ESP32 collegato al cavetto USB preferiamo disabilitarlo per evitare improbabili e inutili segnalazioni di errore. Nel caso di alimentazione a batteria probabilmente può avere un senso riabilitarlo.\nLe linee: dht.begin(); pinMode(Gas_1, INPUT); pinMode(Gas_2, INPUT); servono la prima a lanciare la funzione di start up dell\u0026rsquo;oggetto \u0026ldquo;dht\u0026rdquo;, mentre le due successive servono a segnalare all\u0026rsquo; ESP32 che deve usare i due pin 33 e 35 come input.\nLe linee: h = dht.readHumidity(); t = dht.readTemperature(); servono a leggere umidità e temperatura usando le funzioni di interfaccia dell\u0026rsquo;oggetto \u0026ldquo;dht\u0026rdquo; ovvero le funzioni sicure pensate dai progettisti per nascondere la complessità del codice interno. Le funzioni sono introdotte dal \u0026ldquo;.\u0026rdquo; come stabilito dalla sintassi del C++.\nLe linee: g_1 = analogRead(Gas_1); g_2 = analogRead(Gas_2); servono a leggere la tensione fornita dai pin 33 e 35 usando una funzione predefinita di Arduino: analogRead(). La interpretazione del valore viene lasciata al software e all\u0026rsquo;utente, a differenza di quanto riesce a fare il DHT11.\nInfine le tre linee: if (isnan(g_1) ) ... if (isnan(g_2) ) ... if (isnan(t) ) ... sono usate per tracciare gli errori dei tre sensori, come ad esempio valori fuori scala o infiniti (NaN).\n🔑 In informatica, NaN (Not a Number), è un particolare simbolo che non è rappresentabile come un numero. Ad esempio il risultato della operazione \"0/0\" non è rappresentabile come un numero. L'uso sistematico delle NAN è stato introdotto dallo ","permalink":"https://www.robotdazero.it/blog/una-centralina-multi-sensore-con-esp32/","summary":"\u003c!-- \nhttps://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/ \nhttps://circuitdigest.com/microcontroller-projects/interfacing-mq135-gas-sensor-with-arduino-to-measure-co2-levels-in-ppm\n--\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;avvento dell\u0026rsquo;Internet of Things (IoT) ha rivoluzionato il modo in cui interagiamo con la nostra casa. La domotica, in particolare, ha portato all\u0026rsquo;introduzione di dispositivi intelligenti in grado di automatizzare diverse funzioni e di monitorare l\u0026rsquo;ambiente domestico.\u003c/p\u003e\n\u003cp\u003eIn questo articolo, presenteremo un progetto per la realizzazione di una centralina multi-sensore basata sulla scheda ESP32. La centralina sarà in grado di:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRilevare la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;ambiente,\u003c/li\u003e\n\u003cli\u003eMonitorare la qualità dell\u0026rsquo;aria,\u003c/li\u003e\n\u003cli\u003eRilevare la presenza di gas combustibili.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIl progetto è rivolto a hobbisti ed appassionati di elettronica con un livello di conoscenza intermedio. La realizzazione della centralina richiede l\u0026rsquo;utilizzo di componenti elettronici di base, facilmente reperibili online o nei negozi di elettronica.\u003c/p\u003e","title":"Una centralina multi sensore con ESP32"},{"content":" L\u0026rsquo;accurata misurazione della temperatura e dell\u0026rsquo;umidità è cruciale in molte applicazioni, dall\u0026rsquo;agricoltura all\u0026rsquo;automazione domestica. Grazie alla sua flessibilità e capacità di connessione, l\u0026rsquo;ESP32 si presenta come una scelta ideale per acquisire dati da sensori come il DHT11. Scopriamo insieme come collegare questo sensore all\u0026rsquo;ESP32\u0026hellip;\nIl sensore DHT11 Il sensore DHT11 viene usato per misurare la temperatura e l\u0026rsquo;umidità relativa dell\u0026rsquo;aria. E\u0026rsquo; probabilmente il sensore digitale più popolare, in parte per il basso costo e in parte per la semplicità di collegamento. Proprio perchè digitale infatti, non necessita di calcoli per la conversione e può inoltre essere adoperato senza componenti aggiuntivi: le versioni più recenti non necessitano neppure di una resistenza di pull-up.\nI progettisti hanno pensato bene di saldare una resistenza di pull-up da 10 KΩ nella mini basetta del DHT11 e in questo modo sono riusciti a semplificare il lavoro di progettisti e assemblatori.\nPer collegarlo basta perciò fornirgli l\u0026rsquo;alimentazione e connettere il pin \u0026ldquo;dati\u0026rdquo; ad un pin GPIO digitale. Anche l\u0026rsquo;alimentazione è molto semplice: visto il basso assorbimento lo possiamo collegare senza problemi al pin 5V di ESP32.\nLe caratteristiche del sensore DHT11 Sensore digitale di temperatura e umidità:\nfunzionamento resistivo per l\u0026rsquo;umidità, NTC per la temperatura, Calibrazione effettuata in fabbrica, riesce a misurare l\u0026rsquo;umidità relativa (RH) e la temperatura ambiente, Ampia gamma di misurazione della temperatura: da 0°C a 50°C, Gamma di misurazione della umidità: da 20% a 80%. La precisione del sensore: Temperatura: ± 0.1°C Umidità: ± 5% Frequenza di campionamento: 1 Hz (una misurazione al secondo) La sua connettività: Interfaccia digitale a 1 filo (semplice da collegare) Basso consumo energetico Tensione di funzionamento 3.3V ~ 5V Corrente di alimentazione 0.5 mA ~ 2.5 mA Il sensore DHT11 è un sensore NTC, ma cosa significa esattamente? I sensori NTC: o termistori a coefficiente di temperatura negativo, sono componenti elettronici che sfruttano la proprietà di alcuni materiali semiconduttori di variare la propria resistenza in base alla temperatura. In parole povere, più la temperatura aumenta, più la resistenza del sensore diminuisce. Come funzionano: Il principio di funzionamento si basa sul fatto che all\u0026rsquo;aumentare della temperatura, il numero di portatori di carica liberi nel materiale semiconduttore aumenta, favorendo il passaggio di corrente. Di conseguenza, la resistenza del sensore diminuisce\u0026hellip;\nIl sensore DHT22 Il DHT11 ha un \u0026ldquo;quasi gemello\u0026rdquo;, il DHT22 con delle specifiche similari. Il sensore DHT22 ha una risoluzione migliore e un campo di misura di temperatura e umidità più ampio. Tuttavia è più costoso e non può effettuare letture ad intervalli di 1 secondo. Nel nostro tutorial useremo solo il DHT11.\nIl pinout del DHT11 I vecchi sensori DHT11 avevano quattro pin come mostrato nella figura seguente:\nNella tabella in basso puoi vedere il pinout del DHT11 a 4 pin. Quando il sensore è rivolto verso di te, la numerazione dei pin inizia da 1 da sinistra verso destra.\npin1: Alimentazione da 3.3V fino a 5V pin2: Qualsiasi GPIO digitale dell\u0026rsquo;ESP32 (con una resistenza) pin3: Non collegato pin4: GND Le versioni più moderne del DHT11 Le versioni recenti del sensore sono fornite con una scheda breakout con solo tre pin e con una resistenza di pull-up collegata elettricamente al pin 2. La puoi vedere facilmente nel cerchietto rosso accanto al pin VCC.\nIn basso trovi il pinout del DHT11 a 3 pin.\nPin 1 - (GND) - Massa del circuito Pin 2 - (DATA) - Uscita dati verso qualsiasi GPIO digitale dell\u0026rsquo;ESP32 Pin 3 - (VCC) - Alimentazione da 3.3V fino a 5V Nel nostro progetto useremo solo la versione a 3 pin.\nLe resistenze di pull-up sono dei componenti utilizzati nei circuiti digitali per garantire che un segnale rimanga a un livello logico alto (1 logico) quando non è altrimenti definito. Questo è particolarmente importante in dispositivi a logica aperta (open-drain o open-collector) o quando si lavora con dispositivi a bassa corrente come i MOSFET.\nLo schema elettrico Nello schema in basso:\nil filo nero collega il pin GND dell\u0026rsquo;ESP32 al pin1 del DHT11 (il pin più a sinistra),\nil filo giallo connette il pin GPIO 13 dell\u0026rsquo;ESP con il pin centrale del DHT11,\nil filo rosso serve a collegare la alimentazione prelevata dal pin 5V della scheda con il terzo pin a destra del sensore.\nIl programma per leggere il sensore DHT11 con ESP32 Se vuoi sapere come compilare un programma con Arduino Ide e con PlatformIO a linea di comando puoi leggere questo post del nostro blog. Per installare PlatformIO puoi invece fare riferimento a questo altro post. Nei progetti più complessi useremo soprattutto PlatformIO per sua semplice interazione con il comando GIT.\nPer installare il progetto completo dal nostro account Github fai copia e incolla dalla casella sottostante:\ngit clone git@github.com:sebadima/corso-ESP32-dht11-basic.git cd corso-ESP32-dht11-basic make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Dopo alcuni istanti vedrai i valori di Temperatura e Umidità rilevati dal sensore. Con Platformio non è necessario settare scheda, porta e installare librerie \u0026ldquo;a mano\u0026rdquo;, un vantaggio non da poco. Il trucco è semplicissimo: i nomi e le versioni delle librerie sono scritte nel file platformio.ini e il comando \u0026ldquo;make\u0026rdquo; si occupa di scaricarle da internet, compilarle e linkarle.\nIl file main.ino #include \u0026lt;Arduino.h\u0026gt; #include \u0026lt;Adafruit_Sensor.h\u0026gt; #include \u0026lt;DHT.h\u0026gt; #define DHTPIN 13 // Pin #13 dell ESP32 #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); float t; float h; void setup(){ Serial.begin(115200); dht.begin(); } void loop(){ float newT = dht.readTemperature(); if (isnan(newT)) { Serial.println(\u0026#34;Non riesco a leggere il sensore DHT!\u0026#34;); } else { t = newT; Serial.print(\u0026#34;Temperatura = \u0026#34;); Serial.println(t); } float newH = dht.readHumidity(); if (isnan(newH)) { Serial.println(\u0026#34;Non riesco a leggere il sensore DHT!\u0026#34;); } else { h = newH; Serial.print(\u0026#34;Umidità = \u0026#34;); Serial.println(h); } delay(1000); } Se hai scaricato da Github avrai l\u0026rsquo;ambiente di sviluppo già pronto compreso il file sorgente, ma è utile dargli una occhiata se vuoi, ad esempio, apportare delle piccole modifiche.\nLa struttura dati:\nDHT dht(DHTPIN, DHTTYPE);\nserve a far funzionare il DHT11 isolandolo in un \u0026ldquo;oggetto\u0026rdquo; incapsulato, cui accedere solo attraverso delle chiamate di funzione senza leggere o peggio modificare variabili e puntatori.\nLa funzione: setup()\nnon serve a nulla di speciale ma serve a settare la seriale a 115200 baud ed a inizializzare in automatico l\u0026rsquo;\u0026ldquo;oggetto\u0026rdquo; per il DHT11.\nLa istruzione: float newT = dht.readTemperature();\nlegge le temperatura mentre la istruzione:\nif (isnan(newT)) \u0026hellip;\npermette di controllare se il DHT11 è davvero collegato e se arrivano i dati.\nInfine la istruzione: delay(1000);\nserve ad introdurre un breve intervallo di un secondo, abbastanza veloce per rilevare il movimento di un accendino nei paraggi del sensore\nIl collaudo del programma per leggere il sensore DHT11 con ESP32 Dopo avere lanciato il monitor seriale dovresti leggere la temperatura e la umidità come nella immagine sopra. Se ciò non accade controlla di avere collegato il pin GPIO13 di ESP al connettore centrale del DHT11. Ricontrolla la connessione del cavetto di alimentazione (rosso) collegato al pin 5V dell\u0026rsquo;ESP. In casi estremi prova a cambiare il cavo USB.\nRobotdazero.it - post - R.152.1.6.3\n","permalink":"https://www.robotdazero.it/blog/come-leggere-il-sensore-dht11-con-esp32/","summary":"\u003c!-- https://randomnerdtutorials.com/esp32-dht11-dht22-temperature-humidity-sensor-arduino-ide/ --\u003e\n\u003cp\u003e\u003cimg alt=\"ESP32 con DHT11\" loading=\"lazy\" src=\"/blog/come-leggere-il-sensore-dht11-con-esp32/header.jpeg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cem\u003eL\u0026rsquo;accurata misurazione della temperatura e dell\u0026rsquo;umidità è cruciale in molte applicazioni, dall\u0026rsquo;agricoltura all\u0026rsquo;automazione domestica. Grazie alla sua flessibilità e capacità di connessione, l\u0026rsquo;ESP32 si presenta come una scelta ideale per acquisire dati da sensori come il DHT11. Scopriamo insieme come collegare questo sensore all\u0026rsquo;ESP32\u0026hellip;\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"il-sensore-dht11\"\u003eIl sensore DHT11\u003c/h2\u003e\n\u003cp\u003eIl sensore DHT11 viene usato per misurare la temperatura e l\u0026rsquo;umidità relativa dell\u0026rsquo;aria. E\u0026rsquo; probabilmente il sensore digitale più popolare, in parte per il basso costo e in parte per la semplicità di collegamento. Proprio perchè digitale infatti, non necessita di calcoli per la conversione e può inoltre essere adoperato senza componenti aggiuntivi: le versioni più recenti non necessitano neppure di una resistenza di \u003cem\u003epull-up\u003c/em\u003e.\u003c/p\u003e","title":"Come leggere il sensore DHT11 con ESP32"},{"content":"\nIl programma \u0026ldquo;Blink\u0026rdquo; Il programma \u0026ldquo;Blink\u0026rdquo; per far lampeggiare l\u0026rsquo;ESP32 è l\u0026rsquo;equivalente IoT del classico \u0026ldquo;Hello world\u0026rdquo; dei linguaggi di programmazione. Poichè la sua compilazione è un passaggio obbligato per ogni \u0026ldquo;Maker\u0026rdquo; la tratteremo in modo esteso e vedremo come portarla a termine sia con Arduino Ide che con PlatformIO.\nLo schema del progetto per collegare un LED esterno ad ESP32 Come vedi dalla foto si tratta di assemblare pochi componenti esterni: nonostante questo non stiamo parlando di un progetto banale. Il calcolo della resistenza non è infatti semplicissimo e lo trovi già svolto nello specchietto in basso. Applicando correttamente la legge di Ohm possiamo ottenere dal LED una luminosità brillante senza bruciarlo in un attimo.\nCome calcolare la resistenza: Dalle specifiche del prodotto sappiamo che il diodo rosso ha una caduta di tensione diretta di 1.7 V e noi vogliamo far passare una corrente di 20 mA:\n5 V − 1.7 V (la caduta di tensione del LED) = 3.3 V 3.3 V / 20 mA scritto in maniera più semplice diventa: 3.3 / 0.02 = 165 Ohm Per sicurezza useremo una resistenza di 220 Ohm, il valore di poco superiore disponibile in commercio.\nRicorda che due LED di colore diverso hanno un assorbimento diverso. Comunque con la resistenza adottata puoi usare tutti gli altri LED compreso quello a luce bianca.\nComponenti necessari un LED di colore rosso o bianco una Resistenza da 220 Ohm una o due Breadboard 2 Jumper o connettori Dupont Le breadboard per l\u0026rsquo;ESP32 L\u0026rsquo;ESP32 non può essere ospitato \u0026ldquo;comodamente\u0026rdquo; sulla singola breadboard, anche nel modello più grande: o ne colleghi due affiancate o inserisci il connettore dentro lo \u0026ldquo;stesso foro\u0026rdquo; in cui entra il GND dell\u0026rsquo;ESP32. Puoi però ricorrere ad un facile trucco: tutte le breadboard \u0026ldquo;maxi\u0026rdquo; possono essere incastrate in parallelo a patto di togliere il corridoio centrale (puoi usare un taglierino).\nSe usi il trucco delle due breadboard affiancate il montaggio dell\u0026rsquo;ESP32 viene reso molto più semplice Nello schema in basso per semplificare ti mostriamo il montaggio \u0026ldquo;classico\u0026rdquo;. Il pin GND (cioè la massa) della scheda ESP32 viene collegato al Catodo del LED (il polo negativo). Il pin 18 dell\u0026rsquo;ESP32 va a pilotare la resistenza da 220 Ohm che a sua volta viene collegata all\u0026rsquo;Anodo del LED (il polo positivo con il connettore più lungo).\n🔑 Nel contesto dei componenti elettronici, i termini \"anodo\" e \"catodo\" sono comunemente associati ai diodi normali e ad emissione laser (LED). Anodo è il terminale positivo di un diodo, Catodo è il terminale negativo. La resistenza non ha un \u0026ldquo;verso\u0026rdquo; particolare mentre l\u0026rsquo;anodo del LED (quello con il terminale più lungo) deve essere collegato alla resistenza. Non appena avrai completato lo schema elettrico puoi compilare il programma.\nCome compilare il programma \u0026ldquo;Blink\u0026rdquo; con Arduino IDE Apri l\u0026rsquo;Arduino IDE.\nVai su File -\u0026gt; Preferenze. Nella finestra delle preferenze, aggiungi l\u0026rsquo;URL seguente nella casella \u0026ldquo;URL aggiuntivi per il gestore schede\u0026rdquo;: https://dl.espressif.com/dl/package_esp32_index.json Clicca su \u0026ldquo;OK\u0026rdquo; per chiudere la finestra delle preferenze. Vai su Strumenti -\u0026gt; Scheda -\u0026gt; Gestore Schede. Cerca \u0026ldquo;esp32\u0026rdquo; e installa \u0026ldquo;ESP32 by Espressif Systems\u0026rdquo;. Selezione della scheda ESP32 Dopo aver installato il supporto per ESP32, seleziona la scheda giusta.\nVai su Strumenti -\u0026gt; Scheda e seleziona la tua scheda ESP32 dalla lista. Il programma \u0026ldquo;Blink\u0026rdquo; per ESP32 Ora puoi aprire l\u0026rsquo;esempio di \u0026ldquo;Blink\u0026rdquo; predefinito in Arduino IDE. Vai su File \u0026gt; Esempi \u0026gt; ESP32 \u0026gt; Basics \u0026gt; Blink.\nQuindi per sicurezza fai copia e e incolla del programma in basso: in questo modo sarai sicuro che venga usato il pin 18 della scheda.\nda incollare nell\u0026rsquo;IDE di Arduino const int pinLED = 18; void setup() { // Setta il Pin D18 come uscita (OUTPUT) pinMode (pinLED, OUTPUT); } void loop() { digitalWrite (pinLED, HIGH); // Accendi il LED delay(1000); // Pausa di un secondo digitalWrite (pinLED, LOW); // Spegni il LED delay(1000); // Pausa di un secondo } Compilazione e upload del programma Collega il tuo ESP32 al computer tramite un cavo USB. Seleziona la porta corretta sotto Strumenti -\u0026gt; Porta. Cicca su Sketch -\u0026gt; Verifica/Compila. Se la compilazione ha successo, puoi caricare il programma sull\u0026rsquo;ESP32 facendo clic su Sketch -\u0026gt; Carica.\nCome compilare \u0026ldquo;Blink\u0026rdquo; usando Github.com Se non hai ancora installato PlatformIO sul tuo PC puoi leggere questo post del nostro blog. Usando questo compilatore, gli strumenti a linea di comando e i files presi da Github.com puoi migliorare la tua produttività in modo importante. Infatti quando svilupperai i tuoi progetti sarai \u0026ldquo;sempre\u0026rdquo; alle prese con complessi comandi \u0026ldquo;GIT\u0026rdquo; sulla linea di comando. E commutare su Arduino Ide o Visual Studio ti costa molto più tempo che scrivere \u0026ldquo;make\u0026rdquo; sulla tastiera!\nPer compilare e testare il programma fai copia e incolla del testo sottostante e incollalo nel terminale di Linux o nel CMD di Windows:\nla prima riga copia sul tuo PC il codice dal nostro account Github, la seconda lo compila usando le istruzioni contenute nel \u0026ldquo;Makefile\u0026rdquo; e in \u0026ldquo;platformio.ini\u0026rdquo;. git clone https://github.com/sebadima/corso-ESP32-blink-external.git cd corso-ESP32-blink-external make upload Dopo la fine della compilazione il LED dovrebbe iniziare a lampeggiare, in caso contrario vai alla fine del post e leggi la sezione sul Test del programma.\nCome scrivere da zero il programma per collegare un LED esterno ad ESP32 Con PlatformIO puoi \u0026ldquo;clonare\u0026rdquo; il programma da Github: come hai notato non serve scaricare il file (https://dl.espressif.com/dl/package_esp32_index.json) e non devi settare la \u0026ldquo;board\u0026rdquo; come sei costretto a fare con Arduino IDE.\nSe sei agli inizi con ESP32 troverai interessante creare da zero i tuoi files e scoprire così qualche nuovo trucco di PlatformIO. Continua a leggere questa sezione per conoscere i dettagli.\nIl codice è davvero breve e qui lo spieghiamo in dettaglio:\nIn setup(), il programma setta il pin 18 in modalità OUTPUT Nel loop(), la funzione digitalWrite() commuta continuamente lo stato del LED da HIGH a LOW. main.ino const int pinLED = 18; void setup() { // Setta il Pin D18 come uscita (OUTPUT) pinMode (pinLED, OUTPUT); } void loop() { digitalWrite (pinLED, HIGH); // Accendi il LED delay(1000); // Pausa di un secondo digitalWrite (pinLED, LOW); // Spegni il LED delay(1000); // Pausa di un secondo } Crea una directory \u0026ldquo;src\u0026rdquo; e carica il codice sopra in un file src/main.ino. Usa il tuo editor preferito per creare un file platformio.ini con il seguente contenuto:\nplatformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = Per creare il Makefile puoi leggere questo post oppure fare copia e incolla del codice in basso in un file con lo stesso nome:\nMakefile # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update Dopo avere creato il file, lancia la compilazione con \u0026ldquo;make\u0026rdquo; oppure carica il programma sulla scheda scrivendo \u0026ldquo;make upload\u0026rdquo;.\nIl test del programma Sia che tu abbia usato Arduino IDE o PlatformIO dovresti avere lo stesso risultato finale, con il LED esterno che viene attivato per un secondo ed effettua una pausa di un secondo. In caso di malfunzionamento ti consiglio di controllare il verso del diodo LED, la connessione tra il filo rosso e il pin 18 dell\u0026rsquo;ESP32 e la connessione tra il filo nero e la massa dell\u0026rsquo;ESP32. Se neppure in questo caso riesci a far funzionare il programma prova a cambiare il cavetto USB.\n","permalink":"https://www.robotdazero.it/blog/come-collegare-un-led-esterno-ad-esp32/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/come-collegare-un-led-esterno-ad-esp32/header.jpg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"il-programma-blink\"\u003eIl programma \u0026ldquo;Blink\u0026rdquo;\u003c/h2\u003e\n\u003cp\u003eIl programma \u0026ldquo;Blink\u0026rdquo; per far lampeggiare l\u0026rsquo;ESP32 è l\u0026rsquo;equivalente IoT del classico \u0026ldquo;Hello world\u0026rdquo; dei linguaggi di programmazione. Poichè la sua compilazione è un passaggio obbligato per ogni \u0026ldquo;Maker\u0026rdquo; la tratteremo in modo esteso e vedremo come portarla a termine sia con Arduino Ide che con PlatformIO.\u003c/p\u003e\n\u003ch2 id=\"lo-schema-del-progetto-per-collegare-un-led-esterno-ad-esp32\"\u003eLo schema del progetto per collegare un LED esterno ad ESP32\u003c/h2\u003e\n\u003cp\u003eCome vedi dalla foto si tratta di assemblare pochi componenti esterni: nonostante questo non stiamo parlando di un progetto banale. Il calcolo della resistenza non è infatti semplicissimo e lo trovi già svolto nello specchietto in basso. Applicando correttamente la legge di Ohm possiamo ottenere dal LED una luminosità brillante senza bruciarlo in un attimo.\u003c/p\u003e","title":"Come collegare un LED esterno ad ESP32"},{"content":" Introduzione Il compilatore PlatformIO che noi usiamo per l\u0026rsquo;ESP32 funziona ottimamente con Visual Studio Code, ma spesso risulta più comodo usarlo nel CMD di Windows o dentro la shell di Linux. Ad esempio quanto usiamo il comando \u0026ldquo;git clone\u0026rdquo; per scaricare un progetto da Github, viene spostaneo scrivere semplicemente \u0026ldquo;make upload\u0026rdquo; e compilare il tutto.\nPer i progetti predisposti per PlatformIO non ci sono problemi, ma come facciamo a creare da zero i due file \u0026ldquo;platformio.ini\u0026rdquo; e \u0026ldquo;Makefile\u0026rdquo; quando sono assenti nel progetto originario? E soprattutto a cosa serve il Makefile?\nI file di tipo \u0026ldquo;make\u0026rdquo; sono dei normali file di testo destinati alla utility \u0026ldquo;MAKE\u0026rdquo; di Linux. Questa utility automatizza la fase di compilazione conservando i flag del compilatore, gli indirizzi delle librerie, etc. senza doverle inserirle a mano di volta in volta. Per nostra fortuna il Makefile usato da PlatformIO ha raramente bisogno di modifiche e funziona benissimo con con il 99% dei progetti.\nA differenza di \u0026ldquo;platformio.ini\u0026rdquo; che contiene l\u0026rsquo;elenco delle librerie da usare nel progetto e cambia di volta in volta, il Makefile resta dunque sempre uguale. Per questo motivo abbiamo scritto un breve post dove pubblicare una volta per tutte la versione standard del Makefile di PlatformIO, da copiare e incollare nel vostro editor preferito.\nIl codice Potete copiare spostando il mouse \u0026ldquo;dentro\u0026rdquo; la zona gialla del codice: dovrebbe apparire un rettangolo colorato con la scritta \u0026ldquo;Copy\u0026rdquo;. Cliccate sulla scritta e il codice verrà copiato nella clipboard senza problemi.\nMakefile # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update ","permalink":"https://www.robotdazero.it/blog/come-funziona-il-makefile-di-platformio/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione\u003c/h2\u003e\n\u003cp\u003eIl compilatore PlatformIO che noi usiamo per l\u0026rsquo;ESP32 funziona ottimamente con Visual Studio Code, ma spesso risulta più comodo usarlo nel CMD di Windows o dentro la shell di Linux. Ad esempio quanto usiamo il comando \u0026ldquo;\u003cstrong\u003egit clone\u003c/strong\u003e\u0026rdquo; per scaricare un progetto da Github, viene spostaneo scrivere semplicemente \u0026ldquo;\u003cstrong\u003emake upload\u003c/strong\u003e\u0026rdquo; e compilare il tutto.\u003c/p\u003e\n\u003cp\u003ePer i progetti predisposti per PlatformIO non ci sono problemi, ma come facciamo a creare da zero i due file \u0026ldquo;\u003cstrong\u003eplatformio.ini\u003c/strong\u003e\u0026rdquo; e \u0026ldquo;\u003cstrong\u003eMakefile\u003c/strong\u003e\u0026rdquo; quando sono assenti nel progetto originario? E soprattutto a cosa serve il Makefile?\u003c/p\u003e","title":"Come funziona il Makefile di PlatformIO"},{"content":" Il programma \u0026ldquo;Blink\u0026rdquo; Il programma \u0026ldquo;Blink\u0026rdquo; per far lampeggiare l\u0026rsquo;ESP32 è l\u0026rsquo;equivalente IoT del classico \u0026ldquo;Hello world\u0026rdquo; dei linguaggi di programmazione. In questo articolo vederemo come compilarlo sia con Arduino Ide che con PlatformIO.\nCome compilare il programma \u0026ldquo;Blink\u0026rdquo; con Arduino IDE Apri l\u0026rsquo;Arduino IDE.\nVai su File -\u0026gt; Preferenze. Nella finestra delle preferenze, aggiungi l\u0026rsquo;URL seguente nella casella \u0026ldquo;URL aggiuntivi per il gestore schede\u0026rdquo;: https://dl.espressif.com/dl/package_esp32_index.json Clicca su \u0026ldquo;OK\u0026rdquo; per chiudere la finestra delle preferenze. Vai su Strumenti -\u0026gt; Scheda -\u0026gt; Gestore Schede. Cerca \u0026ldquo;esp32\u0026rdquo; e installa \u0026ldquo;ESP32 by Espressif Systems\u0026rdquo;. Selezione della scheda ESP32 Dopo aver installato il supporto per ESP32, seleziona la scheda giusta.\nVai su Strumenti -\u0026gt; Scheda e seleziona la tua scheda ESP32 dalla lista. Ora puoi aprire l\u0026rsquo;esempio di \u0026ldquo;Blink\u0026rdquo; predefinito in Arduino IDE. Vai su File \u0026gt; Esempi \u0026gt; ESP32 \u0026gt; Basics \u0026gt; Blink.\nCompilazione e upload del programma Collega il tuo ESP32 al computer tramite un cavo USB. Seleziona la porta corretta sotto Strumenti -\u0026gt; Porta. Cicca su Sketch -\u0026gt; Verifica/Compila. Se la compilazione ha successo, puoi caricare il programma sull\u0026rsquo;ESP32 facendo clic su Sketch -\u0026gt; Carica.\nCome compilare \u0026ldquo;Blink\u0026rdquo; usando Github.com Se non hai ancora installato PlatformIO sul tuo PC puoi leggere questo post del nostro blog. Usando questo compilatore, gli strumenti a linea di comando e i files presi da Github.com puoi migliorare la tua produttività in modo importante. Infatti quando svilupperai i tuoi progetti sarai \u0026ldquo;sempre\u0026rdquo; alle prese con complessi comandi \u0026ldquo;GIT\u0026rdquo; sulla linea di comando. E commutare su Arduino Ide o Visual Studio ti costa molto più tempo che scrivere \u0026ldquo;make\u0026rdquo; sulla tastiera!\nPer compilare e testare il programma fai copia e incolla del testo sottostante e incollalo nel terminale di Linux o nel CMD di Windows:\nla prima riga copia sul tuo PC il codice dal nostro account Github, la seconda lo compila usando le istruzioni contenute nel Makefile e in platformio.ini, la terza lancia il monitor sulla seriale. git clone https://github.com/sebadima/corso-ESP32-blink.git cd corso-ESP32-blink make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Come costruire da zero il programma Con PlatformIO puoi \u0026ldquo;clonare\u0026rdquo; il programma da Github: come hai notato non serve scaricare il file (https://dl.espressif.com/dl/package_esp32_index.json) e non devi settare la \u0026ldquo;board\u0026rdquo; come sei costretto a fare con Arduino IDE.\nSe sei agli inizi con ESP32 troverai interessante creare da zero i tuoi files e scoprire così qualche nuovo trucco di PlatformIO. Continua a leggere questa sezione per conoscere i dettagli.\nIl codice è davvero breve e qui lo spieghiamo in dettaglio:\nIn setup(), il programma inizializza la comunicazione seriale ad una velocità di trasmissione di 115200 baud e inoltra setta il pin 2 in modalità OUTPUT Nel loop(), la funzione digitalWrite() commuta continuamente lo stato del LED da HIGH a LOW. main.ino #define LED 2 void setup() { // Setta la seriale a 115200 baud Serial.begin(115200); // Setta la porta 2 in modalità OUT pinMode(LED,OUTPUT); } void loop() { digitalWrite(LED,HIGH); Serial.println(\u0026#34;Led è HIGH\u0026#34;); delay(1000); digitalWrite(LED,LOW); Serial.println(\u0026#34;Led è LOW\u0026#34;); delay(1000); } Carica il codice sopra in un file main.ino e inoltre usa il tuo editor preferito per creare un file platformio.ini con il seguente contenuto:\nplatformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = Per creare il Makefile puoi leggere questo post oppure fare copia e incolla del codice in basso in un file con lo stesso nome:\nMakefile # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update Dopo avere creato il file, lancia la compilazione con \u0026ldquo;make\u0026rdquo; oppure carica il programma sulla scheda scrivendo \u0026ldquo;make upload\u0026rdquo;.\n","permalink":"https://www.robotdazero.it/blog/come-far-lampeggiare-il-led-interno-dellesp32/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"il-programma-blink\"\u003eIl programma \u0026ldquo;Blink\u0026rdquo;\u003c/h2\u003e\n\u003cp\u003eIl programma \u0026ldquo;Blink\u0026rdquo; per far lampeggiare l\u0026rsquo;ESP32 è l\u0026rsquo;equivalente IoT del classico \u0026ldquo;Hello world\u0026rdquo; dei linguaggi di programmazione. In questo articolo vederemo come compilarlo sia con Arduino Ide che con PlatformIO.\u003c/p\u003e\n\u003ch2 id=\"come-compilare-il-programma-blink-con-arduino-ide\"\u003eCome compilare il programma \u0026ldquo;Blink\u0026rdquo; con Arduino IDE\u003c/h2\u003e\n\u003cp\u003eApri l\u0026rsquo;Arduino IDE.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVai su File -\u0026gt; Preferenze.\u003c/li\u003e\n\u003cli\u003eNella finestra delle preferenze, aggiungi l\u0026rsquo;URL seguente nella casella \u0026ldquo;URL aggiuntivi per il gestore schede\u0026rdquo;:\u003c/li\u003e\n\u003c/ul\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003ehttps://dl.espressif.com/dl/package_esp32_index.json\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cul\u003e\n\u003cli\u003eClicca su \u0026ldquo;OK\u0026rdquo; per chiudere la finestra delle preferenze.\u003c/li\u003e\n\u003cli\u003eVai su Strumenti -\u0026gt; Scheda -\u0026gt; Gestore Schede.\u003c/li\u003e\n\u003cli\u003eCerca \u0026ldquo;esp32\u0026rdquo; e installa \u0026ldquo;ESP32 by Espressif Systems\u0026rdquo;.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4 id=\"selezione-della-scheda-esp32\"\u003eSelezione della scheda ESP32\u003c/h4\u003e\n\u003cp\u003eDopo aver installato il supporto per ESP32, seleziona la scheda giusta.\u003c/p\u003e","title":"Come far lampeggiare il LED interno dell'ESP32"},{"content":" Introduzione: L\u0026rsquo;ESP32 è un microcontroller che supporta la lettura di segnali analogici attraverso i suoi pin ADC (Analog to Digital Converter). Per leggere i canali analogici, useremo il linguaggio di programmazione C++ insieme alla libreria Arduino per ESP32.\nI pin analogici dell\u0026rsquo;ESP32 La scheda ESP32 riesce a leggere valori digitali e analogici dai suoi pin di ingresso: la operazione di lettura non presenta particolari difficoltà ma talvolta può essere noioso trovare i piedini liberi o adatti per l\u0026rsquo;uso. Nella immagine sotto vedi la piedinatura completa della ESP32 DEVKIT-V1 a 30 pin.\nI piedini disponibili per l\u0026rsquo;ingresso analogico sono evidenzati in rosso. Gli ingressi analogici ADC ADC è l\u0026rsquo;acronimo di \u0026ldquo;Analog-to-Digital Converter\u0026rdquo;, che in italiano significa \u0026ldquo;Convertitore Analogico-Digitale\u0026rdquo;.\nSi tratta di un componente elettronico utilizzato per convertire segnali come tensioni o correnti, in valori digitali che possono essere elaborati da un microcontroller o da un computer. Gli ADC sono comunemente utilizzati in dispositivi elettronici per misurare e monitorare i segnali dei sensori o da altre sorgenti analogiche.\nLa lettura di un valore analogico con l\u0026rsquo;ESP32 significa semplicemente misurare i livelli di tensione tra 0V e 3.3V. Ci aspetteremo che i dispositivi ADC abbiano sempre un comportamento neutro e accurato, ma non è sempre così. Leggi la sezione sotto per saperne di più.\n🔑 Il comportamento dei circuiti ADC non è sempre lineare. In linea di massima l'ESP32 non riesce a distinguere la differenza tra 3,3V e 3,2V: otterremo sempre lo stesso valore numerico e cioè 4095. Lo stesso problema si presenta per valori di tensione molto bassi: Per 0V e 0.1V otteniamo lo stesso valore e cioè 0! È necessario tenerlo bene a mente quando si utilizzano i pin ADC dell'ESP32. I componenti necessari Per questo progetto, sono necessarie le seguenti 4 parti:\n1. ESP32 DOIT DEVKIT V1 (30 pin) 2. Potenziometro 3. Breadboard 4. Ponticelli Lo schema elettrico Collega un potenziometro all\u0026rsquo;ESP32, fai attenzione a collegare il perno centrale del potenziometro al pin GPIO 34. Puoi usare lo schema in basso come riferimento.\nPuoi vedere nella immagine sotto come abbiamo collegato i jumper (ponticelli) rosso e nero ai pin esterni del potenziometro, mentre il jumper giallo serve a collegare il pin centrale del potenziometro con il pin 34 dell'ESP32. Il jumper nero è collegato al negativo della breadboard e quindi al pin \"GND\" dell'ESP32.\nIl jumper rosso è collegato al positivo della breadboard e quindi al pin \"VIN\" dell'ESP32. Come eseguire il programma Programmeremo l\u0026rsquo;ESP32 usando il compilatore PlatformIO e quindi assicurati di avere installato il programma secondo le instruzioni di questo post prima di procedere. Per compilare e testare il programma basta fare copia e incolla delle tre righe che vedi nello specchietto in basso:\nla prima riga \u0026ldquo;clona\u0026rdquo; sul tuo PC il codice originale dal nostro account Github, la seconda lo compila, la terza lancia il monitor seriale. git clone https://github.com/sebadima/corso-ESP32-analog_read.git cd corso-ESP32-analog_read make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Come vedi si tratta di una operazione velocissima, molto più veloce di Arduino IDE, al solo costo di installare PlatformIO sul tuo PC. Spesso si ha la sensazione erronea che lavorare in modalità testo sia più lento che usare interfacce grafiche, ma come vedi il lavoro manuale è stato compresso praticamente a zero.\nDopo avere lanciato il monitor seriale di PlatformIO (la terza riga) vedrai l\u0026rsquo;output del programma: prova a ruotare il potenziometro per vedere i valori che cambiano\u0026hellip;\nValore del potenziometro = 0 Valore del potenziometro = 0 Valore del potenziometro = 118 Valore del potenziometro = 450 Valore del potenziometro = 733 Valore del potenziometro = 979 Valore del potenziometro = 1234 Valore del potenziometro = 1484 Valore del potenziometro = 1744 Valore del potenziometro = 1968 Valore del potenziometro = 2192 Valore del potenziometro = 2397 Valore del potenziometro = 2619 Valore del potenziometro = 2838 Valore del potenziometro = 3110 Valore del potenziometro = 3399 Valore del potenziometro = 3810 Valore del potenziometro = 4095 Valore del potenziometro = 4095 Le istruzioni C++ per leggere un pin analogico La funzione analogRead(GPIO) legge un ingresso analogico, dove GPIO indice il piedino che vuoi leggere: nel nostro caso useremo il pin 34. L\u0026rsquo;ESP32 supporta le misure ADC in 18 pin, ma solo 15 di questi sono disponibili nella scheda DEVKIT V1 DOIT (versione con 30 pin) che noi usiamo di preferenza.\nQuesti pin di ingresso analogici hanno una risoluzione massima di 12 bit. Ciò significa che quando si legge un ingresso analogico, il suo intervallo numerico può variare da 0 a 4095.\nanalogReadResolution(resolution). E\u0026rsquo; una istruzione preliminare ad ogni uso degli ADC. Serve a impostare i bit e la risoluzione del campionamento. Il parametro può essere un valore compreso tra 9 (0 – 511) e 12 bit (0-4095) con un valore predefinito di 12 bit.\nAltre funzioni utili Ci sono altre funzioni più avanzate da utilizzare con i pin ADC che possono risultare utili in altri progetti.\nAnalsetwidth (width): imposta i bit di esempio e la risoluzione. Può essere un valore compreso tra 9 (0 – 511) e 12 bit (0-4095). Il valore predefinito è la risoluzione a 12 bit.\nanalogSetCycles (cicli): imposta il numero di cicli per campionamento. Il valore predefinito è 8. Intervallo: da 1 a 255.\nanalogSetSamples (samples): imposta il numero di campionamenti nell\u0026rsquo;intervallo. Il valore predefinito è 1. Ha l\u0026rsquo;effetto di aumentare la sensibilità.\nanalogSetClockDiv (attenuazione): imposta il divisore per l\u0026rsquo;orologio ADC. Il valore predefinito è 1, l\u0026rsquo;intervallo va da 1 a 255.\nanalogSetAttenuation (attenuazione): imposta l\u0026rsquo;attenuazione di ingresso per tutti i pin ADC. Valore predefinito = ADC_11db.\nCome costruire da zero il programma Lavorando con PlatformIO puoi semplicemente \u0026ldquo;clonare\u0026rdquo; un progetto da Github e poi modificarlo a tuo piacimento. Inoltre puoi usare questo stesso progetto come \u0026ldquo;template universale\u0026rdquo; e clonarlo in una directory differente per avere in un attimo un nuovo progetto!\nEviterai in questo modo di combattere con librerie, PATH, configurazione della \u0026ldquo;board\u0026rdquo;, etc. tipici di Arduino IDE.\nSe sei agli inizi con ESP32 troverai comunque interessante creare da zero i tuoi files e scoprire così qualche nuovo trucco di PlatformIO. Continua a leggere questa sezione per conoscere i dettagli.\nIl programma, come dicevamo prima, legge semplicemente i valori dal potenziometro e li scrive nel monitor seriale: questi sono i 3 punti chiave del programma:\nIn setup(), il programma inizializza la comunicazione seriale ad una velocità di trasmissione di 115200 baud, Nel loop(), la funzione analoRead(34) legge l\u0026rsquo;ingresso analogico dal pin 34, Serial.println() stampa il valore ottenuto. main.ino void setup() { // Setta la seriale a 115200 baud Serial.begin(115200); // Setta la precisione a 12 bits (0-4096) // Il valore 4095 corrisponde a 3.3V analogReadResolution(12); } void loop() { // Leggi il valore del potenziometro al pin 34 int ValoreAnalogico = analogRead(34); // Scrivi il valore appena rilevato Serial.printf(\u0026#34;Valore del potenziometro = %d\\n\u0026#34;, ValoreAnalogico); delay(100); // Un decimo di secondo tra due letture consecutive } Crea una directory \u0026ldquo;src\u0026rdquo; e scrivi il codice fornito sopra in un file \u0026ldquo;src\\main.ino\u0026rdquo;. Inoltre usa il tuo editor preferito per creare un file platformio.ini con il seguente contenuto:\nplatformio.ini ; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = Segui lo stesso procedimento per creare un file \u0026ldquo;Makefile\u0026rdquo; con il seguente contenuto:\nMakefile # Uncomment lines below if you have problems with $PATH #SHELL := /bin/bash #PATH := /usr/local/bin:$(PATH) all: pio -f -c vim run upload: pio -f -c vim run --target upload clean: pio -f -c vim run --target clean program: pio -f -c vim run --target program uploadfs: pio -f -c vim run --target uploadfs update: pio -f -c vim update E quindi scrivi le 2 seguenti istruzione nel terminale (fai copia e incolla):\nmake upload platformio device monitor --baud 115200 --rts 0 --dtr 0 Il programma partirà dopo pochi secondi e anche in questo caso puoi vedere il funzionamento del canale ADC 34 ruotando il potenziometro\u0026hellip;\nRobotdazero.it - post - R.148.1.2.1\n","permalink":"https://www.robotdazero.it/blog/come-leggere-una-porta-analogica-con-esp32/","summary":"\u003c!--\nhttps://randomnerdtutorials.com/esp32-adc-analog-read-arduino-ide/\n--\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"introduzione\"\u003eIntroduzione:\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;ESP32 è un microcontroller che supporta la lettura di segnali analogici attraverso i suoi pin ADC (Analog to Digital Converter). Per leggere i canali analogici, useremo il linguaggio di programmazione C++ insieme alla libreria Arduino per ESP32.\u003c/p\u003e\n\u003ch2 id=\"i-pin-analogici-dellesp32\"\u003eI pin analogici dell\u0026rsquo;ESP32\u003c/h2\u003e\n\u003cp\u003eLa scheda ESP32 riesce a leggere valori digitali e analogici dai suoi pin di ingresso: la operazione di lettura non presenta particolari difficoltà ma talvolta può essere noioso trovare i piedini liberi o adatti per l\u0026rsquo;uso. Nella immagine sotto vedi la piedinatura completa della ESP32 DEVKIT-V1 a 30 pin.\u003c/p\u003e","title":"Come leggere una porta analogica con ESP32"},{"content":" Perchè installare GIT GIT è un tool fondamentale nella programmazione Iot, ed è importante averlo a disposizione per molti motivi:\n1. Controllo delle versioni: GIT è un sistema di controllo delle versioni distribuito che consente di tenere traccia delle modifiche apportate ai file nel tempo. E\u0026rsquo; uno strumento basilare per gestire progetti software, documentazione, file di configurazione e altro ancora.\n2. Collaborazione: GIT facilita la collaborazione sui progetti condivisi. Piattaforme di hosting come Github.com consentono a più persone di lavorare su un progetto contemporaneamente, tenere traccia delle modifiche e consentire facile coordinamento delle modifiche ai programmi.\n3. Backup e ripristino: Con GIT e github.com puoi backup dei tuoi progetti e ripristinare versioni precedenti. Questo fornisce una preziosa forma di sicurezza per i tuoi dati.\nFlusso di lavoro (workflow) ramificato: GIT supporta flussi di lavoro ramificati, consentendo di lavorare su nuove funzionalità o correzioni di bug in \u0026ldquo;zone\u0026rdquo; separate senza influenzare la parte principale del progetto. Ciò facilita molto la creazione di nuove features in modo estemporaneo.\nCome installare GIT Vediamo le istruzioni passo passo per installare questo tool nei due sistemi operativi più diffusi tra i \u0026ldquo;maker\u0026rdquo;, Linux e Windows 10/11.\nInstallazione da terminale su Linux: Puoi aprire il terminale utilizzando il menu delle applicazioni o usando la combinazione di tasti Ctrl + Alt + T.\nAggiorna i pacchetti: Assicurati di avere l\u0026rsquo;elenco dei pacchetti aggiornato eseguendo il comando:\nsudo apt update Installa GIT: Puoi installare GIT utilizzando il gestore dei pacchetti della tua distribuzione Linux. Per Ubuntu e derivate, esegui:\nsudo apt install GIT Verifica l\u0026rsquo;installazione: Dopo l\u0026rsquo;installazione, verifica che GIT sia correttamente installato eseguendo:\nGIT --version Questo dovrebbe mostrare la versione di GIT installata sul tuo sistema.\nInstallazione su Windows 10/11: Scarica l\u0026rsquo;installer: Vai al sito ufficiale di GIT a questo link e scarica l\u0026rsquo;installer per Windows.\nEsegui l\u0026rsquo;installer: Dopo aver scaricato l\u0026rsquo;installer, fai doppio clic su di esso per avviare il processo di installazione.\nConfigura l\u0026rsquo;installazione: Durante l\u0026rsquo;installazione, segui le istruzioni visualizzate sull\u0026rsquo;installer. Di solito puoi lasciare le opzioni predefinite a meno che tu non abbia esigenze particolari.\nCompleta l\u0026rsquo;installazione: Dopo aver configurato le opzioni desiderate, completa il processo di installazione. Lascia selezionata l\u0026rsquo;opzione per aggiungere GIT al PATH di Windows durante l\u0026rsquo;installazione.\nLa guida visiva alla installazione: La pagina iniziale del sito Git-scm. Clicca su Windows come vedi nella schermata. La pagina della licenza open source di GIT. Clicca su Next. La scelta della directory destinazione: basta lasciare quella di default. Clicca su Next. In questa schermata puoi selezionare i componenti da installare. A meno che non sia necessario modificare qualcosa in modo specifico, consigliamo di mantenere le opzioni impostate su default. Clicca su Next. Integrazione con la shell: Permette di associare il programma GIT al click destro del mouse e aprire un menu contestuale comodissimo. Dal menu puoi lanciare comandi come GIT log. Da lasciare sempre attivo anche quando vai a cambiare le opzioni DOPO la installazione.\nLe opzioni del menu per GIT, fai semplicemente clic su Next. La scelta dell\u0026rsquo;editor di default. Clicca su Next. Scegli Visual Studio Code o altrimenti un editor più minimalista come \u0026ldquo;Notepad\u0026rdquo;. Clicca su Next. Notepad++: E\u0026rsquo; un editor di testo avanzato e open source per il sistema operativo Windows. È progettato per essere una miglioria del blocco note predefinito di Windows, offrendo una vasta gamma di funzionalità per gli sviluppatori e gli utenti che lavorano con file di testo, codice sorgente e markup.\nLa conferma di Notepad++ come editor di default di GIT. Clicca su Next. In questa schermata puoi scegliere il nome del \u0026ldquo;branch\u0026rdquo; iniziale nei nuovi repository GIT: il nome predefinito è \u0026lsquo;master\u0026rsquo; e ti consiglio di lasciare questo valore. Clicca su Next. Il branch iniziale di un repository GIT: E\u0026rsquo; il punto di partenza da cui si sviluppano altri branch. Solitamente, quando viene creato un nuovo repository GIT, viene creato automaticamente un branch di default, che solitamente è chiamato \u0026ldquo;master\u0026rdquo; o \u0026ldquo;main\u0026rdquo; (a seconda delle convenzioni del progetto o della piattaforma di hosting).\nIn questa schermata viene chiesto se aggiungere l\u0026rsquo;ambiente PATH per GIT quando si eseguono comandi da applicazioni della riga di comando (come CMD e PowerShell). Clicca su Next. Scegli il programma client Secure Shell da utilizzare per GIT. Poiché il programma di installazione viene fornito in bundle con OpenSSH, non sono necessarie modifiche. Clicca su Next. OpenSSH: E\u0026rsquo; un\u0026rsquo;implementazione open source del protocollo SSH (Secure Shell), che fornisce un ambiente di comunicazione sicuro e crittografato tra due dispositivi su una rete non sicura. SSH è ampiamente utilizzato per connettersi in modo sicuro a server remoti per scopi di gestione remota, trasferimento di file, etc.\nQuando si scelgono i certificati del server, ti consiglio di usare la libreria OpenSSL predefinita. Clicca su Next. La scelta tra il caratteri di fine linea tipo UNIX (LF) o Windows (CRLF): lascia le impostazione di default. Clicca su Next. Il termine \u0026ldquo;CRFL\u0026rdquo;: Identifica la sequenza di caratteri di controllo utilizzata per indicare una nuova riga in un file di testo. Questa sequenza è composta dai caratteri Carriage Return (CR) e Line Feed (LF), rappresentati rispettivamente dai byte 13 e 10 in formato ASCII.\nScegli il tuo emulatore di terminale. Ancora una volta, ti consiglio di lasciare MinTTY come predefinito. Clicca su Next. Mintty: Un emulatore di terminale open-source per sistemi operativi Windows, noto per essere il terminale predefinito di Cygwin. Cygwin è un ambiente di runtime che consente di eseguire applicazioni Unix-like sui sistemi Windows.\nMintty fornisce un\u0026rsquo;interfaccia a riga di comando per interagire con il sistema operativo Windows utilizzando un ambiente molto simile a quello di Unix.\nUsa il comportamento predefinito del comando \u0026ldquo;git pull\u0026rdquo;. Clicca su Next. Il comando \u0026ldquo;git pull\u0026rdquo;: Viene utilizzato in GIT per recuperare le modifiche da un repository remoto e unirle con il ramo attuale del repository locale. In sostanza, \u0026ldquo;git pull\u0026rdquo; combina due operazioni: \u0026ldquo;git fetch\u0026rdquo;, che scarica i commit dal repository remoto nel repository locale senza applicare alcuna modifica, e \u0026ldquo;git merge\u0026rdquo;, che unisce i commit scaricati nel ramo attuale.\nDevi scegliere un \u0026ldquo;helper di credenziali\u0026rdquo; che ti aiuterà a ottenere e salvare le credenziali.\nIl core di GIT Credential Manager (selezione predefinita) è il più stabile del lotto.\nGIT Credential Manager: Uno strumento utilizzato con GIT per la gestione delle credenziali di autenticazione. Viene utilizzato principalmente su piattaforme Windows per semplificare il processo di autenticazione quando si lavora con repository GIT remoti.\n🔑 Il Credential Manager memorizza le credenziali di autenticazione in modo sicuro, evitando agli utenti di inserire manualmente le loro credenziali. Risulta comodissimo per interagire con un repository, come durante l'esecuzione di \"git push\" o \"git pull\". Resta poco altro da configurare: la prima opzione (selezionata per default) è quella di “Abilitare la memorizzazione nella cache del file system”. E\u0026rsquo; utile lasciarla attivata perchè migliora le prestazioni del sistema. Clicca su Next. L\u0026rsquo;altra opzione riguarda i \u0026ldquo;symlink\u0026rdquo; ed è quella di \u0026ldquo;Abilitare i collegamenti simbolici\u0026rdquo; che sono simili alle scorciatoie da riga di comando. Selezionala soltanto se sai di cosa stiamo parlando, ma ti consiglio di lasciarla inattiva.\nSupporto per symlink: Può variare tra i sistemi operativi e può comportare alcuni comportamenti imprevisti, specialmente quando si sposta il repository GIT tra sistemi operativi che gestiscono symlink in modi diversi (ad esempio, tra sistemi Windows e sistemi Unix-like come Linux o macOS).\nAdesso la installazione è terminata e puoi cliccare su \u0026ldquo;Finish\u0026rdquo; Terminata la installazione, apri il Prompt dei comandi di Windows o PowerShell ed esegui:\nGIT --version Questo dovrebbe mostrare la versione di GIT appena installata sul tuo sistema.\nUna volta installato GIT su Windows o Linux, puoi iniziare a utilizzarlo eseguendo comandi come \u0026ldquo;git clone\u0026rdquo;, \u0026ldquo;git init\u0026rdquo;, etc.\nPerchè usare Github.com Github.com è un enorme portale gestito dalla Microsoft che ospita migliaia di progetti open source relativi ad IoT, Arduino ed ESP32. Lo trovi cliccando su questo link.\nPuoi facilmente trovare questi progetti utilizzando la funzione di ricerca di Github. Ecco alcuni suggerimenti su come trovare progetti open source relativi a queste tecnologie su Github:\nUtilizza la barra di ricerca di Github.com e inserisci parole chiave come \u0026ldquo;IoT\u0026rdquo;, \u0026ldquo;Arduino\u0026rdquo;, \u0026ldquo;ESP32\u0026rdquo; per trovare progetti correlati. Esplora i repository risultanti per trovare progetti che soddisfino le tue esigenze specifiche.\n🔑 Su Github ci sono moltissimi elenchi curati dalla comunità che raggruppano i migliori progetti open source per la robotica e l'IoT. Puoi esaminare queste raccolte per clonare (legalmente) programmi, chiedere supporto, leggere le \"FAQ\" di ogni singolo progetto. Ricorda che la comunità open source è dinamica e in continua evoluzione, quindi il numero di progetti disponibili su github può variare nel tempo. Come usare Github.com Per utilizzare GIT con Github, è necessario:\n1. Creare un account Github: Vai su Github e crea un account ovviamente se non ne possiedi già uno.\n2. Creare un repository: Dopo aver effettuato l\u0026rsquo;accesso a Github, puoi creare un nuovo repository facendo clic sul pulsante \u0026ldquo;New\u0026rdquo; nella tua dashboard.\n3. Clonare il repository: Utilizza il comando GIT clone nel tuo terminale per clonare il repository Github sul tuo computer locale. Ad esempio:\ngit clone https://github.com/username/repository.git 4. Aggiungere file e apportare modifiche: Utilizza i comandi GIT add, GIT commit e GIT push per inviare le tue modifiche al repository remoto su github. Ad esempio:\ngit add . git commit -am \u0026#34;Descrizione delle modifiche\u0026#34; git push origin master Pull delle modifiche: Se altri collaboratori hanno apportato modifiche al repository remoto su Github, puoi utilizzare il comando GIT pull per aggiornare il tuo repository locale con le modifiche più recenti.\nQuesti sono solo alcuni passaggi di base per utilizzare GIT con Github. Ci sono molte altre funzionalità e concetti avanzati da esplorare mentre diventi più esperto nell\u0026rsquo;utilizzo di queste tecnologie. Più avanti vederemo come usare il comando GIT clone per scaricare alcuni dei nostri programmi ospitati su Github.com.\nRobotdazero.it - post - R.147.1.4.0\n","permalink":"https://www.robotdazero.it/blog/come-installare-il-programma-git/","summary":"\u003c!--\n--\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"perchè-installare-git\"\u003ePerchè installare GIT\u003c/h2\u003e\n\u003cp\u003eGIT è un tool fondamentale nella programmazione Iot, ed è importante averlo a disposizione per molti motivi:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e1\u003c/strong\u003e. \u003cspan sty0le=\"background-color:#eeeeee\"\u003e Controllo delle versioni\u003c/span\u003e: GIT è un sistema di controllo delle versioni distribuito che consente di tenere traccia delle modifiche apportate ai file nel tempo. E\u0026rsquo; uno strumento basilare per gestire progetti software, documentazione, file di configurazione e altro ancora.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e2\u003c/strong\u003e. \u003cspan sty0le=\"background-color:#eeeeee\"\u003eCollaborazione\u003c/span\u003e: GIT facilita la collaborazione sui progetti condivisi. Piattaforme di hosting come \u003ca href=\"https://github.com/\" target=\"_blank\"\u003eGithub.com\u003c/a\u003e consentono a più persone di lavorare su un progetto contemporaneamente, tenere traccia delle modifiche e consentire facile coordinamento delle modifiche ai programmi.\u003c/p\u003e","title":"Come installare il programma GIT"},{"content":" Perchè usare PlatformIO PlatformIO è il compilatore che usiamo di preferenza per l\u0026rsquo;ESP32. Esattamente come l\u0026rsquo;IDE di Arduino, funziona in modalità grafica (usando Visual Studio Code) e in in modalità testo. Puoi scegliere indifferentemente l\u0026rsquo;uno o l\u0026rsquo;altro su computer di buona potenza, ma su computer dalle modeste prestazioni è consigliabile usare PlatformIO. E\u0026rsquo; scritto totalmente in Python e dispone delle stesse librerie di Arduino, ma su questo ha un grosso vantaggio: non usa la Java Virtual Machine.\nL'IDE di Arduino è scritto in Java, un linguaggio di programmazione orientato agli oggetti che è stato sviluppato da Sun Microsystems nel 1995. Java deve sempre appoggiarsi alla Java Virtual Machine (JVM) che traduce il codice Java in linguaggio macchina. In tal modo i programmi sorgente vengono eseguiti dall'hardware: senza la JVM il codice Java non potrebbe essere eseguito su nessun computer. I problemi della Java Machine Se Arduino usa la JVM, anche PlatformIO deve usare il runtime di Python ma\u0026hellip;\nLa JVM è un software complesso che richiede una notevole quantità di risorse hardware. E la quantità di risorse dipende da tanti fattori, tra cui la complessità del codice Java da esguire, la versione della JVM e le librerie e i framework che vengono utilizzati.\nIn generale, la JVM richiede più risorse hardware rispetto ad altri linguaggi di programmazione, come C o Python. Su alcuni computer come il Raspberry PI, Orange PI o ODROID N2+ la JVM tende a girare troppo lentamente: per questo ti consigliamo di adottare delle soluzione software alternative che non consumino CPU e RAM. con PlatformIO avrai a disposizione un ambiente di sviluppo velocissimo e flessibile, con un solo file di configurazione. In pratica basta fare copia e incolla di un progetto preesistente per crearne uno nuovo già totalmente configurato con parametri e librerie. Per molti programmatori un grosso vantaggio rispetto alla gestione condivisa delle librerie di Arduino.\nCome installare PlatformIO su Windows 11 Puoi seguire in sequenza questi passi (che valgono anche per Windows 10):\napri il Microsoft Store e cerca \u0026ldquo;PlatformIO IDE\u0026rdquo;. fai clic su \u0026ldquo;Installa\u0026rdquo; per installare l\u0026rsquo;estensione PlatformIO per Visual Studio Code. Dopo l\u0026rsquo;installazione:\n1. avvia Visual Studio Code.\n2. nella barra laterale fai clic su \u0026ldquo;Estensioni\u0026rdquo;.\n3. digita \u0026ldquo;PlatformIO\u0026rdquo;.\n4. fai clic su \u0026ldquo;Installa\u0026rdquo;\nLa installazione su Linux Noi di Robotdazero consigliamo di scegliere \u0026ldquo;Ubuntu\u0026rdquo; tra le molte distro di Linux: i comandi seguenti funzioneranno solo su \u0026ldquo;Debian\u0026rdquo; e Ubuntu ma non su altre distro come \u0026ldquo;Fedora\u0026rdquo; ad esempio.\n1. Apri un terminale e digita:\nsudo apt update sudo apt install platformio 2. Dopo l\u0026rsquo;installazione avvia Visual Studio Code\n3. Nella barra laterale fai clic su \u0026ldquo;Estensioni\u0026rdquo;\n4. Nella barra di ricerca digita \u0026ldquo;PlatformIO\u0026rdquo;\n5.. Fai clic su \u0026ldquo;Installa\u0026rdquo;\nCon questo sistema puoi installare la versione binaria di PlatformIO disponibile nello \u0026ldquo;Store\u0026rdquo; di Ubuntu: certamente funzionante ma talvolta non aggiornatissima. Nello stesso sito ufficiale di PlatformIO viene consigliata una installazione alternativa che usa il loro script universale per Linux.\nLa installazione su Linux usando lo script originale Per procedere con la installazione consigliata puoi scrivere su terminale:\nUsando curl: curl -fsSL -o get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py python3 get-platformio.py Usando wget: wget -O get-platformio.py https://raw.githubusercontent.com/platformio/platformio-core-installer/master/get-platformio.py python3 get-platformio.py Come usare Platformio da linea di comando Terminata questa semplice installazione puoi iniziare ad usare Platformio da Visual Studio Code: ma per usare il compilatore dalla linea di comando devi abilitarne i comandi su Windows o Linux, a secondo dell\u0026rsquo;OS che vuoi usare.\nAbilitare i comandi testuali su Windows In questyo caso è necessario modificare la variabile di ambiente di sistema chiamata \u0026ldquo;Path\u0026rdquo; e aggiungere\nC:\\Users\\UserName\\.platformio\\penv\\Scripts\\ all\u0026rsquo;inizio della lista. Ricorda di sostituire \u0026ldquo;UserName\u0026rdquo; con il tuo nome utente.\nLa variabile PATH è una variabile di sistema utilizzata dal sistema operativo Windows per individuare gli eseguibili richiesti dalla riga di comando. La variabile PATH è una stringa che contiene una serie di percorsi di directory, separati da punto e virgola. Quando si esegue un comando da riga di comando, Windows cerca l\u0026rsquo;eseguibile in ciascuna delle directory elencate nella variabile PATH.\nPer modificare la variabile PATH in Windows 11 o 10, è possibile utilizzare il Pannello di controllo o l\u0026rsquo;Prompt dei comandi.\nCome farlo dalla interfaccia di Windows: 1. Apri il Pannello di controllo\n2. Fai clic su Sistema e sicurezza\n3. Fai clic su Sistema\n4. Nella parte sinistra della finestra, fai clic su Impostazioni avanzate di sistema\n5. Fai clic sulla scheda Avanzate\n6. Nella sezione Variabili di ambiente, fai clic su Variabili di sistema\n7. Nella sezione Variabili di sistema, individua la variabile PATH\n8. Fai clic su Modifica\n9. Nella casella Valore della variabile, modifica il percorso della variabile PATH come desiderato\nA. Fai clic su OK\nB. Fai clic su OK per chiudere la finestra Variabili di sistema\nC. Fai clic su OK per chiudere la finestra Impostazioni di sistema avanzate\nCome farlo dal Prompt dei comandi: Apri il Prompt dei comandi e digita il seguente comando:\nsetx PATH \u0026#34;percorso1;percorso2;...\u0026#34; Sostituisci \u0026ldquo;percorso1\u0026rdquo; e \u0026ldquo;percorso2\u0026rdquo; con i percorsi delle directory che vuoi aggiungere alla variabile PATH.\nAd esempio per aggiungere il percorso\n\u0026ldquo;C:\\Users\\\u0026lt;user\u0026gt;\\.platformio\\penv\\Scripts;\u0026rdquo; alla variabile PATH, è possibile utilizzare il seguente comando:\nsetx PATH \u0026#34;C:\\Users\\\u0026lt;user\u0026gt;\\.platformio\\penv\\Scripts;\u0026#34; Dopo aver modificato la variabile PATH, è necessario riavviare il computer Al riavvio potresti lanciare il seguente comando per controllare la corretta installazione:\nrun pio system info Abilitare i comandi testuali su Linux Su Linux si possono creare dei collegamenti simbolici (symlinks) all\u0026rsquo;interno della directory:\n$HOME/.local/bin/ In questo modo si possono lanciare tutti gli eseguibili di PlatformIO dal terminale. Per iniziare devi esportare la directory $HOME/.local/bin/ nella variabile di ambiente PATH. Se usi Bash come shell predefinita puoi editare il file ~/.profile aggiungendo alla fine questa linea:\nexport PATH=$PATH:$HOME/.local/bin Se usi la shell Zsh come shell di default puoi modificare ~/.zprofile e aggiungere lo stesso codice visto sopra.\nPuoi adesso creare i link simbolici dal terminale facendo copia e incolla:\nln -s ~/.platformio/penv/bin/platformio ~/.local/bin/platformio ln -s ~/.platformio/penv/bin/pio ~/.local/bin/pio ln -s ~/.platformio/penv/bin/piodebuggdb ~/.local/bin/piodebuggdb Fai ripartire il terminale facendo \u0026ldquo;logout\u0026rdquo; e \u0026ldquo;login\u0026rdquo;\u0026quot; nuovamente e puoi proseguire. Da questo momento in poi dovresti essere in grado di usare tutti i comandi di PlatformIO dal terminale e senza fare \u0026ldquo;restart\u0026rdquo; del computer.\nRobotdazero.it - post - R.145.1.1.2\n","permalink":"https://www.robotdazero.it/blog/come-installare-platformio/","summary":"\u003c!--\nhttps://community.platformio.org/t/platformio-ide-messes-up-path-with-incorrect-default-folders-windows-10/22006/3\n--\u003e\n\u003cp\u003e\u003cimg alt=\"platformio on Visual Code\" loading=\"lazy\" src=\"/blog/come-installare-platformio/header.jpg\"\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003chr\u003e\n\u003ch2 id=\"perchè-usare-platformio\"\u003ePerchè usare PlatformIO\u003c/h2\u003e\n\u003cp\u003e\u003cem\u003ePlatformIO è il compilatore che usiamo di preferenza per l\u0026rsquo;ESP32. Esattamente come l\u0026rsquo;IDE di Arduino, funziona in modalità grafica (usando Visual Studio Code) e in in modalità testo. Puoi scegliere indifferentemente l\u0026rsquo;uno o l\u0026rsquo;altro su computer di buona potenza, ma su computer dalle modeste prestazioni è consigliabile usare PlatformIO. E\u0026rsquo; scritto totalmente in Python e dispone delle stesse librerie di Arduino, ma su questo ha un grosso vantaggio: non usa la Java Virtual Machine.\u003c/em\u003e\u003c/p\u003e","title":"Come installare PlatformIO"},{"content":" Cos\u0026rsquo;è un transistor? Il transistor è la base della elettronica moderna e costituisce la parte essenziale di ogni CPU, memoria RAM o controller come il nostro ESP32. E\u0026rsquo; facile dimenticare come questi e tanti altri dispositivi siano composti, alla fine, solo di una massa di transistor e pochi componenti secondari. Il numero dei transistor in un dispositivo può andare da un singolo transistor che pilota un LED fino a decine di milardi per conservare i \u0026ldquo;GIGA\u0026rdquo; delle chiavette USB.\nCome mai il transistor è onnipresente nella moderna elettronica? Il transistor è così importante perchè elettricamente si comporta come una resistenza \u0026ldquo;intelligente\u0026rdquo; che agevola o impedisce il passaggio della corrente tra due terminali. Ma rispetto alla modesta \u0026ldquo;resistenza\u0026rdquo; elettrica, il transistor possiede TRE elettrodi e non DUE\u0026hellip;\n🔑 In due terminali (collettore e emettitore) fluisce la corrente, mentre il terzo polo (base) ha il compito di regolarne il passaggio secondo la tensione che gli viene applicata. Sfruttando questo principio funzionano, ad esempio, le memorie RAM: Gli stati 0 e 1 sono rappresentati da transistor bloccati (senza passaggio di corente) o attivi (cioè conducono corrente) e in tal modo riescono a conservare ogni tipo di dati, video e immagini comprese.\nI transitor e le \u0026ldquo;valvole\u0026rdquo;: se hai già una qualche conoscenza di elettronica avrai letto che il funzionamento del transistor è simile a quello delle antiche \u0026ldquo;valvole\u0026rdquo; termoioniche, ormai rintracciabili sono in alcuni amplificatori HI-FI per amatori.\nElettricamente il transistor funziona come una valvola termoionica, ma la somiglianza finisce qui. Il transistor è un robusto componente elettronico a semiconduttore capace di gestire picchi di corrente notevolissimi, di interrompere il passaggio della corrente a velocità formidabili (i GigaHertz delle moderne CPU) e di avere una durata quasi \u0026ldquo;eterna\u0026rdquo;.\nLa funzione che più interessa il mondo del digitale è il suo funzionamento come interruttore. Possiamo utilizzarlo ad esempio per interrompere un segnale elettrico e spegnere un LED o un servo-motore. In questo caso, quando la tensione applicata alla base è inferiore a una certa soglia, la giunzione P-N è isolata e non consente il passaggio di corrente elettrica tra collettore ed emettitore.\n🔑 Il funzionamento del transistor si basa sulla giunzione P-N, la porzione di un pezzo di silico in cui si trovano a contatto due zone con diversa conduttività elettrica. Una regione è di tipo P, con una conduttività elettrica elevata, mentre l'altra è di tipo N, con una conduttività elettrica relativamente bassa. La spiegazione passo dopo passo: Quando una tensione viene applicata alla base del transistor, si crea una corrente elettrica nella giunzione P-N. Questa corrente provoca un aumento della conduttività. La minore resistenza accresce il passaggio della corrente principale tra collettore ed emettitore. Una brevissima storia dei transistor L\u0026rsquo;esordio del transistor risale all\u0026rsquo;inizio del 20° secolo. Il primo transistor fu inventato nel 1947 da un team di scienziati dei Bell Laboratories negli Stati Uniti, che comprendeva William Shockley, John Bardeen e Walter Brattain. Questa invenzione fu una svolta monumentale nell\u0026rsquo;elettronica, segnando l\u0026rsquo;inizio dell\u0026rsquo;era dei semiconduttori.\nIl transistor fu un\u0026rsquo;invenzione rivoluzionaria perché offriva un\u0026rsquo;alternativa più affidabile e compatta ai tubi a vuoto utilizzati nei dispositivi elettronici dell\u0026rsquo;epoca. I tubi a vuoto erano ingombranti, consumavano molta energia e avevano una durata limitata, mentre i transistor erano piccoli, richiedevano meno energia e avevano una durata molto più lunga, rendendoli ideali per l\u0026rsquo;uso in una vasta gamma di dispositivi elettronici.\nEvoluzione e transistor moderni Dopo l\u0026rsquo;invenzione del transistor unigiunzione nel 1947, il campo dell\u0026rsquo;elettronica entrò in un periodo di rapida innovazione. Nonostante questo il transistor, seppure rivoluzionario, era difficile da produrre in modo affidabile e non era adatto per la produzione di massa.\nQuesta \u0026ldquo;debolezza\u0026rdquo; dei primi prototipi stimolò lo sviluppo del transistor a giunzione, un design più affidabile e più facile da produrre, nei primi anni 1950.\nIl transistor a giunzione era un dispositivo con tre strati di materiale semiconduttore, Uno degli strati che poi venne chiamato la base, era inserito tra due strati più spessi dell\u0026rsquo;altro tipo.\nNegli anni 1950 e 1960, il transistor ha subito un\u0026rsquo;ulteriore evoluzione con lo sviluppo del transistor a giunzione bipolare (BJT)e del transistor a effetto di campo (FET) 4. Mentre il BJT, operando su un principio diverso, resta sempre un dispositivo a tre strati, il FET è un dispositivo a quattro strati che controlla la larghezza di un \u0026ldquo;canale\u0026rdquo; attraverso il quale scorre la corrente.\nLo sviluppo di questi nuovi tipi di transistor ha aperto nuove possibilità per la progettazione elettronica. I transistor sono adesso utilizzati non solo per amplificare i segnali, ma anche per accenderli e spegnerli, rendendo possibile l\u0026rsquo;elettronica digitale.\nQuesto avanzamento ha portato allo sviluppo di circuiti integrati, che sono collezioni di transistor e altri componenti su un singolo chip, nel 1958 Dal 1960, circuiti integrati sono stati utilizzati in una vasta gamma di dispositivi elettronici.\nNel 1970, è stato sviluppato il transistor a effetto di campo metallo-ossido-semiconduttore (MOSFET), che è diventato il tipo più comune di transistor in uso oggi, in quanto ha diversi vantaggi rispetto ai precedenti tipi di transistor. Ad esempio, è più facile da produrre, può essere reso molto piccolo e consuma pochissima energia.\n🔑 I transistor sono onnipresenti nell'elettronica moderna e la loro evoluzione è tutt'altro che finita. Sono utilizzati in tutto, dai computer e smartphone alle auto e agli elettrodomestici, guidando la rivoluzione digitale e consentendo lo sviluppo di dispositivi elettronici sempre più potenti e complessi. I diversi tipi di transistor in breve Esistono dunque vari tipi di transistor, che si differenziano per la struttura e il funzionamento. Ricordiamoli brevemente e più avanti li analizzeremo in dettaglio:\nTransistor a giunzione bipolare (BJT): è il tipo di transistor più comune. È costituito da una giunzione P-N, e il suo funzionamento si basa sulla corrente elettrica che scorre attraverso questa giunzione. Transistor a giunzione di ioni mobili (IGBT): è un tipo di transistor che combina le caratteristiche dei BJT e dei FET. È caratterizzato da una bassa resistenza di ON, che lo rende adatto per applicazioni di potenza. Transistor a effetto di campo (FET): è un tipo di transistor in cui il flusso di corrente è controllato da un campo elettrico. I FET a loro volta si suddividono a loro volta in due sotto categorie principali:\nFET a canale N (NMOS): il canale è di tipo N, e la corrente scorre dal drain verso il source. FET a canale P (PMOS): il canale è di tipo P, e la corrente scorre dal source verso il drain. Le applicazioni dei transistor nel campo del digitale I transistor sono dunque fondamentali per la realizzazione di circuiti logici, circuiti di memoria e circuiti di calcolo, vediamo per sommi capi quali sono le maggiori applicazioni:\nCircuiti logici I circuiti logici sono utilizzati per eseguire operazioni logiche, come AND, OR, NOT, XOR e NAND. I transistor possono essere utilizzati per realizzare qualsiasi circuito logico, e sono la base di tutti i calcolatori digitali.\n🔑 Ad esempio, un circuito logico AND può essere realizzato utilizzando due transistor in configurazione OR. Quando entrambi i transistor sono nello stato ON, la corrente scorre attraverso il circuito, e il circuito fornisce un output logico HIGH Circuiti di memoria I circuiti di memoria sono utilizzati per memorizzare dati. I transistor possono essere utilizzati per realizzare diversi tipi di circuiti di memoria, come la memoria statica (SRAM), la memoria dinamica (DRAM) e la memoria flash\n🔑 La SRAM è un tipo di memoria volatile, cioè i dati vengono persi quando viene tolta l'alimentazione. La DRAM è un altro tipo di memoria volatile, ma è più economica della SRAM. La memoria flash è un tipo di memoria non volatile; i dati vengono conservati anche quando viene tolta l'alimentazione. SRAM, DRM e memoria flash (ROM) giocano un ruolo importante nel funzionamento dell'ESP32. Circuiti di calcolo I circuiti di calcolo sono utilizzati per eseguire operazioni matematiche. I transistor possono essere utilizzati per realizzare diversi tipi di circuiti di calcolo, come i circuiti additivi, i circuiti sottrazionali e i circuiti moltiplicativi.\n🔑 Ad esempio, un circuito additivo (cioè che addiziona) può essere realizzato utilizzando quattro transistor in configurazione OR. Quando le tensioni applicate ai quattro transistor sono entrambe HIGH, la corrente scorre attraverso il circuito, e il circuito fornisce un output logico HIGH. Principi di base dei transistor Seppure ne esistano, come vedi, decine di tipi diversi, i transistor funzionano in base agli stessi, identici principi della fisica dei semiconduttori. Al centro di questi principi c\u0026rsquo;è il concetto di portatori di carica, che possono essere 1.elettroni o 2.\u0026ldquo;holes\u0026rdquo; (l\u0026rsquo;assenza di un elettrone). Il comportamento dei portatori di carica determina il flusso dei segnali elettrici.\nFisicamente, un transistor è costituito da tre strati di materiale semiconduttore: Emettitore Base Collettore. L\u0026rsquo;emettitore e il collettore sono generalmente fortemente drogati, il che significa che hanno un\u0026rsquo;alta concentrazione di portatori di carica, mentre la base è SOLO leggermente drogata. L\u0026rsquo;emettitore e il collettore appartengono a un tipo di doping (tipo N o tipo P), mentre la base appartiene all\u0026rsquo;altro tipo.\nLa chiave per il funzionamento di un transistor è la giunzione base-emettitore, che funge da gate. Applicando una piccola corrente alla base, consente a una corrente molto più grande di fluire dall\u0026rsquo;emettitore al collettore. Questo è l\u0026rsquo;effetto di amplificazione di un transistor.\nCosa ricordare dei transistor bipolari: I transistor bipolari sono componenti elettronici a semiconduttore che possono essere utilizzati per amplificare o interrompere un segnale elettrico. Sono composti da tre terminali, chiamati base, collettore ed emettitore.\n🔑 Il funzionamento del transistor bipolare si basa sulla giunzione P-N, una regione di un semiconduttore in cui si trovano a contatto due regioni con diversa conduttività elettrica. Una regione è di tipo p, con una conduttività elettrica elevata, mentre l'altra è di tipo n, con una conduttività elettrica bassa. Il transistor bipolare può quindi essere utilizzato per amplificare un segnale elettrico. In questo caso, la corrente elettrica in uscita dal transistor è molto maggiore della corrente elettrica in ingresso.\nMa può anche essere utilizzato per interrompere un segnale elettrico. In questo caso, quando la tensione applicata alla base è inferiore a una certa soglia, la giunzione P-N è isolata e non consente il passaggio di corrente elettrica tra collettore ed emettitore.\nTipi di transistor bipolari Esistono due tipi principali di transistor bipolari:\nTransistor NPN: la base è di tipo p, mentre l\u0026rsquo;emettitore e il collettore sono di tipo n. Transistor PNP: la base è di tipo n, mentre l\u0026rsquo;emettitore e il collettore sono di tipo p. Il funzionamento dei transistor bipolari NPN e PNP è identico, ma la polarità delle tensioni applicate ai terminali è invertita. Le applicazioni dei transistor bipolari I transistor bipolari sono utilizzati in una vasta gamma di applicazioni, tra cui:\nElettronica digitale: i transistor bipolari sono fondamentali per la realizzazione di circuiti logici, circuiti di memoria e circuiti di calcolo. Elettronica analogica: i transistor bipolari vengono utilizzati per amplificare, filtrare e generare segnali analogici. Elettronica di potenza: i transistor bipolari vengono utilizzati per controllare dispositivi ad alta potenza, come motori elettrici e trasformatori. Vantaggi e svantaggi dei transistor bipolari I transistor bipolari presentano una serie di vantaggi e svantaggi rispetto ad altri tipi di transistor, come i transistor a effetto di campo.\nVantaggi: Ampio range di guadagno: i transistor bipolari possono fornire un guadagno molto elevato, rendendoli adatti per applicazioni di amplificazione. Bassa impedenza di uscita: i transistor bipolari hanno una bassa impedenza di uscita, rendendoli adatti per applicazioni di - commutazione. Buona stabilità termica: i transistor bipolari sono relativamente stabili termicamente, rendendoli adatti per applicazioni in cui la temperatura può variare. Svantaggi: Consumo di corrente: i transistor bipolari consumano una corrente relativamente elevata, rendendoli meno efficienti dei - transistor a effetto di campo. Dimensioni: i transistor bipolari sono generalmente più grandi dei transistor a effetto di campo, rendendoli meno adatti per applicazioni in cui lo spazio è limitato. In generale, i transistor bipolari sono una buona scelta per applicazioni che richiedono un alto guadagno, una bassa impedenza di uscita o una buona stabilità termica. Questo tipo di componente può essere una valida alternativa ai FET per pilotare motori elettrici o amplificatori o lampade con l\u0026rsquo;ESP32.\nI Transistor a effetto di campo (FET) in dettaglio I transistor a effetto di campo (FET) sono un tipo di transistor in cui il flusso di corrente è controllato da un campo elettrico.\nI FET si suddividono in due categorie principali: FET a canale n (NMOS): il canale è di tipo n, e la corrente scorre dal drain verso il source. FET a canale p (PMOS): il canale è di tipo p, e la corrente scorre dal source verso il drain. 🔑 Il funzionamento di un FET è basato sulla presenza di una regione di semiconduttore drogata, chiamata CANALE, che è circondata da due regioni drogate con tipo di conducibilità opposto. La tensione applicata al terminale di controllo, chiamato GATE, crea un campo elettrico che modifica la conduttività del canale. Quando la tensione applicata al gate è sufficientemente alta, il campo elettrico crea un canale di conducibilità nella regione di semiconduttore drogata. Questo canale consente il passaggio della corrente elettrica.\nLa corrente che scorre tra i terminali drain e source dipende dalla tensione applicata al gate. Maggiore è la tensione applicata al gate, maggiore è la corrente che scorre tra i due terminali. I FET presentano una serie di vantaggi rispetto ai transistor bipolari, tra cui: Elevata impedenza di ingresso: l\u0026rsquo;impedenza di ingresso di un FET è molto elevata, il che significa che il transistor richiede una piccola quantità di corrente per essere controllato. Questo lo rende ideale per applicazioni in cui è necessario ridurre il consumo energetico. Alta efficienza: i FET sono più efficienti dei transistor bipolari, in quanto convertono più energia elettrica in corrente elettrica. Questo li rende ideali per applicazioni in cui è necessario ridurre le perdite di potenza. Alta velocità di commutazione: i FET possono essere commutati molto rapidamente, il che li rende ideali per applicazioni in cui è necessario generare segnali ad alta frequenza. In conclusione 🔑 I FET e i transistor in genere sono componenti fondamentali nella moderna elettronica. Sono presenti in tutti i dispositivi tecnologici e il loro sviluppo ha contribuito in modo decisivo alla miniaturizzazione e diffusione dell'elettronica. ","permalink":"https://www.robotdazero.it/blog/introduzione-ai-transistor/","summary":"\u003c!-- \n\u003ca href=\"https://www.robotdazero.it/blog/in-arrivo-il-nuovo-esp32-p4/\" target=\"_blank\"\u003eESP32-P4\u003c/a\u003e\n\u003ca href=\"/contatti\"\u003econtatti\u003c/a\u003e\n![None](images/101.png)\n```bash\n\u003cdiv class=\"alert alert-doks d-flexflex-shrink-1\" role=\"alert\"\u003e🔑.\u003c/div\u003e\n--\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"cosè-un-transistor\"\u003eCos\u0026rsquo;è un transistor?\u003c/h2\u003e\n\u003cp\u003eIl transistor è la base della elettronica moderna e costituisce la parte essenziale di ogni CPU, memoria RAM o \u003cem\u003econtroller\u003c/em\u003e come il nostro ESP32. E\u0026rsquo; facile dimenticare come questi e tanti altri dispositivi siano composti, alla fine, solo di una massa di transistor e pochi componenti secondari. Il numero dei transistor in un dispositivo può andare da un singolo transistor che pilota un LED fino a decine di milardi per conservare i \u0026ldquo;GIGA\u0026rdquo; delle chiavette USB.\u003c/p\u003e","title":"Introduzione ai Transistor"},{"content":" L\u0026rsquo;ESP32 e i dispositivi ad alto assorbimento In molte applicazioni IOT ti troverai a usare dispositivi ad alto assorbimento, che richiedono correnti che l\u0026rsquo;ESP32 non è in grado di fornire. In questi casi, prima di passare ai relays elettronici o meccanici possiamo ricorrere ad un economico transistor di media potenza come il TIP120.\nUn errore comune tra i neofiti è provare a pilotare motori elettrici, servocomandi o decine di Led usando la corrente di uscita di un ESP32 o di un Arduino. Purtroppo i dispositivi esterni possono richiedere correnti elevate, molto più alte di quelle erogabili da un controller. Arduino, ad esempio può erogare appena 40mA a 5.0V e quindi 0.2W di potenza a fronte di richieste di oltre 10~100W!\nPer fare un esempio, la striscia di LED RGB che useremo in questo progetto richiede correnti di 5~6 Ampere per una potenza complessiva di circa 70W: pensa alla corrente che sarebbe necessaria per azionare un cancello automatico!\n🔑 Come calcolare la corrente necessaria:\nLa corrente che può consumare una striscia di LED di 5 mt alimentata a 12V dipende dalla potenza nominale della striscia. La potenza nominale è indicata in Watt per metro lineare, quindi per calcolare la corrente totale della striscia basta moltiplicare la potenza nominale per la lunghezza della striscia.\nNel nostro progetto la striscia di LED da 14,4W/mt consuma 72W su una lunghezza di 5mt. La corrente totale assorbita dalla striscia sarà quindi 72W / 12V = 6A. Detto questo, la soluzione ai nostri problemi di erogazione è molto semplice: basta usare un transistor come switch, e per questo compito non esiste nulla di meglio che usarne uno di tipo Darlington come ad esempio il TIP120.\n🔑 Quando applichiamo una piccola tensione alla base di un transistor Darlington, il componente si attiva e permette alla corrente a 12V di fluire liberamente e alimentare il carico, nel nostro caso i LED. Se vuoi approfondire la differenza tra corrente e tensione ti consiglio di leggere questo articolo del blog di Robotdazero.\nIl nostro progetto Obiettivo di questo prototipo è pilotare da smartphone o desktop una striscia di LED RGB a 12V: la striscia verrà collegata a 3 TIP 120, a loro volta connessi ad un singolo ESP32. Le basi dei transistor sono collegate a 3 pin PWM dell\u0026rsquo;ESP32, uno ciascuno per le linee rosse, verdi e blu della striscia.\nPer quanto riguarda il software, abbiamo creato un server web minimale da caricare sul browser digitando l\u0026rsquo;indirizzo IP acquisito del nostro ESP32. La pagina Web contiene alcuni pulsanti per attivare / disattivare ogni colore. Ci sono anche pulsanti per mescolare i tre colori base e creare qualsiasi combinazione cromatica. Tengo a ricordarti che si tratta di un server web minimale e senza supporto per AJAX: per questo motivo noterai un breve ritardo (refresh) della pagina dopo la pressione di ogni pulsante.\n🔑 Cosa è AJAX: AJAX, abbreviazione di Asynchronous JavaScript and XML, è un insieme di tecnologie che consentono di scambiare dati tra un browser web e un server web in modo asincrono. Ciò significa che l'utente può continuare a interagire con la pagina web, anche mentre i dati vengono caricati.\nAJAX è composto da diverse tecnologie, tra cui: HTML/XHTML: il linguaggio di markup utilizzato per creare la struttura di una pagina web. CSS: il linguaggio di stile utilizzato per definire l'aspetto di una pagina web. JavaScript: il linguaggio di scripting utilizzato per aggiungere funzionalità dinamiche a una pagina web. XMLHttpRequest: un'API JavaScript che consente di inviare richieste al server web e ricevere le risposte. AJAX viene utilizzato per creare pagine web più dinamiche e interattive: ad esempio, viense spesso utilizzato per aggiornare il contenuto di una pagina web senza ricaricarla da zero. Lo schema elettrico del circuito Segui attentamente la disposizione dei connettori, studia la foto e in pochi minuti sarai in grado di creare ogni combinazione di colore RGB sulla striscia.\nCollega i terminali R,G \u0026amp; B della striscia al pin di collettore del transistor come da immagine. Usando le tre resistenze da 10 Kohm collega la base di ogni transistor ai rispettivi pin D25, D26 e D27 dell\u0026rsquo;ESP32. Le resistenze sono utili per limitare la corrente di ingresso nei transistor e non sono opzionali.\nInoltre tutti i dispositivi devono essere collegati tra di loro: il GND dell\u0026rsquo;ESP32 deve essere collegato al GND dei transistor e a quello disponibile nell\u0026rsquo;alimentatore esterno a 12V. L\u0026rsquo;ESP32 può essere alimentato da un semplice cavo USB collegato al PC. Nella immagine in alto puoi notare il rettangolo rosso attorno ai pin 26,27,25 dell\u0026rsquo;ESP32.\nL\u0026rsquo;hardware utilizzato Il circuito comprende pochi pezzi facili da assemblare anche senza una breadboard:\n1 ESP32 3 Tip120 3 Resistenze 10K Ohm 1 Striscia di LED RGB vedi su Amazon Il codice completo // Carica la libreria Wi-Fi #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;analogWrite.h\u0026gt; // Sostituisci con le tue vere credenziali const char* ssid = \u0026#34;SSID\u0026#34;; const char* password = \u0026#34;Password\u0026#34;; WiFiServer server(80); String header; const int redPin = 26; const int greenPin = 27; const int bluePin = 25; int greenValue = 0; int redValue = 0; int blueValue = 0; String redValueString = String(redValue); String greenValueString = String(greenValue); String blueValueString = String(blueValue); void setup() { Serial.begin(115200); Serial.print(\u0026#34;In connessione\u0026#34;); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(\u0026#34;.\u0026#34;); } Serial.println(\u0026#34;\u0026#34;); Serial.println(\u0026#34;WiFi connesso.\u0026#34;); Serial.println(\u0026#34;Indirizzo IP: \u0026#34;); Serial.println(WiFi.localIP()); server.begin(); analogWriteResolution(8); } void loop(){ WiFiClient client = server.available(); // In ascolto per le connessioni if (client) { // Quando si connette un client, Serial.println(\u0026#34;New Client.\u0026#34;); // scrivi un messaggio sul monitor seriale String currentLine = \u0026#34;\u0026#34;; // Crea una String per conservare i dati della connessione while (client.connected()) { // Loop... if (client.available()) { // Se esiste un dato in arrivo dal client, char c = client.read(); // leggi il carattere, Serial.write(c); // e scrivilo sul monitor seriale header += c; if (c == \u0026#39;\\n\u0026#39;) { // Se era \u0026#34;newline\u0026#34; esegui le 4 linee seguenti if (currentLine.length() == 0) { client.println(\u0026#34;HTTP/1.1 200 OK\u0026#34;); client.println(\u0026#34;Content-type:text/html\u0026#34;); client.println(\u0026#34;Connection: close\u0026#34;); client.println(); if(header.indexOf(\u0026#34;GET /-r\u0026#34;) \u0026gt;=0 ) redValue -=1; else if(header.indexOf(\u0026#34;GET /+r\u0026#34;) \u0026gt;=0) redValue +=1; else if(header.indexOf(\u0026#34;GET /+g\u0026#34;) \u0026gt;=0) greenValue +=1; else if(header.indexOf(\u0026#34;GET /-g\u0026#34;) \u0026gt;=0) greenValue -=1; else if(header.indexOf(\u0026#34;GET /+b\u0026#34;) \u0026gt;=0) blueValue +=1; else if(header.indexOf(\u0026#34;GET /-b\u0026#34;) \u0026gt;=0) blueValue -=1; else if(header.indexOf(\u0026#34;GET /Red\u0026#34;) \u0026gt;=0) if(redValue == 0) redValue = 254; else redValue = 0; else if(header.indexOf(\u0026#34;GET /Green\u0026#34;) \u0026gt;=0) if(greenValue == 0) greenValue = 254; else greenValue = 0; else if(header.indexOf(\u0026#34;GET /Blue\u0026#34;) \u0026gt;=0) {if(blueValue == 0) blueValue = 254; else blueValue = 0;} analogWrite(redPin,redValue); analogWrite(bluePin,blueValue); analogWrite(greenPin,greenValue); redValueString = String(redValue); greenValueString = String(greenValue); blueValueString = String(blueValue); // Mostra la pagina web client.println(\u0026#34;\u0026lt;!DOCTYPE html\u0026gt;\u0026lt;html\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;head\u0026gt;\u0026lt;meta name=\\\u0026#34;viewport\\\u0026#34; content=\\\u0026#34;width=device-width, initial-scale=1\\\u0026#34;\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;link rel=\\\u0026#34;icon\\\u0026#34; href=\\\u0026#34;data:,\\\u0026#34;\u0026gt;\u0026#34;); // CSS to style the on/off buttons client.println(\u0026#34;\u0026lt;link rel=\\\u0026#34;stylesheet\\\u0026#34; href=\\\u0026#34;https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css\\\u0026#34;\u0026gt;\u0026#34;); // Heading della pagina web client.println(\u0026#34;\u0026lt;/head\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;center\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;body\u0026gt;\u0026lt;h1\u0026gt;ESP32 RGB Web Server\u0026lt;/h1\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;br\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /+r \\\u0026#34; \u0026#34;); if(redValue == 254) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /Red\\\u0026#34; \u0026#34;); client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;RED(\u0026#34; + redValueString + \u0026#34;)\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /-r \\\u0026#34; \u0026#34;); if(redValue == 0) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;br\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;br\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /+g \\\u0026#34; \u0026#34;); if(greenValue == 254) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /Green \\\u0026#34; \u0026#34;); client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;GREEN(\u0026#34; + greenValueString + \u0026#34;)\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /-g \\\u0026#34; \u0026#34;); if(greenValue == 0) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;br\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;br\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /+b \\\u0026#34; \u0026#34;); if(blueValue == 254) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;+\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /Blue \\\u0026#34; \u0026#34;); client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;BLUE(\u0026#34; + blueValueString + \u0026#34;)\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;a href = \\\u0026#34; /-b \\\u0026#34; \u0026#34;); if(blueValue == 0) client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md disabled\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); else client.println(\u0026#34;\u0026lt;button type=\\\u0026#34;button\\\u0026#34; class=\\\u0026#34;btn btn-primary btn-md\\\u0026#34;\u0026gt;-\u0026lt;/button\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/a\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;center\u0026gt;\u0026#34;); client.println(\u0026#34;\u0026lt;/body\u0026gt;\u0026lt;/html\u0026gt;\u0026#34;); client.println(); break; } else { currentLine = \u0026#34;\u0026#34;; } } else if (c != \u0026#39;\\r\u0026#39;) { currentLine += c; } } } header = \u0026#34;\u0026#34;; client.stop(); Serial.println(\u0026#34;Client disconnesso.\u0026#34;); Serial.println(\u0026#34;\u0026#34;); } } Il file make per PlatformIO Se decidi di utilizzare PlatformIO dalla linea di comando crea un file \u0026ldquo;platformio.ini\u0026rdquo; con questo contenuto:\n; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino lib_deps = erropix/ESP32 AnalogWrite@^0.2 Finita la compilazione e l\u0026rsquo;upload puoi lanciare il tuo browser all\u0026rsquo;indirizzo che apparirà dopo la connessione. Dopo la apertura della pagina potrai usare i cursori per regolare separatamente i livelli dei tre colori fondamentali.\nConclusione Una delle competenze che vorrai imparare con l\u0026rsquo;ESP32 è il pilotaggio di carichi esterni. Potrai così creare sistemi di illuminazione automatizzati, centraline di sicurezza avanzate e magari sistemi di irrigazione regolati dal controller.\nPer questi progetti potrai avvalerti di transistor come il TIP120, ma anche di schede commerciali in grado di azionare grossi motori elettrici. Queste schede sono di utilizzo semplicissimo: basta collegare il loro pin di input ad uno dei pin dell\u0026rsquo;ESP32 (ad esempio 25, 26 e 27 del nostro prototipo) e il gioco è fatto! Imparare a pilotare carichi esterni con ESP32 è certamente uno skill essenziale per chiunque voglia creare progetti di microelettronica avanzati.\nRobotdazero.it - post - R.139.2.9.2\n","permalink":"https://www.robotdazero.it/blog/come-pilotare-una-striscia-di-led-usando-esp32/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003c!-- https://diyusthad.com/2019/10/controlling-rgb-lights-from-esp32-web-server.html --\u003e\n\u003ch2 id=\"lesp32-e-i-dispositivi-ad-alto-assorbimento\"\u003eL\u0026rsquo;ESP32 e i dispositivi ad alto assorbimento\u003c/h2\u003e\n\u003cp\u003eIn molte applicazioni IOT ti troverai a usare dispositivi ad alto assorbimento, che richiedono correnti che l\u0026rsquo;ESP32 non è in grado di fornire. In questi casi, prima di passare ai relays elettronici o meccanici possiamo ricorrere ad un economico transistor di media potenza come il \u003cstrong\u003eTIP120\u003c/strong\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eUn errore comune\u003c/strong\u003e tra i neofiti è provare a pilotare motori elettrici, servocomandi o decine di Led usando la corrente di uscita di un ESP32 o di un Arduino. Purtroppo i dispositivi esterni possono richiedere correnti elevate, molto più alte di quelle erogabili da un controller. Arduino, ad esempio può erogare appena \u003cstrong\u003e40mA\u003c/strong\u003e a \u003cstrong\u003e5.0V\u003c/strong\u003e e quindi \u003cstrong\u003e0.2W\u003c/strong\u003e di potenza a fronte di richieste di oltre \u003cstrong\u003e10\u003c/strong\u003e~\u003cstrong\u003e100W\u003c/strong\u003e!\u003c/p\u003e","title":"Come pilotare una striscia di LED usando ESP32"},{"content":"\nLe principali caratteristiche tecniche L'ESP32 è un System on Chip (SoC) sviluppato da Espressif Systems. È un chip a basso costo e ad alte prestazioni che offre una varietà di funzionalità, tra cui:\nProcessore dual core Tensilica Xtensa LX6 a 32 bit con clock fino a 240 MHz Wi-Fi 802.11 b/g/n (2.4 GHz, velocità teorica fino a 150 Mbps) Bluetooth 4.2 + Bluetooth Low Energy (BLE) Fino a 34 piedini GPIO (il numero effettivamente disponibili dipende dal modulo utilizzato) Supporto per sensori e periferiche digitali e analogiche Per quanto riguarda gli utilizzi possibili, l'ESP32 è una piattaforma che può essere impiegata in numerose applicazioni, tra cui:\nInternet delle cose (IoT) Dispositivi indossabili Giochi e intrattenimento Sistemi di automazione domestica DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY La storia dell'ESP32 L'ESP32 ha conquistato rapidamente una larga fetta del mercato IoT. Nel 2024, grazie alle sue spiccate doti di connettività Wi-Fi e Bluetooth, è diventato un punto fermo della comunità dei maker. Diamo uno sguardo alla sua breve storia.\nLa casa madre: Espressif L'ESP32 è prodotto da Espressif Systems, azienda di microelettronica con sede in Cina fondata nel 2008. Il suo primo prodotto, un SoC Wi-Fi a 2,4 GHz, è stato introdotto nel 2013 con il nome ESP8089, destinato a tablet e set-top box.\nNel 2014 viene rilasciato ESP8266, che porta la connettività Wi-Fi a basso costo nel mondo maker e industriale, aprendo la strada all’ESP32 (presentato nel 2016).\nLa missione di Espressif si concentra sulle soluzioni per l’Internet of Things (IoT) e l’AIoT (Artificial Intelligence of Things), combinando potenza di calcolo e connettività wireless a basso consumo.\nI \"motori\" della Espressif L'ESP8266 era basato su un processore RISC Tensilica Xtensa L106 a 32 bit, architettura sviluppata da Cadence (San Jose, California). Questa architettura è stata progettata per offrire buone prestazioni per watt, caratteristica fondamentale nei dispositivi alimentati a batteria.\nI primi successi commerciali Nel 2014 Hackaday annunciò l’introduzione di un modulo Wi-Fi da $5 venduto tramite Seeed Studio: l’ESP-01, prodotto da Ai-Thinker.\nL’ESP-01 era basato su ESP8266 (non su ESP32) ed era limitato a soli otto pin, due dei quali utilizzati per la UART. Nonostante ciò, risultò immediatamente interessante grazie al supporto della piattaforma Arduino e alla possibilità di connettersi a Internet senza hardware aggiuntivo.\nIl costo dell'ESP32 I moduli basati su ESP8266 e successivamente ESP32 richiedono un numero minimo di componenti esterni: alimentazione a 3,3 V stabilizzata, pochi condensatori di bypass, antenna e memoria flash esterna (SPI/QSPI).\nAll'accensione, il firmware viene caricato dalla memoria flash esterna nella SRAM interna per l’esecuzione.\nQuesta semplicità progettuale ha permesso la nascita di microcontrollori \"stile Arduino\" con connettività Wi-Fi integrata a costi estremamente contenuti.\nNel 2015 Espressif ha rilasciato l’SDK ufficiale, disponibile in versione bare-metal e con supporto FreeRTOS, offrendo agli sviluppatori pieno controllo dello stack Wi-Fi.\nGli sviluppi recenti I dispositivi della serie ESP32 integrano un microprocessore dual-core Tensilica Xtensa LX6 a 32 bit fino a 240 MHz, 520 kB di SRAM interna e Wi-Fi 2.4 GHz 802.11 b/g/n.\nLa connettività Bluetooth nella versione ESP32 classica è 4.2 + BLE.\nUn coprocessore Ultra Low Power (ULP) consente di monitorare alcune periferiche durante la modalità deep sleep, riducendo drasticamente i consumi nei sistemi alimentati a batteria.\nSchema a blocchi del Tensilica Xtensa 32-bit LX6\nLe serie successive includono:\nESP32-S2: single-core Xtensa LX7 fino a 240 MHz, Wi-Fi (nessun Bluetooth) ESP32-S3: dual-core Xtensa LX7, Wi-Fi + Bluetooth 5 (BLE) Le versioni più recenti includono periferiche aggiuntive come l’interfaccia TWAI (compatibile con ISO 11898-1, noto come CAN bus) e acceleratori hardware per crittografia (Flash Encryption, HMAC, AES, SHA).\nIl software della piattaforma ESP32 Nel 2024 è disponibile un ecosistema software estremamente maturo per ESP32. Gli sviluppatori possono scegliere tra l’ambiente ufficiale ESP-IDF (basato su FreeRTOS) oppure il framework Arduino-ESP32.\nPer chi utilizza Arduino, è possibile integrare il supporto ESP32 aggiungendo l’URL del pacchetto \"Arduino-ESP32\" nelle Preferenze dell’IDE e selezionando la scheda desiderata dal Board Manager. Una volta installato il pacchetto, saranno disponibili esempi e librerie dedicate.\n🔑 I progetti in ambiente Arduino utilizzano file con estensione .ino e seguono la classica struttura setup() e loop(). Parliamo del modulo Wi-Fi L'ESP32 integra un modulo Wi-Fi compatibile con 802.11 b/g/n nella banda 2.4 GHz. La velocità teorica massima è 150 Mbps (802.11n 1x1, 40 MHz), mentre il throughput reale tipico è compreso tra 30 e 70 Mbps, a seconda delle condizioni di rete.\nNon supporta reti a 5 GHz.\nBluetooth L'ESP32 (versione classica con core Xtensa LX6) integra Bluetooth 4.2 + Bluetooth Low Energy (BLE).\nLe versioni successive includono:\nESP32-S2: Wi-Fi, nessun Bluetooth ESP32-S3: Wi-Fi + Bluetooth 5 (BLE) ESP32-C3: Wi-Fi + BLE 5 (architettura RISC-V) Il Bluetooth Low Energy è ideale per applicazioni a basso consumo come sensori wireless, beacon e dispositivi indossabili. L'utilizzo dell'ESP32 L'ESP32 dispone di fino a 34 GPIO (alcuni solo input, come GPIO 34–39). Il numero effettivamente disponibile dipende dal modulo utilizzato (es. WROOM, PICO, ecc.).\nSupporta un'ampia gamma di periferiche hardware:\nADC a 12 bit PWM SPI, I2C, UART I2S TWAI (compatibile CAN) Grazie alla doppia CPU e alla connettività integrata, è adatto a:\nGateway IoT Automazione industriale leggera Dispositivi wearable Sistemi embedded con connettività cloud La differenza tra ESP32 e ESP8266 ESP32 è dual-core (ESP8266 è single-core) Maggiore potenza di calcolo (fino a 240 MHz vs 80/160 MHz) Più GPIO e periferiche hardware Supporto Bluetooth (assente su ESP8266) Miglior gestione del multitasking grazie a FreeRTOS Lo schema interno dell'ESP32 Di seguito è riportato lo schema a blocchi del SoC ESP32.\nDiagramma a blocchi dell'ESP32\nConnettività wireless L’ESP32 supporta Wi-Fi 802.11 b/g/n a 2.4 GHz e Bluetooth 4.2 + BLE (nella versione classica). Le comunicazioni radio sono gestite da un sottosistema dedicato integrato nel SoC.\nCore Il processore principale è un Tensilica Xtensa LX6 dual-core a 32 bit con frequenza configurabile fino a 240 MHz.\nPRO_CPU: gestisce principalmente lo stack di sistema (Wi-Fi, Bluetooth, RTOS) APP_CPU: esegue il codice applicativo Entrambi i core condividono l’accesso alla memoria interna, ai registri e alle periferiche mappate nello spazio di indirizzamento a 32 bit.\nSchema a blocchi del chip Tensilica Xtensa LX6\nL’architettura è di tipo RISC a 32 bit. Tutte le periferiche, ROM, SRAM interna, cache e memoria flash esterna sono mappate nello spazio di indirizzamento del processore.\nMappatura delle unità di memoria\nL’ESP32 integra inoltre un coprocessore ULP (Ultra Low Power) che può operare in modalità deep sleep per monitorare ingressi analogici o digitali con consumi estremamente ridotti.\nUn breve confronto con Arduino UNO Frequenza fino a 240 MHz (Arduino UNO: 16 MHz) Architettura 32 bit vs 8 bit Maggiore capacità di calcolo in virgola mobile Connettività Wi-Fi e Bluetooth integrata Questo si traduce in maggiore potenza elaborativa e possibilità di eseguire stack di rete complessi direttamente sul microcontrollore.\n🛡️ Ferro Professionale: In applicazioni industriali è consigliabile affiancare al firmware un watchdog hardware esterno e memoria di logging affidabile per garantire funzionamento continuo. La memoria dell'ESP32 A differenza delle classiche schede Arduino, l’ESP32 utilizza un’architettura con memoria interna ed esterna.\nMemorie interne: ROM (~448 KiB): memoria di sola lettura contenente bootloader e funzioni di sistema SRAM interna (520 KiB) RTC SRAM (16 KiB) per modalità deep sleep eFuse (1 Kb) per configurazioni permanenti (chiavi, MAC address, ecc.) La memoria flash per il firmware è generalmente esterna (SPI/QSPI), tipicamente da 4 MB nei moduli WROOM.\nAlcuni modelli integrano flash embedded (es. ESP32-PICO-D4).\nEspansione di memoria ⚡️ È possibile utilizzare fino a 16 MB di memoria flash esterna. Alcuni modelli supportano fino a 8 MB di PSRAM esterna per applicazioni più complesse. Acceleratori hardware di crittografia Uno dei fattori più importanti in qualsiasi sistema connesso è la sicurezza. Per questo l’ESP32 integra acceleratori hardware dedicati ad alcune funzioni crittografiche, utili per aumentare prestazioni e ridurre il carico sulla CPU:\nAES (crittografia simmetrica) SHA (funzioni hash) RSA (crittografia asimmetrica) ECC (crittografia a curva ellittica) Questi moduli hardware rendono più rapide e affidabili operazioni come cifratura, verifica di integrità e autenticazione (es. TLS, firmware signing, secure boot), migliorando la robustezza complessiva del sistema contro attacchi e manomissioni.\nLa scheda di sviluppo DevKitC L’ESP32 è un SoC molto adottato anche in ambito industriale, ma per essere usato facilmente da hobbisti e sviluppatori si utilizza spesso una scheda di sviluppo (es. DevKitC) che integra alimentazione, conversione USB-seriale e pin header.\nSu molte DevKitC l’alimentazione a 3,3V è ottenuta tramite un regolatore lineare (spesso un AMS1117 o equivalente). Nota: il regolatore può scaldare se alimenti carichi elevati; per applicazioni stabili è consigliabile una sorgente 5V/USB di qualità o un convertitore step-down dedicato.\nLa piedinatura del modulo ESP32-WROOM Piedinatura del modulo ESP32-WROOM\nCome si vede nel diagramma, i pin sono raggruppati per funzione. Molti GPIO sono multiplexati: lo stesso pin può svolgere più ruoli (GPIO, periferiche seriali, PWM, ADC, ecc.). Verifica sempre datasheet e pinout del modulo specifico prima di collegare periferiche.\nI pin digitali L’ESP32 dispone di fino a 34 GPIO sul chip, ma non tutti sono sempre disponibili sul modulo e alcuni (GPIO 34–39) sono solo input. Il numero effettivo di pin utilizzabili dipende dalla scheda/modulo (es. ESP32-WROOM-32) e dall’uso di flash/PSRAM e funzioni di boot.\nLa maggior parte dei GPIO supporta pull-up e pull-down interni configurabili via software. Questo semplifica il collegamento di pulsanti, tastiere a matrice e segnali digitali, riducendo componenti esterni (dove appropriato).\nCorrente sui GPIO: per un uso affidabile è consigliabile restare su correnti basse (tipicamente ~12 mA). Valori più alti sono possibili, ma 40 mA è un limite assoluto e non un valore operativo “consigliato”. Per pilotare carichi (relay, strisce LED, motori) usa driver, MOSFET o moduli dedicati.\nCome settare i pin digitali in \"OUTPUT\" È possibile utilizzare i GPIO in OUTPUT per controllare dispositivi a basso assorbimento (es. LED) o pilotare carichi più grandi tramite componenti esterni (relay, MOSFET, driver). Nell’esempio classico di un LED, usa una resistenza in serie (ad es. 220–330 Ω):\npinMode(GPIO_pin, OUTPUT); Puoi impostare il pin a HIGH o LOW per cambiarne lo stato. HIGH e 1 sono equivalenti; LOW e 0 sono equivalenti:\ndigitalWrite(GPIO_pin, HIGH); // Accendi il LED digitalWrite(GPIO_pin, LOW); // Spegni il LED Come settare i pin digitali in \"INPUT\" I pin dell’ESP32 possono essere usati in INPUT per leggere segnali digitali esterni (pulsanti, sensori digitali, finecorsa, ecc.).\npinMode(GPIO_pin, INPUT); BTN_State = digitalRead(GPIO_pin); Dal punto di vista elettrico, un ingresso non deve restare “fluttuante”: è necessario definire lo stato logico con una resistenza di pull-up o pull-down.\nLasciare un ingresso digitale fluttuante è una pratica scorretta: l’ESP32 può leggere rumore elettrico e alternare 0/1 in modo casuale. La soluzione tipica è usare una resistenza di pull-up verso 3,3V (es. 10 kΩ) o attivare il pull-up interno tramite software.\nEsempio con pull-up interno (consigliato per pulsanti semplici):\npinMode(GPIO_pin, INPUT_PULLUP); Pull-up interni: nota importante Su ESP32, i pull-up/pull-down sono in genere configurabili via software su molti GPIO (eccetto alcuni pin speciali e alcuni input-only). Per progetti robusti, verifica sempre eventuali restrizioni del pin scelto (boot strap, funzioni di flash, input-only).\nI pin analogici Alcuni pin possono essere usati come ingressi analogici tramite ADC. L’ESP32 dispone di ADC a 12 bit: i valori letti vanno da 0 a 4095.\n🔑 I pin analogici dell'ESP32 hanno una risoluzione di 12 bit (0–4095). Nota: il range di tensione misurabile dipende dall’attenuazione configurata e l’ADC non è perfettamente lineare; per misure accurate è consigliabile calibrare. Questi i pin di ingresso analogico: ADC1_CH0 (GPIO 36) ADC1_CH1 (GPIO 37) ADC1_CH2 (GPIO 38) ADC1_CH3 (GPIO 39) ADC1_CH4 (GPIO 32) ADC1_CH5 (GPIO 33) ADC1_CH6 (GPIO 34) ADC1_CH7 (GPIO 35) ADC2_CH0 (GPIO 4) ADC2_CH1 (GPIO 0) ADC2_CH2 (GPIO 2) ADC2_CH3 (GPIO 15) ADC2_CH4 (GPIO 13) ADC2_CH5 (GPIO 12) ADC2_CH6 (GPIO 14) ADC2_CH7 (GPIO 27) ADC2_CH8 (GPIO 25) ADC2_CH9 (GPIO 26) Il successo commerciale dell'ESP32 Con una tale combinazione di connettività e potenza di calcolo, è facile capire perché l’ESP32 abbia scalato rapidamente il mercato IoT, diventando uno standard de facto per prototipazione e molti prodotti embedded.\nPur essendo percepito spesso come alternativa ad Arduino, l’ESP32 beneficia dell’intero ecosistema di tool, librerie e community, riducendo drasticamente la curva di apprendimento.\nGli appassionati e i professionisti possono ottenere prestazioni superiori e connettività integrata senza dover cambiare radicalmente strumenti e workflow di sviluppo.\nUltimi arrivi della famiglia ESP32 Il microcontroller ESP32-P4 promette di migliorare ulteriormente le prestazioni. Integra una CPU RISC-V dual-core fino a 400 MHz e 768 KB di SRAM on-chip e punta a semplificare l’interfacciamento con fotocamere ad alta risoluzione via MIPI-CSI.\nNota: l’ESP32-P4 è orientato ad applicazioni ad alte prestazioni e, a seconda della variante, può richiedere chip companion per la connettività wireless (Wi-Fi/Bluetooth).\nDEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY ","permalink":"https://www.robotdazero.it/blog/esp32-i-segreti-del-suo-successo/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/esp32-i-segreti-del-suo-successo/header.jpg\"\u003e\u003c/p\u003e\n\u003ch2\u003eLe principali caratteristiche tecniche\u003c/h2\u003e\n\u003cp\u003eL'\u003ca href=\"https://www.espressif.com/en/products/socs/esp32\" target=\"_blank\"\u003eESP32\u003c/a\u003e è un System on Chip (SoC) sviluppato da \u003ca href=\"https://www.espressif.com/\" target=\"_blank\"\u003eEspressif Systems\u003c/a\u003e. È un chip a basso costo e ad alte prestazioni che offre una varietà di funzionalità, tra cui:\u003c/p\u003e\n\u003cul\u003e\n   \u003cli\u003eProcessore dual core Tensilica Xtensa LX6 a 32 bit con clock fino a 240 MHz\u003c/li\u003e\n   \u003cli\u003eWi-Fi 802.11 b/g/n (2.4 GHz, velocità teorica fino a 150 Mbps)\u003c/li\u003e\n   \u003cli\u003eBluetooth 4.2 + Bluetooth Low Energy (BLE)\u003c/li\u003e\n   \u003cli\u003eFino a 34 piedini GPIO (il numero effettivamente disponibili dipende dal modulo utilizzato)\u003c/li\u003e\n   \u003cli\u003eSupporto per sensori e periferiche digitali e analogiche\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePer quanto riguarda gli utilizzi possibili, l'ESP32 è una piattaforma che può essere impiegata in numerose applicazioni, tra cui:\u003c/p\u003e","title":"ESP32: i segreti del suo successo"},{"content":"Cosa è la Idroponica L\u0026rsquo;idroponica è un metodo di coltivazione di piante senza terreno, utilizzando acqua o una soluzione ricca di nutrienti per fornire i nutrienti necessari direttamente alle radici della pianta. Questo metodo offre diversi vantaggi rispetto al giardinaggio tradizionale a base di suolo, tra cui un aumento delle rese, un migliore assorbimento di nutrienti e un ridotto utilizzo di acqua.\nPer automatizzare un sistema idroponico, è necessario un controller in grado di monitorare l\u0026rsquo;ambiente e regolare le condizioni in base alle esigenze. Un\u0026rsquo;opzione popolare è il computer a scheda singola Raspberry Pi. Il Raspberry Pi è un piccolo, potente computer che può essere utilizzato per eseguire una varietà di software, tra cui Mycodo, un pacchetto software open-source per il monitoraggio e il controllo ambientale.\nIl software per la coltivazione idroponica Mycodo è uno strumento facile da usare ma potente che può essere utilizzato per automatizzare una vasta gamma di sistemi idroponici. Può monitorare la temperatura, il pH e i livelli di nutrienti della soluzione acquosa e regolare l\u0026rsquo;illuminazione, il dosaggio dei nutrienti e le pompe secondo necessità.\nOltre alla sua interfaccia user-friendly con potenti funzionalità, Mycodo è anche gratuito e open-source. Ciò significa che puoi modificare e migliorare liberamente il software per soddisfare le tue esigenze specifiche.\nEcco una breve panoramica di come utilizzare Mycodo per automatizzare un sistema idroponico:\nInstallare Mycodo sul Raspberry Pi. Configurare Mycodo per monitorare l\u0026rsquo;ambiente e controllare il sistema. Distribuire il software Mycodo sul Raspberry Pi. Monitorare il sistema e apportare le modifiche necessarie. Automatizzando il tuo sistema idroponico con Raspberry Pi e Mycodo, puoi aumentare significativamente le tue rese e goderti un approccio più rilassato al giardinaggio, trascurando come come la irrigazione, la pulizia e la concimazione.\nColtura idroponica vs. Coltivazione tradizionale Ci sono molte ragioni diverse per cui scegliere l\u0026rsquo;idroponica rispetto al tradizionale giardinaggio del suolo. I sistemi idroponici funzionano senza suolo, ma sono in grado di far crescere le piante molto più velocemente di quanto possibile con i sistemi tradizionale.\nSi possono ottenere esemplari migliori e in modo rapido con dei costi per l\u0026rsquo;acqua praticamente azzerati. L\u0026rsquo;acqua infatti viene riciclata senza perdite escluso la evaporazione e l\u0026rsquo;assorbimento intrinseco delle piante.\nGli svantaggi Ci sono costi di avvio non trascurabili come ad esempio le vasche e i LED per \u0026ldquo;nutrire \u0026quot; di luce le piante coltivate in appartamento. Ma in generale i costi dipendono dal tipo di impianto e dal numero di piante desiderate. I prezzi vanno da meno di 100 euro per un un impianto con 10 piantine fino a 1000~2000 euro max per un eccellente impianto casalingo.\nI costi come vedi possono essere bassi ma sono comunque superiori a quelli del giardinaggio \u0026ldquo;normale\u0026rdquo; (parliamo di meno di 10 euro per semi e contenitori). A questo punto forse ti starai chiedendo: \u0026ldquo;Vale davvero la pena di provare la coltivazione idroponica?\u0026rdquo;\n🔑 Per molte persone la risposta sorprendentemente può essere \"SI\". I vantaggi della coltivazione idroponica sono infatti molti e importanti. I vantaggi della coltivazione idroponica non richiede diserbanti non ti obbliga a sforzare la schiena (prova a dire che è una cosa secondaria!) funziona benissimo dentro un appartamento non richiede irrigazione non esistono posti in cui i parassiti o gli insetti possano nascondersi grazie alla perlite le piante cresco più alte e marciscono raramente i costi iniziali vengono ammortizzati velocemente È sicuro lasciare i LED accesi per 18 ore al giorno? Se siete preoccupati per sicurezza vostra o della vostra casa, i LED moderni producono poco calore e possono restare accesi 24 ore senza preoccuparsi di vampate o simili. Anche se la loro durata negli anni dipende dalla marca ed dal costo puoi probabilmente lasciarli accessi per 16 ore al giorno. Molti impianti commerciali restano accessi anche più si 16 ore. Quanta luce serve alle piante Molte ricerche hanno scoperto che le piante richiedono un periodo di respirazione giornaliero di almeno 6 ore al giorno per le piantine e di 810 ore per le piante mature. Pertanto non è consigliabile fornire più di 1214 ore al giorno di luce. La regola vale anche se si coltivano varietà che amano le lunghe giornate o volete indurre la fioritura (o frutta) anticipata delle piante.\nConclusioni Nei prossimi post vedremo come realizzare un impianto idroponico \u0026ldquo;tecnologico\u0026rdquo; grazie a Mycodo e al Raspberry PI. Tratteremo della costruzione elettrica e meccanica con i disegni in 3D per gli erogatori dei nutrienti. Alla fine della serie vedremo come implementare semplici algoritmi di machine learning per migliorare la resa e i costi dell\u0026rsquo;impianto.\nRobotdazero.it - post - R.136.1.2.2\n","permalink":"https://www.robotdazero.it/blog/come-automatizzare-la-coltura-idroponica-con-raspberry-pi-e-mycodo/","summary":"\u003ch2 id=\"cosa-è-la-idroponica\"\u003eCosa è la Idroponica\u003c/h2\u003e\n\u003cp\u003eL\u0026rsquo;\u003ca href=\"https://it.wikipedia.org/wiki/Idroponica\" target=\"_blank\" rel=\"noopener\"\u003eidroponica\u003c/a\u003e è un metodo di coltivazione di piante senza terreno, utilizzando acqua o una soluzione ricca di \u003ca href=\"https://growrillahydroponics.com/fertilizzanti/fertilizzanti-idroponica/\" target=\"_blank\" rel=\"noopener\"\u003enutrienti\u003c/a\u003e per fornire i nutrienti necessari direttamente alle radici della pianta. Questo metodo offre diversi vantaggi rispetto al giardinaggio tradizionale a base di suolo, tra cui un aumento delle rese, un migliore assorbimento di nutrienti e un ridotto utilizzo di acqua.\u003c/p\u003e\n\u003cp\u003ePer automatizzare un sistema idroponico, è necessario un controller in grado di monitorare l\u0026rsquo;ambiente e regolare le condizioni in base alle esigenze. Un\u0026rsquo;opzione popolare è il computer a scheda singola Raspberry Pi. Il \u003ca href=\"https://it.wikipedia.org/wiki/Raspberry_Pi\" target=\"_blank\" rel=\"noopener\"\u003eRaspberry Pi\u003c/a\u003e è un piccolo, potente computer che può essere utilizzato per eseguire una varietà di software, tra cui Mycodo, un pacchetto software open-source per il monitoraggio e il controllo ambientale.\u003c/p\u003e","title":"Come automatizzare la coltura idroponica con Raspberry Pi e Mycodo"},{"content":"In arrivo l\u0026rsquo;ESP32-P4 Espressif oggi annuncia l\u0026rsquo;imminente rilascio del suo ultimo chip ESP32-P4. È alimentato da una CPU RISC-V dual-core con un\u0026rsquo;estensione delle istruzioni AI, un sottosistema di memoria avanzato e periferiche integrate ad alta velocità. ESP 32-P4 è progettato per applicazioni ad alte prestazioni che richiedono una forte sicurezza.\n👉 ESP32-P4 mira a soddisfare la prossima era di applicazioni embedded che si baseranno su un solido supporto per ricche interfacce uomo-macchina, un efficiente edge computing e migliori requisiti di connettività. CPU ad alte prestazioni e sottosistema di memoria Con una CPU RISC-V dual-core con clock di 400 MHz, ESP32-P4 supporta anche estensioni FPU e AI a precisione singola, fornendo così tutte le risorse computazionali necessarie alle moderne applicazioni IOT. ESP32-P4 integra un LP-Core che può funzionare fino a 40 MHz: questo è fondamentale in termini di supporto di applicazioni a bassissima potenza che possono occasionalmente richiedere un calcolo elevato. In tali scenari, i core HP possono essere tenuti fermi per la maggior parte del tempo, allo scopo di risparmiare energia.\nLa SRAM on-chip Il sistema ESP32-P4 ha 768KB di SRAM on-chip, che può diventare accessibile come cache quando è disponibile una PSRAM esterna. Inoltre, il sistema possiede 8KB di RAM TCM a attesa zero, che può essere utilizzata per sezioni di codice time-critical. Questo sistema di memoria ad alte prestazioni, insieme al supporto per PSRAM e Flash esterni, garantisce che la latenza di accesso alla RAM sia sempre molto ridotta.\nLa Sicurezza La sicurezza è al centro del progetto ESP32-P4. Caratteristiche, come avvio sicuro, crittografia Flash,acceleratori crittografici, TRNG, etc. forniscono la infrastruttura necessaria per blindare il dispositivo.\nCon l\u0026rsquo;aiuto della periferica di firma digitale e di un\u0026rsquo;unità di gestione delle chiavi dedicata, ESP32-P4 garantisce che le chiavi private siano generate sul SoC stesso e non siano compromesse da software e dati in chiaro (non crittografati). Il SoC supporta anche la protezione degli accessi hardware che gestisce i permessi di accesso.\nRicca interfaccia uomo-macchina ESP32-P4 include il supporto per MIPI-CSI con ISP integrato e MIPI-DSI, consentendo così l\u0026rsquo;integrazione di una fotocamera ad alta risoluzione. Per consentire una maggiore connettività sono inclusi anche ingressi touch capacitivi e funzioni di riconoscimento vocale che questa dispositivo adattissimo ad ogni applicazione basata su HMI.\nInoltre, ESP32-P4 integra acceleratori hardware per vari protocolli di codifica dei media, nonché protocolli di compressione evoluti per l\u0026rsquo;elaborazione delle immagini, incluso il supporto per la codifica H.264. Il chip possiede anche un hardware integrato Pixel Processing Accelerator, adatto per lo sviluppo di interfacce GUI.\nPeriferiche altamente integrate ESP32-P4 ha più di 50 GPIO programmabili, che è significativamente più di quelli di qualsiasi altro chip costruito da Espressif. Supporta tutte le periferiche comunemente utilizzate, come SPI, I2S, I2C, LED PWM, MCPWM, RMT, ADC, DAC, UART e TWAITM. Inoltre, ESP32-P4 supporta USB OTG 2.0 HS, Ethernet e SDIO Host 3.0 per la connettività ad alta velocità.\n🔑 Se l'applicazione richiede connettività wireless ESP32-P4 può facilmente connettersi, come un chip compagno wireless, a qualsiasi prodotto della serie ESP32-C/S/H su SPI/SDIO / UART, utilizzando le soluzioni ESP-Hosted o ESP-AT. ESP32-P4 può anche funzionare come MCU host per altre soluzioni di connettività, come ACK, AWS IoT ExpressLink,ecc. ESP32-P4 sarà supportato attraverso ESP-IDF (Matured IoT Development Framework) di Espressif, in modo che gli utenti possano beneficiare della loro familiarità con la piattaforma ESP32.\nRobotdazero.it - post - R.134.1.2.0\n","permalink":"https://www.robotdazero.it/blog/in-arrivo-il-nuovo-esp32-p4/","summary":"\u003ch2 id=\"in-arrivo-lesp32-p4\"\u003eIn arrivo l\u0026rsquo;ESP32-P4\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eEspressif\u003c/strong\u003e oggi annuncia l\u0026rsquo;imminente rilascio del suo ultimo chip \u003ca href=\"https://www.espressif.com/en/news/ESP32-P4\" target=\"_blank\" rel=\"noopener\"\u003eESP32-P4\u003c/a\u003e. È alimentato da una CPU \u003ca href=\"https://en.wikipedia.org/wiki/RISC-V\" target=\"_blank\" rel=\"noopener\"\u003eRISC-V\u003c/a\u003e dual-core con un\u0026rsquo;estensione delle istruzioni AI, un sottosistema di memoria avanzato e periferiche integrate ad alta velocità.\nESP 32-P4 è progettato per applicazioni ad alte prestazioni che richiedono una forte sicurezza.\u003c/p\u003e\n\u003cdiv class=\"alert alert-doks d-flexflex-shrink-1\" role=\"alert\"\u003e\n 👉 \u003cstrong\u003eESP32-P4 mira a soddisfare\u003c/strong\u003e la prossima era di applicazioni embedded che si baseranno su un solido supporto per ricche interfacce uomo-macchina, un efficiente edge computing e migliori requisiti di connettività.\n\u003c/div\u003e\n\u003ch2 id=\"cpu-ad-alte-prestazioni-e-sottosistema-di-memoria\"\u003eCPU ad alte prestazioni e sottosistema di memoria\u003c/h2\u003e\n\u003cp\u003eCon una CPU RISC-V dual-core con clock di 400 MHz, ESP32-P4 supporta anche estensioni FPU e AI a precisione singola, fornendo così tutte le risorse computazionali necessarie alle moderne applicazioni IOT. ESP32-P4 integra un LP-Core che può funzionare fino a 40 MHz: questo è fondamentale in termini di supporto di applicazioni a bassissima potenza che possono occasionalmente richiedere un calcolo elevato. In tali scenari, i core HP possono essere tenuti fermi per la maggior parte del tempo, allo scopo di risparmiare energia.\u003c/p\u003e","title":"In arrivo il nuovo ESP32-P4"},{"content":" Python può essere un lingaggio universale per affrontare il mondo della automazione e dell\u0026rsquo;IOT ed è diventato una scelta popolare per moltissimi compiti informatici, dalla elaborazione dei dati al Machine Learning. Che tu sia un principiante assoluto o abbia una certa esperienza di programmazione, vediamo una guida passo-passo per iniziare con Python.\nCOME INSTALLARE PYTHON Devi intanto scaricare il programma di installazione di Python dal sito ufficiale e seguire le istruzioni di installazione.\nQuindi scegli un editor di testo o un IDE da usare per la scrittura del codice: potresti avere bisogno di un editor di testo evoluto o di un ambiente di sviluppo integrato (IDE) per lavorare con precisione. Gli editor di testo più diffusi includono Notepad++ e Sublimetext 3. Se preferisci un ambiente molto avanzato, ti suggerisco di usare Pycharm o Visual Studio Code.\nCome impostare un ambiente virtuale Un ambiente virtuale è una struttura di directory separata che isola le dipendenze del progetto dall\u0026rsquo;ambiente Python globale del sistema. Ciò aiuta a prevenire i conflitti e garantisce che il progetto venga eseguito in modo coerente indipendentemente dalla versione Python del sistema. Per creare un ambiente virtuale, utilizzare il modulo Venv.\npython3 -m venv myenv source myenv/bin/activate Scrivi il tuo primo programma Python: inizia creando un nuovo file con l\u0026rsquo;estensione. py. Prova ad esempio il classico programma che stampa \u0026quot; Hello, World!\u0026quot;\nprint(\u0026#34;Hello, World!\u0026#34;) Salva il tuo codice e poi eseguilo usando il seguente comando:\npython your_program.py Impara le basi Familiarizza con i concetti fondamentali della programmazione Python, inclusi tipi di dati, variabili, operatori, istruzioni di flusso di controllo (if-else, for loops, while loops), funzioni e moduli.\nPratica e sperimentazione: la pratica pratica è essenziale per consolidare la tua comprensione di Python. Prova a codificare piccoli progetti, sperimentare concetti diversi ed esplorare varie librerie e strumenti.\nUnisciti alla comunità: interagisci con la comunità Python attraverso forum online, gruppi di discussione e piattaforme di social media. Cerca aiuto quando necessario, condividi i tuoi progressi e contribuisci a progetti open source per migliorare la tua esperienza di apprendimento.\nESPLORA ARGOMENTI AVANZATI Man mano che acquisisci competenza, approfondisci argomenti Python più avanzati come la programmazione orientata agli oggetti, lo sviluppo web con framework come Django o Flask, la scienza dei dati utilizzando librerie come Numpy e Pandas.\nGli argomenti avanzati del linguaggio Python sono quelli che vanno oltre i concetti fondamentali della programmazione, come variabili, tipi di dati, operatori, controlli di flusso, funzioni e moduli. Questi argomenti possono essere suddivisi in diverse categorie, tra cui:\nProgrammazione orientata agli oggetti (OOP): l\u0026rsquo;OOP è un paradigma di programmazione che consente di modellare il mondo reale in modo più naturale. In Python, l\u0026rsquo;OOP è supportato da classi, oggetti, ereditarietà, polimorfismo e astrazione.\nSviluppo web Python è un linguaggio versatile che può essere utilizzato per sviluppare applicazioni web di qualsiasi complessità. Le librerie più popolari per lo sviluppo web in Python sono Django e Flask.\nData science: Python è uno dei linguaggi più utilizzati per la data science. Le librerie più popolari per la data science in Python sono NumPy, Pandas, SciPy e Matplotlib. Machine learning: Python è anche uno dei linguaggi più utilizzati per l\u0026rsquo;apprendimento automatico. Le librerie più popolari per l\u0026rsquo;apprendimento automatico in Python sono TensorFlow, scikit-learn e Keras. Altri argomenti avanzati di Python includono:\nPROGRAMMAZIONE ORIENTATA AGLI OGGETTI In Python, gli oggetti sono creati utilizzando le classi. Una classe è un modello che definisce i dati e le funzionalità di un oggetto. Ad esempio, la seguente classe definisce un oggetto \u0026ldquo;Persona\u0026rdquo;:\nclass Persona: def __init__(self, nome, cognome, eta): self.nome = nome self.cognome = cognome self.eta = eta def saluta(self): print(\u0026#34;Ciao, mi chiamo\u0026#34;, self.nome) Questa classe ha tre attributi: nome, cognome ed eta. Ha anche un metodo, saluta(), che stampa un messaggio di saluto.\nGli oggetti vengono creati utilizzando il costruttore della classe. Ad esempio, la seguente istruzione crea un oggetto Persona:\npersona = Persona(\u0026#34;Mario\u0026#34;, \u0026#34;Rossi\u0026#34;, 30) Questa istruzione crea un oggetto Persona con i dati nome=\u0026ldquo;Mario\u0026rdquo;, cognome=\u0026ldquo;Rossi\u0026rdquo; ed eta=30.\nGli oggetti possono interagire tra loro inviando messaggi. Ad esempio, la seguente istruzione invia un messaggio di saluto all\u0026rsquo;oggetto persona:\npersona.saluta() Questa istruzione stampa il seguente messaggio:\n\"Ciao, mi chiamo Mario\" I concetti fondamentali dell\u0026rsquo;OOP includono: Classi: Le classi sono modelli che definiscono i dati e le funzionalità di un oggetto. Oggetti: Gli oggetti sono istanze di una classe. Attributi: Gli attributi sono dati associati a un oggetto. Metodi: I metodi sono funzionalità associate a un oggetto. Incapsulamento: L\u0026rsquo;incapsulamento è il processo di nascondere i dettagli implementativi di un oggetto. Ereditarietà: L\u0026rsquo;ereditarietà è il processo di una classe che deriva da un\u0026rsquo;altra classe. Polimorfismo: Il polimorfismo è la capacità di un oggetto di comportarsi in modo diverso a seconda del contesto. La OOP offre diversi vantaggi rispetto alla programmazione procedurale. In particolare, la OOP: In definitiva l\u0026rsquo;OOP rende il codice più modulare e riutilizzabile, ne migliora la leggibilità e consente di creare software più complessi e quindi più potenti.\nRobotdazero.it - post - R.132.1.3.0\n","permalink":"https://www.robotdazero.it/blog/come-iniziare-con-il-linguaggio-python/","summary":"\u003chr\u003e\n\u003cp\u003e\u003cem\u003ePython può essere un lingaggio universale per affrontare il mondo della automazione e dell\u0026rsquo;IOT ed è diventato una scelta popolare per moltissimi compiti informatici, dalla elaborazione dei dati al Machine Learning. Che tu sia un principiante assoluto o abbia una certa esperienza di programmazione, vediamo una guida passo-passo per iniziare con Python.\u003c/em\u003e\u003c/p\u003e\n\u003ch3 id=\"come-installare-python\"\u003eCOME INSTALLARE PYTHON\u003c/h3\u003e\n\u003cp\u003eDevi intanto scaricare il programma di installazione di Python dal \u003ca href=\"https://www.python.org/downloads\" target=\"_blank\" rel=\"noopener\"\u003esito ufficiale\u003c/a\u003e e seguire le istruzioni di installazione.\u003c/p\u003e","title":"Come iniziare con il linguaggio Python"},{"content":" Con i partitori di tensione (voltage divider in inglese) possiamo usare due resistenze per abbassare la tensione al livello desiderato, un trucco che ogni appassionato di elettronica sa usare alla perfezione.\nLo schema teorico Perchè usare i partitori di tensione? Perchè la tensione dei componenti che usiamo con Arduino deve restare rigorosamente entro certi limiti, pena bruciare sensori o intere schede. Se la corrente in linea di massima non è un problema (i componenti assorbono solo la corrente necessaria) la tensione deve essere calcolata con precisione.\nLa formula matematica Se guardi la immagine sopra vedrai che si tratta di usare banalmente due resistenze (R1 e R2) collegate in serie ai poli di una batteria e di due contatti posti “a cavallo” della resistenza R2. La tensione che sarà disponibile tra quei due punti non è però Vg come si potrebbe pensare, ma:\nVr2 = Vg * (R2 / R2+R1)\nIl motivo è che la caduta di tensione viene “spalmata” tra le due resistenze in proporzione al loro valore. In pratica si fa cadere una tensione Vg sulle due resistenze e se ne preleva una parte (VR2) sulla sola R2.\nAgendo sui valori di R1 ed R2 si può ottenere teoricamente una qualunque tensione VR2, comunque mai superiore a Vg.\nIl partitore di tensione nella pratica quotidiana Moltissimi dispositivi digitali funzionano a 5V o 3.3V. Capita spesso di dovere convertire la tensione tra questi due livellii per collegare due circuiti (ad esempio un sensore all’Arduino). E seppure il partitore di tensione sia un concetto semplice, quando dobbiamo usarlo all’inverso e cioè trovare le resistenze per ottenere una certa tensione, nascono delle difficoltà:\nCome portare la tensione da un livello V-iniziale a V-finale senza ricorrere a formule e tabelle? Esiste un sistema facile? Esiste ed è piuttosto semplice: proverò a spiegartelo con questi esempi.\nEsempi Es.1: La tensione che ti serve è 1V ma hai a disposizione 10V. 10V sono dieci volte (10X) rispetto a 1V e perciò ti serve una R1 9 volte (9X) maggiore rispetto a R2.\nEs.2: La tensione che ti serve è 3.3V e hai a disposizione solo i 9V di una normale pila quadra. 9V sono circa il triplo (3X) di 3.3V e perciò ti serve una resistenza R2 qualsiasi e una R1 di valore doppio (2X).\nEs.3: La tensione che ti serve è di 6V e hai a disposizione solo i 12V di una piccola batteria. 12V sono il doppio (2X) rispetto a 6V e perciò ti serve una resistenza R1 uguale (1X) a R2.\nEs.4: La tensione che ti serve è 1.75V ma hai a disposizione solo 5V. 5V sono circa il triplo (3X) rispetto a 1.75V e perciò ti serve una R1 due volte (2X) volte maggiore di R2. Con le resistenze in commercio ad esempio potresti usare R1 = 3,3 kΩm e R2 = 1,8 kΩ per una tensione finale di 1.67V molto vicina ai 1.75V voluti.\nConclusione Se hai a disposizione una tensione (X) volte maggiore di quella che ti serve, prendi una resistenza a caso e poi trovane un’altra (X-1) volte maggiore della prima.\nPerchè funziona? Perchè l’errore che commettiamo mentalmente sarà al massimo del 20% e ci sono resistenze in commercio con tolleranze peggiori. Questo in breve è il ragionamento che fanno gli elettricisti, al volo e quasi senza pensarci.\nI calcolatori on line Dopo qualche volta che lo avrai usato verrà facile e istintivo anche a te. In ogni caso ricorda che ci sono molti simulatori in giro per Internet, io utilizzo questo calcolatore on line di Digikey.\nSe vuoi avere una tabella sottomano per calcolare i valori con le resistenze in commercio ti presento questa immagine tratta dall\u0026rsquo;eccellente sito di Raffaele Ilardo. Con questa tabella mi trovo le resistenze R1 e R2 per la tensione di 9V.\nRobotdazero.it - post - R.167.3.2.0\n","permalink":"https://www.robotdazero.it/blog/come-creare-un-partitore-di-tensione/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003cp\u003eCon i partitori di tensione (\u003cem\u003evoltage divider\u003c/em\u003e in inglese) possiamo usare due resistenze per abbassare la tensione al livello desiderato, un trucco che ogni appassionato di elettronica sa usare alla perfezione.\u003c/p\u003e\n\u003ch2 id=\"lo-schema-teorico\"\u003eLo schema teorico\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"immagine di un partitore di tensione - schema teorico\" loading=\"lazy\" src=\"/blog/come-creare-un-partitore-di-tensione/images/101.png\"\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\u003cp\u003ePerchè usare i partitori di tensione? Perchè la tensione dei componenti che usiamo con Arduino deve restare rigorosamente entro certi limiti, pena bruciare sensori o intere schede. Se la corrente in linea di massima non è un problema (i componenti assorbono solo la corrente necessaria) la tensione deve essere calcolata con precisione.\u003c/p\u003e","title":"Come creare un partitore di tensione"},{"content":" Perchè creare un ambiente di sviluppo con Python? Un ambiente virtuale crea un ambiente isolato per ogni progetto Python. Ciò significa che le dipendenze di un progetto non interferiscono con le dipendenze di altri progetti. Questo è particolarmente importante quando si lavora su progetti che richiedono versioni diverse di Python o di librerie Python.\nGestione delle dipendenze Un ambiente virtuale include un proprio pip, che è il gestore di pacchetti Python. Ciò significa che è possibile installare le dipendenze di un progetto in modo sicuro e senza interferire con le dipendenze di altri progetti.\nCompatibilità Un ambiente virtuale può essere utilizzato per eseguire Python in una versione specifica. Ciò può essere utile per eseguire progetti che richiedono una versione di Python che non è installata sul sistema.\nI programmi utilizzabili Esistono diversi programmi per creare ambienti di sviluppo virtualizzati con Python. Il programma più semplice è VENV, che è una funzionalità integrata di Python. Per creare un ambiente virtuale con VENV, è sufficiente eseguire il seguente comando da riga di comando:\npython -m venv nome_ambiente Ad esempio, per creare un ambiente virtuale chiamato \u0026ldquo;myproject\u0026rdquo;, eseguire il seguente comando:\npython -m venv myproject Una volta creato l\u0026rsquo;ambiente virtuale, è necessario attivarlo per poterlo utilizzare. Per attivare un ambiente virtuale con VENV, è sufficiente eseguire il seguente comando:\nsource nome_ambiente/bin/activate Ad esempio, per attivare l\u0026rsquo;ambiente virtuale \u0026ldquo;myproject\u0026rdquo;, eseguire il seguente comando:\nsource myproject/bin/activate Al termine del lavoro, è possibile disattivare l\u0026rsquo;ambiente virtuale eseguendo il seguente comando:\ndeactivate Oltre a VENV, esistono altri programmi che possono essere utilizzati per creare ambienti di sviluppo virtualizzati con Python. Alcuni di questi programmi sono:\nPipenv: Pipenv è un programma che consente di creare, gestire e distribuire ambienti virtuali Python. Poetry: Poetry è un altro programma che consente di creare, gestire e distribuire ambienti virtuali Python. Anaconda: Anaconda è una distribuzione Python che include un gestore di ambienti virtuali integrato.\nUsiamo VENV per creare un ambiente con python 3 sudo apt-get install python-pip python3-pip # solo unix pip install virtualenv python3 -m venv w cd w source bin/activate python -V deactivate Conclusione Un ambiente virtuale può migliorare le prestazioni dei progetti Python. Ciò è dovuto al fatto che il sistema operativo non deve caricare più volte le stesse librerie Python.\nIn generale, la creazione di un ambiente di sviluppo con Python è una buona pratica che può aiutare a migliorare la compatibilità, la sicurezza e le prestazioni dei progetti Python.\nRobotdazero.it - post - R.129.1.2.6\n","permalink":"https://www.robotdazero.it/blog/come-creare-un-ambiente-di-sviluppo-con-python-venv/","summary":"\u003chr\u003e\n\u003ch2 id=\"perchè-creare-un-ambiente-di-sviluppo-con-python\"\u003ePerchè creare un ambiente di sviluppo con Python?\u003c/h2\u003e\n\u003cp\u003eUn ambiente virtuale crea un ambiente isolato per ogni progetto Python. Ciò significa che le dipendenze di un progetto non interferiscono con le dipendenze di altri progetti. Questo è particolarmente importante quando si lavora su progetti che richiedono versioni diverse di Python o di librerie Python.\u003c/p\u003e\n\u003ch3 id=\"gestione-delle-dipendenze\"\u003eGestione delle dipendenze\u003c/h3\u003e\n\u003cp\u003eUn ambiente virtuale include un proprio pip, che è il gestore di pacchetti Python. Ciò significa che è possibile installare le dipendenze di un progetto in modo sicuro e senza interferire con le dipendenze di altri progetti.\u003c/p\u003e","title":"Come creare un ambiente di sviluppo con Python venv"},{"content":" Usiamo la ESP32 Cam per ESP32 per sorvegliare la vettura La ESP32 nella versione con la OV2640 Cam è una completa fotocamera digitale a colori con risoluzione di 2 megapixel. È piuttosto economica: la potete trovare nel link in basso a 12~13 euro su Amazon o prezzi ancora più bassi su Aliexpress. Può essere usata per una vasta gamma di applicazioni, tra cui il monitoraggio di auto o accessi. Si può connettere al WI-fi se disponibile o meglio ancora ad un smartphone con connessione dati, ormai disponibile a basso costo.\nPossiamo usarla con una connessione remota via smarphone per controllare la vettura in parcheggio oppure per monitorare qualche angolo nascosto delle nostra cassa/giardino se possiamo usare la connessione Wi-fi. Se volete partire con i componenti da noi utilizzati puoi acquistare il KIT completo sul nostro ecommerce, oppure utilizzare una ESP32-Cam in tuo possesso e caricare il programma free di Robotdazero.\nPoiché la registrazione dei video potrebbe in certi casi scaricare la batteria abbiamo pensato ad una versione soft del sistema di monitoraggio, con una serie di accortezze per risparmiare la batteria e avere delle foto ad intervalli di 10 secondi circa.\nMateriali necessari Per realizzare il progetto avrai bisogno dei seguenti materiali:\nUna ESP32 Cam con fotocamera OV2640 Un adattatore USB per la presa accendisigari della vettura Una scheda SD-card da almeno 16GB Come usare la scheda Formatta la SD-card usando il tuo PC Inserisci la SD-card nella feritoia della Cam Collega la fotocamera alla presa accendisigari della vettura La Cam si accenderà immediatamente Posiziona la fotocamera in modo che possa inquadrare il parabrezza e parte dei finestrini In questo modo le foto della Cam saranno registrate ogni 15 secondi sulla SD-card in una directory chiamata \u0026ldquo;img\u0026rdquo;. Questo vi permetterà di vedere i movimenti delle persone quando la vettura é parcheggiata. Il programma utilizza alcuni \u0026ldquo;trucchi\u0026rdquo; per minimizzare il consumo della ESP32, in particolare utilizza la modalità deep sleep della scheda. In questo modo viene disabilito brevemente il WIFI, il Bluetooth e la funzione touchpad di alcuni piedini. In questa modalità l\u0026rsquo;ESP32 consuma appena 12 mA contro i circa 130150 mA della scheda in condizioni normali.\nLa scheda va a \u0026ldquo;dormire\u0026rdquo; per 10 secondi e si risveglia giusto il tempo necessario per scattare la foto. Senza questo accorgimento probabilmente la batteria della macchina potrebbe scaricarsi. Se non vuoi in nessun caso la batteria della vettura puoi usare un power bank da 20000 mAh, in grado di fare funzionare la Cam per 8/10 ore.\nSe avete installato PltformIO sul vostro PC potete compilare l\u0026rsquo;intero ptogramma facendo copia e incolla delle quattro righe sottostanti e premendo il tasto \u0026ldquo;INVIO\u0026rdquo; su PowerShell di Windows o sul terminale di Linux\ngit clone https://github.com/sebadima/spyder-cam.git cd spyder-cam make upload platformio device monitor --baud 115200 --rts 0 --dtr 0 --port /dev/ttyUSB0 se tutto è andato correttamente dovreste vedere il seguente LOG con i passi dettagliati della compilazione\nVerbose mode can be enabled via `-v, --verbose` option CONFIGURATION: https://docs.platformio.org/page/boards/espressif32/esp32cam.html PLATFORM: Espressif 32 (6.4.0) \u0026gt; AI Thinker ESP32-CAM HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash DEBUG: Current (cmsis-dap) External (cmsis-dap, esp-bridge, esp-prog, iot-bus-jtag, jlink, minimodule, olimex-arm-usb-ocd, olimex-arm-usb-ocd-h, olimex-arm-usb-tiny-h, olimex-jtag-tiny, tumpa) PACKAGES: - framework-arduinoespressif32 @ 3.20011.230801 (2.0.11) - tool-esptoolpy @ 1.40501.0 (4.5.1) - toolchain-xtensa-esp32 @ 8.4.0+2021r2-patch5 Converting CameraWebServer.ino LDF: Library Dependency Finder -\u0026gt; https://bit.ly/configure-pio-ldf LDF Modes: Finder ~ deep+, Compatibility ~ soft Found 36 compatible libraries Scanning dependencies... Dependency Graph |-- ESP Async WebServer @ 1.2.3+sha.f71e3d4 |-- WiFiManager @ 2.0.16-rc.2+sha.b1720d2 |-- WiFi @ 2.0.0 |-- Update @ 2.0.0 |-- WebServer @ 2.0.0 |-- DNSServer @ 2.0.0 Building in release mode Compiling .pio/build/esp32cam/src/CameraWebServer.ino.cpp.o Retrieving maximum program size .pio/build/esp32cam/firmware.elf Checking size .pio/build/esp32cam/firmware.elf Advanced Memory Usage is available via \u0026#34;PlatformIO Home \u0026gt; Project Inspect\u0026#34; RAM: [== ] 22.0% (used 72212 bytes from 327680 bytes) Flash: [===== ] 51.8% (used 1629385 bytes from 3145728 bytes) Il programma da caricare sulla ESP32 #include \u0026#34;esp_camera.h\u0026#34; #include \u0026lt;WiFi.h\u0026gt; #include \u0026lt;WiFiManager.h\u0026gt; // // WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality // Ensure ESP32 Wrover Module or other board with PSRAM is selected // Partial images will be transmitted if image exceeds buffer size // // You must select partition scheme from the board menu that has at least 3MB APP space. // Face Recognition is DISABLED for ESP32 and ESP32-S2, because it takes up from 15 // seconds to process single frame. Face Detection is ENABLED if PSRAM is enabled as well // =================== // Select camera model // =================== //#define CAMERA_MODEL_WROVER_KIT // Has PSRAM //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_ESP32S3_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM //#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM //#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM //#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM //#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM #define CAMERA_MODEL_AI_THINKER // Has PSRAM //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM //#define CAMERA_MODEL_XIAO_ESP32S3 // Has PSRAM // ** Espressif Internal Boards ** //#define CAMERA_MODEL_ESP32_CAM_BOARD //#define CAMERA_MODEL_ESP32S2_CAM_BOARD //#define CAMERA_MODEL_ESP32S3_CAM_LCD //#define CAMERA_MODEL_DFRobot_FireBeetle2_ESP32S3 // Has PSRAM //#define CAMERA_MODEL_DFRobot_Romeo_ESP32S3 // Has PSRAM #include \u0026#34;camera_pins.h\u0026#34; // =========================== // Enter your WiFi credentials // =========================== const char* ssid = \u0026#34;D-Link-3D1BBF\u0026#34;; const char* password = \u0026#34;p2mxsajrqwkd9c7g\u0026#34;; void startCameraServer(); void setupLedFlash(int pin); // Set your Static IP address IPAddress local_IP(192, 168, 1, 201); // Set your Gateway IP address IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); //optional IPAddress secondaryDNS(8, 8, 4, 4); //optional void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sccb_sda = SIOD_GPIO_NUM; config.pin_sccb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.frame_size = FRAMESIZE_UXGA; config.pixel_format = PIXFORMAT_JPEG; // for streaming //config.pixel_format = PIXFORMAT_RGB565; // for face detection/recognition config.grab_mode = CAMERA_GRAB_WHEN_EMPTY; config.fb_location = CAMERA_FB_IN_PSRAM; config.jpeg_quality = 12; config.fb_count = 1; // if PSRAM IC present, init with UXGA resolution and higher JPEG quality // for larger pre-allocated frame buffer. if(config.pixel_format == PIXFORMAT_JPEG){ if(psramFound()){ config.jpeg_quality = 10; config.fb_count = 2; config.grab_mode = CAMERA_GRAB_LATEST; } else { // Limit the frame size when PSRAM is not available config.frame_size = FRAMESIZE_SVGA; config.fb_location = CAMERA_FB_IN_DRAM; } } else { // Best option for face detection/recognition config.frame_size = FRAMESIZE_240X240; #if CONFIG_IDF_TARGET_ESP32S3 config.fb_count = 2; #endif } #if defined(CAMERA_MODEL_ESP_EYE) pinMode(13, INPUT_PULLUP); pinMode(14, INPUT_PULLUP); #endif // camera init esp_err_t err = esp_camera_init(\u0026amp;config); if (err != ESP_OK) { Serial.printf(\u0026#34;Camera init failed with error 0x%x\u0026#34;, err); return; } sensor_t * s = esp_camera_sensor_get(); // initial sensors are flipped vertically and colors are a bit saturated if (s-\u0026gt;id.PID == OV3660_PID) { s-\u0026gt;set_vflip(s, 1); // flip it back s-\u0026gt;set_brightness(s, 1); // up the brightness just a bit s-\u0026gt;set_saturation(s, -2); // lower the saturation } // drop down frame size for higher initial frame rate if(config.pixel_format == PIXFORMAT_JPEG){ s-\u0026gt;set_framesize(s, FRAMESIZE_QVGA); // old value s-\u0026gt;set_framesize(s, FRAMESIZE_VGA); } #if defined(CAMERA_MODEL_M5STACK_WIDE) || defined(CAMERA_MODEL_M5STACK_ESP32CAM) s-\u0026gt;set_vflip(s, 1); s-\u0026gt;set_hmirror(s, 1); #endif #if defined(CAMERA_MODEL_ESP32S3_EYE) s-\u0026gt;set_vflip(s, 1); #endif // Setup LED FLash if LED pin is defined in camera_pins.h #if defined(LED_GPIO_NUM) setupLedFlash(LED_GPIO_NUM); #endif if(!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;STA Failed to configure\u0026#34;); } /* WiFi.begin(ssid, password); */ WiFiManager wm; bool res; res = wm.autoConnect(\u0026#34;AutoConnectAP\u0026#34;,\u0026#34;password\u0026#34;); // password protected ap if(!res) { Serial.println(\u0026#34;Failed to connect\u0026#34;); // ESP.restart(); } WiFi.setSleep(false); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(\u0026#34;.\u0026#34;); } Serial.println(\u0026#34;\u0026#34;); Serial.println(\u0026#34;WiFi connected\u0026#34;); startCameraServer(); Serial.print(\u0026#34;Camera Ready! Use \u0026#39;http://\u0026#34;); Serial.print(WiFi.localIP()); Serial.println(\u0026#34;\u0026#39; to connect\u0026#34;); } void loop() { // Do nothing. Everything is done in another task by the web server delay(10000); } Come caricare il programma usando l\u0026rsquo;IDE di Arduino Per compilare e caricare un programma usando l\u0026rsquo;Arduino IDE, è necessario seguire questi passaggi:\nApri l\u0026rsquo;Arduino IDE. Crea un nuovo progetto o aprite un progetto esistente. Inserisci il codice del programma nel file .ino. Collega la scheda Arduino al computer. Seleziona la scheda Arduino dal menu Strumenti. Fai clic sul pulsante Compila. Se la compilazione è andata a buon fine, il pulsante Carica diventerà attivo. Fai clic sul pulsante Carica per caricare il programma sulla scheda Arduino.\nPassaggio 1: Aprire l\u0026rsquo;Arduino IDE Per aprire l\u0026rsquo;Arduino IDE, è possibile fare doppio clic sull\u0026rsquo;icona dell\u0026rsquo;applicazione sul desktop. Se non hai ancora installato l\u0026rsquo;Arduino IDE, puoi scaricarlo dal sito web di Arduino.\nPassaggio 2: Creare un nuovo progetto o aprire un progetto esistente Per creare un nuovo progetto, fai clic sul menu File e selezionate Nuovo. Per aprire un progetto esistente, fai clic sul menu File e seleziona Apri.\nPassaggio 3: Inserisci il codice del programma nel file .ino Il file .ino è il file di testo che contiene il codice del programma. Per inserire il codice del programma nel file .ino, potete utilizzare un editor di testo qualsiasi.\nPassaggio 4: Collegare la scheda Arduino al computer Per collegare la scheda Arduino al computer, è necessario utilizzare un cavo USB. La porta USB della scheda Arduino è contrassegnata con il simbolo USB.\nPassaggio 5: Seleziona la scheda Arduino dal menu Strumenti Per selezionare la scheda Arduino dal menu Strumenti, fai clic sul menu Strumenti e seleziona la scheda Arduino che avete collegato al computer.\nPassaggio 6: Fai clic sul pulsante Compila Per compilare il programma, fai clic sul pulsante Compila. Se la compilazione è andata a buon fine, non verranno visualizzati errori nella finestra del terminale.\nPassaggio 7: il pulsante Carica diventerà attivo Se la compilazione è andata a buon fine, il pulsante Carica diventerà attivo.\nPassaggio 8: Fare clic sul pulsante Carica Per caricare il programma sulla scheda Arduino, fai clic sul pulsante Carica. Il programma verrà copiato sulla scheda Arduino e inizierà a funzionare.\nCome caricare il programma usando PlatformIO Per compilare e caricare un programma usando PlatformIO, è necessario seguire questi passaggi:\nInstallare PlatformIO. Per fare ciò, è possibile utilizzare il gestore di pacchetti del proprio IDE. Creare un nuovo progetto. Per fare ciò, è possibile utilizzare la funzione \u0026ldquo;New Project\u0026rdquo; del proprio IDE. Scrivere il codice del programma. Compilare il programma. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Build\u0026rdquo; del proprio IDE. Caricare il programma sulla scheda. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Upload\u0026rdquo; del proprio IDE. Passaggio 1: Installare PlatformIO Per installare PlatformIO, è possibile utilizzare il gestore di pacchetti del proprio IDE. Per esempio, se si utilizza Visual Studio Code, è possibile aprire la barra laterale di Extensions e cercare \u0026ldquo;PlatformIO IDE\u0026rdquo;. Una volta trovata l\u0026rsquo;estensione, è possibile installarla facendo clic sul pulsante \u0026ldquo;Install\u0026rdquo;.\nPassaggio 2: Creare un nuovo progetto Per creare un nuovo progetto, è possibile utilizzare la funzione \u0026ldquo;New Project\u0026rdquo; del proprio IDE. Per esempio, in Visual Studio Code, è possibile aprire la barra laterale di Projects e fare clic sul pulsante \u0026ldquo;New Project\u0026rdquo;.\nNella finestra di dialogo \u0026ldquo;New Project\u0026rdquo;, è necessario selezionare il tipo di progetto da creare. Per i progetti Arduino, è necessario selezionare \u0026ldquo;Arduino\u0026rdquo;. È inoltre necessario selezionare la scheda Arduino da utilizzare.\nPassaggio 3: Scrivere il codice del programma Una volta creato il progetto, è possibile scrivere il codice del programma. Il codice può essere scritto in qualsiasi linguaggio supportato da PlatformIO, tra cui C/C++, Python, JavaScript e TypeScript.\nPer esempio, ecco un semplice programma Arduino che fa lampeggiare un LED:\n#include \u0026lt;Arduino.h\u0026gt; void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } Passaggio 4: Compilare il programma Una volta scritto il codice del programma, è possibile compilarlo. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Build\u0026rdquo; del proprio IDE.\nIn Visual Studio Code, è possibile eseguire il comando \u0026ldquo;PlatformIO Build\u0026rdquo; premendo la scorciatoia da tastiera Ctrl+Shift+B.\nPassaggio 5: Caricare il programma sulla scheda Una volta compilato il programma, è possibile caricarlo sulla scheda. Per fare ciò, è possibile utilizzare il comando \u0026ldquo;PlatformIO Upload\u0026rdquo; del proprio IDE.\nIn Visual Studio Code, è possibile eseguire il comando \u0026ldquo;PlatformIO Upload\u0026rdquo; premendo la scorciatoia da tastiera Ctrl+Shift+U.\nUna volta caricato il programma sulla scheda, esso inizierà ad eseguire.\nUsare PlatformIO dalla linea di comando Se usate come facciamo noi PlatformIO dalla linea di comando dovrete inserire nel file platformio.ini il seguente codice:\n; PlatformIO Project Configuration File ; ; Build options: build flags, source filter ; Upload options: custom upload port, speed and extra flags ; Library options: dependencies, extra library storages ; Advanced options: extra scripting ; ; Please visit documentation for the other options and examples ; https://docs.platformio.org/page/projectconf.html [env:esp32cam] platform = espressif32 board = esp32cam framework = arduino monitor_speed=115200 lib_ldf_mode=deep build_flags = -I../lib/esp32-camera lib_deps = esp32-camera Come formattare la scheda SD-card su Windows Per formattare una scheda SD-card in Windows usando il filesystem FAT, segui questi passaggi:\nCollega la scheda SD-card al tuo computer utilizzando un adattatore per schede SD o un lettore di schede. Apri Esplora file premendo la Windows + E. In Esplora file, seleziona \u0026ldquo;Questo PC\u0026rdquo;.\nLa scheda SD-card dovrebbe apparire nell\u0026rsquo;elenco dei dispositivi di archiviazione.\nFai clic destro sulla scheda SD-card e seleziona \u0026ldquo;Formatta\u0026rdquo;.\nSelezione della scheda SD-card in Esplora fileOpens in a neo window\nSelezione della scheda SD-card in Esplora file\nNella finestra di formattazione, seleziona \u0026ldquo;FAT32\u0026rdquo; dal menu a discesa \u0026ldquo;File system\u0026rdquo;.\nFai clic su \u0026ldquo;Avvia\u0026rdquo; per avviare la formattazione.\nLa formattazione della scheda SD-card richiederà alcuni minuti. Al termine, la scheda SD-card sarà formattata in FAT32. Attenzione: La formattazione di una scheda SD-card cancella tutti i dati presenti sulla scheda. Assicurati di aver eseguito il backup di tutti i dati importanti prima di formattare la scheda.\nConclusione Dopo avere superato lo scoglio della formattazione e della compilazione puoi usare il progetto semplicemente collegandola la scheda alla presa accendisigari. In questo modo avrai a disposizione un sistema di controllo super economico. La ESP32 con la camera OV2640 ti permetterà di salvare le immagini dell\u0026rsquo;esterno vettura e di usarle come prova per atti vandalici.\nRobotdazero.it - post - R.128.1.4.2\n","permalink":"https://www.robotdazero.it/blog/come-usare-la-esp32-per-sorvegliare-la-vettura/","summary":"\u003chr\u003e\n\u003ch2 id=\"usiamo-la-esp32-cam-per-esp32-per-sorvegliare-la-vettura\"\u003eUsiamo la ESP32 Cam per ESP32 per sorvegliare la vettura\u003c/h2\u003e\n\u003cp\u003eLa ESP32 nella versione con la OV2640 Cam è una completa fotocamera digitale a colori con risoluzione di 2 megapixel. È piuttosto economica: la potete trovare nel link in basso a 12~13 euro su Amazon o prezzi ancora più bassi su Aliexpress.\nPuò essere usata per una vasta gamma di applicazioni, tra cui il monitoraggio di auto o accessi. Si può connettere al WI-fi se disponibile o meglio ancora ad un smartphone con connessione dati, ormai disponibile a basso costo.\u003c/p\u003e","title":"Come usare la ESP32 per sorvegliare la vettura"},{"content":" Una guida rapida su come collegare un LED al tuo Arduino Uno In questo progetto useremo una breadboard per assemblare tutti componenti:\nAbbiamo già parlato delle breadboard, per non rileggere il post ti ricordo brevemente le cose principali: Le Breadboard sono composte da 4 linee di rame longitudinali e da numerosi conduttori disposti di traverso, tipo spina di pesce. Nella immagine precedente con la freccia rossa sono evidenziati i fili longitudinali che corrono sul fondo della scheda. Non sono visibili perchè ricoperti da un foglio di cartoncino.\nLa idea di base di queste schede è di usare le linee longitudinali per distribuire la corrente (polo positivo e negativo della batteria o accumulatore), mentre i conduttori trasversali sostituiscono le saldature dei componenti.\nL’altra estremità delle resistenza è connessa alla quinta riga partendo dall’ alto. La resistenza risulta così collegata al connettore del LED. Allo stesso modo il connettore inferiore del LED è connesso ad una estrermità del filo nero e il filo nero arriva fino a un foro della lunga colonna verticale. Le colonne si estendono per tutta la lunghezza della basetta e conducono la corrente di alimentazione.\nIn questo modo uno qualsiasi dei componenti collegati alle colonne sarà connesso al filo nero e possiamo assemblare tutto senza saldature.\nQualche cenno sulle resistenze Le resistenze si oppongono al flusso della corrente e non hanno un verso particolare; detto in termine tecnico non hanno una polarità. Il loro valore viene determinato dal produttore e indicato attraverso delle minuscole fascette colorate (in genere 4) sul corpo della resistenza..\nCome collegare un LED In generale i LED (Light Emitting Diodes) sono componenti molto più complessi delle resistenze, lasciano passare la corrente in una sola direzione e perciò hanno un polo positivo e un polo negativo. Il connettore più lungo è quello positivo e viene chiamato anodo, mentre quello più corto si chiama catodo ed è il polo negativo. Il lato del catodo viene sempre evidenziato con una una tacca “piatta” sul minuscolo contenitore di plastica.\nAssembliamo Arduino, LED e resistenza Lo schema teorico Il circuito è semplicissimo: usa una sola resistenza da mettere in serie al LED per limitare la corrente assorbita.\nIniziamo a collegare la resistenza al pin 13: la resistenza deve essere di 220Ω. Le resistenze hanno 4 striscette e piazzando la resistenza in modo da avere la striscia oro a destra dovresti vedere questi colori:rosso, rosso, marrone, oro.\nCollega la resistenza all’ anodo, cioè il connettore più lungo del LED e quindi collega il terminale più corto del LED alla “massa” (0V) del circuito.\nIl polo positivo di un LED si chiama anodo(+), quello negativo catodo(-). L’ anodo(+) è sempre più lungo del catodo!\nPer collegare il LED alla massa usa un filo nero. In genere per collegare un componente alla massa si usa un filo nero. E’ solo una convenzione, i fili sono internamente tutti uguali.\nLe connessioni elettriche Prendi il filo giallo e collegalo direttamente al pin 5V di Arduino. Per il momento limitiamoci ai collegamenti. Il LED si dovrebbe accendere all’istante: se non si accende il circuito è stato cablato in modo errato. Ricontrolla e se necessario riassembla tutto da zero. Se invece il LED si accende prendi il filo giallo e ricollegalo al pin 13. Adesso puoi fare l’ upload del programma!\nIl programma: // Copyright (c) robotdazero.it // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the \u0026#34;Software\u0026#34;), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED \u0026#34;AS IS\u0026#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. int led = 13; int buttonPin = 2; int val = 0; int riferimento = 0; int state = LOW; void setup(){ pinMode(led, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ val = digitalRead(buttonPin); if ((val == 1) \u0026amp;\u0026amp; (riferimento == 0)){ if (state == LOW) { state = HIGH; } else { state = LOW; } } riferimento = val; if (state == LOW){ digitalWrite(led, HIGH); } else { digitalWrite(led, LOW); } delay(10); } Vediamo tutto in modo analitico riga per riga:\nled int = 13 ; Qui stiamo dichiarando una variabile chiamataledche contiene il numero 13. Nel linguaggio di Arduino bisogna specificare sempre il tipo di variabile: ne esistono di tipointo di tipofloat, così chiamate dall inglesefloating, “fluttuante” per indicare inumeri a virgola mobile. In linea di massima per i programmi piu semplico useremo solo degli int, e in questo programma particolare quando Arduino legge la variabile led la converte immediatamente nel valore 13.\nsetup() è un pezzo molto particolare di codice che viene eseguito solo all’inizio del programma: serve allla scheda Arduino per sapere cosa fare quando viene avviata o viene premuto il tasto di reset. A livello di programmazione non è altro che una funzione, cioè un pezzo di codice isolato con delle parentesi graffe**{}**. Come per le variabili a volte puo essere utile specificare il tipo. Alcune funzioni ritornano dei valori di tipo float, altre degli int e altre ancora non ritornano alcun valore e sono dette di tipo void.\npinMode(led, OUTPUT); Guardando la scheda Arduino dall’alto puoi vedere che ci sono due file di fori alle estremità laterali; i fori prendono un nome particolare e sono chiamatipin. I pin che vanno da 0 a 13 sono dei pin digitali e possono funzionare sia in modalità INPUT che in OUTPUT. Noi useremo il pin 13 come output per accendere il LED.\nDopo la funzione setup() inizia una altra funzione:\nLa funzione loop, come indica il nome, esegue continuamente le stesse istruzioni e si può considerare la parte principale del codice e in genere la piu complessa.\ndigitalWrite(led, HIGH); digitalWrite() accende in OUTPUT uno dei pin. Il primo valore dopo la parentesi è il pin che deve essere acceso, mentre il secondo indica il segnale da inviare. In gergo si dice mettere in HIGH o in LOW. Parlando di corrente quando il pin 13 viene messo in ON inizia a condurre una tensione di 5 V. delay(1000); delay() serve solo a fare una pausa di x millisecondi e quindi complessivamente Arduino si_ferma_per una secondo. digitalWrite(led, LOW); digitalWrite(led, LOW) mette in LOW cioè a 0 V il pin 13 e quindi spegne il LED. delay(1000); E’ lo stesso ritardo di prima di 1000 millisecondi e lascerà in pin in OFF per un secondo.\nCome compilare il programma Per caricare il programma su Arduino vai su \u0026ldquo;File/Nuovo\u0026rdquo;, incolla il programma copiato dal post, vai su \u0026ldquo;File/Salva con nome\u0026rdquo; e scrivi “led10”. Quindi vai su \u0026ldquo;Sketch\u0026rdquo;, \u0026ldquo;Compila/Upload\u0026rdquo; e aspetta che l’IDE di Arduino finisca il suo lavoro.\nUn esperimento finale Avendo testato l’ hardware a parte e copiato il programma, a questo punto tutto dovrebbe essere pronto. Se vuoi provare delle modifiche, prova a cambiare la resistenza di 220 Ω con una da 2.2 KΩ e cioè con 4 strisce: rosso, rosso, rosso, oro. Dopo la modifica dai una occhiata al LED!\n","permalink":"https://www.robotdazero.it/blog/come-collegare-un-led-esterno-ad-arduino/","summary":"\u003chr\u003e\n\u003ch2 id=\"una-guida-rapida-su-come-collegare-un-led-al-tuo-arduino-uno\"\u003eUna guida rapida su come collegare un LED al tuo Arduino Uno\u003c/h2\u003e\n\u003cp\u003eIn questo progetto useremo una breadboard per assemblare tutti componenti:\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"breadnoard per montaggi arduino\" loading=\"lazy\" src=\"/blog/come-collegare-un-led-esterno-ad-arduino/images/102.jpg\"\u003e\u003c/p\u003e\n\u003ch4 id=\"abbiamo-già-parlato-delle-breadboard-per-non-rileggere-il-post-ti-ricordo-brevemente-le-cose-principali\"\u003eAbbiamo già parlato delle breadboard, per non rileggere il post ti ricordo brevemente le cose principali:\u003c/h4\u003e\n\u003cp\u003eLe Breadboard sono composte da 4 linee di rame longitudinali e da numerosi conduttori disposti di traverso, tipo spina di pesce. Nella immagine precedente con la freccia rossa sono evidenziati i fili longitudinali che corrono sul fondo della scheda. Non sono visibili perchè ricoperti da un foglio di cartoncino.\u003c/p\u003e","title":"Come collegare un LED esterno ad Arduino"},{"content":" In questo post vedremo due brevi programmi per testare sul campo la rete ESP-NOW, di cui abbiamo già scritto in questo articolo introduttivo del nostro blog. Vedremo come usare due ESP32-CAM per creare una rete \"mesh\" con portata di 40~50 metri sfruttando l'antenna incorporata di circa 10 cm. La ESP32-CAM è un microcontroller interessantissimo che unisce alla velocità dell'ESP32 \"classico\" — di cui abbiamo parlato anche nella guida su come scrivere un server web con ESP32 — una webcam 1600x1200 px, il tutto ad un prezzo assai allettante. È disponibile su Amazon a meno di dieci euro. Un progetto minimale Nel dettaglio vedremo due brevi programmi per inviare e ricevere una sequenza numerica senza Wi-Fi tradizionale ma sfruttando le qualità radio \"native\" della scheda. Questo approccio è particolarmente interessante quando si progettano nodi IoT compatti, come quelli descritti nella nostra scheda multifunzione per ESP32 . Si tratta di un vantaggio importante perché permette di far funzionare tutta la rete presso nuovi utenti senza impostare manualmente login e password. In ambienti industriali, tuttavia, è fondamentale considerare anche interferenze e disturbi elettrici, come spiegato nell'analisi su ESP32, I2C ed EMI in ambito industriale . Il protocollo di comunicazione di Espressif sostituisce il normale Wi-Fi ma ne conserva molti dettagli tecnici. I nostri programmi useranno infatti: #include \"WiFi.h\" per settare lo scope del Wi-Fi classico ed ereditarne variabili e strutture dati. Se vuoi confrontare questa architettura con la generazione precedente, puoi leggere anche il nostro approfondimento sulla scheda ESP8266 di Espressif . Per creare la rete faremo uso di un mini programma per trovare l'indirizzo MAC della scheda ESP ricevente. Il protocollo ESP-NOW prevede infatti di specificare il MAC di ogni scheda abilitata alla ricezione. if (esp_now_add_peer(\u0026peerInfo) != ESP_OK){ Serial.println(\"Non riesco ad aggiungere il dispositivo\"); return; } Due dispositivi ESP32-CAM usati per testare e programmare la rete mesh ESP32-NOW. Il codice main.ino per trovare l'indirizzo MAC Il programma è brevissimo e utilizza la funzione WiFi.macAddress(). Dopo l'upload nell'IDE Arduino è sufficiente annotare il valore mostrato nel Serial Monitor. Con PlatformIO è possibile compilare con make upload e usare minicom per visualizzare l'output. Questo tipo di configurazione è tipica dei primi passi per chi sta iniziando con la robotica e vuole comprendere le basi delle comunicazioni embedded. #include \"WiFi.h\" void setup(){ Serial.begin(115200); WiFi.mode(WIFI_MODE_STA); Serial.print(\"indirizzo MAC=\"); Serial.println(WiFi.macAddress()); } void loop(){ } File platformio.ini per ESP32-CAM ; PlatformIO Project Configuration File [env:esp32cam] platform = espressif32 board = esp32cam framework = arduino monitor_speed=115200 lib_ldf_mode=deep build_flags = -I../lib/esp32-camera lib_deps = Output del Serial Monitor con indirizzo MAC della ESP32-CAM. Nella immagine sopra puoi vedere l'indirizzo MAC E0:5A:1B:6C:E4:B0 che useremo nel programma di trasmissione. Programma per inviare dati con ESP32-CAM In questo programma useremo l'indirizzo MAC scoperto in precedenza per selezionare il dispositivo ricevente. Questo schema di comunicazione è utile in sistemi distribuiti come robot mobili o piattaforme autonome alimentate a batteria, tema che abbiamo approfondito nel progetto robot guidato da AI – gestione batterie . #include \u0026lt;esp_now.h\u0026gt; #include \u0026lt;WiFi.h\u0026gt; uint8_t broadcastAddress[] = {0xE0, 0x5A, 0x1B, 0x6C, 0xE4, 0xB0}; typedef struct struct_messaggio { int contatore; } struct_messaggio; struct_messaggio Dati; esp_now_peer_info_t peerInfo; int ix; void suInvioDati(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print(\"\\r\\nStatus invio:\\t\"); Serial.println(status == ESP_NOW_SEND_SUCCESS ? \"Consegna positiva\" : \"Errore di consegna\"); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); if (esp_now_init() != ESP_OK) { Serial.println(\"Errore di inizializzazione per ESP-NOW\"); return; } esp_now_register_send_cb(suInvioDati); ix = 0; memcpy(peerInfo.peer_addr, broadcastAddress, 6); peerInfo.channel = 0; peerInfo.encrypt = false; if (esp_now_add_peer(\u0026peerInfo) != ESP_OK){ Serial.println(\"Non riesco ad aggiungere il dispositivo\"); return; } } void loop() { Dati.contatore = ix; ix++; esp_err_t result = esp_now_send(broadcastAddress, (uint8_t *) \u0026Dati, sizeof(Dati)); if (result == ESP_OK) { Serial.println(\"Messaggio inviato con successo\"); } else { Serial.println(\"Errore di invio\"); } delay(2000); } Programma per ricevere i dati Il ricevente deve usare la stessa struttura dati del trasmettitore. Anche se semplice, la struct deve corrispondere esattamente. typedef struct struct_messaggio { int b; } struct_messaggio; Questa architettura può essere estesa a sistemi domotici, ad esempio nel controllo di carichi tramite MOSFET, come spiegato nella nostra guida ai MOSFET nella domotica IoT . #include \u0026lt;esp_now.h\u0026gt; #include \u0026lt;WiFi.h\u0026gt; typedef struct struct_messaggio { int b; } struct_messaggio; struct_messaggio Dati; void suDatiRicevuti(const uint8_t * mac, const uint8_t *incomingData, int len) { memcpy(\u0026Dati, incomingData, sizeof(Dati)); Serial.print(\"Conteggio dei bytes ricevuti: \"); Serial.println(len); Serial.print(\"Int: \"); Serial.println(Dati.b); Serial.println(); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); if (esp_now_init() != ESP_OK) { Serial.println(\"Errore nella inizializzazione della rete ESP-NOW\"); return; } esp_now_register_recv_cb(suDatiRicevuti); } void loop() { } Sequenza automatica generata dal primo ESP32-CAM e ricevuta dalla seconda. Conclusione Con soli tre programmi estremamente semplici abbiamo impostato la struttura di funzionamento della rete mesh. Questa tecnologia rappresenta uno dei tasselli fondamentali nello sviluppo delle nuove architetture distribuite, tema che abbiamo analizzato anche parlando dei prossimi sviluppi della robotica in ambito commerciale . ✅ Versione realmente field-ready:\nSe stai progettando qualcosa che non può bloccarsi, guarda il Sentinel Node . Memoria pSLC. Watchdog hardware esterno. RTC dedicato. Progettato per uptime reale. ","permalink":"https://www.robotdazero.it/blog/come-iniziare-con-esp32-e-la-rete-mesh-esp-now/","summary":"\u003cimg src=\"header.jpeg\" alt=\"Due ESP32-CAM usate per test rete ESP32-NOW\"\u003e\n\u003cbr\u003e\n\u003carticle\u003e\n\u003cheader\u003e\n\u003cp\u003e\n  In questo post vedremo due brevi programmi per testare sul campo la rete ESP-NOW,\n  di cui abbiamo già scritto in questo\n  \u003ca href=\"https://www.robotdazero.it/blog/cosa-sono-le-reti-mesh-per-esp32/\" rel=\"noopener\"\u003e\n    articolo introduttivo\n  \u003c/a\u003e\n  del nostro blog.\n\u003c/p\u003e\n\u003cp\u003e\n  Vedremo come usare due ESP32-CAM per creare una rete \"mesh\" con portata di 40~50 metri\n  sfruttando l'antenna incorporata di circa 10 cm.\n  La ESP32-CAM è un microcontroller interessantissimo che unisce alla velocità\n  dell'ESP32 \"classico\" — di cui abbiamo parlato anche nella guida su\n  \u003ca href=\"https://www.robotdazero.it/blog/come-scrivere-un-server-web-con-esp32/\" rel=\"noopener\"\u003e\n    come scrivere un server web con ESP32\n  \u003c/a\u003e — una webcam 1600x1200 px,\n  il tutto ad un prezzo assai allettante.\n\u003c/p\u003e","title":"Come iniziare con ESP32 e la rete mesh ESP-NOW"},{"content":"COSA SONO LE BREADBOARD? Le breadboard servono a collegare i componenti elettronici senza usare il saldatore: basta prendere i terminali e inserirli nei buchi a misura standard ed il gioco è fatto, le puoi inoltre comprare in varie forme e dimensioni a prezzi molto abbordabili su Amazon.it come su AliExpress.\nLa loro utilità deriva dal modo in cui i fori sono connessi. I fori destinati alla alimentazione formano una riga che percorre la intera lunghezza della scheda portando facilmente il (+)(-). I fori dei componenti invece solo collegati a \u0026ldquo;spina di pesce\u0026rdquo; e permettono di ricreare circuiti complessi semplicemente disponendoli sulla stessa colonna o a cavallo di due colonne.\n👉 In questo modo potrai collegare tutti i componenti al positivo (+) e alla massa del circuito (-) semplicemente variandone la posizione. INSERIRE I COMPONENTI SULLA BREADBOARD Vediamo come usarle in progetti reali. Fino ad ora abbiamo usato il LED interno di Arduino per fare dei semplici test, ma nel prossimo esempio vedremo come collegare dei LED esterni, aggiungendo una resistenza per limitare la corrente.\nI LED infatti hanno bisogno di limitare il flusso di elettroni che altrimenti li brucerebbe in pochi secondi, esperienza che capita a tutti principianti almeno una volta nella vita. Il fatto che si possano usare i 4 LED interni di Arduino senza problemi vuol dire solo che i progettisti hanno già inserito le resistenze adatte nella scheda, non che puoi farne a meno!\nNella figura sottostante puoi vedere una immagine di un circuito completo assemblato su una Breadboard. Consiste di un Arduino, un LED e una resistenza del valore di 1kΩ.\nCome si vede nella colonna di sinistra abbiamo un filo nero che esce dal connettore GND (ground=massa) di Arduino. Il filo nero si innesta nella breadboard e continua fino al terminale negativo del LED.\nIl filo rosso (positivo) conduce il segnale che proviene dal pin 2 di Arduino fino alla colonna di destra. Salendo sulla colonna di destra la corrente incontra dapprima la resistenza di un kΩ e poi il terminale positivo del LED. Senza usare stagno e saldatore ho realizzato il circuito necessario per accendere un LED con Arduino. Prova a copiare la disposizione dei componenti sulla tua breaboard. Volendo potresti modificare il programma e fare lampeggiare il LED a intervalli regolari di un secondo. La modifica è semplicissima, si tratta solo di cambiare una riga.\nALCUNI UTILI TRUCCHETTI Accorcia i terminali dei componenti se si piegano troppo mentre li inserisci Quando accorci i terminali dovresti accorciare un poco di più i terminali negativi per riconoscerli più facilmente. I LED ad esempio hanno un terminale positivo e uno negativo Se colleghi un LED ad una batteria o ad un alimentatore DEVI sempre inserire in linea una resistenza, che per le tensioni che si usano nella Robotica sarà di 150Ω fino a 1KΩ. I SEGRETI DELLE BREADBOARD Molte delle connessioni tra i componenti sulla tua breadboard sono realizzate da la breadboard stessa, sotto la superficie, ma quando non puoi fare un connessione diretta tramite la scheda puoi usare dei cavi di interconnessione (a volte chiamati ponticelli). Si utilizza un filo isolato solido (non ricoperto da plastica) di un paio di mm di diametro. Un filo troppo spesso o troppo sottile non funziona bene in breadboard. Mentre stai acquistando la tua breadboard acquista un set di ponticelli già tagliati. L\u0026rsquo;alternativa è comprare un mazzo di filo, tagliare segmenti di varie lunghezze. Anche acquistando un vasto assortimento di ponticelli potrebbe servire un cavo di interconnessione particolare, fai perciò in modo di conservare dei pezzi di filo da 2.2 mm per ogni evenienza.\nRobotdazero.it - post - R.131.1.2.0\n","permalink":"https://www.robotdazero.it/blog/iniziare-con-le-breadboard/","summary":"\u003ch2 id=\"cosa-sono-le-breadboard\"\u003eCOSA SONO LE BREADBOARD?\u003c/h2\u003e\n\u003cp\u003eLe breadboard servono a collegare i componenti elettronici senza usare il saldatore: basta prendere i terminali e inserirli nei buchi a misura standard ed il gioco è fatto, le puoi inoltre comprare in varie forme e dimensioni a prezzi molto abbordabili su Amazon.it come su AliExpress.\u003c/p\u003e\n\u003cp\u003eLa loro utilità deriva dal modo in cui i fori sono connessi. I fori destinati alla alimentazione formano una riga che percorre la intera lunghezza della scheda portando facilmente il (+)(-). I fori dei componenti invece solo collegati a \u0026ldquo;spina di pesce\u0026rdquo; e permettono di ricreare circuiti complessi semplicemente disponendoli sulla stessa colonna o a cavallo di due colonne.\u003c/p\u003e","title":"Iniziare con le breadboard"},{"content":"Cosa sono le reti mesh Le reti mesh sono reti wireless in cui i dispositivi sono connessi tra loro in modalità peer-to-peer. Questo significa che ogni dispositivo può comunicare direttamente con qualsiasi altro dispositivo nella rete, senza bisogno di un server centralizzato.\nVengono spesso usate per applicazioni IoT in cui è necessario collegare un gran numero di dispositivi in un\u0026rsquo;area topografica estesa. Le reti mesh offrono una serie di vantaggi rispetto alle reti Wi-Fi tradizionali:\nVantaggi delle reti mesh Scalabilità: Le reti mesh possono essere facilmente scalate per aggiungere nuovi dispositivi. Resilienza: Le reti mesh possono continuare a funzionare anche se alcuni dispositivi vengono scollegati o danneggiati. Efficienza energetica: Le reti mesh utilizzano meno energia rispetto alle reti Wi-Fi tradizionali. Svantaggi delle reti mesh Le reti mesh presentano anche alcuni svantaggi, tra cui:\nComplessità: La configurazione e la gestione delle reti mesh può essere più complessa rispetto alle reti Wi-Fi tradizionali. Performance: Le reti mesh possono avere prestazioni inferiori rispetto alle reti Wi-Fi tradizionali, soprattutto per applicazioni che richiedono un elevato throughput di dati. In questo post vedremo come con la scheda micontroller ESP32 sia facile creare reti mesh di piccole e grandi dimensioni. Anzitutto vediamo di quali librerie software abbiamo bisogno.\nIl software di sistema Esistono diverse librerie che possono essere utilizzate per creare reti mesh con ESP32. Una delle librerie più popolari è painlessMesh. Questa libreria è facile da usare e offre una vasta gamma di funzionalità.\nA livello operativo, pur avendo risolto il node della libreria, rimangono alcuni passaggi da risolvere:\n1 - Installare la libreria painlessMesh.\n2 - Programmare ogni dispositivo ESP32 con il codice per creare una rete mesh.\n3 - Accendere i dispositivi ESP32.\n4 - Una volta che i dispositivi ESP32 saranno accesi, si connetteranno tra loro automaticamente per formare la rete mesh.\nIn Robotdazero poniamo sempre un forte accento sulle applicazioni ambientali e anche in questo caso abbiamo pensato a delle applicazioni pratiche per controllare e combattere (almeno a livello di informazione) i danni dell\u0026rsquo;inquinamento.\nMonitoraggio ambientale con le reti mesh Le reti mesh possono essere utilizzate per monitorare i livelli di inquinamento, la qualità dell\u0026rsquo;aria e altri dati ambientali. Vediamo un esempio di partenza su come rilevare e condividere valori ambientali:\nEcco un programma C++ per effettuare il monitoraggio ambientale con le reti mesh per ESP32:\nIl codice sorgente #include \u0026lt;painlessMesh.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; #include \u0026lt;Adafruit_Sensor.h\u0026gt; #include \u0026lt;Adafruit_BME280.h\u0026gt; // Definizione dei parametri della rete mesh #define MESH_SSID \u0026#34;my-mesh-network\u0026#34; #define MESH_PASSWORD \u0026#34;my-mesh-password\u0026#34; #define MESH_PORT 5555 // Definizione dei parametri del sensore #define SEALEVELPRESSURE_HPA 1013.25 // Crea un oggetto mesh Mesh mesh; // Crea un oggetto sensore BME280 Adafruit_BME280 bme; // Funzione per inizializzare il sensore BME280 void initSensor() { // Inizializza la comunicazione I2C Wire.begin(); // Inizializza il sensore BME280 bme.begin(0x76); } // Funzione per acquisire i dati dal sensore BME280 void readSensor() { // Acquisisce la temperatura float temperature = bme.readTemperature(); // Acquisisce la umidità float humidity = bme.readHumidity(); // Acquisisce la pressione float pressure = bme.readPressure() / SEALEVELPRESSURE_HPA; // Stampa i dati acquisiti Serial.println(\u0026#34;Temperatura: \u0026#34; + String(temperature) + \u0026#34; °C\u0026#34;); Serial.println(\u0026#34;Umidità: \u0026#34; + String(humidity) + \u0026#34;%\u0026#34;); Serial.println(\u0026#34;Pressione: \u0026#34; + String(pressure) + \u0026#34; hPa\u0026#34;); } // Funzione per inviare i dati al nodo gateway void sendData() { // Crea un messaggio String message = String(temperature) + \u0026#34;,\u0026#34; + String(humidity) + \u0026#34;,\u0026#34; + String(pressure); // Invia il messaggio al nodo gateway mesh.sendBroadcast(message); } // Funzione per eseguire il loop principale void loop() { // Verifica se il dispositivo è connesso alla rete mesh if (!mesh.isConnected()) { // Tenta di connettersi alla rete mesh mesh.connect(MESH_SSID, MESH_PASSWORD, MESH_PORT); } // Acquisisce i dati dal sensore BME280 readSensor(); // Invia i dati al nodo gateway sendData(); // Attende 1 secondo prima di eseguire il loop successivo delay(1000); } // Funzione per inizializzare la rete mesh void setup() { // Inizializza la seriale Serial.begin(115200); // Inizializza il sensore BME280 initSensor(); // Inizializza la rete mesh mesh.init(MESH_SSID, MESH_PASSWORD, MESH_PORT); // Imposta il dispositivo come nodo router mesh.setRouter(true); // Imposta il dispositivo come nodo gateway mesh.setRoot(); } La fase di setup inizializza la seriale, il sensore BME280 e la rete mesh. La funzione loop, molto semplice, acquisisce i dati dal sensore BME280 e li invia i dati al nodo gateway.\nQuindi attende 1 secondo prima di eseguire il loop successivo. Per utilizzare questo programma, è necessario collegare un sensore BME280 al dispositivo ESP32. Il sensore BME280 è un sensore ambientale che misura la temperatura, l\u0026rsquo;umidità e la pressione. Quando il programma \u0026ldquo;entra a regime\u0026rdquo;, l\u0026rsquo;ESP32 acquisisce i dati dal sensore li invia al gateway e il nodo gateway può a sua volta inviare ad una app come la nostra \u0026ldquo;Kaspian\u0026rdquo; per visualizzare i dati acquisiti.\nEcco un esempio di output del programma: Temperatura: 22.5 °C Umidità: 45% Pressione: 1013.25 hPa\nLe reti mesh per ESP32 risolvono in economia il difficile problema di rilevare dati su una zona geografica estesa come potrebbe essere un terreno agricolo e sono una valida alternative alle schede LoRa per la tramissione di dati in formato Json.\nI progressi della tecnologia \u0026ldquo;mesh\u0026rdquo; fanno comunque intravedere l\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 anche per trasmettere foto ad alta risoluzione e video a bassa risoluzione, cosa del tutto impensabile per il protocollo LoRa. DEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY ","permalink":"https://www.robotdazero.it/blog/cosa-sono-le-reti-mesh-per-esp32/","summary":"\u003ch2 id=\"cosa-sono-le-reti-mesh\"\u003eCosa sono le reti mesh\u003c/h2\u003e\n\u003cp\u003eLe reti mesh sono reti wireless in cui i dispositivi sono connessi tra loro in modalità \u003ca href=\"https://it.wikipedia.org/wiki/Peer-to-peer\" target=\"_blank\" rel=\"noopener\"\u003epeer-to-peer\u003c/a\u003e. Questo significa che ogni dispositivo può comunicare direttamente con qualsiasi altro dispositivo nella rete, senza bisogno di un server centralizzato.\u003c/p\u003e\n\u003cp\u003eVengono spesso usate per applicazioni \u003ca href=\"https://www.ibm.com/topics/internet-of-things#:~:text=The%20Internet%20of%20Things%20(IoT,to%20collect%20and%20share%20data.\" target=\"_blank\" rel=\"noopener\"\u003eIoT\u003c/a\u003e in cui è necessario collegare un gran numero di dispositivi in un\u0026rsquo;area topografica estesa. Le reti mesh offrono una serie di vantaggi rispetto alle reti Wi-Fi tradizionali:\u003c/p\u003e","title":"Cosa sono le reti mesh per ESP32?"},{"content":"Python è un linguaggio di programmazione popolare che può essere utilizzato per una varietà di attività, tra cui lavorare con i file. In questo articolo, impareremo come usare Python per aprire, leggere e salvare un file di testo. APRIRE UN FILE DI TESTO Per aprire un file di testo in Python, usiamo la funzione open(). La funzione open() accetta due argomenti: il nome del file e la modalità. La modalità specifica come vogliamo aprire il file.\nQuesto codice di una sola linea mostra come aprire un file di testo in sola lettura:\nf = open(\u0026#34;file_esempio.txt\u0026#34;, \u0026#34;r\u0026#34;) La modalità \u0026ldquo;r\u0026rdquo; indica che vogliamo aprire il file solo per la lettura. Se il file non esiste, la funzione open() genera un\u0026rsquo;eccezione.\nLEGGERE UN FILE DI TESTO Una volta aperto un file di testo, possiamo leggerne il contenuto usando il metodo read(). Il metodo read() accetta un argomento facoltativo, n, che specifica il numero di byte da leggere. Se n non è specificato, il metodo read() leggerà l\u0026rsquo;intero file.\nIl codice seguente mostra come leggere l\u0026rsquo;intero contenuto di un file di testo:\nf = open(\u0026#34;file_esempio.txt\u0026#34;, \u0026#34;r\u0026#34;) contenuto_del_file = f.read() La variabile contenuto_del_file conterrà l\u0026rsquo;intero contenuto del file come una stringa.\nSALVARE UN FILE DI TESTO Per salvare un file di testo in Python, usiamo il metodo write(). Il metodo write() prende un argomento stringa, che è il dato che vogliamo scrivere nel file.\nIl codice seguente mostra come salvare una stringa in un file di testo:\nf = open(\u0026#34;file_esempio.txt\u0026#34;, \u0026#34;w\u0026#34;) f.write(\u0026#34;Scritta di esempio nel file.\u0026#34;) f.close() La modalità w indica che vogliamo aprire il file solo per la scrittura. Se il file non esiste, la funzione open() lo creerà. Se il file esiste già, il suo contenuto verrà sovrascritto.\nÈ importante chiudere il file dopo aver finito di scriverlo. Ciò garantisce che tutti i dati siano stati scritti nel file e che il file sia chiuso correttamente.\nUN ESEMPIO COMPLETO Il seguente codice Python mostra come aprire, leggere e salvare un file di testo:\ndef esempio_completo(): # Apre il file in lettura. f = open(\u0026#34;file_esempio.txt\u0026#34;, \u0026#34;r\u0026#34;) # Ne legge il contenuto. contenuto_del_file = f.read() # Chiudi il file. f.close() # Riapri il file in scrittura f = open(\u0026#34;file_destinazione.txt\u0026#34;, \u0026#34;w\u0026#34;) # Scrive il contenuro del primo file nel secondo. f.write(contenuto_del_file) # Close the new file. f.close() if __name__ == \u0026#34;__main__\u0026#34;: esempio_completo() Questo codice aprirà il file file_esempio.txt per la lettura, leggere il suo contenuto, e salvarlo in un nuovo file chiamato file_destinazione.txt. In conclusione adesso sai come usare Python per aprire, leggere e salvare un file di testo, operazioni di base che sono essenziali per molti programmi Python nella Robotica.\n","permalink":"https://www.robotdazero.it/blog/come-usare-il-linguaggio-python-per-leggere-e-scrivere-file-di-testo/","summary":"\u003ch5 id=\"python-è-un-linguaggio-di-programmazione-popolare-che-può-essere-utilizzato-per-una-varietà-di-attività-tra-cui-lavorare-con-i-file-in-questo-articolo-impareremo-come-usare-python-per-aprire-leggere-e-salvare-un-file-di-testo\"\u003ePython è un linguaggio di programmazione popolare che può essere utilizzato per una varietà di attività, tra cui lavorare con i file. In questo articolo, impareremo come usare Python per aprire, leggere e salvare un file di testo.\u003c/h5\u003e\n\u003ch2 id=\"aprire-un-file-di-testo\"\u003eAPRIRE UN FILE DI TESTO\u003c/h2\u003e\n\u003cp\u003ePer aprire un \u003ca href=\"https://it.wikipedia.org/wiki/File_di_testo\" target=\"_blank\" rel=\"noopener\"\u003efile di testo\u003c/a\u003e in Python, usiamo la funzione open(). La funzione open() accetta due argomenti: il nome del file e la modalità. La modalità specifica come vogliamo aprire il file.\u003c/p\u003e","title":"Come usare il linguaggio Python per leggere e scrivere file di testo"},{"content":"Visual Studio Code è un editor di codice open source gratuito e potente che può essere utilizzato per scrivere codice in una varietà di linguaggi, tra cui Python. In questo articolo, ti mostreremo come installare e configurare Visual Studio Code per Python, come scrivere ed eseguire codice Python e come utilizzare alcune delle funzionalità avanzate di Visual Studio Code.\nInstallazione super rapida Per installare Visual Studio Code, vai al sito web di Visual Studio Code e fai clic sul pulsante \u0026ldquo;Download\u0026rdquo;. Una volta scaricato, installa Visual Studio Code sul tuo computer.\nPer configurare Visual Studio Code per Python, apri VSCode e fai clic sul pulsante \u0026ldquo;Extensions\u0026rdquo; nell\u0026rsquo;angolo in alto a sinistra. Nella barra di ricerca, digita \u0026ldquo;Python\u0026rdquo; e fai clic sul pulsante \u0026ldquo;Install\u0026rdquo; per installare l\u0026rsquo;estensione \u0026ldquo;Python\u0026rdquo;.\nUna volta installata l\u0026rsquo;estensione, Visual Studio Code sarà pronto per l\u0026rsquo;uso con Python.\nScrittura ed esecuzione di codice Python Per scrivere codice Python in Visual Studio Code, crea un nuovo file con l\u0026rsquo;estensione \u0026ldquo;.py\u0026rdquo;. Ad esempio, puoi creare un file chiamato \u0026ldquo;hello.py\u0026rdquo;.\nInserisci il seguente codice nel file \u0026ldquo;hello.py\u0026rdquo;:\nprint(\u0026#34;Hello, world!\u0026#34;) Per eseguire il codice, fai clic con il pulsante destro del mouse sul file e seleziona \u0026ldquo;Run\u0026rdquo;. Il codice verrà eseguito e visualizzerà il seguente output:\n\u0026ldquo;Hello, world!\u0026rdquo;\nFunzionalità avanzate Visual Studio Code offre una serie di funzionalità avanzate per Python, tra cui:\nIntelliSense: IntelliSense fornisce suggerimenti di completamento automatico e informazioni sui tipi di dati. Debug: Visual Studio Code include un debugger integrato che ti consente di eseguire il debug del tuo codice Python. Linting: Il lint è un processo che analizza il tuo codice alla ricerca di errori e potenziali problemi. Test: Visual Studio Code supporta una varietà di framework di test per Python. Per saperne di più su queste funzionalità, consulta la documentazione di Visual Studio Code.\nLa guida completa per usare Python con Visual Studio Code Installazione di Python Vai su Python.org e scarica l\u0026rsquo;ultima versione per Windows. Il programma di installazione è disponibile anche per Linux / Unix, macOS e altre piattaforme. Dopo aver scaricato il programma di installazione, puoi installare tranquillamente Python con le impostazioni predefinite.\nPossiamo anche installare Python utilizzando vari strumenti CLI o attraverso il Windows Store.\nWindows Store (link) Homebrew (link) (sudo) apt-get install su Ubuntu (link) Installazione di VSCode La installazione è davvero super semplice. Scarica e installa la build stabile dal sito ufficiale. Il programma di installazione è disponibile per tutti i tipi di sistemi operativi, compresi i browser Web.\nScarica VSCode dal sito ufficiale.png\nEsecuzione di Python in VSCode Dopo aver installato Python e VSCode, è il momento di scrivere un breve programmino da eseguire all\u0026rsquo;interno dell\u0026rsquo;IDE.\nCome creare un nuovo file All\u0026rsquo;inizio, vedrai la nota di benvenuto. Ignora tutto e vai su File \u0026gt; Nuovo file di testo o usa la scorciatoia da tastiera Ctrl + N per creare un nuovo file. Quindi scrivi il comando \u0026ldquo;print\u0026rdquo; per visualizzare il classico \u0026ldquo;Hello World”.\nSalviamo il file Python Salva il file usando Ctrl + S. Seleziona la directory del file e digita il nome del file. Assicurati di aggiungere\u0026rsquo;. py \u0026rsquo; alla fine del nome del file.\nSelezionare l\u0026rsquo;interprete Per eseguire il file Python, è necessario selezionare l\u0026rsquo;interprete Python. Per impostazione predefinita, l\u0026rsquo;ambiente Anaconda viene fornito con Python versione 3.9.13.\nEseguire un file Python Per eseguire il file Python, è sufficiente fare clic sul pulsante Esegui in alto a sinistra, come mostrato nell\u0026rsquo;immagine. Inizializzerà il terminale ed eseguirà il file Python per visualizzare l\u0026rsquo;output.\nPuoi anche digitare python test.py nel terminale per eseguire il file presente nella directory corrente.\nInstallazione di estensioni essenziali VSCode Python Le estensioni Python di VSCode sono usate per la modifica del codice, il linting, la formattazione, debug, test e selezione dell\u0026rsquo;ambiente.\nCome installare una estensione in VSCode Fai clic sull\u0026rsquo;icona della casella sulla barra delle attività o usa la scorciatoia da tastiera: Ctrl + Maiusc + X per aprire il pannello delle estensioni. Digit una qualsiasi parola chiave nella barra di ricerca per esplorare tutti i tipi di estensioni.\nCome installare la estensione per Python Nel nostro caso, digiteremo Python e installeremo l\u0026rsquo;estensione Python facendo clic sul pulsante Installa, come mostrato sopra.\nElenco delle estensioni\nPython IntelliSense (completamento automatico del codice)\nLinting (Pylint, Flake8)\nFormattazione del codice (nero, autopep)\nDebug\nTest (unittest, pytest) Notebook Jupyter\nAmbienti (venv, pipenv, conda)\nRefactoring Indent-rainbow Indent-rainbow ci fornisce un rientro colorato multilivello per una migliore leggibilità del codice. Otteniamo colori alternati su ogni passo e ci aiuta a evitare errori di indentazione comuni.\nPython-indent Python-indent ci aiuta con la corretta indentazione. Premendo il tasto Invio, l\u0026rsquo;estensione analizzerà il file Python e determinerà come la riga successiva deve essere rientrata. È una utility preziosa che permette di risparmiare molto tempo.\nJupyter Notebook Renderers Jupyter Notebook Renderers fa parte del Jupyter Extension pack. Ci aiuta a renderizzare l\u0026rsquo;output plotly, vega, gif, png, svg e jpeg.\nautoDocstring L\u0026rsquo;estensione autoDocstring ci aiuta a generare rapidamente docstring per le funzioni Python. Digitando le virgolette triple \u0026quot;\u0026rdquo;\u0026quot; o \u0026ldquo;\u0026rsquo; all\u0026rsquo;interno della funzione, possiamo generare e modificare docstring. Scopri di più sulle stringhe doc seguendo il nostro tutorial su Python Docstrings.\n👋 Nota: la maggior parte delle estensioni e delle funzionalità di sviluppo Python sono dotate di estensioni \"py\". Come usare VSCode e Python per la \u0026ldquo;Analisi dati\u0026rdquo; Visual Studio Code consente agli utenti di eseguire programmi Python dentro i notebook Jupyter. Possiamo eseguire la cella e visualizzare il risultato all\u0026rsquo;interno di VSCode. Supporta tutti i tipi di linguaggi di programmazione e viene fornito con funzionalità integrate per integrare i notebook Jupyter nell\u0026rsquo;IDE.\nPer utilizzare l\u0026rsquo;estensione Jupyter notebook, è necessario prima installare un notebook Jupyter.\npip install jupyterlab Per creare un file Jupyter notebook, possiamo creare un nuovo file con .estensione ipynb o accedere alla tavolozza dei comandi (Ctrl + Maiusc + P) e selezionare Jupyter.\nCome creare uno notebook con Jupyter Scopri come usare la estensione Jupyter in tre semplici passi.\n1 - Scegli il kernel Ipython\nPer usare il server Jupyter, dobbiamo selezionare il kernel facendo clic sul “kernel picker” in alto a destra del notebook, come mostrato nell’immagine:\n2 - Esegui la cella Jupyter\nAdesso vai nella casella appena creata e usa la istruzione \u0026ldquo;print\u0026rdquo; per visualizzare \u0026ldquo;Hello world\u0026rdquo;. Quindi premi il pulsante \u0026ldquo;Esegui\u0026rdquo; (il piccolo triangolo cerchiato in rosso nella foto in basso):\n3 - Aggiungi un\u0026rsquo;altra cella\nAdesso puoi cliccare su \u0026ldquo;+ Code\u0026rdquo; per aggiungere una nuova cella ed eseguire con \u0026ldquo;Ctrl + ⤶ Invio\u0026rdquo;.\n🔑 Dopo avere aggiunto una altra cella di codice puoi continuare il ciclo aggiungendo altre istruzioni o interi blocchi di codice. Il linting Il lint evidenzia i problemi nel codice sorgente Python e ci fornisce suggerimenti. In genere mette in evidenza questioni sintattiche e stilistiche. Linting aiuta a identificare e correggere i problemi di codifica che possono portare a errori.\nÈ possibile selezionare il metodo di linting selezionando Python: Selezionare il comando Linter nella tavolozza dei comandi (Ctrl + Maiusc + P). È inoltre possibile attivare manualmente il metodo linting in impostazioni.\nSelezionare il metodo di linting\nE\u0026rsquo; sempre possibile rivedere l\u0026rsquo;elenco dei metodi di linting disponibili: Enable / Disable Linting: selezionare Python: Enable / Disable Linting nella tavolozza dei comandi. Esegui Linting: tavolozza comandi (Ctrl + Maiusc + P) \u0026gt; Python: Esegui Linting. La Formattazione Una corretta formattazione rende il codice più leggibile. Questa estensione ti suggerisce regole specifiche per interlinea, rientri, spaziatura attorno agli operatori e parentesi di chiusura. La estensione supporta tre metodi di formattazione differenti: autopep8, black o yapf e ti permette in qualunque momento di cambiare.\nLeggendo su PEP-8 Python Naming Conventions \u0026amp; Code Standards , puoi imparare la guida allo stile di Python e le regole di formattazione.\nSelezionare il formatter Python\nPer accedere all\u0026rsquo;opzione di formattazione, dobbiamo aprire il pannello delle impostazioni andando su Preferenze - \u0026gt; Impostazioni o usando la scorciatoia da tastiera: Ctrl +,. Successivamente, digita \u0026quot; python formatting provider \u0026ldquo;nella barra di ricerca e seleziona\u0026rdquo; nero \u0026quot; dal menu a discesa.\nConfigurare Python formatter\nPer formattare il file Python su save, dobbiamo cercare format on save nelle Impostazioni e abilitare l\u0026rsquo;opzione Editor: Format on Save.\nDebug e test in VSCode Debug L\u0026rsquo;estensione Python viene fornito con il debug per tutti i tipi di applicazioni come applicazioni multi-threaded, web e remote. Possiamo impostare punti di interruzione, ispezionare i dati ed eseguire programmi passo dopo passo.\nSelezionare una configurazione di debug\nAvviare la scheda debug facendo clic sull\u0026rsquo;icona di debug sulla barra delle azioni o utilizzando la scorciatoia da tastiera Ctrl + Maiusc +D. Per personalizzare le opzioni di debug, fare clic su crea un avvio.file json e selezionare il file Python.\nPannello Debug\nEsegui il debug facendo clic sul pulsante blu Esegui e Debug, e verrà eseguito il file Python e ci mostrerà le variabili, Guarda, Stack di chiamate e punti di interruzione.\nDebug rapido\nPer il debug rapido, è sempre possibile fare clic sulla freccia giù accanto al pulsante Esegui e selezionare Debug Python File.\nConclusione Visual Studio Code è un editor di codice potente e versatile che può essere utilizzato per scrivere codice Python. Con un po\u0026rsquo; di configurazione, puoi iniziare a scrivere e eseguire codice Python in Visual Studio Code in pochi minuti.\nRobotdazero.it - post - R.115.2.2.4\n","permalink":"https://www.robotdazero.it/blog/come-usare-python-in-visual-studio-code/","summary":"\u003ch5 id=\"visual-studio-code-è-un-editor-di-codice-open-source-gratuito-e-potente-che-può-essere-utilizzato-per-scrivere-codice-in-una-varietà-di-linguaggi-tra-cui-python\"\u003eVisual Studio Code è un editor di codice open source gratuito e potente che può essere utilizzato per scrivere codice in una varietà di linguaggi, tra cui Python.\u003c/h5\u003e\n\u003cp\u003eIn questo articolo, ti mostreremo come installare e configurare Visual Studio Code per \u003ca href=\"https://www.python.org/\" target=\"_blank\" rel=\"noopener\"\u003ePython\u003c/a\u003e, come scrivere ed eseguire codice Python e come utilizzare alcune delle funzionalità \u003ca href=\"https://learn.microsoft.com/it-it/visualstudio/ide/writing-code-in-the-code-and-text-editor?view=vs-2022\" target=\"_blank\" rel=\"noopener\"\u003eavanzate\u003c/a\u003e di Visual Studio Code.\u003c/p\u003e\n\u003ch2 id=\"installazione-super-rapida\"\u003eInstallazione super rapida\u003c/h2\u003e\n\u003cp\u003ePer installare \u003ca href=\"https://code.visualstudio.com/download\" target=\"_blank\" rel=\"noopener\"\u003eVisual Studio Code\u003c/a\u003e, vai al sito web di Visual Studio Code e fai clic sul pulsante \u0026ldquo;Download\u0026rdquo;. Una volta scaricato, installa Visual Studio Code sul tuo computer.\u003c/p\u003e","title":"Come usare Python in Visual Studio Code"},{"content":" LA VECCHIA SCHEDA ARDUINO UNO R3 La scheda Arduino Uno R3 è una scheda di sviluppo open source basata sul microcontrollore ATmega328P. È una delle schede Arduino più popolari e diffuse, ed è ideale per principianti e professionisti.\nLa scheda Arduino Uno R3 ha un\u0026rsquo;ampia gamma di funzionalità, tra cui: 14 pin digitali, di cui 6 possono essere utilizzati come ingressi analogici Un connettore USB per la connessione al computer Un alimentatore a 5V per alimentare la scheda Un LED di alimentazione e un LED di comunicazione La scheda Arduino Uno R3 può essere utilizzata per una varietà di applicazioni, tra cui:\nPrototipazione di dispositivi elettronici Creazione di oggetti interattivi Controllo di dispositivi esterni La scheda Arduino Uno R3 è facile da usare. Per iniziare, è necessario collegarla al computer e installare l\u0026rsquo;ambiente di sviluppo Arduino IDE. Una volta installato l\u0026rsquo;IDE, è possibile iniziare a scrivere codice per la scheda.\nIl codice per la scheda Arduino Uno R3 è scritto in C o C++. Il linguaggio di programmazione Arduino è un linguaggio di programmazione di alto livello che semplifica la scrittura di codice per la scheda.\nEcco alcuni esempi di progetti che possono essere realizzati con la scheda Arduino Uno R3:\nSpecifiche tecniche Microcontrollore: ATmega328P Frequenza di clock: 16 MHz Memoria flash: 32 KB SRAM: 2 KB EEPROM: 1 KB Alimentazione: 5 V Ingressi digitali: 14 Ingressi analogici: 6 Dimensioni: 68,6 mm x 53,3 mm LA NUOVA ARDUINO UNO R4 La scheda Arduino Uno R4 è alimentata da un ARM Cortex-M4 a 32 bit Renesas RA4M1, con un notevole salto di potenza elaboraiiva rispetto alla precedente versione. La versione WiFi è dotata di un modulo WiFi ESP32-S3 in aggiunta al RA4M1 e amplia le opportunità creative per i produttori e maker.\nLa versione \u0026ldquo;Minima\u0026rdquo; della R4 L\u0026rsquo;Arduino Uno R4 funziona a 48 MHz, che fornisce un aumento di 3 volte rispetto al popolare Uno R3. Inoltre, la SRAM è stata aggiornata da 2 kB a 32 kB e la memoria flash da 32 kB a 256 kB per supportare progetti più complessi. Rispondendo al feedback della community, la porta USB è ora USB-C e la tensione di alimentazione massima è stata aumentata a 24 V con un design termico migliorato. La scheda include un bus CAN e una porta SPI, consentendo agli utenti di ridurre il cablaggio ed eseguire attività parallele collegando più schermi. Un DAC analogico a 12 bit è anche fornito sulla scheda.\nL\u0026rsquo;Arduino Uno R4 è disponibile in 2 versioni (Minima e WiFi) e offre le seguenti nuove funzionalità rispetto all\u0026rsquo;Uno R3:\nSpecifiche tecniche Connettore USB-C RA4M1 da Renesas (Cortex-M4) RA4M1 da Renesas Dispositivo HID (emula un mouse o una tastiera) Sezione di potenza migliorata (fino a 24 V attraverso VIN) CAN bus DAC (12 bit) Op amp WiFi / Bluetooth LE Matrice LED completamente indirizzabile (12x8) Connettore QWIIC I2C RTC (con supporto per una batteria tampone) Robotdazero.it - post - R.108.0.5.8\n","permalink":"https://www.robotdazero.it/blog/due-nuove-schede-arduino-uno-r4-minima-e-wifi/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003ch3 id=\"la-vecchia-scheda-arduino-uno-r3\"\u003eLA VECCHIA SCHEDA ARDUINO UNO R3\u003c/h3\u003e\n\u003cp\u003eLa scheda Arduino Uno R3 è una scheda di sviluppo open source basata sul microcontrollore ATmega328P. È una delle schede Arduino più popolari e diffuse, ed è ideale per principianti e professionisti.\u003c/p\u003e\n\u003ch5 id=\"la-scheda-arduino-uno-r3-ha-unampia-gamma-di-funzionalità-tra-cui\"\u003eLa scheda Arduino Uno R3 ha un\u0026rsquo;ampia gamma di funzionalità, tra cui:\u003c/h5\u003e\n\u003cp\u003e14 pin digitali, di cui 6 possono essere utilizzati come ingressi analogici\nUn connettore USB per la connessione al computer\nUn alimentatore a 5V per alimentare la scheda\nUn LED di alimentazione e un LED di comunicazione\nLa scheda Arduino Uno R3 può essere utilizzata per una varietà di applicazioni, tra cui:\u003c/p\u003e","title":"Due nuove schede Arduino UNO R4: Minima e WiFi"},{"content":" La camera OV2640 richiede un\u0026rsquo;alimentazione di 5 V DC. È possibile utilizzare un alimentatore esterno da 5 V o alimentare la camera direttamente da una scheda di sviluppo ESP32.\nALIMENTAZIONE CON ALIMENTATORE ESTERNO Per alimentare la camera OV2640 con un alimentatore esterno, è necessario collegare i pin di alimentazione VDD e GND della camera ai pin di alimentazione VCC e GND dell\u0026rsquo;alimentatore. I pin di alimentazione VDD e GND della camera sono solitamente identificati con i simboli +5V e GND.\nALIMENTAZIONE DA SCHEDA DI SVILUPPO ESP32 Se si utilizza una scheda di sviluppo ESP32, è possibile alimentare la camera OV2640 direttamente dalla scheda. La maggior parte delle schede di sviluppo ESP32 ha un pin di alimentazione dedicato per la camera, che è solitamente indicato con il simbolo CAM. Per alimentare la camera, è sufficiente collegare il pin CAM della scheda di sviluppo ESP32 al pin di alimentazione VDD della camera.\nSCHEMA DI COLLEGAMENTO Il seguente schema mostra come collegare una camera OV2640 a un alimentatore esterno o a una scheda di sviluppo ESP32:\n+5V (alimentatore esterno) | VDD (camera) GND (alimentatore esterno) | GND (camera) +5V (scheda di sviluppo) | CAM (camera) GND (scheda di sviluppo) | GND (camera) Attenzione\nÈ importante utilizzare un alimentatore esterno o una scheda di sviluppo ESP32 che sia in grado di fornire almeno 500 mA di corrente.\nRobotdazero.it - post - R.106.1.0.0\n","permalink":"https://www.robotdazero.it/blog/come-alimentare-una-cam-ov2640/","summary":"\u003c!-- https://oleksandrg.medium.com/simple-image-classification-on-raspberry-pi-used-the-pre-trained-model-vgg16-part-4-0-afa4f8bdf775  --\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLa camera OV2640 richiede un\u0026rsquo;alimentazione di 5 V DC. È possibile utilizzare un alimentatore esterno da 5 V o alimentare la camera direttamente da una scheda di sviluppo ESP32.\u003c/p\u003e\u003c/blockquote\u003e\n\u003ch2 id=\"alimentazione-con-alimentatore-esterno\"\u003eALIMENTAZIONE CON ALIMENTATORE ESTERNO\u003c/h2\u003e\n\u003cp\u003ePer alimentare la camera OV2640 con un alimentatore esterno, è necessario collegare i pin di alimentazione VDD e GND della camera ai pin di alimentazione VCC e GND dell\u0026rsquo;alimentatore. I pin di alimentazione VDD e GND della camera sono solitamente identificati con i simboli +5V e GND.\u003c/p\u003e","title":"Come alimentare una cam OV2640"},{"content":" COSA E\u0026rsquo; LA OV2640 La OV2640 è un sensore di immagine CMOS a colori di tipo retroilluminato (BSI) da 2,0 megapixel prodotto da OmniVision Technologies. È un sensore di immagine a formato 1/3,2 pollici con una risoluzione nativa di 1632x1232 pixel. L\u0026rsquo;OV2640 è un sensore di immagine molto popolare ed è utilizzato in una varietà di applicazioni, tra cui fotocamere digitali, videocamere digitali, telecamere di sicurezza e telecamere di sorveglianza.\nL\u0026rsquo;OV2640 offre una serie di funzionalità, tra cui:\nRisoluzione di 2,0 megapixel Formato 1/3,2 pollici Sensore BSI Ampio intervallo dinamico (120 dB) Basso rumore Ottima riproduzione dei colori Supporto per l'acquisizione di immagini JPEG e RAW La OV2640 è un sensore di immagine versatile e potente che è ideale per una varietà di applicazioni. È un sensore di immagine popolare e ben supportato e sono disponibili molte schede di sviluppo e moduli fotocamera che lo utilizzano.\nEcco alcuni dei vantaggi dell\u0026rsquo;utilizzo di una camera OV2640:\nAlta risoluzione: l\u0026rsquo;OV2640 offre una risoluzione di 2,0 megapixel, che consente di acquisire immagini di alta qualità. Ampio intervallo dinamico: l\u0026rsquo;OV2640 ha un ampio intervallo dinamico di 120 dB, che consente di catturare immagini con un\u0026rsquo;ampia gamma di luminosità.\nBasso rumore: l\u0026rsquo;OV2640 ha un basso livello di rumore, che consente di acquisire immagini nitide e pulite. Ottima riproduzione dei colori: l\u0026rsquo;OV2640 offre un\u0026rsquo;ottima riproduzione dei colori, che consente di acquisire immagini realistiche.\nCOME INSTALLARE LA CAMERA OV2640 CON WINDOWS ecco i passaggi per installare la fotocamera OV2640 su Windows:\nScarica il driver della fotocamera OV2640 dal sito web del produttore. Estrai il contenuto dell\u0026rsquo;archivio scaricato in una cartella. Apri il prompt dei comandi come amministratore. Spostati nella cartella in cui hai estratto i file del driver. quindi esegui il comando seguente per installare il driver:\n.\\install.bat e riavvia il computer.\nUna volta riavviato il computer, la fotocamera OV2640 dovrebbe essere installata e pronta per l\u0026rsquo;uso.\nCOSA FARE SE LA INSTALLAZIONE NON RIESCE Ti voglio dare qualche suggerimento aggiuntivo per installare il driver della OV2640:\nAssicurati che il tuo computer soddisfi i requisiti minimi di sistema per il driver. Se hai problemi a installare il driver, contatta il produttore della fotocamera per assistenza. Se stai utilizzando un sistema operativo Windows 10, potresti dover abilitare la fotocamera nel Pannello di controllo. Per fare ciò, segui questi passaggi: Apri il Pannello di controllo. Fai clic su \u0026ldquo;Hardware e suoni\u0026rdquo;. Fai clic su \u0026ldquo;Gestione dispositivi\u0026rdquo;. Espandi la categoria \u0026ldquo;Dispositivi di acquisizione immagini\u0026rdquo;. Fai clic con il pulsante destro del mouse sulla fotocamera OV2640 e seleziona \u0026ldquo;Abilita dispositivo\u0026rdquo;. La fotocamera OV2640 dovrebbe ora essere abilitata e pronta per l\u0026rsquo;uso. COME INSTALLARE LA FOTOCAMERA OV2640 SU RASPBERRY PI Su Ubuntu che è la distro Linux che ti suggeriamo puoi seguire questa installazione:\nAccedere alla shell del terminale. Eseguire il seguente comando per installare il pacchetto \u0026ldquo;libv4l-dev\u0026rdquo;: sudo apt-get install libv4l-dev Collegare la fotocamera OV2640 al computer. Eseguire il seguente comando per elencare le fotocamere disponibili: v4l2-ctl -d /dev/video0 Se la fotocamera OV2640 è elencata, eseguire il seguente comando per testarla: raspistill -t 1000 -o test.jpg Se il comando viene eseguito correttamente, verrà creata un\u0026rsquo;immagine denominata \u0026ldquo;test.jpg\u0026rdquo; nella directory corrente.\nSe il comando non viene eseguito correttamente, è possibile che la fotocamera OV2640 non sia compatibile con il sistema operativo Linux o che il driver non sia installato correttamente. In questo caso, è necessario contattare il produttore della fotocamera per assistenza.\nEcco alcuni altri suggerimenti per l\u0026rsquo;installazione della fotocamera OV2640 su Linux:\nAssicurarsi che la fotocamera OV2640 sia alimentata correttamente. Utilizzare un cavo USB di alta qualità per collegare la fotocamera al computer. Provare a collegare la fotocamera a una porta USB diversa. Provare a riavviare il computer. Contattare il produttore della fotocamera per assistenza. COME ABBIAMO USATO LA CAMERA SU UBUNTU 22.04 Ubuntu 22.04 è attualmente il nostro sistema di riferimento su Linux e lo preferiamo rispetto al normale Raspbian / Raspberry OS per la sua universalità e le risposte che possiamo trovare su AskUbuntu. In questo post vedremo come programmare la camera per collegarla al WIFI e classificare le foto dal Raspberry.\nLa camera OV2640 viene installata direttamente sul \u0026ldquo;telaio\u0026rdquo; dell\u0026rsquo;ESP32 in molti \u0026ldquo;bundle\u0026rdquo; commerciali disponibili a basso costo. Noi useremo la camera nella foto, un prodotto valido che potete trovare a meno di dieci euro.\nLa camera OV2640 La parte ottica della camera ov2640 COME CLASSIFICARE LE IMMAGINI DELLA CAM USANDO TENSORFLOW i due programmi che presentiamo permettono di:\ncreare un mini server web sull\u0026rsquo;ESP32 creare il comando \u0026ldquo;capture\u0026rdquo; per scattare una foto usando la interfaccia HTML salvare la foto in un file e fornira in rete all\u0026rsquo;indirizzo della CAM Per realizzare il programma abbiamo tenuto conto di alcune features che volevamo fossero presenti:\nLa schede ESP32 doveva riconnettersi al WIFI automaticamente Volevamo evitare i problemi della gestione del \u0026ldquo;BrownOut\u0026rdquo; quand su collega la CAM ad una USB dalla tensione instabile Avere un indirizzo IP fisso per permettere al RPI di fare il download della foto in modo sicuro Mostrare come si usano gli interrupt dell\u0026rsquo;ESP32 per controllare il WIFI e effettuare la riconnessione Mostrare come si puo\u0026rsquo; scattare una foro con una risoluzione specifica IL PROGRAMMA DA CARICARE SU ESP32 #include \u0026#34;Arduino.h\u0026#34; #include \u0026#34;WiFi.h\u0026#34; #include \u0026#34;driver/rtc_io.h\u0026#34; #include \u0026#34;esp_camera.h\u0026#34; #include \u0026#34;esp_timer.h\u0026#34; #include \u0026#34;img_converters.h\u0026#34; #include \u0026#34;soc/rtc_cntl_reg.h\u0026#34; // Disable brownour problems #include \u0026#34;soc/soc.h\u0026#34; // Disable brownour problems #include \u0026lt;ESPAsyncWebServer.h\u0026gt; #include \u0026lt;FS.h\u0026gt; #include \u0026lt;SPIFFS.h\u0026gt; #include \u0026lt;StringArray.h\u0026gt; // Set your Static IP address IPAddress local_IP(192, 168, 1, 185); // Set your Gateway IP address IPAddress gateway(192, 168, 1, 1); IPAddress subnet(255, 255, 0, 0); IPAddress primaryDNS(8, 8, 8, 8); // optional IPAddress secondaryDNS(8, 8, 4, 4); // optional const char *ssid = \u0026#34;SSID-xxxx\u0026#34;; const char *password = \u0026#34;passwd-yyyy\u0026#34;; // Create AsyncWebServer object on port 80 AsyncWebServer server(80); boolean takeNewPhoto = false; // Photo File Name to save in SPIFFS #define FILE_PHOTO \u0026#34;/photo.jpg\u0026#34; // OV2640 camera module pins (CAMERA_MODEL_AI_THINKER) #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM 0 #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 #define Y2_GPIO_NUM 5 #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 const char index_html[] PROGMEM = R\u0026#34;rawliteral( \u0026lt;!DOCTYPE HTML\u0026gt;\u0026lt;html\u0026gt; \u0026lt;head\u0026gt; \u0026lt;meta name=\u0026#34;viewport\u0026#34; content=\u0026#34;width=device-width, initial-scale=1\u0026#34;\u0026gt; \u0026lt;style\u0026gt; body { text-align:center; } .vert { margin-bottom: 10%; } .hori{ margin-bottom: 0%; } \u0026lt;/style\u0026gt; \u0026lt;/head\u0026gt; \u0026lt;body\u0026gt; \u0026lt;div id=\u0026#34;container\u0026#34;\u0026gt; \u0026lt;h2\u0026gt;ESP32-CAM Last Photo\u0026lt;/h2\u0026gt; \u0026lt;p\u0026gt;It might take more than 5 seconds to capture a photo.\u0026lt;/p\u0026gt; \u0026lt;p\u0026gt; \u0026lt;button onclick=\u0026#34;rotatePhoto();\u0026#34;\u0026gt;ROTATE\u0026lt;/button\u0026gt; \u0026lt;button onclick=\u0026#34;capturePhoto()\u0026#34;\u0026gt;CAPTURE PHOTO\u0026lt;/button\u0026gt; \u0026lt;button onclick=\u0026#34;location.reload();\u0026#34;\u0026gt;REFRESH PAGE\u0026lt;/button\u0026gt; \u0026lt;/p\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;div\u0026gt;\u0026lt;img src=\u0026#34;saved-photo\u0026#34; id=\u0026#34;photo\u0026#34; width=\u0026#34;70%\u0026#34;\u0026gt;\u0026lt;/div\u0026gt; \u0026lt;/body\u0026gt; \u0026lt;script\u0026gt; var deg = 0; function capturePhoto() { var xhr = new XMLHttpRequest(); xhr.open(\u0026#39;GET\u0026#39;, \u0026#34;/capture\u0026#34;, true); xhr.send(); } function rotatePhoto() { var img = document.getElementById(\u0026#34;photo\u0026#34;); deg += 90; if(isOdd(deg/90)){ document.getElementById(\u0026#34;container\u0026#34;).className = \u0026#34;vert\u0026#34;; } else{ document.getElementById(\u0026#34;container\u0026#34;).className = \u0026#34;hori\u0026#34;; } img.style.transform = \u0026#34;rotate(\u0026#34; + deg + \u0026#34;deg)\u0026#34;; } function isOdd(n) { return Math.abs(n % 2) == 1; } \u0026lt;/script\u0026gt; \u0026lt;/html\u0026gt;)rawliteral\u0026#34;; void WiFiStationConnected(WiFiEvent_t event, WiFiEventInfo_t info) { Serial.println(\u0026#34;Connected to AP successfully!\u0026#34;); } void WiFiGotIP(WiFiEvent_t event, WiFiEventInfo_t info) { Serial.println(\u0026#34;WiFi connected\u0026#34;); Serial.println(\u0026#34;IP address: \u0026#34;); Serial.println(WiFi.localIP()); } void WiFiStationDisconnected(WiFiEvent_t event, WiFiEventInfo_t info) { Serial.println(\u0026#34;Disconnected from WiFi access point\u0026#34;); Serial.print(\u0026#34;WiFi lost connection. Reason: \u0026#34;); Serial.println(info.wifi_sta_disconnected.reason); Serial.println(\u0026#34;Trying to Reconnect\u0026#34;); WiFi.begin(ssid, password); } void setup() { // Serial port for debugging purposes Serial.begin(115200); // delete old config WiFi.disconnect(true); delay(1000); WiFi.onEvent(WiFiStationConnected, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_CONNECTED); WiFi.onEvent(WiFiGotIP, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_GOT_IP); WiFi.onEvent(WiFiStationDisconnected, WiFiEvent_t::ARDUINO_EVENT_WIFI_STA_DISCONNECTED); /* Remove WiFi event Serial.print(\u0026#34;WiFi Event ID: \u0026#34;); Serial.println(eventID); WiFi.removeEvent(eventID);*/ // Configures static IP address if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) { Serial.println(\u0026#34;STA Failed to configure\u0026#34;); } // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println(\u0026#34;Connecting to WiFi...\u0026#34;); } if (!SPIFFS.begin(true)) { Serial.println(\u0026#34;An Error has occurred while mounting SPIFFS\u0026#34;); ESP.restart(); } else { delay(500); Serial.println(\u0026#34;SPIFFS mounted successfully\u0026#34;); } // Print ESP32 Local IP Address Serial.print(\u0026#34;IP Address: http://\u0026#34;); Serial.println(WiFi.localIP()); // Turn-off the \u0026#39;brownout detector\u0026#39; WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // OV2640 camera module camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; if (psramFound()) { // config.frame_size = FRAMESIZE_UXGA; config.frame_size = FRAMESIZE_QVGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } // Camera init esp_err_t err = esp_camera_init(\u0026amp;config); if (err != ESP_OK) { Serial.printf(\u0026#34;Camera init failed with error 0x%x\u0026#34;, err); ESP.restart(); } // Route for root / web page server.on(\u0026#34;/\u0026#34;, HTTP_GET, [](AsyncWebServerRequest *request) { request-\u0026gt;send_P(200, \u0026#34;text/html\u0026#34;, index_html); }); server.on(\u0026#34;/capture\u0026#34;, HTTP_GET, [](AsyncWebServerRequest *request) { takeNewPhoto = true; request-\u0026gt;send_P(200, \u0026#34;text/plain\u0026#34;, \u0026#34;Taking Photo\u0026#34;); }); server.on(\u0026#34;/saved-photo\u0026#34;, HTTP_GET, [](AsyncWebServerRequest *request) { request-\u0026gt;send(SPIFFS, FILE_PHOTO, \u0026#34;image/jpg\u0026#34;, false); }); // Start server server.begin(); } void loop() { if (takeNewPhoto) { capturePhotoSaveSpiffs(); takeNewPhoto = false; } delay(1); } // Check if photo capture was successful bool checkPhoto(fs::FS \u0026amp;fs) { File f_pic = fs.open(FILE_PHOTO); unsigned int pic_sz = f_pic.size(); return (pic_sz \u0026gt; 100); } // Capture Photo and Save it to SPIFFS void capturePhotoSaveSpiffs(void) { camera_fb_t *fb = NULL; // pointer bool ok = 0; // Boolean indicating if the picture has been taken correctly do { // Take a photo with the camera Serial.println(\u0026#34;Taking a photo...\u0026#34;); fb = esp_camera_fb_get(); if (!fb) { Serial.println(\u0026#34;Camera capture failed\u0026#34;); return; } // Photo file name Serial.printf(\u0026#34;Picture file name: %s\\n\u0026#34;, FILE_PHOTO); File file = SPIFFS.open(FILE_PHOTO, FILE_WRITE); // Insert the data in the photo file if (!file) { Serial.println(\u0026#34;Failed to open file in writing mode\u0026#34;); } else { file.write(fb-\u0026gt;buf, fb-\u0026gt;len); // payload (image), payload length Serial.print(\u0026#34;The picture has been saved in \u0026#34;); Serial.print(FILE_PHOTO); Serial.print(\u0026#34; - Size: \u0026#34;); Serial.print(file.size()); Serial.println(\u0026#34; bytes\u0026#34;); } // Close the file file.close(); esp_camera_fb_return(fb); // check if file has been correctly saved in SPIFFS ok = checkPhoto(SPIFFS); } while (!ok); } IL PROGRAMMA PER RASPBERRY PI import requests import numpy as np from PIL import Image from io import BytesIO from keras.applications.vgg16 import VGG16 from keras.preprocessing import image from keras.applications.vgg16 import preprocess_input, decode_predictions model = VGG16(weights=\u0026#39;imagenet\u0026#39;) img_path = \u0026#39;img424.jpg\u0026#39; response = requests.get(\u0026#34;http://192.168.1.185/saved-photo\u0026#34;) tmp = Image.open(BytesIO(response.content)) img = tmp.resize((224, 224)) img.save(\u0026#39;img424.jpg\u0026#39;) img = image.load_img(img_path, target_size=(224, 224)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) preds = model.predict(x) print(\u0026#39;Result:\u0026#39;, decode_predictions(preds, top=1)[0]) I RISULTATI DEI TEST Per provare il programma abbiamo usato uma immagine a bassa risoluzione di un flacone di alcool appoggiato sulla nostra scrivania scura: la prima foto è la jpeg che abbiamo fornito a TF, mentre la seconda foto mostra la schermata del sito web fornito dall\u0026rsquo;ESP32. Il PC è un laptop Ubuntu 22.04.\n2023-09-15 19:08:06.752749: W tensorflow/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 411041792 exceeds 10% of free system memory. 2023-09-15 19:08:07.311766: W tensorflow/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 411041792 exceeds 10% of free system memory. 2023-09-15 19:08:07.850514: W tensorflow/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 411041792 exceeds 10% of free system memory. 2023-09-15 19:08:08.542592: W tensorflow/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 67108864 exceeds 10% of free system memory. 2023-09-15 19:08:08.638182: W tensorflow/tsl/framework/cpu_allocator_impl.cc:83] Allocation of 67108864 exceeds 10% of free system memory. 1/1 [==============================] - 2s 2s/step Result: [(\u0026#39;n03937543\u0026#39;, \u0026#39;pill_bottle\u0026#39;, 0.18644877)] I RISULTATI DEL TEST Il programma correttamente classifica la foto come un flacone di medicinali (pill bottle), un risultato accettabile considerando che il prodotto assomiglia molto ai flaconi di aspirina in uso negli USA.\n","permalink":"https://www.robotdazero.it/blog/leggere-e-classificare-immagini-da-una-ov2640-con-tensorflow/","summary":"\u003c!-- https://oleksandrg.medium.com/simple-image-classification-on-raspberry-pi-used-the-pre-trained-model-vgg16-part-4-0-afa4f8bdf775  --\u003e\n\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"cosa-e-la-ov2640\"\u003eCOSA E\u0026rsquo; LA OV2640\u003c/h2\u003e\n\u003cp\u003eLa \u003ca href=\"https://amzn.to/3S9HczV\" target=\"_blank\" rel=\"noopener\"\u003eOV2640\u003c/a\u003e è un sensore di immagine CMOS a colori di tipo retroilluminato (BSI) da 2,0 megapixel prodotto da OmniVision Technologies. È un sensore di immagine a formato 1/3,2 pollici con una risoluzione nativa di 1632x1232 pixel. L\u0026rsquo;OV2640 è un sensore di immagine molto popolare ed è utilizzato in una varietà di applicazioni, tra cui fotocamere digitali, videocamere digitali, telecamere di sicurezza e telecamere di sorveglianza.\u003c/p\u003e","title":"Leggere e classificare immagini da una OV2640 con Tensorflow"},{"content":"L\u0026rsquo;ARDUINO TEENSY È UNA SCHEDA ARDUINO COMPATTA E POTENTE CHE PUÒ ESSERE ALIMENTATA IN DIVERSI MODI. Ecco alcuni metodi comuni:\nUscita USB: L\u0026rsquo;Arduino Teensy può essere alimentato direttamente da una porta USB. Questo è il modo più semplice per alimentare la scheda e viene spesso utilizzato durante lo sviluppo e il test. Alimentatore esterno: L\u0026rsquo;Arduino Teensy può anche essere alimentato da un alimentatore esterno. Questo può essere utile se si desidera utilizzare la scheda in un progetto portatile o se si desidera avere un maggiore controllo sulla tensione di alimentazione. Batteria: L\u0026rsquo;Arduino Teensy può anche essere alimentato da una batteria. Questo può essere utile se si desidera utilizzare la scheda in un progetto senza accesso a una presa di corrente. IL RANGE DI ALIMENTAZIONE DI ARDUINO TEENSY Quando si alimenta l\u0026rsquo;Arduino Teensy, è importante assicurarsi che la tensione di alimentazione sia compresa tra 7 e 12 volt. Se la tensione di alimentazione è troppo alta, la scheda potrebbe essere danneggiata. Se la tensione di alimentazione è troppo bassa, la scheda potrebbe non funzionare correttamente.\nALCUNI SUGGERIMENTI PER ALIMENTARE L\u0026rsquo;ARDUINO TEENSY Utilizzare un alimentatore che sia in grado di fornire abbastanza corrente per l\u0026rsquo;Arduino Teensy. La corrente richiesta dall\u0026rsquo;Arduino Teensy è indicata nelle specifiche della scheda. Utilizzare un alimentatore che abbia una tensione di uscita compresa tra 7 e 12 volt. Se si alimenta l\u0026rsquo;Arduino Teensy da una batteria, utilizzare una batteria che abbia una capacità sufficiente per alimentare la scheda per il periodo di tempo desiderato. Se si utilizza un alimentatore esterno, utilizzare un alimentatore regolato. Questo garantirà che la tensione di alimentazione fornita all\u0026rsquo;Arduino Teensy sia costante. I VALORI OPERATIVI RACCOMANDATI 👉 Tensioni massime operative 4.5V to 5.5V\t16 MHz\tYes 3.4V to 4.5V\t8 MHz\tYes 3.0V to 3.4V\t8 MHz\tNo* 2.7V to 3.0V\t8 MHz\tNo 2.6V** to 2.7V\t2 MHz\tNo IL TEENSY IN DETTAGLIO Teensy non viene assemblato direttamente da Arduino o da un produttore collegato. Viene fornito da una società separata chiamata PJRC, di proprietà di Paul Stoffregen. L\u0026rsquo;imprenditore ha immediatamente riconosciuto il potenziale della nuova schede e la capacità di sopperire alle lacune della scheda originale. La PJRC ha progettato dunque una versione \u0026ldquo;ARM based\u0026rdquo; di Arduino che incorporava tutto il meglio della vecchia scheda, con la potenza di un ARM Cortex-M4 a 180 MHz! Il Teensy rappresenta un salto di potenza enorme rispetto al classico ATmega328P!\nLA PIEDINATURA DEL TEENSY In linea di massima, per la presenza di ulteriori dispositivi di I/O la piedinatura appare completamente diversa dall\u0026rsquo;Arduino Mega, soprattutto nelle versioni più recenti.\nLa piedinatura del Teensy 4.1 Pins - Parte frontale La piedinatura del Teensy 4.1 Pins - Parte posteriore Mentre il Teensy originale cercava di mantenere una certa somiglianza con l\u0026rsquo;hardware Arduino originale\u0026hellip;\nLa piedinatura del Teensy 4.1 Pins - rel 1.0 Oltre ad un processore a 32 bit 180Mhz, alcune versioni del Teensy esibiscono slot per schede SD, porte Ethernet e porte di comunicazione seriale. Il Teensy possiede inoltre decine di librerie aggiuntive e software per Arduino. Ciò significa che tutte le nuove funzionalità sono già integrate a livello software e richiedono solo la aggiunta delle librerie!\n👉 Nella maggior parte dei casi sarai in grado di compilare e caricare i tuoi progetti Arduino esistenti direttamente sul Teensy senza modifiche. RISOLUZIONE DEI PROBLEMI PIÙ COMUNI Il LED lampeggia ma nessuna comunicazione USB: molti telefoni cellulari sono venduti con cavi di ricarica. Hanno solo 2 fili per l\u0026rsquo;alimentazione, ma mancano i 2 fili di dati. Prova un altro cavo USB.\nLa porta seriale non viene riconosciuta: Teensy utilizza il protocollo HID per il caricamento, non il protocollo seriale. Le nuove schede Teensy vengono fornite con il file di esempio \u0026lsquo;blinking LED\u0026rsquo; compilato per funzionare come RawHID. Bisogna programmare Teensy almeno una volta dall\u0026rsquo;IDE di Arduino. La porta COM (Windows) o il dispositivo seriale (Mac, Linux) appare solo dopo che Teensy inizia a eseguire il programma. Le normali schede Arduino sono sempre seriali.\nTeensy utilizza HID e supporta molti protocolli. Per utilizzare serial, assicurarsi che il menu Strumenti \u0026gt; USB Type sia impostato su \u0026ldquo;Serial\u0026rdquo; e ricorda che Teensy diventa un dispositivo seriale solo DOPO avere eseguito almeno un programma compilato con questa impostazione.\nIl chip principale sembra assolutamete inerte: Più di 4 volt applicati al pin di alimentazione 3.3 V posso bruciare istantaneamente il chip. Serve estrema attenzione nel collegare la alimentazione alla scheda Teensy sia usando il VIN (5 V) che il pin a 3.3. Fili volanti tra Teensy e altri dispistivi elettrici sono il modo più rapiso per rovinare il Teensy.\nComunicazione inaffidabile Alcuni hub USB hanno problemi a gestire una rapida sequenza di connessione / disconnessione durante la programmazione di Teensy. La maggior parte degli hub funziona bene, ma alcuni possono causare problemi difficili da risolvere. In caso prova ad usare un vecchio cavo USB collaudato con un altro vecchio Arduino.\nTeensy 3.0 non viene riconosciuto da Teensy Loader Teensy Loader 1.07 è la prima versione a supportare Teensy 3.0. Puoi controllare la versione usando Help \u0026gt; About . La versione 1.07 fa parte del programma di installazione Teensyduino. Viene eseguito automaticamente quando si fa clic su Carica o Verifica in Arduino. Nuovo di zecca Teensy non riconosciuto\nQuando un Teensy nuovo di zecca non è mai stato riconosciuto da Teensy Loader, segui questi passaggi. In primo luogo, riavvia il computer e rimuovi qualsiasi altro circuito collegato al Teensy. Il LED dovrebbe lampeggiare quando il cavo USB è collegato. Ogni Teensy è pre-programmato con un programma di lampeggio LED durante il test del prodotto. Non sono necessari driver particolari per fare lampeggiare il LED. È necessaria solo l\u0026rsquo;alimentazione dal cavo USB. Se il LED non lampeggia, controlla la tensione sulla scheda utilizzando un multimetro o prova un altro cavo o porta USB. Se il LED non lampeggia mai, non preoccuparti di driver o software. Se il non LED lampeggia vuol dire che la scheda non riceve alimentazione! Quando si preme il pulsante, il LED dovrebbe smettere di lampeggiare. Non servono software o driver sul computer per fermare il lampeggio del LED. Se il LED lampeggia e il pulsante riesce a fermare ilampeggio, questo è un ottimo segnale che Teensy funziona correttamente. Quando il LED smette di lampeggiare, se il programma Teensy Loader è in esecuzione, dovrebbe rilevare la scheda Teensy. Il messaggio\u0026quot; Premere il pulsante per attivare \u0026quot; scomparirà e l\u0026rsquo;immagine mostrerà quale scheda è presente. Non servono driver su Windows o Mac. Su Linux, il file delle regole udev deve invece essere installato. Se il LED lampeggia ma il Loader non rileva mai la scheda, il problema è quasi certamente un cavo USB difettoso. Molti cavi USB realizzati per i dispositivi di ricarica hanno solo fili di alimentazione ma nessuna linea dati. Robotdazero.it - post - R.104.6.1.0\n","permalink":"https://www.robotdazero.it/blog/come-alimentare-un-arduino-teensy/","summary":"\u003ch3 id=\"larduino-teensy-è-una-scheda-arduino-compatta-e-potente-che-può-essere-alimentata-in-diversi-modi\"\u003eL\u0026rsquo;ARDUINO TEENSY È UNA SCHEDA ARDUINO COMPATTA E POTENTE CHE PUÒ ESSERE ALIMENTATA IN DIVERSI MODI.\u003c/h3\u003e\n\u003cp\u003eEcco alcuni metodi comuni:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUscita USB: L\u0026rsquo;Arduino Teensy può essere alimentato direttamente da una porta USB. Questo è il modo più semplice per alimentare la scheda e viene spesso utilizzato durante lo sviluppo e il test.\u003c/li\u003e\n\u003cli\u003eAlimentatore esterno: L\u0026rsquo;Arduino Teensy può anche essere alimentato da un alimentatore esterno. Questo può essere utile se si desidera utilizzare la scheda in un progetto portatile o se si desidera avere un maggiore controllo sulla tensione di alimentazione.\u003c/li\u003e\n\u003cli\u003eBatteria: L\u0026rsquo;Arduino Teensy può anche essere alimentato da una batteria. Questo può essere utile se si desidera utilizzare la scheda in un progetto senza accesso a una presa di corrente.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"il-range-di-alimentazione-di-arduino-teensy\"\u003eIL RANGE DI ALIMENTAZIONE DI ARDUINO TEENSY\u003c/h3\u003e\n\u003cp\u003eQuando si alimenta l\u0026rsquo;Arduino Teensy, è importante assicurarsi che la tensione di alimentazione sia compresa tra 7 e 12 volt. Se la tensione di alimentazione è troppo alta, la scheda potrebbe essere danneggiata. Se la tensione di alimentazione è troppo bassa, la scheda potrebbe non funzionare correttamente.\u003c/p\u003e","title":"Come alimentare un Arduino Teensy?"},{"content":" COSA SONO I SENSORI A ULTRASUONI? In breve sono l’equivalente elettronico delle orecchie dei pipistrelli, niente horror comunque: si tratta di microfoni specialmente sensibili ai suoni oltre i 20 Khz (Kilo Hertz), generalmente non udibili dall’orecchio umano ma facilmente recepiti dai mammiferi. Pensa a cose come il fischietto per i cani o ai ping usati sui sottomarini per trovare le navi.\nLa versione consumer del sonar viene usata nei sensori di parcheggio delle automobili e grazie alla enorme diffusione i costi si sono abbassati moltissimo. Ne useremo un esemplare per il movimento autonomo di un piccolo rover.\nCOME CALCOLARE LE DISTANZE USANDO GLI ULTRASUONI Per calcolare le distanze usando gli ultrasuoni, si sfrutta il principio del tempo di volo. Un sensore ad ultrasuoni emette un impulso sonoro che si propaga nell\u0026rsquo;aria a una velocità di circa 343 metri al secondo. Quando l\u0026rsquo;impulso incontra un ostacolo, viene riflesso indietro verso il sensore. Misurando il tempo che intercorre tra l\u0026rsquo;emissione e la ricezione dell\u0026rsquo;impulso, è possibile calcolare la distanza dell\u0026rsquo;ostacolo.\nLa formula per calcolare la distanza in centimetri è:\ndistanza = velocità del suono * tempo di volo / 2 Ad esempio, se il tempo di volo è di 10 millisecondi, la distanza è:\ndistanza = 343 m/s * 10 ms / 2 = 171,5 cm In alcuni casi, è necessario tenere conto della temperatura dell\u0026rsquo;aria, che può influenzare la velocità del suono. La formula corretta è quindi:\ndistanza = velocità del suono (a temperatura T) * tempo di volo / 2 La velocità del suono in aria varia a seconda della temperatura, secondo la seguente formula:\nvelocità del suono = 331,4 + 0,6 * T dove T è la temperatura in gradi Celsius.\nIn pratica, è possibile utilizzare un sensore ad ultrasuoni per misurare la distanza di un ostacolo in diversi modi. Un modo semplice è quello di utilizzare un Arduino. In questo caso, è necessario collegare il sensore ai pin di Arduino e scrivere un programma che generi un impulso ad ultrasuoni e misuri il tempo di volo.\nCOME USARE IL SENSORE A ULTRASUONI HC-SR04 CON ARDUINO In questo post vedremo come usare il sensore HCSR04 e cercheremo di spiegare come si usa, come funziona e quali caratteristiche ci possono fare comodo per lavorare con Arduino e i nostri Robot in genere. Di seguito riporto le caratteristiche elettriche e dopo vedremo come usarlo in un progetto pratico.\nIl sensore HC-SR04 montato su una Breadboard per Arduino Pagina di Amazon.it con un esempio del prezzo medio (3.99 euro) DESCRIZIONE Come detto prima l’HC-SR04 usa il principio del Sonar per calcolare la distanza da un oggetto e dunque sfrutta la riflessione del suono sugli ostacoli solidi e la costanza della velocità del suono. Riesce a fornire con buona esattezza la distanza da un oggetto e restituisce dei valori costanti e progressivi, senza ritardi.\nFisicamente è piccolo, seppure non minuscolo e nella parte anteriore presenta due tronchi di cono in plastica. Uno si limita a trasmettere il segnale mentre l’altro lo riceve. Il sensore rileva il segnale e crea un impulso elettrico di durata proporzionale al ritardo.\n• CARATTERISTICHE ELETTRICHE E DINAMICHE Le specifiche tecniche del sensore HC-SR04: Alimentazione : +5V DC Corrente a riposo : \u0026lt;2mA Corrente di lavoro : 15mA Angolo panoramico : \u0026lt;15° Distanza di rilevazione : 2cm – 400 cm Risoluzione : 0.3 cm Angolo di misurazione: 30 gradi Durata del segnale di trigger: 10uS Dimensioni: 45mm x 20mm x 15mm Come funziona? Nel dettaglio in sensore opera in questo modo:\nIl trasmettitore manda un impulso ad ultrasuoni, Il segnale sonoro incontra un oggetto solido, Il ricevitore riceva l’onda riflessa (l’impulso riflesso). Il tempo che passa tra la trasmissione e la ricezione del segnale ci permette di calcolare la distanza reale di un oggetto. Come è possibile? Perchè sappiamo con precisione la velocità del suono a livello del mare che è circa 330 mt al secondo e basta fare una proporzione per avere la distanza in centimetri, la risoluzione che verosimilmente ci servirà con i Robot mobili.\nUN PROGETTO PER MISURARE LE DISTANZE USANDO ARDUINO E IL SENSORE HCSR04 In questi progetto il sensore legge e scrive la distanza da un oggetto nel monitor serial del tuo IDE Arduino. L’obiettivo del progetto è iniziare a capire come funziona il sensore, poi nella parte centrale di questo post costruiremo un vero Robot, con una logica di funzionamento “complessa” e capacità dinamiche.\nNota: Esiste una libreria per Arduino chiamata NewPing che ci renderà il lavoro molto più semplice.\nLE PARTI RICHIESTE Ecco una lista delle cose che vi serviranno:\nArduino UNO Sensore Ultrasonico (HCSR04) Breadboard Jumper Batteria 9V Portabatteria con Jack standard 9V I COLLEGAMENTI ELETTRICI Nella parte in alto i pin del sensore HCSR04, in basso quelli di Arduino:\nVCC \u0026lt;\u0026ndash;\u0026gt; 5V di Arduino Trig \u0026lt;\u0026ndash;\u0026gt; Pin 11 di Arduino Echo \u0026lt;\u0026ndash;\u0026gt; Pin 12 di Arduino GND \u0026lt;\u0026ndash;\u0026gt; GND di Arduino • IL CODICE COMPLETO /* * Trasmissione : PinTrasmissione Pin 11 Ricezione : PinRicezione Pin 12 VCC : +5VDC GND : GND */ int PinTrasmissione = 11; int PinRicezione = 12; long durata, cm; void setup() { // Inizializza la porta seriale Serial.begin (9600); // Setta i pin di Arduino per l\u0026#39;input e l\u0026#39;output pinMode(PinTrasmissione, OUTPUT); pinMode(PinRicezione, INPUT ); } void loop() { // Il sensore viene attivato // da impulsi più lunghi di 10 microsecondi digitalWrite(PinTrasmissione, LOW); delayMicroseconds(5); digitalWrite(PinTrasmissione, HIGH); delayMicroseconds(10); digitalWrite(PinTrasmissione, LOW); // Ora legge il segnale dal sensore: un impulso // HIGH segna il tempo in microsecondi tra // la trasmissione e la ricezione del segnale. pinMode(PinRicezione, INPUT); durata = pulseIn(PinRicezione, HIGH); // Calcola la distanza partendo dalla durata: // Divide inizialmente per 2 la durata per // tenere conto di andata e ritorno. cm = (durata/2) / 29.1; // Dividiamo per 29.1 che sarebbe come moltiplicare // per 0.0343 (i cm percorsi in un microsecondo // da una onda sonora a livello del mare...). Serial.print(\u0026#34;cm:\u0026#34;); Serial.print(cm); Serial.println(); // Scrive \u0026#34;cm: valore\u0026#34; + una riga vuota delay(250); } Copia e incolla questo programma nel tuo IDE di arduino, fai l’upload con la compilazione automatica, ignora i warning e fai attenzione ai messaggi di errore.\nCome funziona il codice in dettaglio Per prima cosa dobbiamo creare le variabili per il pin di trasmissione e per quello di ricezione. Il pin di trasmissione è connesso al Pin digitale 11, mentre quello di Ricezione va al Pin digitale 12:\nint PinTrasmissione = 11; int PinRicezione = 12; Poi serve creare due variabili del tipo long per conservare i valori di durata e centimetri. La variabile “durata” conserva il tempo tra trasmissione e ricezione del segnale, la variabile “cm” conserva la distanza in centimetri.\nlong durata, cm; Nella fase di setup(), la porta seriale viene inizializzata a 9600 di baud rate, e vengono settati i pin di Output e Input.\nSerial.begin (9600); pinMode(PinTrasmissione, OUTPUT); pinMode(PinRicezione, INPUT ); Nel loop() inneschiamo il sensore mandando un impulso HIGH di 10 microsecondi. Ma prima mandiamo un breve impulso LOW per resettare il sensore e ottenere un impuso HIGH più pulito:\ndigitalWrite(PinTrasmissione, LOW); delayMicroseconds(5); digitalWrite(PinTrasmissione, HIGH); delayMicroseconds(10); digitalWrite(PinTrasmissione, LOW); Fatto questo possiamo leggere il segnale dal sensore, un impulso HIGH la cui durata esprime il tempo in microsecondi passato fra la tramissione dell’impulso e la sua ricezione.\nIn poche parole il sensore invia un impulso elettrico più lungo a secondo della distanza, in questo modo il calcolo aritmetico diventa quindi una semplice moltiplicazione.\ndurata = pulseIn(PinTrasmissione, HIGH); Adesso dobbiamo convertire la durata dell’ impulso elettrico del sensore in una vera distanza in centimetri. La calcoliamo in questo modo solo apparentemente complesso:\nprima versione: distanza = (durata/2) x (la velocità del suono) e poichè la velocità è esattamente: 0.0343 cm/microsecondo... seconda versione: distanza = (durata/2) x 0.0343 e visto che 1/0.0343 equivale a 29.1 avremo* terza versione: distanza = (durata /2) / 29.1 *moltiplicare per 0.343 è come dividere per l'inverso (cioè 29.1) Inoltre dobbiamo dividere per due perchè il sensore non distingue tra andata e ritorno ed emette un valore complessivo errato, per così dire, ma facile da correggere.\nMa alla fine tutto si riduce a questa semplice operazione: distanza = (durata /2) / 29.1 e per ora questo ci basta!\nA fine programma scriviamo il risultato su Monitor Seriale dell’ IDE:\nSerial.print(\u0026quot;cm:\u0026quot;); Serial.print(cm); Serial.println(); Poichè siamo dentro a loop() non ci serve usare istruzioni “FOR” o “WHILE”: la logica interna del software di Arduino ci risparmia questa operazione. Con altri linguaggi senza il costrutto sintattico “loop()” dovremmo arrangiarci scrivendo altre linee di codice.\n• IL PROGRAMMA PER ARDUINO MODIFICATO CON L’USO DI NEWPING Newping è una una libreria alternativa per la Robotica e non solo, molto semplice da usare. NewPing in certe occasioni risulta consigliabile quando dobbiamo limitarci a calcolare distanze in modo diretto, senza elaborare il segnale di ritorno.\n/* * Libreria Open Source disponibile su: https://playground.arduino.cc/Code/NewPing */ #include #define PIN_TRASMISSIONE 11 #define PIN_RICEZIONE 12 #define DISTANZA_MAX 200 // Settiamo i pin di Arduino e la distanza massima NewPing sonar(PIN_TRASMISSIONE, PIN_RICEZIONE, DISTANZA_MAX); void setup() { Serial.begin(9600); } void loop() { delay(50); unsigned int distanza = sonar.ping_cm(); Serial.print(distanza); Serial.println(\u0026#34; cm\u0026#34;); } Come funziona il programma con NewPing Calcolare la distanza di un oggetto con NewPing è molto semplice. Innanzitutto devi includere la la libreria nel programma:\n#include \u0026lt;NewPing.h\u0026gt; Poi come al solito devi definire i Pin di Trasmissione e di ricezione. Il Pin di trasmissione del sensore viene connesso al Pin 11 di Arduino mentre quello di Ricezione finisce sul Pin 12. Bisogna inoltre definire una distanza massima.\n#define PIN_TRASMISSIONE 11 #define PIN_RICEZIONE 12 #define DISTANZA_MAX 200 Adesso possiamo chiamare la libreria dal programma:\nNewPing sonar(PIN_TRASMISSIONE, PIN_RICEZIONE, DISTANZA_MAX); Nel setup(), come al solito bisogna settare la Porta Seriale allavelocità di 9600 baud (bit al secondo).\nSerial.begin(9600); Infine nel loop(), per avere la distanza in cm basta usare la chiamata di funzione ping_cm(). In questo caso possiamo parlare di metodo perchè il linguaggio C++ da cui deriva il linguaggio di Arduino è un linguaggio di programmazione ad oggetti. Noi ci adeguiamo alla terminologia e invece di chiamata a funzione parliamo di metodo.\nunsigned int distanza = sonar.ping_cm(); Serial.print(distanza); Serial.println(\u0026quot; cm\u0026quot;); Le solite istruzioni di print permettono di vedere sull’IDE di Arduino le distanza dagli oggetti anche in movimento. Provate a vedere la differenza di comportamento con il programma precedente. Se tutto ha funzionato correttamente non dovremmo avere differenze.\nRobotdazero.it - post - R.111.1.2.0\n","permalink":"https://www.robotdazero.it/blog/usare-gli-ultrasuoni-con-i-robot/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003ch2 id=\"cosa-sono-i-sensori-a-ultrasuoni\"\u003eCOSA SONO I SENSORI A ULTRASUONI?\u003c/h2\u003e\n\u003cp\u003eIn breve sono l’equivalente elettronico delle orecchie dei pipistrelli, niente horror comunque: si tratta di microfoni specialmente sensibili ai suoni oltre i 20 Khz (Kilo Hertz), generalmente non udibili dall’orecchio umano ma facilmente recepiti dai mammiferi. Pensa a cose come il fischietto per i cani o ai \u003cstrong\u003eping\u003c/strong\u003e usati sui sottomarini per trovare le navi.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eLa versione \u003cem\u003econsumer\u003c/em\u003e del \u003ca href=\"https://it.wikipedia.org/wiki/Sonar\" target=\"_blank\" rel=\"noopener\"\u003esonar\u003c/a\u003e viene usata nei sensori di parcheggio delle automobili e grazie alla enorme diffusione i costi si sono abbassati moltissimo. Ne useremo un esemplare per il movimento autonomo di un piccolo rover.\u003c/p\u003e","title":"Usare gli ultrasuoni con i Robot"},{"content":"Come costruire un rover guidato dalla Intelligenza Artificiale pt.2 Un momento interessante nello sviluppo del rover: la scelta dei motori. Ci sono diverse problematiche che possono sorgere durante lo sviluppo e l\u0026rsquo;aggiornamento dei motori di un robot terrestre. Ecco alcune delle principali:\nPotenza e coppia: I motori devono essere sufficientemente potenti per muovere il robot e superare le resistenze al movimento, come l\u0026rsquo;attrito e la gravità. Devono anche essere in grado di fornire una coppia sufficiente per far fronte a situazioni di carico elevato o terreni accidentati.\nEfficienza energetica: Un robot terrestre deve essere in grado di operare per lunghi periodi di tempo con una quantità limitata di energia. Pertanto, è importante progettare motori che siano efficienti dal punto di vista energetico, minimizzando le perdite di energia durante la conversione e il trasferimento dell\u0026rsquo;energia elettrica.\nControllo del moto: I motori devono essere controllati con precisione per consentire al robot di muoversi in modo accurato e coerente. Ciò richiede algoritmi di controllo sofisticati e sensori adatti per misurare il movimento, la velocità e la posizione del robot.\nAffidabilità e durata: I motori dei robot terrestri devono essere affidabili e in grado di resistere a condizioni ambientali difficili, come vibrazioni, umidità, polvere e temperature estreme. Devono essere progettati per avere una lunga durata e richiedere una manutenzione minima nel corso del tempo.\nScalabilità: A seconda delle dimensioni e dell\u0026rsquo;applicazione del robot, possono essere necessari motori di diverse dimensioni e potenze. Pertanto, è importante che i motori siano progettati in modo scalabile per adattarsi alle esigenze specifiche del robot.\nSicurezza: I motori devono essere progettati tenendo conto della sicurezza sia per il robot stesso che per le persone che lo circondano. Ciò implica l\u0026rsquo;implementazione di meccanismi di sicurezza come sensori di rilevamento degli ostacoli, sistemi di arresto di emergenza e controlli di sicurezza adeguati.\nIl nostro Rover dovrà essere in grado di:\nsuperare ostacoli come piccole rocce e dislivelli funzionare in condizioni meteorologiche avverse, come pioggia e neve comunicare con il mondo esterno, inviando informazioni sulle sue attività e ricevendo comandi remoti se necessario. arrestare i motori e metterli in “stallo” in caso di blocco delle ruote o pendenze eccessive, rilevare consumi di corrente eccessivi e spegnere i motori per due secondi e riaccenderli subito dopo dimunire la alimentazione ai motori in caso di discese e aumentarla in caso opposto usare un normale drive come L298N DC Motor Driver almeno per il prototipo Come impostare il controller della velocità PID Perchè ci serve un sistema PID?\nIl sistema di controllo PID (Proportional-Integral-Derivative) è un algoritmo di controllo automatico utilizzato per regolare un processo in modo preciso e affidabile. Questo sistema utilizza una combinazione di tre elementi di controllo: il termine proporzionale (P), il termine integrale (I) e il termine derivativo (D).\nIl termine proporzionale (P) è proporzionale all\u0026rsquo;errore corrente del processo, cioè alla differenza tra il valore desiderato e il valore attuale. Il termine integrale (I) tiene conto della storia dell\u0026rsquo;errore, integrando l\u0026rsquo;errore nel tempo. Infine, il termine derivativo (D) è proporzionale alla variazione dell\u0026rsquo;errore nel tempo.\nIl controllo PID nel nostro rover dovrà regolare continuamente il processo in modo da minimizzare l\u0026rsquo;errore tra il valore desiderato e il valore effettivo.Il controllo PID è ampiamente utilizzato in molti settori, tra cui l\u0026rsquo;automazione industriale, il controllo di motori, il controllo della temperatura, il controllo del flusso e molto altro ancora.\ncon controllo PID per il rover, seguiremo questi passaggi:\nAcquisire sensori adeguati per la rilevazione della posizione del rover (ad esempio, sensori di posizione ad ultrasuoni o magnetici). Utilizzare un microcontrollore o un microprocessore per elaborare i dati dei sensori e controllare i motori delle ruote. Implementare un algoritmo di controllo PID per regolare la velocità e la direzione del rover in base alla posizione rilevata dai sensori. Testare il sistema di guida e regolare i parametri del controllo PID per migliorare le prestazioni. Perchè abbiamo sceltro Raspberry PI per il controllo dei sensori e la intelligenza artificiale e il controller ESP32 per la gestione dei motori e il sistema di guida La ESP32-CAM (un controller ESP32S con una Cam OV2640)\nriesce perfettamente a rilevare ostacoli negli spazi aperti usando una versione ridotta di un sistema di riconoscimento delle immagini, ma non può gestire altri compiti di ML o tantomeno far girare programmi in MicroPython a velocità accettabile. Durante le nostre prove condotte con Tiny ML siamo riusciti a riconoscere volti, animali e oggetti precisi senza ncecessità di extra RAM o di risorse di CPU aggiuntive, ma\nallenare la ESP32 con molteplici modelli e immagini à semplicemente aldilà degli scopi di un controller\nIl controllo PID è un algoritmo di controllo di feedback che utilizza la regolazione proporzionale integrale e derivata per mantenere un valore di uscita vicino a un valore di riferimento desiderato. Nel caso di un sistema di guida per il rover, il valore di riferimento sarebbe la posizione desiderata del rover e il valore di uscita sarebbe la velocità e la direzione del rover.\nParliamo adesso dell’hardware;\ni link utili che abbiamo usato per scegliere la tipologia di hardware:\nresearchgate - Hardware and software architecture for a Rover robot\ndronebotworkshop.com - robocar\nLa crittografia dei file sul disco rigido è una pratica essenziale per proteggere i dati sensibili e prevenire l\u0026rsquo;accesso non autorizzato ai tuoi file. Quando si tratta di informazioni personali o confidenziali, come password, dati bancari o informazioni sul lavoro, la crittografia può fornire un ulteriore livello di sicurezza.\nLa crittografia dei dati può essere eseguita utilizzando software di crittografia o hardware crittografico. Questi programmi utilizzano algoritmi di crittografia avanzati per \u0026ldquo;mescolare\u0026rdquo; i dati in modo tale che solo chi è autorizzato possa leggerli. In altre parole, i dati vengono trasformati in una forma illeggibile a meno che non si disponga della chiave di decrittazione corretta.\nInoltre, la crittografia dei file è importante anche per proteggere i dati da eventuali attacchi informatici o malware. Se un hacker o un virus informatico riesce ad accedere ai dati sensibili memorizzati sul tuo disco rigido, potrebbe causare danni irreparabili o estorcere informazioni in cambio di denaro. La crittografia rende molto più difficile per gli attaccanti accedere ai tuoi dati, anche se riescono a violare la sicurezza del tuo sistema.\nCi sono molti programmi di crittografia disponibili sul mercato, quindi è importante scegliere uno che soddisfi le tue esigenze di sicurezza e che sia compatibile con il tuo sistema operativo. Alcuni software di crittografia sono gratuiti, mentre altri richiedono un acquisto. In ogni caso, è importante scegliere un programma affidabile e di qualità che offra un alto livello di protezione.\nIn sintesi, la crittografia dei file sul disco rigido è un\u0026rsquo;importante misura di sicurezza per proteggere i dati sensibili da accessi non autorizzati o da attacchi informatici. Scegliere il giusto software di crittografia e utilizzarlo correttamente può prevenire problemi di sicurezza e fornire tranquillità. Inoltre, la crittografia dei dati è una pratica consigliata anche quando si tratta di dati non particolarmente sensibili, poiché può fornire un ulteriore livello di sicurezza per proteggere i tuoi file.\nQuesto documento descrive come costruire un rover guidato dall\u0026rsquo;intelligenza artificiale per compiti di sorveglianza, con la capacità di muoversi autonomamente, ricaricarsi, scattare foto, riconoscere volti e inviare notifiche. Il documento fornisce una panoramica dei passaggi necessari per costruire il rover, inclusa la scelta delle librerie di Machine Learning e l\u0026rsquo;implementazione di un sistema di controllo PID. Viene inoltre discusso l\u0026rsquo;utilizzo di Raspberry PI e ESP32 come hardware per il controllo dei sensori e dei motori.\nRobotdazero.it - post - R.141.1.0.0\n","permalink":"https://www.robotdazero.it/blog/come-costruire-un-robot-guidato-dalla-intelligenza-artificiale-pt2---i-motori/","summary":"\u003ch1 id=\"come-costruire-un-rover-guidato-dalla-intelligenza-artificiale-pt2\"\u003eCome costruire un rover guidato dalla Intelligenza Artificiale pt.2\u003c/h1\u003e\n\u003ch4 id=\"un-momento-interessante-nello-sviluppo-del-rover-la-scelta-dei-motori\"\u003eUn momento interessante nello sviluppo del rover: la scelta dei motori.\u003c/h4\u003e\n\u003cp\u003eCi sono diverse problematiche che possono sorgere durante lo sviluppo e l\u0026rsquo;aggiornamento dei motori di un robot terrestre. Ecco alcune delle principali:\u003c/p\u003e\n\u003cp\u003ePotenza e coppia: I motori devono essere sufficientemente potenti per muovere il robot e superare le resistenze al movimento, come l\u0026rsquo;attrito e la gravità. Devono anche essere in grado di fornire una coppia sufficiente per far fronte a situazioni di carico elevato o terreni accidentati.\u003c/p\u003e","title":"Come costruire un Robot guidato dalla Intelligenza Artificiale pt.2 - I Motori"},{"content":" Gli 8 sensori di temperatura che dovresti usare nei tuoi apparati di controllo Leggere la temperatura con Arduino è un task molto semplice. Esiste in commercio una varietà di sensori con delle caratteristiche molto diverse tra loro e applicazioni sorprendenti. Nel post vi presentamo quelli che abbiamo usato in alcuni impianti con celle rigorifere o in semplici laboratori alimentari.\n1. DHT11 ![sensore di temperatura DHT11](images/sensore di temperatura DHT11.jpg)\nIl DHT11 è un sensore che misura sia temperatura che umidità relativa. Contiene un chip che converte il segnale analogico in digitale e invia in binario i valori ai pin di Arduino o Raspberry. In questo modo vi evita le conversione che sono necessarie ad esempio nei sensori ad ultrasuoni, come spiegato in questo nostro post sul sensore HC-SR04.\nQuesta la tabella delle specifiche del sensore:\nDHT11 Protocollo di Comunicazione one wire (a filo singolo) Alimentazione da 3 a 5.5 V Temperature misurabili da 0º a 50 ºC +/-2 ºC Range Umidità dal 20 al 90% +/-5% Frequenza campionamento 1 secondo Librerie Arduino Adafruit DHT LibraryAdafruit Unified Sensor Library Dove acquistarlo? Controlla i prezzi su Amazon 2. DHT22 ![sensore di temperatura DHT22](images/sensore di temperatura DHT22.jpg)\nIl sensore DHT22 è (chiaramente) molto simile al DHT11. Misura temperatura e umidità come il gemello ma è molto più preciso e permette di registrare anche le temperature al di sotto dello zero (-40 ºC) e per questo lo usiamo di routine per il controllo delle celle frigorifere – automezzi compresi.\nIl prezzo è di poco superiore al DHT11 ma questo per voi non deve essere mai un problema: la qualità è superiore e il maggior prezzo che riuscirete a spuntare nei vostri lavori ripagherà il maggior costo.\nQuesta la tabella delle specifiche del sensore:\nDHT22 Protocollo di comunicazione one wire (filo singolo) Range di alimentazione da 3 a 6 V Temperatura misurabile da -40º a 80 ºC +/-0.5ºC Umidità misurabile da 0 al 100% +/-2% Campionamento ogni 2 secondi Librerie software per Arduino Adafruit DHT LibraryAdafruit Unified Sensor Library Dove acquistarlo? Controlla i prezzi su Amazon 3. LM35DZ ![sensore di temperatura LM35](images/sensore di temperatura LM35.jpg)\nL’ LM35DZ è un sensore di temperatura a rilevazione lineare calibrato in gradi Celsius. L’uscita è analogica ed è direttamente proporzionale alla temperatura: 10 mV per aumento o diminuzione di temperatura. State attenti a comprare esattamente questo sensore con la sigla che finisce in DZ: esistono altre due versioni del chip (si chiamano LM335 e LM34) calibrate in gradi Kelvin e in gradi Fahrenheit.\nEvitate di complicarvi la vita e e comprate solo la versione DZ, i prezzi sono identici!\nE ora la solita tabella, fate attenzione all ottima precisione:\nLM35DZ Protocollo di comunicazione uscita analogica Range di alimentazione da 4 a 30 V Temperatura misurabile da -55º a 150ºC Precisione +/-0.3ºC (a 25ºC) lettura da Arduino con istruzioni del tipo: analogRead() Dove acquistarlo? controlla i prezzi su Amazon 4. BMP180 ![sensore di temperatura BMP180](images/sensore di temperatura BMP180.jpg)\nIl BMP180 viene presentato soprattutto come sensore barometrico, ma è anche un sensore di temperatura e quindo molto comodo per controllare le condizioni atmosferiche. Con un sensore di umidità atmosferica può diventare una centralina di rilevamento a basso costo e dalla buona precisione. Un sensore da provare il prima possibile.\nQuesta la tabella delle specifiche del sensore:\nBMP180 Protocollo di comunicazione uscita analogica Range di alimentazione da 1.8 a 3.6 V Temperatura misurabile da 0º a 65ºC Precisione +/-0.5ºC (a 25ºC) Dove acquistarlo? controlla i prezzi su Amazon 5. TMP36 ![sensore di temperatura TMP36](images/sensore di temperatura TMP36.jpg)\nIl TMP36 è un sensore di temperatura analogico piuttosto affidabile e robusto. Come per gli altri sensori analogici restituisce una tensione proporzionale alla temperatura rilevata. E’ perciò molto simile al LM35DZ di cui abbiamo parlato prima.\nQuesta la tabella delle specifiche del sensore:\nTMP36 Protocollo di comunicazione uscita analogica Range di alimentazione da 2.7 a 5.5 V Temperatura misurabile -40ºC to +125ºC Precisione +/-1.0ºC (a 25ºC) lettura da Arduino con istruzioni del tipo: analogRead() Dove acquistarlo? controlla i prezzi su Amazon\n6. LM75 ![sensore di temperatura LM75](images/sensore di temperatura LM75.jpg)\nL’ LM75 è un altro utilissimo sensore di temperaura. Funziona usando la comunicazione I2C, cioè comunica con Arduino usando i pin SDA e SCL e soprattutto ha un costo bassissimo che gli permette di essere esposto a temperature molto pericolose (125ºC) senza troppe ansie: costa appena 2€!\nQuesta la tabella delle specifiche del sensore:\nLM75 Protocollo di comunicazione I2C Range di alimentazione da 3.0 a 5.5V Temperatura misurabile da -55ºC a 125ºC Precisione +/-2.0ºC (at -55 to 125ºC range)) Librerie per Arduino Librerie I2C per LM75 Dove acquistarlo controlla i prezzi su Amazon 7. DS18B20 ![sensore di temperatura DS18B20](images/sensore di temperatura DS18B20.png)\nIl chip DS18B20 è un sensore di temperatura del tipo “one-wire” come il DHT11 che abbiamo visto all’inizio del post. Perciò necessita di una linea dati con tensione positiva e di una massa (GND) per comunicare con Arduino. Con il DS18B20 è estremamente facile leggere la temperatura in punti multipli perchè ognuno di questi sensori possiede un codice numerico univoco (un pò come il codice IMEI degli smartphone) e basta collegarli ai pin digitali di arduino e leggere in sequenza tutti i sensori collegati.\nQuesta la tabella delle specifiche del sensore:\nDS18B20 Protocollo di comunicazione a filo singolo Range di alimentazione da 3.0 a 5.5V Temperatura misurabile da -55ºC to +125ºC Precisione +/-0.5 ºC (nell’intervallo -10ºC ~ 85ºC) Librerie Arduino DallasTemperatureOneWire Dove acquistarlo? Controlla i prezzi su Amazon 8. DS18B20 tenuta stagna ![sensore di temperatura DS18B20 impermeabile](images/sensore di temperatura DS18B20 impermeabile.jpg)\nIl DS18B20 è disponibile anche in versione impermeabile (a tenuta stagna) e questo gli permette di controllare la temperatura dei liquidi nello stesso range della versione “normale”.\nRobotdazero.it - post - R.114.3.3.0\n","permalink":"https://www.robotdazero.it/blog/i-sensori-di-temperatura-per-la-robotica/","summary":"\u003cstyle\u003e\n.x {\n    transition:transform 0.50s ease;\n}\n\n.x:hover {\n    -webkit-transform:scale(1.75); /* or some other value */\n    transform:scale(1.75);\n}\n\u003c/style\u003e\n\u003ch2 id=\"gli-8-sensori-di-temperatura-che-dovresti-usare-nei-tuoi-apparati-di-controllo\"\u003eGli 8 sensori di temperatura che dovresti usare nei tuoi apparati di controllo\u003c/h2\u003e\n\u003cp\u003eLeggere la temperatura con Arduino è un task molto semplice. Esiste in commercio una varietà di sensori con delle caratteristiche molto diverse tra loro e applicazioni sorprendenti. Nel post vi presentamo quelli che abbiamo usato in alcuni impianti con celle rigorifere o in semplici laboratori alimentari.\u003c/p\u003e","title":"I sensori di temperatura per la robotica"},{"content":" INIZIAMO AD USARE LA SHELL DI UBUNTU Useremo Ubuntu con dei comandi che non sono purtroppo disponibili su Windows e non potrebbero mai girare su una semplice scheda Arduino. In questo post vedremo come usare fuser nel terminale di Ubuntu.\nCOME SCOPRIRE I PROGRAMMI CHE BLOCCANO UNA CERTA PORTA SU UBUNTU? 👉 Mettiamo che abbiate lanciato e dimenticato un programma proprio su una porta che vi serve. Ad esempio la porta 3000 di Nodejs o la 8000 di Python/Django. Come fare a trovare il programma preciso e a stopparlo? Potremmo lanciare il comando ps -ea per andare a spulciare tra tutti i programmi in esecuzione ma perderemmo troppo tempo.\nScriviamo invece sul prompt di Ubuntu (che si chiama SHELL) il comando seguente e otterremo in un instante il PID del programma: $ fuser -i :3000 oppure\n$ fuser -i :8000 facendo attenzione a lasciare uno spazio prima dei “due punti”.\nRiceveremo un messaggio del tipo:\nCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME node 16176 utente 22u IPv4 26591333 0t0 TCP :3000 (LISTEN)\ne da questo siamo in grado di capire che un server node sta girando in sottofondo (come demon) con un PID = 16176. Per bloccarlo ci basta scrivere:\n$ kill -9 16176 (o qualunque numero sia il PID) facendo come sempre attenzione agli spazi.\nIL COMANDO NETSTAT In alternativa puoi usare invece netstat insieme a grep per cercare il programma che occupa la porte 80 o 3000 o 8000.\nsudo netstat -ltnp | grep 80 sudo netstat -ltnp | grep 3000 sudo netstat -ltnp | grep 8000 Dopo avere ottenuto il messaggio:\ntcp 0 0 0.0.0.0:3000 0.0.0.0: LISTEN 16176/node\npossiamo procedere con il solito comando kill -9 PID per “stoppare” il programma che ci dà fastidio.\nPERCHÈ È IMPORTANTE USARE LA SHELL DI UBUNTU La shell di Ubuntu è potente e flessibile. Può essere utilizzata per eseguire un\u0026rsquo;ampia gamma di attività, dalla gestione di file e cartelle al controllo di processi e servizi. La shell di Ubuntu è facile da imparare. L\u0026rsquo;interfaccia della shell è semplice e diretta, e ci sono molte risorse disponibili per aiutarti a imparare a usarla. La shell di Ubuntu è compatibile con una vasta gamma di software. Puoi utilizzare la shell di Ubuntu per eseguire programmi che sono stati scritti per Linux, Windows e macOS. La shell di Ubuntu è gratuita e open source. Puoi utilizzarla e modificarla a tuo piacimento senza alcun costo. Ecco alcuni esempi di come i programmatori evoluti possono utilizzare la shell di Ubuntu:\nPer automatizzare le attività. La shell di Ubuntu può essere utilizzata per creare script che eseguono automaticamente una serie di comandi. Questo può essere utile per automatizzare attività ripetitive o per eseguire attività che sono troppo difficili da eseguire manualmente. Per risolvere i problemi. La shell di Ubuntu può essere utilizzata per ottenere informazioni dettagliate sul sistema e sui processi in esecuzione. Questo può essere utile per diagnosticare e risolvere problemi di sistema. Per sviluppare software. La shell di Ubuntu può essere utilizzata per compilare codice, eseguire test e eseguire il debug di programmi. Questo può essere utile per sviluppatori di tutti i livelli di esperienza. Se sei un programmatore evoluto, ti consiglio di dare un\u0026rsquo;occhiata alla shell di Ubuntu. È uno strumento potente e flessibile che può aiutarti a essere più produttivo e a risolvere i problemi più velocemente.\nESISTE UN EQUIVALENTE SU WINDOWS? Seppure in linea di massima chi lavora nel mondo IOT tende a preferire Linux, anche nel mondo Windows esiste un comando simile.\n👉 L'equivalente Windows del comando \"fuser\" è il comando \"lsof\". Il comando \"lsof\" viene utilizzato per elencare tutti i file e le porte aperte su un sistema. Questo comando può essere utilizzato per trovare i processi che stanno utilizzando determinati file o porte, o per trovare i file o le porte che sono in uso da più di un processo. Ecco un esempio di come utilizzare il comando \u0026ldquo;lsof\u0026rdquo;:\n$ lsof -i Questo comando elencherà tutti i file aperti su tutte le porte di rete. Puoi anche utilizzare il comando \u0026ldquo;lsof\u0026rdquo; per elencare i file aperti su una porta specifica, come ad esempio:\n$ lsof -i :80 Questo comando elencherà tutti i file aperti sulla porta 80.\nIl comando \u0026ldquo;lsof\u0026rdquo; può essere uno strumento utile per trovare file o porte che sono in uso da più di un processo, o per trovare processi che stanno utilizzando determinati file o porte.\nRobotdazero.it - post - R.172.3.3.5\n","permalink":"https://www.robotdazero.it/blog/come-usare-fuser-e-netstat-su-ubuntu/","summary":"\u003chr\u003e\n\u003ch3 id=\"iniziamo-ad-usare-la-shell-di-ubuntu\"\u003eINIZIAMO AD USARE LA SHELL DI UBUNTU\u003c/h3\u003e\n\u003cp\u003eUseremo Ubuntu con dei comandi che non sono purtroppo disponibili su Windows e non potrebbero mai girare su una semplice scheda Arduino. In questo post vedremo come usare \u003cstrong\u003efuser\u003c/strong\u003e nel terminale di Ubuntu.\u003c/p\u003e\n\u003ch3 id=\"come-scoprire-i-programmi-che-bloccano-una-certa-porta-su-ubuntu\"\u003eCOME SCOPRIRE I PROGRAMMI CHE BLOCCANO UNA CERTA PORTA SU UBUNTU?\u003c/h3\u003e\n\u003cdiv class=\"alert alert-doks d-flexflex-shrink-1\" role=\"alert\"\u003e 👉 \nMettiamo che abbiate lanciato e dimenticato un programma proprio su una porta che vi serve. Ad esempio la porta 3000 di Nodejs o la 8000 di Python/Django. Come fare a trovare il programma preciso e a stopparlo?\n\u003c/div\u003e\n\u003cbr\u003e\n\u003cp\u003ePotremmo lanciare il comando \u003cstrong\u003eps -ea\u003c/strong\u003e per andare a spulciare tra tutti i programmi in esecuzione ma perderemmo troppo tempo.\u003c/p\u003e","title":"Come usare fuser e netstat su Ubuntu"},{"content":"LA QUALITÀ DELL\u0026rsquo;ARIA NEGLI AMBIENTI CHIUSI (IAQ) La qualità dell\u0026rsquo;aria negli ambienti chiusi (IAQ) è la misura di quanto l\u0026rsquo;aria all\u0026rsquo;interno di un edificio sia sana da respirare. L\u0026rsquo;IAQ può essere influenzata da una serie di fattori, tra cui la presenza di inquinanti, la ventilazione e l\u0026rsquo;umidità.\nUna buona IAQ è importante per la salute e il benessere di tutti coloro che trascorrono del tempo in un edificio. Una scarsa IAQ può causare una serie di problemi di salute, tra cui:\nRespirazione affannosa Tosse Mal di testa Stanchezza Occhi rossi e irritati Naso che cola Allergie I RIMEDI POSSIBILI Esistono una serie di cose che possono essere fatte per migliorare l\u0026rsquo;IAQ in un edificio, tra cui:\nRidurre l\u0026rsquo;esposizione a inquinanti, come fumo, gas di scarico, prodotti chimici e polvere. Aumentare la ventilazione, aprendo le finestre o utilizzando un sistema di ventilazione meccanica. Mantenere un livello di umidità adeguato, tra il 40% e il 60%. Pulire regolarmente l\u0026rsquo;edificio, in particolare i pavimenti, le pareti e i mobili. Utilizzare purificatori d\u0026rsquo;aria. È importante prendere in considerazione la qualità dell\u0026rsquo;aria negli ambienti chiusi quando si sceglie un luogo in cui vivere, lavorare o studiare. Una buona IAQ può contribuire a migliorare la salute e il benessere di tutti coloro che trascorrono del tempo in un edificio.\nEcco alcuni suggerimenti aggiuntivi per migliorare l\u0026rsquo;IAQ in casa:\nSmetti di fumare in casa. Utilizza una cappa da cucina quando cucini. Pulisci regolarmente i filtri dell\u0026rsquo;aria condizionata e del riscaldamento. Evita di usare prodotti chimici aggressivi per la pulizia. Tieni le finestre chiuse quando fa freddo o umido fuori. Installa un purificatore d\u0026rsquo;aria. COME LA NOSTRA SCHEDA PUÒ MIGLIORARE LA TUA SICUREZZA I sensori di 4/5 anni spesso controllavano singolarmente solo il monossido di carbonio, i vapori di trielina], il fumo delle sigarette e altri gas nocivi separatamente. Se volevi misurare la presenza di tutti i gas pericolosi dovevi munirti di almeno 2/3 dispositivi separati.\nSi possono controllare gli eccessi dell\u0026rsquo;aria condizionata nella tua casa/azienda?\nVuoi sapere se qualcuno sta spingendo a manetta i condizionatori nella tua azienda in barba alle recenti raccomandazioni del governo ?\nVuoi capire se qualcuno sta volontariamente usando l\u0026rsquo;aria condizionata con le finestre aperte nella tua casa-vacanza, ad esempio e non vuoi perdere tempo a ispezionare di continuo?\nEsiste un modo abbastanza preciso di capirlo\nSe la pressione e la umidità di una stanza coincidono con quelle esterne ma NON LA TEMPERATURA puoi scommettere che qualcosa di tremendamente costoso accadrà alla tua bolletta dell’energia!\nE inoltre come potresti controllare se qualcuno sta usando l’aria condizionata a 18 gradi quando le temperatura ottimale non è mai inferiore ai 22 gradi? E soprattutto come controllare se lo ha fatto nei giorni o mesi precedenti?\nFino ad oggi non hai potuto controllare tutto questo a prezzi ragionevoli, ma dal 2022 con i nuovi microsensori a basso costo e bassissimo consumo puoi farlo. E seppure non siamo i soli ad averli adottati (su Amazon trovi alternative similari) crediamo di poterti offrire dei vantaggi irrinunciabili!\nLa tabella completa dei gas rilevati dalla scheda: Propano, Metano, Butano, vapori di Alcool, vapori di Trielina, fumo di sigaretta, Idrocarburi aromatici, Monossido di Carbonio e inoltre: Vuoi controllare se qualcuno fuma nella tua azienda o istituto in barba a ogni regolamento e magari vorresti scoprire in quale locale ci sono state le maggiori violazioni? Con la scheda sorveglianza di Robotdazero puoi controllare il livello di ogni parametro nei giorni e nei mesi passati!\nRobotdazero.it - post - R.112.2.2.0\n","permalink":"https://www.robotdazero.it/blog/la-nostra-centralina-di-controllo-della-qualita-dellaria/","summary":"\u003ch2 id=\"la-qualità-dellaria-negli-ambienti-chiusi-iaq\"\u003eLA QUALITÀ DELL\u0026rsquo;ARIA NEGLI AMBIENTI CHIUSI (IAQ)\u003c/h2\u003e\n\u003cp\u003eLa qualità dell\u0026rsquo;aria negli ambienti chiusi (IAQ) è la misura di quanto l\u0026rsquo;aria all\u0026rsquo;interno di un edificio sia sana da respirare. L\u0026rsquo;IAQ può essere influenzata da una serie di fattori, tra cui la presenza di inquinanti, la ventilazione e l\u0026rsquo;umidità.\u003c/p\u003e\n\u003cp\u003eUna buona IAQ è importante per la salute e il benessere di tutti coloro che trascorrono del tempo in un edificio. Una scarsa IAQ può causare una serie di problemi di salute, tra cui:\u003c/p\u003e","title":"La nostra centralina di controllo della “Qualità dell’Aria”"},{"content":"In questa primo articolo di una serie piuttosto lunga vedremo come costruire un rover guidato dalla intelligenza artificiale destinato a compiti di sorveglianza \u0026ldquo;reale\u0026rdquo; quindi con la capacità di:\nmuoversi da solo H24, ricaricarsi da solo collegandosi alla presa 220V o 12V, scattare foto di presunti intrusi, riconoscere voci e volti familiari, aprire e chiudere porte e cancelli, inviare sms o email in caso di pericolo. superare piccoli ostacoli non oltre i 6/10 cm grazie a grosse ruote o cingoli in gomma In linea di massima in questi post seguiremo questo percorso:\nProgettazione del rover, compresa la scelta delle librerie Machine Learning Acquisto dei componenti necessari Costruzione del telaio e del sistema di guida Installazione del sistema di alimentazione e ricarica Installazione del sistema di sorveglianza e riconoscimento facciale / vocale Programmazione dell'intelligenza artificiale Test e debugging del rover Details Usare le nuove librerie disponibile per Python consente di riconoscere oggetti e mura perimetrali. Oltre all\u0026rsquo;ovvio utilizzo per compiti di sorveglianza i programmi ML consentono di ottimizzare il movimento del Rover e di evitare buche e ostacoli di altezza eccessiva.\nIl primo argomento che affronteremo sarà la scelta della libreria di Machine Learning per guidare il robot e in via preliminare abbiamo pensato a queste librerie;\nTensorFlow Lite Tiny ML Keras Quali librerie ML si possono installare sul PI 400\u0026hellip; Per controllare le prestazioni di Tensor Flow Lite abbiamo seguito questo tutorial su Github senza però installare Coral USB Accelerator: qui il link per acquistare Coral USB su Amazon. Per installare Tiny ML su Raspberry abbiamo seguito questo articolo in italiano su emcelettronica. Infine come terza opzione abbiamo testato Keras seguendo questo tutorial su Teknotut. Tutte sono in grado di girare sulla piattaforma hardware che abbiamo deciso di provare, cioè un “Raspberry PI 400” con le seguenti caratteristiche:\nRAM: 4GB, Processore: Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.8GHz Connettività: Gigabit Ethernet, Wi-Fi dual-band 802.11ac, Bluetooth 5.0, BLE Porte: 2 USB 3.0, 2 USB 2.0, 2 micro-HDMI, jack audio da 3,5 mm, GPIO a 40 pin Alimentazione: 5V DC tramite USB-C o GPIO 💡 Lo Raspberry 400 funziona a 1.8GHz invece dei soliti 1.5GHz delle altre versioni del RPI ed è overclockabile fino a 2.1 GHz grazie alla enorme aletta di raffreddamento. In realtà la aletta è tale solo nominalmente perchè ha dimensioni di circa 24x10cm. Con il RPI 400 siamo riusciti a risolvere di colpo tutti i problemi di riscaldamento della piattaforma hardware How to install heat sinks on a Raspberry Pi 3 B+ ? https://t.co/jIn9Xg1ZmQ #raspberrypi pic.twitter.com/RWI4mXJQo3\n\u0026mdash; RaspberryTips (@TipsRaspberry) June 3, 2023 I requisiti di mobilità che dovranno essere risolti dalla CPU Il nostro Rover dovrà essere in grado di: superare ostacoli come piccole rocce e dislivelli funzionare in condizioni meteorologiche avverse, come pioggia e vento comunicare con il mondo esterno, inviando informazioni sulle sue attività e ricevendo comandi remoti se necessario. arrestare i motori e metterli in “stallo” in caso di blocco delle ruote o pendenze eccessive, rilevare consumi di corrente eccessivi e spegnere i motori per due secondi e riaccenderli subito dopo diminuire la alimentazione ai motori in caso di discese e aumentarla in caso opposto usare un driver economico come il L298N DC Motor Driver I FATTORI DA CONSIDERARE QUANDO SI SCEGLIE LA CPU\u0026hellip; Dimensioni e peso del robot: la CPU dovrebbe essere abbastanza piccola da adattarsi al corpo del robot e abbastanza leggera da non appesantire il robot. Requisiti di alimentazione del robot: la CPU dovrebbe consumare una quantità ragionevole di energia in modo che il robot possa funzionare a lungo con una batteria. Capacità del robot: la CPU dovrebbe essere abbastanza potente da gestire i compiti del robot. Ad esempio, se il robot verrà utilizzato per compiti complessi come il riconoscimento di oggetti o la navigazione, avrà bisogno di una CPU più potente di un robot che verrà utilizzato solo per compiti semplici come muoversi ed evitare gli ostacoli. Sistema operativo del robot: La CPU deve essere compatibile con il sistema operativo del robot. La maggior parte dei piccoli robot usano Linux, ma alcuni possono utilizzare altri sistemi operativi come Windows o Android. Alcune delle alternative che abbiamo considerato: Raspberry Pi: Il Raspberry Pi è una scelta popolare per i piccoli robot perché è conveniente, piccolo e potente. È compatibile con una vasta gamma di sensori e attuatori e può eseguire una varietà di sistemi operativi, tra cui Linux che useremo nel nostro progetto.\nArduino: Arduino è un\u0026rsquo;altra scelta popolare per i piccoli robot. È un microcontrollore, il che significa che è meno potente di una CPU come il Raspberry Pi, ma è anche molto più piccolo ed economico. Arduino è compatibile con una vasta gamma di sensori e attuatori, e può eseguire una varietà di linguaggi di programmazione, tra cui C e C++.\n![](images/Nvidia Jetson Nano.jpg)\nNvidia Jetson Nano: Nvidia Jetson Nano è una potente CPU progettata per applicazioni AI. È compatibile con una vasta gamma di sensori e attuatori e può eseguire Linux e Jetpack, la piattaforma di sviluppo AI di Nvidia.\nE inoltre, perchè non possiamo usare soltanto la CPU principale per guidare i motori\u0026hellip; Il nostro Rover dovrà regolare continuamente la velocità dei motori in base alle esigenze di sterzata. La architettura a 6 ruote che abbiano scelto ha bisogno di sterzare cambiando la velocità delle singole ruotei e deve farlo in maniera precisa con ritardi minimi, pena vedere il rover ondeggiare durante le manovre. Perchè ci serve un sistema PID?\n👉 Il sistema di controllo PID (Proportional-Integral-Derivative) è un algoritmo di controllo automatico utilizzato per regolare un processo in modo preciso e affidabile. Questo sistema utilizza una combinazione di tre elementi di controllo: il termine proporzionale (P), il termine integrale (I) e il termine derivativo (D). Il termine proporzionale (P) è proporzionale all\u0026rsquo;errore corrente del processo, cioè alla differenza tra il valore desiderato e il valore attuale. Il termine integrale (I) tiene conto della storia dell\u0026rsquo;errore, integrando l\u0026rsquo;errore nel tempo. Infine, il termine derivativo (D) è proporzionale alla variazione dell\u0026rsquo;errore nel tempo.\nIl controllo PID nel nostro rover dovrà regolare continuamente il processo in modo da minimizzare l\u0026rsquo;errore tra il valore desiderato e il valore effettivo.Il controllo PID è ampiamente utilizzato in molti settori, tra cui l\u0026rsquo;automazione industriale, il controllo di motori, il controllo della temperatura, il controllo del flusso e molto altro ancora.\ncon controllo PID per il rover, seguiremo questi passaggi:\nAcquisire sensori adeguati per la rilevazione della posizione del rover (ad esempio, sensori di posizione ad ultrasuoni o magnetici). Utilizzare un microcontrollore o un microprocessore per elaborare i dati dei sensori e controllare i motori delle ruote. Implementare un algoritmo di controllo PID per regolare la velocità e la direzione del rover in base alla posizione rilevata dai sensori. Testare il sistema di guida e regolare i parametri del controllo PID per migliorare le prestazioni. PERCHÈ ABBIAMO SCELTO RASPBERRY\u0026hellip; LE PRESTAZIONI SONO IL PRINCIPALE PARAMETRO PER SCEGLIERE LA CPU? E\u0026rsquo; innegabile che le prestazioni siano un punto chiave nella scelta, perchè gli algoritmi di ML impongono la elaborazione di miliardi di singole operazione al secondo (pensiamo alla chiavette TPU come Google Coral o Orange PI). Tale carico di lavoro ci propone un serio dubbio da risolvere in fase di pianificazione: La nostra CPU dovrà elaborare in toto i dati (immagini e video ) o deve appogiarsi ad unita\u0026rsquo; di calcolo esterno?\nNel nostro caso abbiamo deciso di scegliere la seconda strada e ricorrere alla unita di elaborazione esterna con Tensorfklow e quindi abbiamo optato per l\u0026rsquo;ecosistema Google Coral e Tensorflow.\nIn genere nella costuzione di robot mobili o di rover ci si orienta come prima scelta vero il Raspberry PI4 con 8GB di memoria. In alternativa si può usare una CPU della gamma Jetson Nvidia con simile capacità di memoria RAM ma con un coprocessore grafico molto più potente per sostenere il carico del riconoscimento delle immagini. Nel nostro Rover che sarà nella classe degli 8/10 Kg di peso al completo volevamo avere molta più liberta nella scelta della CPU perchè il consumo e il peso delle batterie sono meno importanti.\nPOTEVAMO USARE UNA CPU INTEL PER IL ROVER? ![Pc Intel su Amazon refurbished](./images/Screenshot from 2023-04-30 18-12-15.resized.png)\nA suggerirci questa alternativa è stato questo video su YT con un Rover a 6 ruote e un laptop Intel letteralmente appoggiato sopra lo chassis. I vantaggi di una soluzione simile sono ovvi, primo fra tutti poter usare un PC ad alte prestazioni spendendo 100 euro su ebay o su Amazon (refurbished).\n![](./images/Screenshot from 2023-04-30 18-06-15.resized.png)\nGli svantaggi però secondo noi sono maggiori dei vantaggi, primo fra tutti il consumo di una CPU I3/5/7\nQuanto consuma una CPU Raspberry? Nella tabella sopra vediamo i consumi della gamma RPI a partire dal modello minore Zero fino al PI4B+ (il 400 è equivalente) in varie situazioni di utilizzo. Come possiamo notare anche sotto condizioni di forte carico l\u0026rsquo;assorbimento di corrente non supera gli 885mA. Quindi ammettendo un assorbimento di circa 1A a 5V staremo sempre comodamente sotto i 5W di consumo.\nPer avere un termine di paragone un portatile Intel con un CPU i3 e disco SSD interno può consumare 4/10 volte tanto:\n👉 Il consumo medio di energia di un pc portatile può, quindi, oscillare tra i 20 e i 50 W nel caso dei modelli a risparmio energetico, per arrivare ad assorbire anche 130 W nel caso dei modelli di dimensioni superiori o dalle prestazioni più elevate. Il dato viene da un sito autorevole come energit.it che vi consigliamo di leggere per approfondire l\u0026rsquo;argomento.\nPERCHÈ NON POTEVAMO USARE ESP32 O ARDUINO PER LA ELABORAZIONE DELLE IMMAGINI IN MACHINE LEARNING Il controller ESP32 riesce a rilevare ostacoli negli spazi aperti usando una versione ridotta di un sistema di riconoscimento delle immagini, ma non può gestire altri compiti di ML o tantomeno far girare programmi in MicroPython a velocità accettabile. Durante le nostre prove condotte con Tiny ML siamo riusciti a riconoscere volti, animali e oggetti precisi senza ncecessità di extra RAM o di risorse di CPU aggiuntive, ma\n👉 Allenare la ESP32 con molteplici modelli e immagini è semplicemente aldilà degli scopi di un controller Il controllo PID è un algoritmo di controllo di feedback che utilizza la regolazione proporzionale integrale e derivata per mantenere un valore di uscita vicino a un valore di riferimento desiderato. Nel caso di un sistema di guida per il rover, il valore di riferimento sarebbe la posizione desiderata del rover e il valore di uscita sarebbe la velocità e la direzione del rover.\nRobotdazero.it - post - R.140.1.0.0\n","permalink":"https://www.robotdazero.it/blog/come-costruire-un-robot-guidato-dalla-intelligenza-artificiale-pt1---la-cpu/","summary":"\u003ch4 id=\"in-questa-primo-articolo-di-una-serie-piuttosto-lunga-vedremo-come-costruire-un-rover-guidato-dalla-intelligenza-artificiale-destinato-a-compiti-di-sorveglianza-reale\"\u003eIn questa primo articolo di una serie piuttosto lunga vedremo come costruire un rover guidato dalla intelligenza artificiale destinato a compiti di sorveglianza \u0026ldquo;reale\u0026rdquo;\u003c/h4\u003e\n\u003cp\u003equindi con la capacità di:\u003c/p\u003e\n\u003col\u003e\n \t\u003cli\u003emuoversi da solo H24,\u003c/li\u003e\n \t\u003cli\u003ericaricarsi da solo collegandosi alla presa 220V o 12V,\u003c/li\u003e\n \t\u003cli\u003escattare foto di presunti intrusi, riconoscere voci e volti familiari,\u003c/li\u003e\n \t\u003cli\u003eaprire e chiudere porte e cancelli,\u003c/li\u003e\n \t\u003cli\u003einviare sms o email in caso di pericolo.\u003c/li\u003e\n \t\u003cli\u003esuperare piccoli ostacoli non oltre i 6/10 cm grazie a grosse ruote o cingoli in gomma\u003c/li\u003e\n\u003c/ol\u003e\n\u003cbr\u003e\n\u003cp\u003eIn linea di massima in questi post seguiremo questo percorso:\u003c/p\u003e","title":"Come costruire un Robot guidato dalla Intelligenza Artificiale pt.1 - La CPU"},{"content":" immagine creata con © Bing image creator\nLa differenza tra corrente e tensione spesso riesce a far naufragare la passione di tanti neo appassionati di elettronica. Anche dei calcoli semplicissimi sulla resistenza da collegare ad un LED appaiono misteriosi se non si hanno chiari questi due concetti.\nLa tensione è la differenza di “potenziale” tra due punti e la corrente è il numero di cariche elettriche che scorrono tra i due punti in un secondo.\nIn due parole abbiamo descritto un fenomeno molto semplice: ma, nonostante la apparente semplicità, questi concetti riescono sempre a creare confusione tra i neofiti. Sfortunatamente non possiamo far finta di nulla e passare ad altro perchè stiamo parlando delle “dimensioni base” della Elettronica e con la resistenza ne formano la legge fondamentale: la legge di Ohm. Avrai sempre a che fare con tensione e corrente e lo testimonia il fatto che sul case dei componenti ne vengano riportati i valori specifici espressi in Volt, abbreviato con una V e in Ampere, abbreviato con una A.\nSe la Corrente sembra un concetto intuitivo legato a quanti elettroni passano in un circuito, la idea di tensione sembra un poco più evasiva e per questo proviamo un poco ad approfondirla.\nCosa è davvero la Tensione La tensione è la Forza che spinge gli elettroni carichi attraverso un circuito elettrico e permette loro di svolgere un lavoro come accendere una luce o far girare un motorino. Con una bassa tensione nulla di tutto questo può funzionare.\nLa differenza tra corrente e tensione: proviamo a capire meglio con con degli esempi pratici Per capire la differenza tra le due grandezze voglio usare un approccio “facile” al problema e aiutarmi con una similitudine, quella tra carica elettrica e acqua: un paragone sicuramente forzato ma che ha aiutato tante persone ad avvicinarsi alla Elettronica (me compreso).\nImmagina di avere 2 serbatoi di acqua a differenti altezze e collegati da un tubo. Per la differenza di altezza ogni volta che apri il tubo l’acqua scenderà dal serbatoio posto più in alto a quello posto più in basso. OK?\nSe i serbatoi fossero alla stessa altezza l’acqua non si muoverebbe e non avremmo nessuna corrente idrica. Bene. Adesso facciamo finta che al posto dell’acqua ci siano delle cariche elettriche e che al posto del tubo ci sia un filo di rame.\nE ancora che invece di differenti altezze ci sia una differenza di potenziale elettrico, cioè molti elettroni concentrati in solo contenitore.\nMaggiore è la differenza di carica elettrica tra i due contenitori e maggiore sarà il potenziale capace di farle muovere. Gli elettroni si sposteranno dalla zone a carica più alta a quella a carica più bassa fino a quando i due serbatoi saranno a potenziale zero cioè avranno la stessa densità di carica. La velocità con cui si sposteranno misura la tensione.\nLa definizione “accademica” di cosa significano tensione e corrente Abbiamo capito più o meno cosa è la tensione, ma come viene definita esattamente in ambito scientifico? In questo modo:\n👉 La tensione è il LAVORO che bisogna fornire per spostare una singola carica elettrica all\u0026#8217; interno di in un campo elettrico. Nel primo caso non sentiresti nessuno sforzo nello spostare l’elettrone in un punto qualsiasi e con una traiettoria qualsiasi, ma nella seconda figura sentiresti l’effetto delle cariche elettriche (in rosso quelle positive, in blu quelle negative) che lo attirano o respingono. Per continuare su una specifica traiettoria, mettiamo rettilinea, dovresti esercitare una certa forza per compensare l’attrazione e la repulsione delle cariche vicine.\nSi deve applicare una certa forza su una distanza X e cioè fare un lavoro per mantenere la traiettoria. La quantità di lavoro impiegata “misura” la tensione.\nCapire gradualmente la differenza tra tensione e corrente Non ti preoccupare di capire subito le sottigliezze che distinguono corrente e tensione: sono come le regole della grammatica italiana: tutti noi le applichiamo senza ragionarci sopra, perchè con la pratica ci sono diventate naturali. Ti accadrà lo stesso con la Elettronica, se insisterai con Robotdazero e non vorrai capire tutto immediatamente!\nRicordati che il 99 per cento degli elettricisti riesce a fare il proprio lavoro senza sapere cosa sia un “campo elettrico”!\nPensa a due serbatoi di con gas ad alta pressione, uno a 100 atmosfere e al’altro a 60 atmosfere. Cosa succederebbe se collegassimo i 2 serbatoi con un tubo di acciaio e un rubinetto? Accadrebbe che il gas ad alta pressione inizierebbe a muoversi verso il serbatoio a pressione più bassa fino a colmare la differenza (diciamo 80 e 80 atmosfere).\n👉 La tensione è la differenza di potenziale tra due ZONE distinte, dovute a un accumulo di cariche elettriche. La corrente è il movimento di cariche che cerca di riequilibrare il sistema. E per finire: La Elettronica moderna si basa molto sulla tensione piuttosto che sul flusso di corrente. Il motivo? Per misurare la tensione basta appoggiare i puntali di un tester nei 2 punti da controllare. Per misurare la corrente devi invece inserirti nel flusso degli elettroni e perciò scollegare i fili o addirittura tagliare le piste del circuito.\nRobotdazero.it - post - R.172.3.2.2\n","permalink":"https://www.robotdazero.it/blog/la-differenza-tra-corrente-e-tensione/","summary":"\u003cstyle\u003e\n.x {\n    transition:transform 0.40s ease;\n    transition-delay: 0.60s;\n}\n.x:hover {\n    -webkit-transform:scale(1.70); /* or some other value */\n    transform:scale(1.70);\n}\n\u003c/style\u003e\n\u003cp\u003e\u003ca style=\"font-size: 13px\" href=\"https://www.bing.com/images/create?FORM=GENILP\" target=\"_blank\" rel=\"noopener\"\u003eimmagine creata con © Bing image creator\u003c/a\u003e\u003c/p\u003e\n\u003cbr\u003e\n\u003cp\u003eLa differenza tra corrente e tensione spesso riesce a far naufragare la passione di tanti neo appassionati di \u003ca href=\"https://www.robotdazero.it/standard/elettronica/\"\u003eelettronica\u003c/a\u003e. Anche dei calcoli semplicissimi sulla resistenza da collegare ad un LED appaiono misteriosi se non si hanno chiari questi due concetti.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eLa tensione è la differenza di “potenziale”\u003c/strong\u003e tra due punti e la corrente è il numero di cariche elettriche che scorrono tra i due punti in un secondo.\u003c/p\u003e","title":"La differenza tra corrente e tensione"},{"content":" In questo post scoprirai come costruire una matrice a LED con max7219 Arduino. Questa è forse la più scenografica delle applicazioni con Arduino, facile da realizzare a livello hardware ma utile per conoscere i “driver” delle Matrici a LED.\nIL CHIP “MAX7219” Il chip MAX7219 è un driver per display LED comunemente utilizzato in progetti di elettronica fai-da-te e hobbyistici. Si tratta di un dispositivo a 8 pin che può essere utilizzato per controllare fino a 8 display LED a 7 segmenti, un display LED a matrice 8x8 o 64 LED individuali. E\u0026rsquo; un dispositivo seriale, il che significa che può essere controllato tramite un\u0026rsquo;interfaccia seriale a 4 bit. Ciò lo rende facile da utilizzare con microcontrollori come Arduino, Raspberry Pi e ESP32.\n👉 La principale differenza tra un'interfaccia seriale a 4 bit e le altre interfacce seriali è il numero di bit che vengono trasferiti in parallelo in un singolo trasferimento. Un'interfaccia seriale a 4 bit trasferisce 4 bit in parallelo, mentre le altre interfacce seriali possono trasferire 8 bit, 16 bit o più. - Questa differenza nel numero di bit trasferiti in parallelo ha una serie di conseguenze. Innanzitutto, l'interfaccia seriale a 4 bit richiede meno fili per trasmettere i dati. Ciò rende l'interfaccia più semplice da implementare e meno costosa. In secondo luogo, l'interfaccia seriale a 4 bit può trasferire i dati a velocità inferiori rispetto alle altre interfacce seriali. L\u0026rsquo;interfaccia seriale a 4 bit è spesso utilizzata in applicazioni in cui il numero di dati da trasferire è relativamente basso e la velocità di trasferimento non è un fattore critico. I pregi del MAX7219 Questo chip offre una serie di funzioni che lo rendono un driver LED versatile:\nControllo individuale dei segmenti LED: il MAX7219 consente di controllare individualmente ogni segmento di un display LED. Ciò consente di visualizzare un\u0026rsquo;ampia varietà di caratteri e simboli. Decodifica automatica: il MAX7219 può decodificare automaticamente i numeri da 0 a 9, le lettere maiuscole da A a F e il punto decimale. Ciò semplifica la visualizzazione di numeri e lettere su un display LED. Selezione dei digit: il MAX7219 consente di selezionare quali digit di un display LED devono essere visualizzati. Ciò è utile per visualizzare solo una parte di un display LED, ad esempio per visualizzare un numero o una lettera. Modalità di risparmio energetico: il MAX7219 dispone di una modalità di risparmio energetico che consente di ridurre il consumo di corrente. Applicazioni del chip Il MAX7219 può essere utilizzato in una varietà di applicazioni, tra cui:\nDisplay di testo e numeri: il MAX7219 può essere utilizzato per visualizzare testo e numeri su un display LED. È una buona scelta per applicazioni come orologi, contatori, display di temperatura e altro ancora. Display di immagini: il MAX7219 può essere utilizzato per visualizzare immagini su un display LED. È una buona scelta per applicazioni come giochi, grafici e altro ancora. Display di simboli: il MAX7219 può essere utilizzato per visualizzare simboli su un display LED. È una buona scelta per applicazioni come icone, logo e altro ancora. Il chip è in grado di pilotare 64 LED individuali utilizzando solo 3 fili per il link con Arduino, e per di più lo possiamo collegare in configurazione “sequenziale” con altri driver usando sempre gli stessi 3 fili!\nI 64 LED sono pilotati tutti dai 16 pin di uscita dell’IC. Come è possibile? Ebbene, il numero massimo di LED che si accendono contemporaneamente è in realtà otto. I LED sono disposti come un insieme di righe e colonne 8 × 8. Il drive MAX7219 si attiva per ogni colonna solo per un periodo di tempo molto breve e allo stesso tempo accende in sequenza tutte le righe. Grazie all’effetto di permanenza delle luce sulla retina, i nostri occhi noteranno solamente una luce continua.\nLa tabella seguente è presa pari pari dal datasheet della casa madre e mostra il valore della resistenza che dovremmo usare in base alla caduta di tensione diretta dei nostri LED.\nSCHEMA DEL CIRCUITO Adesso colleghiamo il modulo Matrice LED 8×8 alla nostra scheda Arduino. Ecco lo schema del circuito:\nIl VCC e GND del modulo vanno ai pin 5V e GND di Arduino e gli altri tre pin, DIN, CLK e CS vanno a un qualsiasi pin digitale della scheda Arduino. Se vogliamo collegare più di un modulo, colleghiamo semplicemente i pin di uscita della precedente scheda pin di ingresso del nuovo modulo. In realtà questi pin sono tutti uguali tranne che il pin DOUT della scheda precedente va a finire nel pin DIN della nuova scheda. Ti ricordo che puoi ottenere i componenti necessari per questo tutorial dai link sottostanti:\nModulo a matrice di punti 8 × 8 LED MAX7219 – [Amazon][1] Modulo Bluetooth HC-05 – [Amazon][2] Una Breadboard e Jump Wires – [Amazon][3] Una [Scheda][4] Arduino – [Amazon][5] IL PROGRAMMA BASE PER IL MAX7219 + ARDUINO // Copyright (c) robotdazero.it // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the \u0026#34;Software\u0026#34;), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED \u0026#34;AS IS\u0026#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // // Esempio LED Matrix 8x8 con MAX7219 // by robotdazero.it, based on Dejan Nedelkovski // tratto da: https://howtomechatronics.com/ // Basato sulla libreria Open Source // https://github.com/riyas-org/max7219 #include \u0026lt;MaxMatrix.h\u0026gt; int DIN = 7; // pin DIN del chip MAX7219 int CLK = 6; // pin CLK del chip MAX7219 int CS = 5; // pin CS del chip MAX7219 int maxInUse = 1; MaxMatrix m(DIN, CS, CLK, maxInUse); char A[] = {4, 8, B01111110, B00010001, B00010001, B01111110, }; char B[] = {4, 8, B01111111, B01001001, B01001001, B00110110, }; char smile01[] = {8, 8, B00111100, B01000010, B10010101, B10100001, B10100001, B10010101, B01000010, B00111100 }; char smile02[] = {8, 8, B00111100, B01000010, B10010101, B10010001, B10010001, B10010101, B01000010, B00111100 }; char smile03[] = {8, 8, B00111100, B01000010, B10100101, B10010001, B10010001, B10100101, B01000010, B00111100 }; void setup() { m.init(); // init del chip MAX7219 m.setIntensity(8); // intensità dei LED tra 0-15 } void loop() { // Setta i LED On e Off a x,y m.setDot(6,2,true); delay(1000); m.setDot(6,3,true); delay(1000); m.clear(); // Azzera il display for (int i=0; i\u0026lt;8; i++){ m.setDot(i,i,true); delay(300); } m.clear(); // Mostra il carattere a x,y m.writeSprite(2, 0, A); delay(1000); m.writeSprite(2, 0, B); delay(1000); m.writeSprite(0, 0, smile01); delay(1000); m.writeSprite(0, 0, smile02); delay(1000); m.writeSprite(0, 0, smile03); delay(1000); for (int i=0; i\u0026lt;8; i++){ m.shiftLeft(false,false); delay(300); } m.clear(); } Una volta collegati i moduli siamo pronti per caricare il codice Arduino del primo esempio. Useremo la libreria MaxMatrix specifica per il MAX7219 che può essere scaricata da [GitHub][6]. Non hai bisogno di fare copia e incolla del programma, ti basta andare alla fine del listato e cliccare su una delle 2 icone sottostanti.\nNella sezione setup inizializziamo il modulo a LED impostimo la luminosità. Nella sezione loop utilizzamo la funzione setDot() con cui possiamo impostare qualsiasi singolo LED in modo che si accenda alla posizione desiderata. Quindi usiamo la funzione clear() per cancellare il display.\nPer visualizzare i caratteri predefiniti usiamo la funzione writeSprite(): i primi due argomenti sono la posizione X e Y dell’angolo superiore sinistro del carattere. A fine sorgente usiamo la funzione shiftLeft() per spostare il carattere verso sinistra.\nIL SECONDO PROGRAMMA DI ESEMPIO // Copyright (c) robotdazero.it // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the \u0026#34;Software\u0026#34;), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in all // copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED \u0026#34;AS IS\u0026#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. // // Esempio Scroll LED Matrix 8x8 con MAX7219 // by robotdazero.it, based on Dejan Nedelkovski // tratto da: https://howtomechatronics.com/ // Basato sulla libreria Open Source // GitHub - https://github.com/riyas-org/max7219 #include \u0026#34;MaxMatrix.h\u0026#34;; #include \u0026#34;pgmspace.h\u0026#34;; PROGMEM const unsigned char CH[] = { 3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space 1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // ! 3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // x 5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // # 4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $ 5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // % 5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // \u0026amp; 1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // y 3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // ( 3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // ) 5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // * 5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // + 2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // , 4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // - 2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // . 4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // / 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0 3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1 4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2 4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3 4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4 4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5 4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6 4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7 4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8 4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9 2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // : 2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ; 3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // \u0026lt; 3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // = 3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // \u0026gt; 4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ? 5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @ 4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A 4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B 4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C 4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D 4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E 4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F 4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G 4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H 3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I 4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J 4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K 4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L 5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M 5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N 4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O 4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P 4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q 4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R 4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S 5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T 4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U 5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V 5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W 5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X 5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y 4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z 2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [ 4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \\ backslash 2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ] 3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat 4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _ 2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // ` 4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a 4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b 4, 8, B00111000, B01000100, B01000100, B00101000, B00000000, // c 4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d 4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e 3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f 4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g 4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h 3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i 4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j 4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k 3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l 5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m 4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n 4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o 4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p 4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q 4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r 4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s 3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t 4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u 5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v 5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w 5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x 4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y 3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z 3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // { 1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // | 3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // } 4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~ }; int DIN = 7; // pin DIN del chip MAX7219 int CLK = 6; // pin CLK del chip MAX7219 int CS = 5; // pin CS del chip MAX7219 int maxInUse = 2; MaxMatrix m(DIN, CS, CLK, maxInUse); byte buffer[10]; char text[]= \u0026#34;Testo in scorrimento ** \u0026#34;; void setup() { m.init(); // init del modulo m.setIntensity(15); // intensità tra 0-15 } void loop() { printStringWithShift(text, 100); // testo e velocità } void printCharWithShift(char c, int shift_speed) { if (c \u0026lt; 32) return; c -= 32; memcpy_P(buffer, CH + 7 * c, 7); m.writeSprite(32, 0, buffer); m.setColumn(32 + buffer[0], 0); for (int i = 0; i \u0026lt; buffer[0] + 1; i++) { delay(shift_speed); m.shiftLeft(false, false); } } // Estrae il carattere dalla stringa void printStringWithShift(char* s, int shift_speed) { while (*s != 0) { printCharWithShift(*s, shift_speed); s++; } } Adesso diamo un’occhiata al programma con il testo scorrevole e vediamo cosa c’è di diverso. Sotto il codice troverai il mio commento su alcuni punti qualificanti del sorgente.\nUN BREVE COMMENTO SUL SECONDO PROGRAMMA All’inizio dobbiamo fare l\u0026rsquo;include di una libreria aggiuntiva per poter usare PROGMEN, che è un modificatore di variabili. Ci serve per salvare i dati nella memoria flash invece che nella SRAM: quando abbiamo un gruppo sostanzioso di variabili statiche, come in questo caso è meglio memorizzarle nella più capiente memoria flash. La memoria flash infatti ha 32K byte, sedici volte la capacità della SRAM (2K byte).\nSuccessivamente con un array di caratteri definiamo il testo scorrevole e nella sezione loop() definiamo la funzione custom printStringWithShift(), che stampa il testo scorrevole sulla matrice LED con una velocità di scorrimento variabile. Puoi cambiare la velocità modificando il secondo argomento, ma ti consiglio di fare esperimenti solo dopo che tutto funzioni, altrimenti non capirai se hai sbagliate le modifiche o la costruzione in se stessa.\nLa funzione printStringWithShift() estrae i caratteri dalla stringa e li visualizza con effetto scroll sulla matrice a LED. La puoi considerare il “nucleo” del programma.\nRobotdazero.it - post - R.133.1.2.0\n","permalink":"https://www.robotdazero.it/blog/max7219-e-arduino-per-costruire-una-matrice-a-led/","summary":"\u003chr\u003e\n\u003cp\u003e\u003cem\u003eIn questo post scoprirai come costruire una matrice a LED con max7219 Arduino. Questa è forse la più scenografica delle applicazioni con Arduino, facile da realizzare a livello hardware ma utile per conoscere i “driver” delle Matrici a LED.\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"il-chip-max7219\"\u003eIL CHIP “MAX7219”\u003c/h2\u003e\n\u003cp\u003eIl chip MAX7219 è un driver per display LED comunemente utilizzato in progetti di elettronica fai-da-te e hobbyistici. Si tratta di un dispositivo a 8 pin che può essere utilizzato per controllare fino a 8 display LED a 7 segmenti, un display LED a matrice 8x8 o 64 LED individuali. E\u0026rsquo; un dispositivo seriale, il che significa che può essere controllato tramite un\u0026rsquo;interfaccia seriale a 4 bit. Ciò lo rende facile da utilizzare con microcontrollori come Arduino, Raspberry Pi e \u003ca href=\"https://www.robotdazero.it/tags/esp32/\" target=\"_blank\" rel=\"noopener\"\u003eESP32\u003c/a\u003e.\u003c/p\u003e","title":"Max7219 e Arduino per costruire una Matrice a LED"},{"content":"\nLa scheda Lora è un dispositivo intelligente che utilizza algoritmi avanzati di intelligenza artificiale (AI) per eseguire compiti specifici. È progettato per comunicare con altri dispositivi e sistemi attraverso onde radio, rendendolo una soluzione ideale per le applicazioni IoT (Internet of Things).\nUtilizza una rete wide-area a bassa potenza (LPWAN) per trasmettere dati su lunghe distanze. Ciò consente di utilizzare la scheda in posizioni remote in cui le tecnologie wireless tradizionali potrebbero non essere disponibili. La tecnologia LPWAN consente inoltre alla scheda di funzionare a bassa potenza, prolungando la durata della batteria.\nUna delle caratteristiche principali della scheda Lora è la sua capacità di elaborare i dati localmente. Ciò significa che la scheda può analizzare i dati senza richiedere una connessione al cloud o a server esterni. Questa funzione è particolarmente utile nelle applicazioni in cui la privacy e la sicurezza dei dati sono fondamentali. Può essere programmata utilizzando una varietà di linguaggi, tra cui Python e C++. Questo rende facile per gli sviluppatori di scrivere codice e creare applicazioni personalizzate per la scheda. Inoltre, la scheda supporta una varietà di sensori e attuatori, rendendolo una soluzione versatile per una vasta gamma di applicazioni.\nQueste schede sono utilizzate per inviare e ricevere dati in modalità wireless tra i dispositivi IoT, con una copertura che può superare i 10 km in ambiente urbano e i 15 km in ambiente rurale.\nLe schede LoRa per IoT sono disponibili in diverse varianti, con diverse frequenze di trasmissione, potenze di trasmissione e opzioni di connettività. Alcune delle schede LoRa più comuni includono:\nSchede LoRaWAN: queste schede supportano il protocollo LoRaWAN e sono utilizzate per la connessione a reti LoRaWAN esistenti.\nSchede LoRa senza protocollo: queste schede non supportano alcun protocollo specifico e sono utilizzate per creare reti proprietarie di dispositivi IoT.\nSchede LoRa con microcontrollore integrato: queste schede includono un microcontrollore integrato, come Arduino o Raspberry Pi, che permette di programmare il dispositivo per eseguire specifiche funzioni di IoT.\nLe schede LoRa per IoT sono utilizzate in molti settori, come l’agricoltura, l’industria, la logistica, l’energia e molte altre applicazioni in cui è necessaria una comunicazione wireless a lungo raggio e a basso consumo energetico tra i dispositivi IoT.\nIl codice più semplice per collegare Arduino con una scheda LoRa: void setup() { Serial.begin(9600); while (!Serial); if (!LoRa.begin(433E6)) { Serial.println(\u0026#34;Errore di inizializzazione LoRa.\u0026#34;); while (1); } } void loop() { // Invio dati tramite LoRa String message = \u0026#34;Hello, world!\u0026#34;; LoRa.beginPacket(); LoRa.print(message); LoRa.endPacket(); // Attesa di 3 secondi prima di inviare il prossimo messaggio delay(3000); } I collegamenti DiO0 - D2 RST - D9 Nss - D10 MOSI - D11 MISO - D12 SCK - D13 GND - GND 3.3V - 3.3V DHT11 – Arduino Nano\nVCC - 5v GND - GND D0 - D3 In questo schema, i pin NSS, MOSI, MISO e SCK sono utilizzati per la comunicazione SPI tra Arduino e la scheda LoRa, mentre il pin DIO0 viene utilizzato per la gestione delle interruzioni.\nÈ importante notare che ci sono molte varianti di schede LoRa disponibili sul mercato, quindi i pin specifici utilizzati per la connessione possono variare leggermente a seconda del modello di scheda LoRa che si sta utilizzando. È sempre consigliabile consultare il datasheet della scheda LoRa specifica che si sta utilizzando per conoscere esattamente quali pin utilizzare per la connessione.\n","permalink":"https://www.robotdazero.it/blog/come-collegare-una-scheda-lora-al-tuo-arduino/","summary":"\u003cp\u003e\u003cimg alt=\"immagine copertina del post\" loading=\"lazy\" src=\"/blog/come-collegare-una-scheda-lora-al-tuo-arduino/header.png\"\u003e\u003c/p\u003e\n\u003cp\u003eLa scheda Lora è un dispositivo intelligente che utilizza algoritmi avanzati di intelligenza artificiale (AI) per eseguire compiti specifici. È progettato per comunicare con altri dispositivi e sistemi attraverso onde radio, rendendolo una soluzione ideale per le applicazioni IoT (Internet of Things).\u003c/p\u003e\n\u003cp\u003eUtilizza una rete wide-area a bassa potenza (LPWAN) per trasmettere dati su lunghe distanze. Ciò consente di utilizzare la scheda in posizioni remote in cui le tecnologie wireless tradizionali potrebbero non essere disponibili. La tecnologia LPWAN consente inoltre alla scheda di funzionare a bassa potenza, prolungando la durata della batteria.\u003c/p\u003e","title":"Come collegare una scheda LORA al tuo Arduino"},{"content":" Da un paio di giorni stiamo assemblando le nuove centraline con sensori di CO2 Sensirion SCD30 e controller ESP32. Sono destinate a monitorare la concentrazione di CO2 nella aule scolastiche e nelle palestre, cinema, e quant’altro… Perchè è utile conoscere la concentrazione di questo gas?\nPerchè l’ Anidride Carbonica (CO2) è strettamente correlata alla diffusione del Covid19. Non la facilita ma viene considerata un buon indicatore di luoghi troppo affollati e perciò a maggior rischio di contagio. Non è pericolosa in sè ma funziona da semaforo.\nNella foto puoi vedere la parte inferiore del box realizzata con una stampante 3d Anycubic Kobra con il sensore incastrato in basso a destra. Al centro della foto la solita breadboard un ESP32 a 38 pin che abbiamo scelto per il progetto.\nI dati saranno raccolti sulla nostra piattaforma per IOT, e per l’output immediato useremo una corona i LED RGB WS2812B da 5 V 12-Bit. Se siete curiosi vi illustreremo DAY by DAY lo sviluppo del progettino su questo Blog. Il prodotto finito sarà disponibile sul nostro Ecommerce entro la fine di Novembre. — agg.to 04/11/2022: Vi proponiamo intanto il semplice sorgente per calibrare e visualizzare i valori della anidride carbonica:\n#include \u0026lt;Arduino.h\u0026gt; #include \u0026lt;FastLED.h\u0026gt; #include \u0026lt;SensirionI2cScd30.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; #define LED_PIN 14 #define NUM_LEDS 12 #define BRIGHTNESS 4 #define LED_TYPE WS2811 #define COLOR_ORDER GRB #define UPDATES_PER_SECOND 100 #define SEALEVELPRESSURE_HPA (1013.25) #define HIGH_CO2_BOUNDARY 1200 #define LOW_CO2_BOUNDARY 800 static char errorMessage[128]; static int16_t error; SensirionI2cScd30 sensor; CRGB leds[NUM_LEDS]; CRGBPalette16 currentPalette; TBlendType currentBlending; extern CRGBPalette16 myRedWhiteBluePalette; extern const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM; static int64_t lastMmntTime = 0; static int startCheckingAfterUs = 1900000; int ppm; int hum; int temp; void setup() { Serial.begin(115200); while (!Serial) { delay(100); } Wire.begin(); sensor.begin(Wire, SCD30_I2C_ADDR_61); sensor.stopPeriodicMeasurement(); sensor.softReset(); delay(2000); uint8_t major = 0; uint8_t minor = 0; error = sensor.readFirmwareVersion(major, minor); if (error != NO_ERROR) { Serial.print(\u0026#34;Error trying to execute readFirmwareVersion(): \u0026#34;); errorToString(error, errorMessage, sizeof errorMessage); Serial.println(errorMessage); return; } Serial.print(\u0026#34;firmware version major: \u0026#34;); Serial.print(major); Serial.print(\u0026#34;\\t\u0026#34;); Serial.print(\u0026#34;minor: \u0026#34;); Serial.print(minor); Serial.println(); error = sensor.startPeriodicMeasurement(0); if (error != NO_ERROR) { Serial.print(\u0026#34;Error trying to execute startPeriodicMeasurement(): \u0026#34;); errorToString(error, errorMessage, sizeof errorMessage); Serial.println(errorMessage); return; } delay(2000); FastLED.addLeds\u0026lt;LED_TYPE, LED_PIN, COLOR_ORDER\u0026gt;(leds, NUM_LEDS).setCorrection( TypicalLEDStrip ); FastLED.setBrightness( BRIGHTNESS ); currentPalette = RainbowColors_p; currentBlending = LINEARBLEND; static uint8_t startIndex = 0; for(uint16_t i=0; i\u0026lt;440; i++) { ChangePalettePeriodically(); startIndex = startIndex + 1; /* motion speed */ SmartFillLEDsFromPaletteColors( i); FastLED.show(); FastLED.delay(1000 / UPDATES_PER_SECOND); } SetupBlackAndWhiteStripedPalette(); FillLEDsColor(80); FastLED.show(); for(uint16_t i=0; i\u0026lt;440; i++) { ChangePalettePeriodically(); FillLEDsFromPaletteColors( i ); FastLED.show(); FastLED.delay(1000 / UPDATES_PER_SECOND); } for(uint16_t i=200; i\u0026lt;440; i++) { FillLEDsColor(128); FastLED.show(); FastLED.delay(1000 / UPDATES_PER_SECOND); } } void loop() { float co2Concentration = 0.0; float temperature = 0.0; float humidity = 0.0; delay(1500); error = sensor.blockingReadMeasurementData(co2Concentration, temperature, humidity); if (error != NO_ERROR) { Serial.print(\u0026#34;Error trying to execute blockingReadMeasurementData(): \u0026#34;); errorToString(error, errorMessage, sizeof errorMessage); Serial.println(errorMessage); return; } Serial.print(\u0026#34;co2Concentration: \u0026#34;); Serial.print(co2Concentration); Serial.print(\u0026#34;\\t\u0026#34;); Serial.print(\u0026#34;temperature: \u0026#34;); Serial.print(temperature); Serial.print(\u0026#34;\\t\u0026#34;); Serial.print(\u0026#34;humidity: \u0026#34;); Serial.print(humidity); Serial.println(); if (co2Concentration \u0026gt; 3000) { co2Concentration = 3000; } float tmp = 0.0; clean(); mostra( int( (co2Concentration-400.0)/150.0) + 1); FastLED.show(); delay(2000); static uint8_t startIndex = 0; } void FillLEDsColor(uint8_t param) { uint8_t brightness = BRIGHTNESS; for( int i = 0; i \u0026lt; NUM_LEDS; i++) { leds[i] = ColorFromPalette( currentPalette, param, brightness, currentBlending); } } void SmartFillLEDsFromPaletteColors( uint8_t colorIndex) { uint8_t brightness = BRIGHTNESS; for( int i = 0; i \u0026lt; NUM_LEDS; i+=3) { leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending); colorIndex += 3; } } void clean() { for( int i = 0; i \u0026lt; NUM_LEDS; i++) { leds[i] = CRGB::Black; } } void mostra(uint8_t param) { for( int i = 0; i \u0026lt; param; i++) { if (i \u0026lt;3 ) { leds[i] = CRGB::Blue; } if (i \u0026gt;= 3 \u0026amp;\u0026amp; i \u0026lt; 6) { leds[i] = CRGB::Green; } if (i \u0026gt;=6 \u0026amp;\u0026amp; i \u0026lt; 9 ) { leds[i] = CRGB::Yellow; } if (i \u0026gt;= 9) { leds[i] = CRGB::Red; } if (i == 11) { leds[i] = CRGB::Violet; } } } void FillLEDsFromPaletteColors( uint8_t colorIndex) { uint8_t brightness = BRIGHTNESS; for( int i = 0; i \u0026lt; NUM_LEDS; i++) { leds[i] = ColorFromPalette( currentPalette, colorIndex, brightness, currentBlending); colorIndex += 3; } } void ChangePalettePeriodically() { uint8_t secondHand = (millis() / 1000) % 60; static uint8_t lastSecond = 99; if( lastSecond != secondHand) { lastSecond = secondHand; if( secondHand == 0) { currentPalette = RainbowColors_p; currentBlending = LINEARBLEND; } if( secondHand == 10) { currentPalette = RainbowStripeColors_p; currentBlending = NOBLEND; } if( secondHand == 15) { currentPalette = RainbowStripeColors_p; currentBlending = LINEARBLEND; } if( secondHand == 20) { SetupPurpleAndGreenPalette(); currentBlending = LINEARBLEND; } if( secondHand == 25) { SetupTotallyRandomPalette(); currentBlending = LINEARBLEND; } if( secondHand == 30) { SetupBlackAndWhiteStripedPalette(); currentBlending = NOBLEND; } if( secondHand == 35) { SetupBlackAndWhiteStripedPalette(); currentBlending = LINEARBLEND; } if( secondHand == 40) { currentPalette = CloudColors_p; currentBlending = LINEARBLEND; } if( secondHand == 45) { currentPalette = PartyColors_p; currentBlending = LINEARBLEND; } if( secondHand == 50) { currentPalette = myRedWhiteBluePalette_p; currentBlending = NOBLEND; } if( secondHand == 55) { currentPalette = myRedWhiteBluePalette_p; currentBlending = LINEARBLEND; } } } void SetupTotallyRandomPalette() { for( int i = 0; i \u0026lt; 16; i++) { currentPalette[i] = CHSV( random8(), 255, random8()); } } void SetupBlackAndWhiteStripedPalette() { fill_solid( currentPalette, 16, CRGB::Black); currentPalette[0] = CRGB::White; currentPalette[4] = CRGB::White; currentPalette[8] = CRGB::White; currentPalette[12] = CRGB::White; } void SetupPurpleAndGreenPalette() { CRGB purple = CHSV( HUE_PURPLE, 255, 255); CRGB green = CHSV( HUE_GREEN, 255, 255); CRGB black = CRGB::Black; currentPalette = CRGBPalette16( green, green, black, black, purple, purple, black, black, green, green, black, black, purple, purple, black, black ); } const TProgmemPalette16 myRedWhiteBluePalette_p PROGMEM = { CRGB::Red, CRGB::Gray, CRGB::Blue, CRGB::Black, CRGB::Red, CRGB::Gray, CRGB::Blue, CRGB::Black, CRGB::Red, CRGB::Red, CRGB::Gray, CRGB::Gray, CRGB::Blue, CRGB::Blue, CRGB::Black, CRGB::Black }; Migliorie e case definitivo Lo sviluppo del sensore di CO2 procede con la versione semidefinitva. Abbiamo settato il livelli del primo LED giallo a 1300 parti per milione, leggermente superiore al livello di attenzione di 1200 PPM della normativa elvetica per gli uffici e le aule statali, il secondo led giallo si accende a 1450 di poco inferiore al valore di 1500 PPM previsto dalla normativa italiana. L’ultimo LED giallo si accende a 1600 PPM quando cioè viene sicuramente superata la soglia prevista dalla normativa italiana. I LED gialli per come abbiamo inteso il sensore suggeriscono che sarebbe il momento di ventilare il locale, mentre i LED rossi misurano un livello di rischio cui non si dovrebbe mai arrivare.\nNella immagine una versione di preserie del sensore con case 3D stampato in resina biodegradabile ","permalink":"https://www.robotdazero.it/blog/i-nuovi-sensori-di-biossido-di-carbonio-con-esp32/","summary":"\u003cstyle\u003e\n.x {\n    transition:transform 0.60s ease;\n}\n\n.x:hover {\n    -webkit-transform:scale(1.50); /* or some other value */\n    transform:scale(1.50);\n}\n\u003c/style\u003e\n\u003ch4 id=\"da-un-paio-di-giorni-stiamo-assemblando-le-nuove-centraline-con-sensori-di-co2-sensirion-scd30-e-controller-esp32sono-destinate-a-monitorare-la-concentrazione-di-co-nella-aule-scolastiche-e-nelle-palestre-cinema-e-quant8217altro8230\"\u003eDa un paio di giorni stiamo assemblando le nuove centraline con sensori di CO\u003csub\u003e2\u003c/sub\u003e \u003ca href=\"https://sensirion.com/products/catalog/SCD30/\"\u003eSensirion SCD30\u003c/a\u003e e controller ESP32. Sono destinate a monitorare la concentrazione di \u003ca href=\"https://it.wikipedia.org/wiki/Anidride_carbonica\"\u003eCO\u003csub\u003e2\u003c/sub\u003e\u003c/a\u003e nella aule scolastiche e nelle palestre, cinema, e quant’altro…\u003c/h4\u003e\n\u003cp\u003e\u003cstrong\u003ePerchè è utile conoscere la concentrazione di questo gas?\u003c/strong\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003ePerchè l’ Anidride Carbonica\u003c/strong\u003e (CO\u003csub\u003e2\u003c/sub\u003e) è strettamente correlata alla diffusione del Covid19. Non la facilita ma viene considerata un buon indicatore di luoghi troppo affollati e perciò a maggior rischio di contagio. Non è pericolosa in sè ma funziona da \u003cem\u003esemaforo\u003c/em\u003e.\u003c/p\u003e","title":"I nuovi Sensori di Biossido di Carbonio con ESP32"},{"content":" Da oggi puoi trovare sul nostro ecommerce il circuito stampato “ESP32 Multi Board”. Con questa PCB puoi realizzare professionalmente tutti i nostri progetti e molti dei progetti per ESP32 che trovi in rete. immagine con il retro del circuito stampato “Multifunzione” di Robotdazero Potrai ad esempio costruire la centralina di allarme per gas tossici o esplosivi che vedi qui sotto. Il progetto usa il sensore MQT5 assieme al diffusissimo ed economico sensore di temperatura DHT11.\nimmagine della nostra centralina per il rilevamento dei gas con a sinistra il sensore MQ5 e a destra il sensore DHT11 in colore azzurro. La scheda è espandibile con ulteriori 3 sensori o servocomandi e senza effettuare saldature. Ti basterà inserire i fili nella morsettiera che vedi a sinistra e avvitare! Se sei stanco delle breadboard e vuoi vendere i tuoi progetti devi necessariamente fornire un box e un assemblaggio solido con un circuito stampato.\nUsa la nostra scheda Multifunzione e potrai assemblare le tue creazioni con delle modifiche minime o nessuna modifica. Come già detto potresti – in linea teorica – installare sensori e attuatori usando solamente la doppia morsettiera a tre poli e sfuttando il circuito a doppia faccia per distribuire l’ alimentazione di una presa USB.\nLa scheda Multifunzione prevede alloggiamenti per:\n2 LED a montaggio SMD 5 resistenze SMD come pull up per i sensori 1 alloggio per sensore BMP280 1 alloggio per sensore DHT11 1 alloggio pr lettore micro SD card Arduino e simili 1 morsettiera con uscita a 3.3V, 5V e GND 1 morsettiera con collegamento ai pin GPIO12, GPIO13 e GPIO14. Gli alloggi per i sensori BMP280 e DHT11 sono ovviamente utilizzabili per qualsiasi dispositivo di I/O per ESP32 o Arduino. In ogni caso troverai le maschere serigrafate per collegare VIN, GND e il pin dati digitale o analogico.\nPuoi saldare le resistenze di pullup nelle piazzole per SMD ma sempre più spesso si trovano già incorporate nei sensori. In tal caso non devi fare nulla: non devi saldare ponticelli o tagliare piste: la scheda riconosce il tipo di sensore e si limita ad usare la resistenza incorporata dal costruttore. Semplicissimo!\nI pin GPIO-21 e GPIO-22 dell’ESP32 sono connessi nella piazzola BMP_1 e permettono di implementare il protocollo I2c per la comunicazione seriale tra due dispositivi. Si tratta del sistema più diffuso e semplice per connettere dispositivi nell’ecosistema dei controller e la sua diffusione si può paragonare solo a quelle dell’SPI. Anche i connettori per il procotollo SPI sono disponibili nella basetta e li puoi vedere nella piazzola marchiata SD_CARD1. Ovviamente non servono solo per la SDCard ma per ogni dispositivo (tipo display LCD) che usi i 4 fili previsti dal protocollo. Permette di collegare in rete fino a 128 dispositivi. Se volete usare questo versatile protocollo introdotto dalla Samsung sui suoi televisori date una occhiata alla sua pagina Wikipedia.\nVuoi dunque abbandonare i montaggi traballanti e liberarti dei fili volanti? Questa è l’occasione buona per farlo, vai sul nostro ecommerce e ordina la scheda ad un prezzo convenientissimo.\n","permalink":"https://www.robotdazero.it/blog/la-scheda-multifunzione-di-robotdazero-per-esp32/","summary":"\u003cstyle\u003e\n.x {\n    transition:transform 0.60s ease;\n}\n\n.x:hover {\n    -webkit-transform:scale(1.50); /* or some other value */\n    transform:scale(1.50);\n}\n\u003c/style\u003e\n\u003ch4 id=\"da-oggi-puoi-trovare-sul-nostro-ecommerce-il-circuito-stampato-8220esp32-multi-board8221-con-questa-pcb-puoi-realizzare-professionalmente-tutti-i-nostri-progetti-e-molti-dei-progetti-per-esp32-che-trovi-in-rete\"\u003eDa oggi puoi trovare sul nostro \u003ca href=\"https://www.robotdazero.it/prodotto/circuito-stampato-multifunzione-esp32/\"\u003eecommerce\u003c/a\u003e il circuito stampato “ESP32 Multi Board”. Con questa PCB  puoi realizzare professionalmente tutti i nostri progetti e molti dei progetti per ESP32 che trovi in rete.\u003c/h4\u003e\n\u003cp\u003e\u003cimg alt=\"immagine con il retro del circuito stampato “Multifunzione” di Robotdazero\" loading=\"lazy\" src=\"/blog/la-scheda-multifunzione-di-robotdazero-per-esp32/images/circuito-stampato-multifunzione-esp32-img1.webp\"\u003e\u003c/p\u003e\n\u003ch6 id=\"immagine-con-il-retro-del-circuito-stampato-multifunzione-di-robotdazero\"\u003eimmagine con il retro del circuito stampato “Multifunzione” di Robotdazero\u003c/h6\u003e\n\u003cp\u003ePotrai ad esempio costruire la  centralina di allarme per gas tossici o esplosivi che vedi qui sotto. Il progetto usa il sensore \u003ca href=\"https://create.arduino.cc/projecthub/elbertshahzaib/mq5-gas-sensor-with-arduino-61351e?ref=part\u0026amp;ref_id=10308\u0026amp;offset=17\"\u003eMQT5\u003c/a\u003e assieme al diffusissimo ed economico sensore di temperatura DHT11.\u003c/p\u003e","title":"La scheda Multifunzione di Robotdazero per ESP32"},{"content":"Come scrivere un programma Python per convertire l\u0026rsquo;elenco dato in un dizionario in modo tale che tutti gli elementi dispari abbiano la chiave e gli elementi numerici pari abbiano il valore. Poiché il dizionario Python non è ordinato, l\u0026rsquo;output può essere in qualsiasi ordine.\nEsempio\nIngresso: [\u0026lsquo;a\u0026rsquo;, 1, \u0026lsquo;b\u0026rsquo;, 2, \u0026lsquo;c\u0026rsquo;, 3] Uscita: {\u0026lsquo;a\u0026rsquo;: 1, \u0026lsquo;b\u0026rsquo;: 2,\u0026rsquo; c\u0026rsquo;: 3} Spiegazione: Nell\u0026rsquo;input abbiamo una lista di elementi che poi viene convocata in coppie di valori chiave di dictonary nell\u0026rsquo;output Convertire una lista in Dizionario Python Di seguito sono riportati i metodi che tratteremo in questo articolo:\nUtilizzo di un loop Utilizzo della comprensione dict Utilizzo del metodo zip () Utilizzo della funzione Lambda Utilizzando lista comprensione e Slicing Utilizzo di Itertools Convertire un elenco in un dizionario utilizzando un ciclo Questo metodo funziona inizializzando un dizionario vuoto e quindi iterando l\u0026rsquo;elenco nel passaggio 2. In ogni iterazione, la coppia chiave-valore viene aggiunta al dizionario utilizzando l\u0026rsquo;elemento corrente come chiave e l\u0026rsquo;elemento successivo come valore. Infine, il dizionario viene restituito come risultato.\ndef convert(lst): res_dict = {} for i in range(0, len(lst), 2): res_dict[lst[i]] = lst[i + 1] return res_dict lst = [\u0026#39;a\u0026#39;, 1, \u0026#39;b\u0026#39;, 2, \u0026#39;c\u0026#39;, 3] print(convert(lst)) 🖥️ Output: {'a': 1, 'b': 2,' c': 3} Elenco di conversazione dizionario utilizzando dict comprensione List to Dictionary Conversation using dict Comprehension Per convertire una lista in dizionario, possiamo usare la comprensione dict e creare una coppia key: value di elementi consecutivi. Infine, typecase l\u0026rsquo;elenco di tipo dict.\ndef Convert(lst): res_dct = {lst[i]: lst[i + 1] for i in range(0, len(lst), 2)} return res_dct # Driver code lst = [\u0026#39;a\u0026#39;, 1, \u0026#39;b\u0026#39;, 2, \u0026#39;c\u0026#39;, 3] print(Convert(lst)) 👉 Output: {'a': 1, 'b': 2,' c': 3} Convertire un elenco in un dizionario usando il zip() Per prima cosa crea un iteratore e inizializzalo nella variabile \u0026ldquo;it\u0026rdquo;. Quindi utilizzare il metodo zip, per comprimere chiavi e valori insieme. Infine typecast a dict tipo.\ndef Convert(a): it = iter(a) res_dct = dict(zip(it, it)) return res_dct # Driver code lst = [\u0026#39;a\u0026#39;, 1, \u0026#39;b\u0026#39;, 2, \u0026#39;c\u0026#39;, 3] print(Convert(lst)) 👉 Output: {'a': 1, 'b': 2,' c': 3} Conversione di un dizionario utilizzando la funzione Lambda In primo luogo, creare una matrice di chiavi e valori utilizzando array slicing. Quindi utilizzare il metodo map con lambda per formare array di tuple con valore chiave paris. Infine typecast a dict tipo.\ndef Convert(lst): res_dct = map(lambda i: (lst[i], lst[i+1]), range(len(lst)-1)[::2]) return dict(res_dct) # Driver code lst = [\u0026#39;a\u0026#39;, 1, \u0026#39;b\u0026#39;, 2, \u0026#39;c\u0026#39;, 3] print(Convert(lst)) 👉 Output: {'a': 1, 'c': 3,' b': 2} Robotdazero.it - post - R.135.0.8.0\n","permalink":"https://www.robotdazero.it/blog/come-convertire-una-lista-in-un-dizionario-usando-python/","summary":"\u003cp\u003eCome scrivere un programma Python per convertire l\u0026rsquo;elenco dato in un dizionario in modo tale che tutti gli elementi dispari abbiano la chiave e gli elementi numerici pari abbiano il valore. Poiché il dizionario Python non è ordinato, l\u0026rsquo;output può essere in qualsiasi ordine.\u003c/p\u003e\n\u003cp\u003eEsempio\u003c/p\u003e\n\u003cp\u003eIngresso: [\u0026lsquo;a\u0026rsquo;, 1, \u0026lsquo;b\u0026rsquo;, 2, \u0026lsquo;c\u0026rsquo;, 3]\nUscita: {\u0026lsquo;a\u0026rsquo;: 1, \u0026lsquo;b\u0026rsquo;: 2,\u0026rsquo; c\u0026rsquo;: 3}\nSpiegazione: Nell\u0026rsquo;input abbiamo una lista di elementi che poi viene convocata in coppie di valori chiave di dictonary nell\u0026rsquo;output\nConvertire una lista in Dizionario Python\nDi seguito sono riportati i metodi che tratteremo in questo articolo:\u003c/p\u003e","title":"Come convertire una lista in un dizionario usando Python"},{"content":"Introduzione allo sviluppo sostenibile e all\u0026rsquo;ambiente Lo \u0026ldquo;Sviluppo Sostenibile\u0026rdquo; è un modello di sviluppo economico e sociale che mira a soddisfare i bisogni delle generazioni attuali senza compromettere la capacità delle generazioni future di soddisfare i propri bisogni. Lo sviluppo sostenibile si basa su tre pilastri fondamentali:\nSostenibilità ambientale: Lo sviluppo sostenibile deve essere rispettoso dell\u0026rsquo;ambiente e deve preservare le risorse naturali per le generazioni future. Sostenibilità economica: Lo sviluppo sostenibile deve essere sostenibile dal punto di vista economico e deve garantire la crescita e la prosperità economica. Sostenibilità sociale: Lo sviluppo sostenibile deve essere sostenibile dal punto di vista sociale e deve garantire la giustizia sociale e la parità di opportunità per tutti.\nStoria dello sviluppo sostenibile Il concetto di sviluppo sostenibile è nato alla fine degli anni \u0026lsquo;60 e all\u0026rsquo;inizio degli anni \u0026lsquo;70, in risposta alla crescente consapevolezza dei problemi ambientali e sociali che affliggevano il mondo. La pubblicazione del rapporto \u0026ldquo;Limiti dello sviluppo\u0026rdquo; del Club di Roma nel 1972 è stata un punto di svolta importante nella storia dello sviluppo sostenibile. Il rapporto ha avvertito che il mondo stava avvicinandosi ai suoi limiti ambientali e che era necessario adottare un modello di sviluppo più sostenibile.\nNegli anni \u0026lsquo;80, l\u0026rsquo;Agenda 21, un piano d\u0026rsquo;azione per lo sviluppo sostenibile globale, è stata adottata dalla Conferenza delle Nazioni Unite sull\u0026rsquo;ambiente e lo sviluppo (UNCED) di Rio de Janeiro. L\u0026rsquo;Agenda 21 ha stabilito una serie di obiettivi e principi per lo sviluppo sostenibile, che sono stati ripresi da una serie di altri documenti internazionali, tra cui la Dichiarazione di Johannesburg sullo sviluppo sostenibile del 2002 e l\u0026rsquo;Agenda 2030 per lo sviluppo sostenibile del 2015.\nAlcune splendide citazioni che hanno ispirato ecologisti e scienziati nei decenni: \u0026ldquo;Il futuro appartiene a coloro che credono nella bellezza dei propri sogni.\u0026rdquo; - Eleanor Roosevelt \u0026ldquo;La Terra non è un\u0026rsquo;eredità dei nostri padri, ma un prestito dei nostri figli.\u0026rdquo; - Native American Proverb \u0026ldquo;Il modo migliore per prevedere il futuro è crearlo.\u0026rdquo; - Abraham Lincoln\nLo \u0026ldquo;sviluppo sostenibile\u0026rdquo; è un concetto importante che sta diventando sempre più importante nel mondo di oggi. La nostra capacità di garantire un futuro sostenibile per le generazioni future dipende dalla nostra capacità di attuare politiche e pratiche sostenibili.\nMa il vero nodo della questione rimane: come trovare soluzioni economicamente sopportabili per cambiare in nostro modello di vita e sviluppo?\nEcco alcuni modi pratici per promuovere lo sviluppo sostenibile:\nRidurre il nostro consumo di risorse naturali. Possiamo farlo riducendo il nostro consumo di energia, acqua ed altri materiali. Riciclare e compostare. Questo aiuta a ridurre la quantità di rifiuti che finiscono in discarica. Acquistare prodotti sostenibili. Possiamo cercare prodotti che siano realizzati con materiali sostenibili e che siano prodotti in modo sostenibile. Partecipare a iniziative locali per lo sviluppo sostenibile. Ci sono molte opportunità per partecipare a iniziative locali per lo sviluppo sostenibile, come il volontariato per un\u0026rsquo;organizzazione di conservazione o la partecipazione a un programma di compostaggio comunitario. Introduzione all\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui Internet of Things (IoT), robotica e automazione. L\u0026rsquo;ESP32 è basato sul processore Tensilica Xtensa LX6 e integra una serie di funzionalità, tra cui Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), un\u0026rsquo;unità di elaborazione grafica (GPU) e un\u0026rsquo;unità di elaborazione neurale (NPU).\nStoria dell\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è stato sviluppato da Espressif Systems, una società cinese di semiconduttori. L\u0026rsquo;ESP32 è stato rilasciato per la prima volta nel 2016 ed è diventato rapidamente uno dei microcontrollori più popolari sul mercato.\nCaratteristiche dell\u0026rsquo;ESP32 L\u0026rsquo;ESP32 offre una serie di caratteristiche che lo rendono un microcontroller versatile e potente:\nDue core Tensilica Xtensa LX6: L\u0026rsquo;ESP32 è dotato di due core Tensilica Xtensa LX6 che possono funzionare fino a 240 MHz. Wi-Fi e Bluetooth integrati: L\u0026rsquo;ESP32 integra il Wi-Fi e il Bluetooth, rendendolo ideale per le applicazioni IoT. Unità di elaborazione grafica (GPU) e unità di elaborazione neurale (NPU) integrate: L\u0026rsquo;ESP32 integra una GPU e una NPU, rendendolo adatto per applicazioni che richiedono l\u0026rsquo;elaborazione grafica o l\u0026rsquo;intelligenza artificiale. Dimensioni ridotte e consumo energetico ridotto: L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni e con un consumo energetico ridotto, rendendolo adatto per applicazioni alimentate a batteria. Negli anni questa minuscola scheda si è meritata l\u0026rsquo;attenzione di aziende e sviluppatori:\n\u0026ldquo;L\u0026rsquo;ESP32 è un microcontroller potente e versatile che può essere utilizzato per creare una varietà di applicazioni innovative.\u0026rdquo; - Espressif Systems\n\u0026ldquo;L\u0026rsquo;ESP32 è un ottimo modo per iniziare a sviluppare progetti IoT.\u0026rdquo; - Makers\n\u0026ldquo;L\u0026rsquo;ESP32 è un microcontroller economico che può essere utilizzato per creare progetti di alta qualità.\u0026rdquo; - Hobbyist\nIn breve l\u0026rsquo; ESP32 è un microcontroller versatile e potente che può essere utilizzato per una varietà di applicazioni. E\u0026rsquo; un\u0026rsquo;ottima scelta per i principianti che desiderano iniziare a sviluppare progetti IoT o per gli sviluppatori esperti che desiderano un microcontroller potente per gestire e creare progetti destinati alla cura dell\u0026rsquo;amniente e allo sviluppo sostenibile.\nCapitolo 1: Le caratteristiche dell\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller piuttosto versatile che può essere utilizzato per una varietà di applicazioni, tra cui Internet of Things (IoT), robotica e automazione. E\u0026rsquo; basato sul processore Tensilica Xtensa LX6 e integra una serie di funzionalità, tra cui Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), un\u0026rsquo;unità di elaborazione grafica (GPU) e un\u0026rsquo;unità di elaborazione neurale (NPU).\nUna breve storia dell\u0026rsquo;ESP32:\nL\u0026rsquo;ESP32 è stato sviluppato da Espressif Systems, una società cinese con sede a Shenzhen. L\u0026rsquo;ESP32 è stato rilasciato per la prima volta nel 2016 e ha rapidamente guadagnato popolarità tra gli sviluppatori di IoT.\nIn breve le caratteristiche tecniche dell\u0026rsquo;ESP32:\nProcessore Tensilica Xtensa LX6 dual-core: Il processore dual-core dell\u0026rsquo;ESP32 può funzionare fino a 240 MHz. 2 MB di memoria flash: La memoria flash dell\u0026rsquo;ESP32 può essere utilizzata per archiviare il firmware e altri dati. 520 KB di memoria RAM: La memoria RAM dell\u0026rsquo;ESP32 può essere utilizzata per eseguire il codice e archiviare i dati temporanei. Wi-Fi e Bluetooth: L\u0026rsquo;ESP32 integra i moduli Wi-Fi e Bluetooth, che consentono di connettersi a reti wireless e dispositivi Bluetooth. Unità di elaborazione grafica (GPU): La GPU dell\u0026rsquo;ESP32 può essere utilizzata per elaborare immagini e video. Unità di elaborazione neurale (NPU): L\u0026rsquo;NPU dell\u0026rsquo;ESP32 può essere utilizzata per eseguire applicazioni di intelligenza artificiale (AI). Alcune citazioni sulla scheda ESP32 \u0026ldquo;L\u0026rsquo;ESP32 è un potente strumento che può essere utilizzato per creare una varietà di applicazioni IoT.\u0026rdquo; - Espressif Systems \u0026ldquo;L\u0026rsquo;ESP32 è un\u0026rsquo;ottima scelta per gli sviluppatori che cercano un microcontroller economico e versatile.\u0026rdquo; - Makers \u0026ldquo;L\u0026rsquo;ESP32 ha il potenziale per trasformare il modo in cui sviluppiamo e utilizziamo l\u0026rsquo;IoT.\u0026rdquo; - IoT experts Le sue caratteristiche tecniche lo rendono una scelta eccellente per gli sviluppatori di IoT che cercano un dispositivo economico e affidabile. Specifiche tecniche generali Dimensioni: 28,5 x 28,5 mm Peso: 2,2 g Tensione di alimentazione: 3,3 V Consumo energetico: 17 µA/MHz in modalità standby, 200 mW in modalità piena potenza Frequenza di clock: 160 MHz Memoria: 512 KB di memoria flash, 80 KB di memoria SRAM Interfacce: GPIO, UART, I2C, SPI, SDIO, CAN, USB, Wi-Fi, Bluetooth Specifiche tecniche del processore\nIl processore dell\u0026rsquo;ESP32 è un Tensilica Xtensa LX6 dual-core, con una frequenza di clock massima di 160 MHz. Il processore ha 32 KB di memoria cache L1 e 1 MB di memoria cache L2.\nSpecifiche tecniche della memoria L\u0026rsquo;ESP32 ha 512 KB di memoria flash, che può essere utilizzata per memorizzare il firmware e altri dati. L\u0026rsquo;ESP32 ha anche 80 KB di memoria SRAM, che può essere utilizzata per memorizzare i dati di lavoro.\nSpecifiche tecniche delle interfacce L\u0026rsquo;ESP32 ha una serie di interfacce che possono essere utilizzate per collegare altri dispositivi. Queste interfacce includono:\nGPIO: 34 pin GPIO che possono essere utilizzati per controllare altri dispositivi UART: Due porte UART che possono essere utilizzate per la comunicazione seriale I2C: Due porte I2C che possono essere utilizzate per la comunicazione seriale a bus a due fili SPI: Due porte SPI che possono essere utilizzate per la comunicazione seriale a bus a quattro fili SDIO: Una porta SDIO che può essere utilizzata per la comunicazione con schede di memoria CAN: Una porta CAN che può essere utilizzata per la comunicazione seriale a bus a due fili USB: Una porta USB che può essere utilizzata per la comunicazione con un computer Wi-Fi: Una porta Wi-Fi che può essere utilizzata per la comunicazione wireless Bluetooth: Una porta Bluetooth che può essere utilizzata per la comunicazione wireless Caratteristiche fisiche dell\u0026rsquo;ESP32 Dimensioni L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni, con dimensioni di 28,5 x 21,5 mm. Questo lo rende adatto per l\u0026rsquo;installazione in dispositivi di piccole dimensioni, come i sensori.\nPeso L\u0026rsquo;ESP32 pesa solo 2,5 grammi. Questo lo rende un\u0026rsquo;opzione leggera e portatile per le applicazioni IoT.\nPotenza di calcolo dell\u0026rsquo;ESP32 La capacità di calcolo dell\u0026rsquo;ESP32 dipende da una serie di fattori, tra cui la frequenza di clock del processore, il numero di core e la dimensione della memoria.\nFrequenza di clock La frequenza di clock del processore dell\u0026rsquo;ESP32 è di 240 MHz. Ciò significa che il processore può eseguire 240 milioni di cicli di clock al secondo.\nNumero di core L\u0026rsquo;ESP32 ha due core. Ciò significa che può eseguire due operazioni contemporaneamente.\nDimensione della memoria L\u0026rsquo;ESP32 ha 32 MB di memoria flash e 800 KB di memoria RAM. La memoria flash viene utilizzata per memorizzare il codice e i dati dell\u0026rsquo;applicazione, mentre la memoria RAM viene utilizzata per memorizzare i dati temporanei.\nCalcolo teorico La capacità di calcolo teorica dell\u0026rsquo;ESP32 può essere calcolata utilizzando la seguente formula:\nCapacità di calcolo = Frequenza di clock * Numero di core * Dimensione della memoria Sostituendo i valori forniti in precedenza, si ottiene:\nCapacità di calcolo = 240 MHz * 2 * 32 MB Capacità di calcolo = 15360 MIPS Un MIPS (Million Instructions Per Second) è un\u0026rsquo;unità di misura che indica il numero di istruzioni che un processore può eseguire in un secondo.\nCalcolo pratico La capacità di calcolo pratica dell\u0026rsquo;ESP32 è inferiore alla capacità di calcolo teorica. Ciò è dovuto a una serie di fattori, tra cui la complessità delle istruzioni, la quantità di dati trasferiti tra la memoria e il processore e la potenza di elaborazione necessaria per le funzionalità di sistema, come il Wi-Fi e il Bluetooth.\nIn generale, la capacità di calcolo pratica dell\u0026rsquo;ESP32 è sufficiente per una varietà di applicazioni IoT. Tuttavia, per applicazioni più complesse, come l\u0026rsquo;intelligenza artificiale o l\u0026rsquo;elaborazione video, è necessario utilizzare un microcontroller con una capacità di calcolo maggiore.\nTabella di confronto La seguente tabella confronta la capacità di calcolo dell\u0026rsquo;ESP32 con quella di altri microcontrollori popolari:\nmicrocontroller\tFrequenza di clock\tNumero di core\tDimensione della memoria\tCapacità di calcolo teorica\nESP32\t240 MHz\t2\t32 MB 15360,00 MIPS Arduino Uno\t16 MHz\t1\t32 KB\t533,33 MIPS Raspberry Pi Pico 133 MHz\t1\t2 MB\t3,33 MIPS Conclusione La capacità di calcolo dell\u0026rsquo;ESP32 è sufficiente per una varietà di applicazioni IoT. Tuttavia, per applicazioni più complesse, è necessario utilizzare un microcontroller con una capacità di calcolo maggiore.\nCaratteristiche di comunicazione dell\u0026rsquo;ESP32 L\u0026rsquo;ESP32 supporta una varietà di protocolli di comunicazione, tra cui la comunicazione wireless e la comunicazione seriale.\nComunicazione wireless La comunicazione wireless consente all\u0026rsquo;ESP32 di comunicare con altri dispositivi senza bisogno di un cavo fisico. L\u0026rsquo;ESP32 supporta due protocolli di comunicazione wireless: Wi-Fi e Bluetooth.\nWi-Fi Il Wi-Fi è un protocollo di comunicazione wireless standard che consente ai dispositivi di comunicare tra loro tramite una rete Wi-Fi. L\u0026rsquo;ESP32 supporta il Wi-Fi 802.11b/g/n, che offre una velocità di trasmissione dati fino a 150 Mbps.\nBluetooth Il Bluetooth è un altro protocollo di comunicazione wireless standard che consente ai dispositivi di comunicare tra loro a corto raggio. L\u0026rsquo;ESP32 supporta il Bluetooth 4.2, che offre una velocità di trasmissione dati fino a 2 Mbps.\nComunicazione seriale La comunicazione seriale è un metodo semplice e affidabile per comunicare tra due dispositivi. L\u0026rsquo;ESP32 supporta la comunicazione seriale RS-232, RS-485 e I2C.\nRS-232 La comunicazione RS-232 è il tipo di comunicazione seriale più comune. È utilizzata per collegare computer, dispositivi periferici e altri dispositivi elettronici. L\u0026rsquo;ESP32 supporta la comunicazione RS-232 con una velocità di trasmissione dati fino a 115200 baud.\nRS-485 La comunicazione RS-485 è una variante della comunicazione RS-232 che consente di comunicare tra dispositivi a distanze maggiori. L\u0026rsquo;ESP32 supporta la comunicazione RS-485 con una velocità di trasmissione dati fino a 115200 baud.\nI2C La comunicazione I2C è un protocollo di comunicazione seriale a basso consumo energetico che consente a dispositivi a basso consumo energetico di comunicare tra loro. L\u0026rsquo;ESP32 supporta la comunicazione I2C con una velocità di trasmissione dati fino a 400 kHz.\nTabella di confronto La seguente tabella confronta le caratteristiche dei diversi protocolli di comunicazione supportati dall\u0026rsquo;ESP32:\nWi-Fi\tFino a 150 Mbps\tFino a 30 metri\tMedio Bluetooth\tFino a 2 Mbps\tFino a 10 metri\tBasso RS-232\tFino a 115200 baud\tFino a 15 metri\tMedio RS-485\tFino a 115200 baud\tFino a 1200 metri\tMedio I2C\tFino a 400 kHz\tFino a 20 cm\tBasso La comunicazione wireless e la comunicazione seriale offrono all\u0026rsquo;ESP32 una vasta gamma di possibilità di comunicazione. La scelta del protocollo di comunicazione appropriato dipende dalle esigenze specifiche dell\u0026rsquo;applicazione. Capitolo 2: Programmazione dell\u0026rsquo;ESP32 Esistono vari strumenti e software disponibili per la sua programmazione, tra cui:\nEspressif IoT Development Framework (ESP-IDF): L\u0026rsquo;ESP-IDF è un framework di sviluppo completo che include un compilatore, un linker, un debugger e una serie di librerie. PlatformIO. Arduino IDE: L\u0026rsquo;Arduino IDE è un ambiente di sviluppo integrato (IDE) che può essere utilizzato per programmare una varietà di microcontrollori, tra cui l\u0026rsquo;ESP32. Indipendentemente dalla tecnica di programmazione che si sceglie, la procedura di base per programmare l\u0026rsquo;ESP32 è la seguente:\nScaricare il firmware: È possibile scaricare il firmware ESP32 dal sito Web di Espressif. Preparare il firmware: È necessario preparare il firmware per la programmazione. Questo può essere fatto utilizzando l\u0026rsquo;ESP-IDF, l\u0026rsquo;Arduino IDE o PlatformIO. Collegare l\u0026rsquo;ESP32 al computer: È necessario collegare l\u0026rsquo;ESP32 al computer utilizzando un programmatore seriale o un cavo USB. Programmare l\u0026rsquo;ESP32: È possibile utilizzare il programmatore seriale o la programmazione OTA per programmare l\u0026rsquo;ESP32. L\u0026rsquo;ESP32 è una piattaforma potente e versatile che può essere utilizzata per una varietà di applicazioni. La programmazione dell\u0026rsquo;ESP32 può essere semplice o complessa, a seconda della tecnica e dello strumento utilizzati. Strumenti di sviluppo per l\u0026rsquo;ESP32 Per programmare l\u0026rsquo;ESP32, è necessario utilizzare uno strumento di sviluppo. Esistono diversi strumenti di sviluppo disponibili per l\u0026rsquo;ESP32, ciascuno con i propri vantaggi e svantaggi.\nElenco degli strumenti di sviluppo per l\u0026rsquo;ESP32\nEcco un elenco dettagliato degli strumenti di sviluppo più comuni per l\u0026rsquo;ESP32:\nEspressif IoT Development Framework (ESP-IDF): L\u0026rsquo;ESP-IDF è un framework di sviluppo completo che include un compilatore, un linker, un debugger e una serie di librerie. È lo strumento di sviluppo ufficiale fornito da Espressif, il produttore dell\u0026rsquo;ESP32. Arduino IDE: L\u0026rsquo;Arduino IDE è un ambiente di sviluppo integrato (IDE) che può essere utilizzato per programmare una varietà di microcontrollori, tra cui l\u0026rsquo;ESP32. L\u0026rsquo;Arduino IDE è una buona scelta per i principianti che desiderano iniziare a programmare l\u0026rsquo;ESP32 rapidamente e facilmente. PlatformIO: PlatformIO è un framework di sviluppo multi-piattaforma che può essere utilizzato per programmare una varietà di microcontrollori, tra cui l\u0026rsquo;ESP32. PlatformIO offre un\u0026rsquo;ampia gamma di funzionalità e integrazioni, rendendolo una buona scelta per gli sviluppatori esperti. L\u0026rsquo;installazione degli strumenti di sviluppo per l\u0026rsquo;ESP32 varia a seconda del sistema operativo utilizzato. Windows Per installare l\u0026rsquo;ESP-IDF su Windows, è necessario scaricare il file eseguibile per Windows dal sito Web di Espressif. Dopo aver scaricato il file, è necessario eseguire il file e seguire le istruzioni sullo schermo.\nPer installare l\u0026rsquo;Arduino IDE su Windows, è necessario scaricare il file eseguibile per Windows dal sito Web di Arduino. Dopo aver scaricato il file, è necessario eseguire il file e seguire le istruzioni sullo schermo.\nPer installare PlatformIO su Windows, è necessario scaricare il file eseguibile per Windows dal sito Web di PlatformIO. Dopo aver scaricato il file, è necessario eseguire il file e seguire le istruzioni sullo schermo.\nMacOS Per installare l\u0026rsquo;ESP-IDF su macOS, è necessario scaricare il file eseguibile per macOS dal sito Web di Espressif. Dopo aver scaricato il file, è necessario aprire il file e seguire le istruzioni sullo schermo.\nPer installare l\u0026rsquo;Arduino IDE su macOS, è necessario scaricare il file DMG dal sito Web di Arduino. Dopo aver scaricato il file, è necessario aprire il file DMG e trascinare l\u0026rsquo;icona dell\u0026rsquo;Arduino IDE nella cartella Applicazioni.\nPer installare PlatformIO su macOS, è necessario scaricare il file DMG dal sito Web di PlatformIO. Dopo aver scaricato il file, è necessario aprire il file DMG e trascinare l\u0026rsquo;icona di PlatformIO nella cartella Applicazioni.\nLinux Per installare l\u0026rsquo;ESP-IDF su Linux, è necessario seguire le istruzioni fornite sul sito Web di Espressif.\nPer installare l\u0026rsquo;Arduino IDE su Linux, è necessario seguire le istruzioni fornite sul sito Web\nLinguaggi di programmazione disponibili per l\u0026rsquo;ESP32 Per programmare l\u0026rsquo;ESP32, è necessario utilizzare un linguaggio di programmazione. Esistono diversi linguaggi di programmazione disponibili per l\u0026rsquo;ESP32, ciascuno con i propri vantaggi e svantaggi.\nC++ C++ è un linguaggio di programmazione orientato agli oggetti che è ampiamente utilizzato per la programmazione di sistemi embedded. C++ è un linguaggio potente e flessibile che può essere utilizzato per creare applicazioni complesse. Tuttavia, C++ può essere difficile da imparare e utilizzare, soprattutto per i principianti.\nPython Python è un linguaggio di programmazione di alto livello che è facile da imparare e utilizzare. Python è un linguaggio versatile che può essere utilizzato per una varietà di applicazioni, tra cui l\u0026rsquo;IoT, la robotica e l\u0026rsquo;automazione. Python è una buona scelta per i principianti che desiderano iniziare a programmare l\u0026rsquo;ESP32 rapidamente e facilmente.\nEcco alcuni esempi di programmi semplici che è possibile creare utilizzando l\u0026rsquo;ESP32:\nAccendere un LED: Questo programma accenderà un LED collegato all\u0026rsquo;ESP32. Muovere un motore: Questo programma muoverà un motore collegato all\u0026rsquo;ESP32.\nCapitolo 3: Applicazioni dell\u0026rsquo;ESP32 per lo sviluppo sostenibile e l\u0026rsquo;ambiente La potenza e la versatilt rendono l\u0026rsquo;ESP32 una piattaforma ideale per lo sviluppo di applicazioni che contribuiscono allo sviluppo sostenibile e alla protezione dell\u0026rsquo;ambiente.\nEcco alcuni esempi di applicazioni dell\u0026rsquo;ESP32 per lo sviluppo sostenibile e l\u0026rsquo;ambiente:\nMonitoraggio ambientale: L\u0026rsquo;ESP32 può essere utilizzato per monitorare una varietà di parametri ambientali, tra cui la qualità dell\u0026rsquo;aria, l\u0026rsquo;inquinamento acustico, la temperatura e l\u0026rsquo;umidità. I dati raccolti possono essere utilizzati per migliorare la comprensione dell\u0026rsquo;ambiente e per informare le politiche e le pratiche di sostenibilità.\nControllo dell\u0026rsquo;energia: L\u0026rsquo;ESP32 può essere utilizzato per controllare i dispositivi elettrici e le apparecchiature per ridurre il consumo energetico. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;illuminazione, i condizionatori d\u0026rsquo;aria e altri dispositivi per spegnerli automaticamente quando non sono in uso.\nGestione dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per gestire i rifiuti in modo più efficiente e sostenibile. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per monitorare i contenitori dei rifiuti per rilevare quando sono pieni e per avvisare i responsabili della raccolta.\nAgricoltura intelligente: L\u0026rsquo;ESP32 può essere utilizzato per migliorare l\u0026rsquo;efficienza e la sostenibilità dell\u0026rsquo;agricoltura. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni del suolo e delle colture per ottimizzare l\u0026rsquo;irrigazione e la fertilizzazione.\nMobilità sostenibile: L\u0026rsquo;ESP32 può essere utilizzato per migliorare la mobilità sostenibile. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni dei veicoli elettrici per garantire un funzionamento efficiente e sicuro.\nQuesti sono solo alcuni esempi delle molte applicazioni potenziali dell\u0026rsquo;ESP32 per lo sviluppo sostenibile e l\u0026rsquo;ambiente. L\u0026rsquo;ESP32 è una piattaforma potente e versatile che può essere utilizzata per creare soluzioni innovative che contribuiscono a un futuro più sostenibile.\nVantaggi dell\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 per lo sviluppo sostenibile e l\u0026rsquo;ambiente L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 per lo sviluppo sostenibile e l\u0026rsquo;ambiente offre una serie di vantaggi, tra cui:\nEfficienza: L\u0026rsquo;ESP32 è un microcontroller a basso consumo energetico, il che lo rende ideale per applicazioni che devono funzionare per lunghi periodi di tempo con una batteria limitata.\nVersatilità: L\u0026rsquo;ESP32 supporta una varietà di funzionalità, il che lo rende adatto a una vasta gamma di applicazioni.\nCosto: L\u0026rsquo;ESP32 è un microcontroller economico, il che lo rende accessibile a un\u0026rsquo;ampia gamma di utenti.\nL\u0026rsquo;ESP32 è una piattaforma promettente per lo sviluppo di applicazioni che contribuiscono allo sviluppo sostenibile e alla protezione dell\u0026rsquo;ambiente, in particolare la efficienza e il costo ne fanno il candidato ideale per una gestione \u0026ldquo;autarchica\u0026rdquo; della tecnologia applicata all\u0026rsquo;ambiente.\nMonitoraggio ambientale Ecco alcuni esempi di applicazioni di monitoraggio ambientale che possono essere sviluppate utilizzando l\u0026rsquo;ESP32:\nMonitoraggio della qualità dell\u0026rsquo;aria: L\u0026rsquo;ESP32 può essere utilizzato per monitorare la qualità dell\u0026rsquo;aria misurando la concentrazione di inquinanti come polveri sottili, ozono e biossido di azoto. I dati raccolti possono essere utilizzati per informare le politiche e le pratiche di mitigazione dell\u0026rsquo;inquinamento atmosferico. Monitoraggio dell\u0026rsquo;inquinamento acustico: L\u0026rsquo;ESP32 può essere utilizzato per monitorare l\u0026rsquo;inquinamento acustico misurando il livello di rumore. I dati raccolti possono essere utilizzati per identificare le fonti di inquinamento acustico e per sviluppare misure di mitigazione. Monitoraggio della temperatura e dell\u0026rsquo;umidità: L\u0026rsquo;ESP32 può essere utilizzato per monitorare la temperatura e l\u0026rsquo;umidità dell\u0026rsquo;aria o del suolo. I dati raccolti possono essere utilizzati per monitorare le condizioni ambientali e per identificare le potenziali minacce per l\u0026rsquo;ambiente. Sviluppi futuri I progressi tecnologici stanno aprendo nuove possibilità per lo sviluppo di applicazioni di monitoraggio ambientale basate sull\u0026rsquo;ESP32. Ad esempio, l\u0026rsquo;integrazione di sensori avanzati, come i sensori di immagini, consentirà di raccogliere dati più dettagliati sull\u0026rsquo;ambiente. Inoltre, l\u0026rsquo;aumento della potenza di elaborazione dell\u0026rsquo;ESP32 consentirà di eseguire analisi più complesse dei dati raccolti. L\u0026rsquo;ESP32 è una piattaforma promettente per lo sviluppo di applicazioni di monitoraggio ambientale. L\u0026rsquo;ESP32 offre una serie di vantaggi che lo rendono ideale per questo tipo di applicazioni, tra cui l\u0026rsquo;efficienza, la versatilità e il costo. I progressi tecnologici stanno aprendo nuove possibilità per lo sviluppo di applicazioni di monitoraggio ambientale basate sull\u0026rsquo;ESP32.\nEfficienza energetica Una delle caratteristiche più importanti dell\u0026rsquo;ESP32 è la sua efficienza energetica. L\u0026rsquo;ESP32 è progettato per funzionare con una batteria limitata, il che lo rende ideale per applicazioni che devono funzionare per lunghi periodi di tempo senza ricarica.\nEsempi di utilizzo dell\u0026rsquo;ESP32 per l\u0026rsquo;efficienza energetica L\u0026rsquo;ESP32 può essere utilizzato per una varietà di applicazioni che contribuiscono all\u0026rsquo;efficienza energetica, tra cui:\nMonitoraggio e controllo dell\u0026rsquo;energia: L\u0026rsquo;ESP32 può essere utilizzato per monitorare il consumo energetico di dispositivi e apparecchiature per identificare le opportunità di risparmio energetico. L\u0026rsquo;ESP32 può anche essere utilizzato per controllare i dispositivi e le apparecchiature per spegnerli automaticamente quando non sono in uso. Gestione dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per monitorare i contenitori dei rifiuti per rilevare quando sono pieni e per avvisare i responsabili della raccolta. Ciò può aiutare a ridurre il numero di viaggi dei camion dei rifiuti, risparmiando carburante e riducendo le emissioni di gas serra. Agricoltura intelligente: L\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni del suolo e delle colture per ottimizzare l\u0026rsquo;irrigazione e la fertilizzazione. Ciò può aiutare a ridurre l\u0026rsquo;uso di acqua e fertilizzanti, risparmiando denaro e proteggendo l\u0026rsquo;ambiente. Mobilità sostenibile: L\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni dei veicoli elettrici per garantire un funzionamento efficiente e sicuro. Ciò può aiutare a migliorare l\u0026rsquo;efficienza dei veicoli elettrici e a ridurre l\u0026rsquo;impatto ambientale della mobilità. L\u0026rsquo;ESP32 è una piattaforma in continua evoluzione. Espressif, il produttore dell\u0026rsquo;ESP32, sta costantemente lavorando per migliorare l\u0026rsquo;efficienza energetica del microcontroller. Alcuni degli sviluppi futuri che potrebbero migliorare l\u0026rsquo;efficienza energetica dell\u0026rsquo;ESP32 includono:\nMiglioramenti alla progettazione del processore: Espressif potrebbe migliorare l\u0026rsquo;efficienza energetica dell\u0026rsquo;ESP32 migliorando la progettazione del processore. Ciò potrebbe includere l\u0026rsquo;utilizzo di un processore a basso consumo energetico o l\u0026rsquo;implementazione di nuove tecniche di ottimizzazione energetica.\nNuovi algoritmi di risparmio energetico: Espressif potrebbe sviluppare nuovi algoritmi di risparmio energetico per l\u0026rsquo;ESP32. Questi algoritmi potrebbero aiutare a ridurre il consumo energetico del microcontroller quando non è in uso o quando non è necessario eseguire operazioni ad alta intensità energetica.\nNuove funzionalità di risparmio energetico: Espressif potrebbe aggiungere nuove funzionalità di risparmio energetico all\u0026rsquo;ESP32. Queste funzionalità potrebbero includere la possibilità di spegnere automaticamente il microcontroller quando non è in uso o la possibilità di ridurre la frequenza del processore quando non è necessario eseguire operazioni ad alta intensità energetica.\nQuesti sviluppi potrebbero rendere l\u0026rsquo;ESP32 una piattaforma ancora più potente e versatile per lo sviluppo di applicazioni che contribuiscono all\u0026rsquo;efficienza energetica e alla protezione dell\u0026rsquo;ambiente.\nSicurezza e controllo Esp32 può essere utilizzato per una varietà di applicazioni, tra cui Internet of Things (IoT), robotica e automazione. L\u0026rsquo;ESP32 supporta una varietà di funzionalità, tra cui Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), un\u0026rsquo;unità di elaborazione grafica (GPU) e un\u0026rsquo;unità di elaborazione neurale (NPU). Tutto questo lo rendono una piattaforma ideale per lo sviluppo di applicazioni che richiedono sicurezza e controllo.\nSicurezza La sicurezza è una preoccupazione importante per qualsiasi applicazione che utilizza l\u0026rsquo;ESP32. L\u0026rsquo;ESP32 offre una serie di funzionalità di sicurezza integrate, tra cui:\nAutenticazione: L\u0026rsquo;ESP32 supporta una varietà di algoritmi di autenticazione, tra cui WPA2, TLS e MQTT. Crittografia: L\u0026rsquo;ESP32 supporta una varietà di algoritmi di crittografia, tra cui AES, SHA e RSA. Protezione da intrusioni: L\u0026rsquo;ESP32 supporta una serie di funzionalità di protezione da intrusioni, tra cui firewall, intrusion detection system (IDS) e intrusion prevention system (IPS). Inoltre, l\u0026rsquo;ESP32 può essere integrato con una varietà di moduli di sicurezza aggiuntivi, come moduli di autenticazione a due fattori (2FA) e moduli di crittografia hardware.\nEsempi di applicazioni di sicurezza Ecco alcuni esempi di applicazioni di sicurezza che possono essere sviluppate utilizzando l\u0026rsquo;ESP32:\nSicurezza domestica: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di sicurezza domestica intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare le telecamere di sorveglianza, gli allarmi e le serrature intelligenti. Sicurezza aziendale: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di sicurezza aziendale intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;accesso alle risorse aziendali, le telecamere di sicurezza e i sistemi di rilevamento dei movimenti. Sicurezza industriale: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di sicurezza industriale intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare i macchinari industriali, i sistemi di rilevamento delle intrusioni e i sistemi di rilevamento dei guasti. Controllo Ecco alcuni esempi di applicazioni di controllo che possono essere sviluppate utilizzando l\u0026rsquo;ESP32:\nControllo dell\u0026rsquo;illuminazione: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di controllo dell\u0026rsquo;illuminazione intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;illuminazione interna ed esterna di un edificio. Controllo del clima: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di controllo del clima intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare il riscaldamento, il raffreddamento e la ventilazione di un edificio. Controllo dei dispositivi domestici: L\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di controllo dei dispositivi domestici intelligenti. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare la TV, la radio e altri dispositivi domestici. Sviluppi futuri Gli sviluppi futuri dell\u0026rsquo;ESP32 potrebbero includere delle nuove funzionalità di sicurezza, come l\u0026rsquo;autenticazione multifattoriale (MFA) e la crittografia hardware.\nInoltre il supporto per nuovi protocolli di comunicazione come 5G e 6G potrennero renderlo ancora più utile nel campo dell automazione industriale, nelle tele-medicina. L\u0026rsquo;ESP32 potrebbe essere integrato con nuove tecnologie, come l\u0026rsquo;intelligenza artificiale (AI) e il machine learning (ML). Con questi sviluppi l\u0026rsquo;ESP32 potrebbe diventare una piattaforma eccellente applicazioni di sicurezza e controllo a cost irrisori.\nTrasporto sostenibile Il trasporto è una delle principali cause di emissioni di gas serra, responsabili del cambiamento climatico. Per ridurre l\u0026rsquo;impatto ambientale del trasporto, è necessario promuovere la mobilità sostenibile, che include il trasporto pubblico, la mobilità attiva e i veicoli a basse emissioni.\nMonitoraggio dei veicoli: L\u0026rsquo;ESP32 può essere utilizzato per monitorare i veicoli per una varietà di scopi, tra cui la posizione, la velocità e il consumo di carburante. I dati raccolti possono essere utilizzati per ottimizzare l\u0026rsquo;utilizzo dei veicoli e ridurre le emissioni.\nControllo dei sistemi di trasporto: L\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di trasporto, come i semafori, i sistemi di pagamento e le porte di accesso. Il controllo automatizzato dei sistemi di trasporto può contribuire a migliorare l\u0026rsquo;efficienza e la sicurezza del trasporto.\n-Sistemi di guida autonoma: L\u0026rsquo;ESP32 può essere utilizzato per sviluppare sistemi di guida autonoma per veicoli elettrici. I sistemi di guida autonoma possono contribuire a ridurre le emissioni e a migliorare la sicurezza del trasporto.\nSviluppi futuri L\u0026rsquo;ESP32 è una piattaforma in rapida evoluzione e le sue capacità sono in continua crescita. In futuro, l\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare nuove applicazioni per il trasporto sostenibile, tra cui:\nVeicoli autonomi a guida condivisa: I veicoli autonomi a guida condivisa potrebbero contribuire a ridurre il traffico e le emissioni. L\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare questi veicoli, fornendo le funzionalità necessarie per la guida autonoma e la condivisione.\nTrasporto pubblico intelligente: Il trasporto pubblico intelligente potrebbe contribuire a migliorare l\u0026rsquo;efficienza e l\u0026rsquo;accessibilità del trasporto pubblico. L\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare sistemi di trasporto pubblico intelligente, fornendo le funzionalità necessarie per la prenotazione, il pagamento e la tracciabilità dei veicoli.\nMobilità attiva: La mobilità attiva, come il camminare, andare in bicicletta e usare i mezzi pubblici, è una forma di trasporto sostenibile. L\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare soluzioni che incoraggino la mobilità attiva, come sistemi di navigazione per ciclisti e pedoni.\nL\u0026rsquo;ESP32 è una piattaforma promettente per lo sviluppo di applicazioni che contribuiscono al trasporto sostenibile. L\u0026rsquo;ESP32 offre una serie di vantaggi che lo rendono ideale per questo tipo di applicazioni, tra cui l\u0026rsquo;efficienza, la versatilità e il costo.\nESP32 e rifiuti e riciclaggio L\u0026rsquo;ESP32 può essere utilizzato per una varietà di applicazioni, tra cui Internet of Things (IoT), robotica e automazione. L\u0026rsquo;ESP32 supporta una varietà di funzionalità, tra cui Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), un\u0026rsquo;unità di elaborazione grafica (GPU) e un\u0026rsquo;unità di elaborazione neurale (NPU).\nQueste funzionalità rendono l\u0026rsquo;ESP32 una piattaforma ideale per lo sviluppo di applicazioni che contribuiscono alla gestione dei rifiuti e al riciclaggio.\nEsempi di applicazioni dell\u0026rsquo;ESP32 per la gestione dei rifiuti e il riciclaggio\nMonitoraggio dei contenitori dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per monitorare i contenitori dei rifiuti per rilevare quando sono pieni e per avvisare i responsabili della raccolta. Questo può aiutare a garantire che i rifiuti vengano raccolti in modo efficiente e che non si accumulino. Riconoscimento dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per riconoscere i tipi di rifiuti presenti in un contenitore. Questo può aiutare a migliorare la precisione del riciclaggio e a ridurre la quantità di rifiuti che finiscono in discarica. Sistemi di identificazione automatica (RFID): L\u0026rsquo;ESP32 può essere utilizzato per implementare sistemi di identificazione automatica (RFID) per i rifiuti. Questo può aiutare a tracciare i rifiuti durante il processo di raccolta e riciclaggio. Sviluppi futuri L\u0026rsquo;uso dell\u0026rsquo;intelligenza artificiale (AI) per migliorare il riconoscimento dei rifiuti: L\u0026rsquo;AI può essere utilizzata per migliorare la precisione del riconoscimento dei rifiuti, anche per rifiuti difficili da identificare.\nL\u0026rsquo;uso di sensori per monitorare le condizioni dei rifiuti: I sensori possono essere utilizzati per monitorare le condizioni dei rifiuti, come la temperatura e l\u0026rsquo;umidità. Questa informazione può essere utilizzata per migliorare la sicurezza e l\u0026rsquo;efficienza del processo di gestione dei rifiuti.\nL\u0026rsquo;uso di tecnologie di comunicazione avanzate per migliorare la comunicazione tra i sistemi di gestione dei rifiuti: Le tecnologie di comunicazione avanzate, come 5G e LoRaWAN, possono essere utilizzate per migliorare la comunicazione tra i sistemi di gestione dei rifiuti. Questo può aiutare a migliorare l\u0026rsquo;efficienza e la flessibilità del processo di gestione dei rifiuti. Conclusione\nEdilizia sostenibile Le classiche tecniche per una edilizia sostenibile:\nLe tecniche di edilizia sostenibile precedenti si concentravano principalmente sulla riduzione del consumo energetico e delle emissioni di carbonio. Alcune tecniche comuni includono:\nIsolamento termico: L\u0026rsquo;isolamento termico aiuta a mantenere le case calde in inverno e fresche in estate, riducendo il consumo di energia per il riscaldamento e il raffreddamento. Efficienza energetica degli elettrodomestici: Gli elettrodomestici efficienti da un punto di vista energetico consumano meno energia, riducendo il consumo energetico complessivo di una casa. Riciclo e riciclaggio dei materiali: Il riciclo e il riciclaggio dei materiali aiutano a ridurre la quantità di rifiuti generati dalla costruzione e dalla demolizione di edifici. Tecniche moderne di edilizia sostenibile Le tecniche di edilizia sostenibile moderne si concentrano su una serie di obiettivi, tra cui:\nRiduci, riutilizza, ricicla: La riduzione, il riutilizzo e il riciclaggio dei materiali sono fondamentali per l\u0026rsquo;edilizia sostenibile. Energia rinnovabile: L\u0026rsquo;utilizzo di energia rinnovabile, come l\u0026rsquo;energia solare e l\u0026rsquo;energia eolica, può aiutare a ridurre la dipendenza dalle fonti di energia non rinnovabili.\nEfficienza idrica: L\u0026rsquo;efficienza idrica aiuta a ridurre il consumo di acqua, che è una risorsa preziosa. Salute e benessere: L\u0026rsquo;edilizia sostenibile dovrebbe promuovere la salute e il benessere degli abitanti. L\u0026rsquo;ESP32 nell\u0026rsquo;edilizia sostenibile\nL\u0026rsquo;ESP32 può essere utilizzato in una varietà di applicazioni per l\u0026rsquo;edilizia sostenibile, tra cui:\n-Monitoraggio ambientale: L\u0026rsquo;ESP32 può essere utilizzato per monitorare i parametri ambientali, come la temperatura, l\u0026rsquo;umidità e la qualità dell\u0026rsquo;aria. I dati raccolti possono essere utilizzati per migliorare l\u0026rsquo;efficienza energetica e la sostenibilità degli edifici.\n-Controllo dell\u0026rsquo;energia: L\u0026rsquo;ESP32 può essere utilizzato per controllare i dispositivi elettrici e le apparecchiature per ridurre il consumo energetico. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;illuminazione, i condizionatori d\u0026rsquo;aria e altri dispositivi per spegnerli automaticamente quando non sono in uso.\n-Gestione dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per gestire i rifiuti in modo più efficiente e sostenibile. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per monitorare i contenitori dei rifiuti per rilevare quando sono pieni e per avvisare i responsabili della raccolta.\nAgricoltura intelligente: L\u0026rsquo;ESP32 può essere utilizzato per migliorare l\u0026rsquo;efficienza e la sostenibilità dell\u0026rsquo;agricoltura. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni del suolo e delle colture per ottimizzare l\u0026rsquo;irrigazione e la fertilizzazione. Esempi di utilizzo dell\u0026rsquo;ESP32 nell\u0026rsquo;edilizia sostenibile La città di Amsterdam utilizza l\u0026rsquo;ESP32 per monitorare l\u0026rsquo;illuminazione pubblica. I dati raccolti vengono utilizzati per ottimizzare l\u0026rsquo;illuminazione e ridurre il consumo energetico.\nE l\u0026rsquo;azienda Bosch utilizza l\u0026rsquo;ESP32 per controllare i condizionatori d\u0026rsquo;aria in edifici commerciali. I condizionatori d\u0026rsquo;aria vengono controllati in modo intelligente per garantire un comfort ottimale e ridurre il consumo energetico.\nL\u0026rsquo;azienda \u0026ldquo;Waste Management\u0026rdquo; utilizza l\u0026rsquo;ESP32 per monitorare i contenitori dei rifiuti. I dati raccolti vengono utilizzati per ottimizzare la raccolta dei rifiuti e ridurre le emissioni di gas serra. Sviluppi futuri\nAgricoltura sostenibile L\u0026rsquo;agricoltura sostenibile è una pratica agricola che mira a ridurre l\u0026rsquo;impatto ambientale dell\u0026rsquo;agricoltura, migliorando al contempo la produttività e la redditività. L\u0026rsquo;ESP32, un microcontroller economico e versatile, può essere utilizzato per migliorare l\u0026rsquo;efficienza e la sostenibilità dell\u0026rsquo;agricoltura in una serie di modi.\nQuali erano le tecniche precedenti prima della rivoluzione IoT:\nRotazione delle colture: La rotazione delle colture è una pratica agricola che prevede la coltivazione di diverse colture nello stesso campo in successione. Questo aiuta a mantenere il suolo sano e a ridurre la necessità di fertilizzanti.\nConcimazione organica: La concimazione organica è l\u0026rsquo;applicazione di materiali organici, come il compost, al suolo. Questo aiuta a migliorare la fertilità del suolo e a ridurre la necessità di fertilizzanti chimici. Irrigazione efficiente: L\u0026rsquo;irrigazione efficiente è l\u0026rsquo;applicazione dell\u0026rsquo;acqua alle colture in modo che venga utilizzata in modo efficace e sostenibile.\nControllo biologico dei parassiti: Il controllo biologico dei parassiti è l\u0026rsquo;utilizzo di antagonisti naturali per controllare i parassiti delle colture. Questo aiuta a ridurre l\u0026rsquo;uso di pesticidi chimici. Tecniche moderne\nTutti questi sistemi verranno certamente mantenuti perchè efficai, ma nuove importanti metodologie possono migliorare la loro efficacia:\nAgricoltura di precisione: L\u0026rsquo;agricoltura di precisione è l\u0026rsquo;utilizzo di tecnologie avanzate per applicare i fattori di produzione, come l\u0026rsquo;acqua, i fertilizzanti e i pesticidi, in modo più efficiente ed efficace.\nAgricoltura digitale: L\u0026rsquo;agricoltura digitale è l\u0026rsquo;utilizzo di tecnologie digitali, come l\u0026rsquo;Internet of Things (IoT), per raccogliere e analizzare dati sulle colture e sull\u0026rsquo;ambiente. I dati raccolti possono essere utilizzati per migliorare le decisioni agricole.\nAgricoltura verticale: L\u0026rsquo;agricoltura verticale è la coltivazione di colture in ambienti chiusi e controllati. Questo aiuta a ridurre l\u0026rsquo;impatto ambientale dell\u0026rsquo;agricoltura, poiché richiede meno terra e acqua. Esempi\nE parlando dal punto di vista strettamente tecnologico, L\u0026rsquo;ESP32 può essere utilizzato con efficacia in molteplici situazioni:\nMonitoraggio del suolo: L\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni del suolo, come la temperatura, l\u0026rsquo;umidità e il pH. I dati raccolti possono essere utilizzati per ottimizzare l\u0026rsquo;irrigazione e la fertilizzazione.\nMonitoraggio delle colture: L\u0026rsquo;ESP32 può essere utilizzato per monitorare le condizioni delle colture, come la crescita, la salute e la presenza di parassiti. I dati raccolti possono essere utilizzati per identificare i problemi in anticipo e prendere misure preventive. Controllo dei sistemi di irrigazione: L\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di irrigazione in modo automatico. Questo aiuta a ridurre lo spreco di acqua.\nControllo dei sistemi di fertilizzazione: L\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di fertilizzazione in modo automatico. Questo aiuta a ridurre l\u0026rsquo;uso di fertilizzanti chimici. Sviluppi futuri\nE inoltre inuovo sensori a basso costo diponibili per l\u0026rsquo;intero ecosistema di Arduino può essere usato per raccogliere una serie di dati sulle colture e sull\u0026rsquo;ambiente. Sensori più precisi e affidabili potrebbero consentire di raccogliere dati più accurati, che potrebbero essere utilizzati per migliorare le decisioni agricole. Inoltre la adeguata potenza di elaborazione del\u0026rsquo;ESP32 è un potente \u0026ldquo;enabler\u0026rdquo; eseguire algoritmi di apprendimento automatico e intelligenza artificiale. Più potenza di elaborazione potrebbe consentire di sviluppare applicazioni più avanzate per l\u0026rsquo;agricoltura sostenibile. I sostanza la economicità intrinseca e le prestazioni adeguate permettono a questa piattaforma di eseguire compiti importanti a costi irrosori, rendendoli accessibili letteralmente a chiunque, compresi gli agricoltore delle zone meno avvantaggiate.\nSalute e benessere Queste funzionalità rendono l\u0026rsquo;ESP32 una piattaforma ideale per lo sviluppo di applicazioni per la salute e il benessere che sono:\nConnesse: L\u0026rsquo;ESP32 può essere utilizzato per collegare dispositivi per la salute e il benessere a Internet, consentendo la raccolta e l\u0026rsquo;analisi dei dati in tempo reale. Portatili: L\u0026rsquo;ESP32 è un microcontroller a basso consumo energetico, il che lo rende ideale per dispositivi indossabili e mobili per la salute e il benessere. Cost-effective: L\u0026rsquo;ESP32 è un microcontroller economico, il che lo rende accessibile a un\u0026rsquo;ampia gamma di utenti. Tecniche precedenti e moderne\nPrima dell\u0026rsquo;avvento dell\u0026rsquo;ESP32, le applicazioni per la salute e il benessere erano spesso basate su tecnologie meno potenti e versatili. Ad esempio, i dispositivi indossabili per il fitness spesso utilizzavano sensori analogici che erano soggetti a interferenze e imprecisione.\nL\u0026rsquo;ESP32 ha reso possibile lo sviluppo di nuove applicazioni per la salute e il benessere che sfruttano le ultime tecnologie, tra cui:\nSensori digitali: I sensori digitali sono più precisi e affidabili dei sensori analogici. L\u0026rsquo;ESP32 supporta una varietà di sensori digitali, tra cui sensori di movimento, sensori di temperatura e sensori di luce. Connettività wireless: La connettività wireless consente ai dispositivi per la salute e il benessere di comunicare con altri dispositivi e con Internet. L\u0026rsquo;ESP32 supporta Wi-Fi e Bluetooth, che consentono ai dispositivi per la salute e il benessere di trasmettere dati in tempo reale a medici, terapisti e altri professionisti sanitari. Esempi\nEcco alcuni esempi di applicazioni per la salute e il benessere che possono essere sviluppate utilizzando l\u0026rsquo;ESP32:\nDispositivi indossabili per il fitness: I dispositivi indossabili per il fitness possono utilizzare l\u0026rsquo;ESP32 per monitorare la frequenza cardiaca, i passi, la distanza percorsa e altre metriche di fitness. I dati raccolti possono essere utilizzati per migliorare la forma fisica e la salute generale. Dispositivi di monitoraggio della salute a distanza: I dispositivi di monitoraggio della salute a distanza possono utilizzare l\u0026rsquo;ESP32 per monitorare i parametri vitali di pazienti a casa o in ospedale. I dati raccolti possono essere utilizzati per fornire assistenza medica remota e prevenire le crisi mediche. Dispositivi di assistenza sanitaria personalizzata: I dispositivi di assistenza sanitaria personalizzata possono utilizzare l\u0026rsquo;ESP32 per fornire terapie personalizzate ai pazienti. Ad esempio, un dispositivo di assistenza sanitaria personalizzato può utilizzare l\u0026rsquo;ESP32 per monitorare i sintomi di una persona con diabete e fornire consigli personalizzati per la gestione della malattia. Sviluppi futuri\nL\u0026rsquo;ESP32 è una piattaforma in rapida evoluzione e i suoi sviluppi futuri hanno il potenziale per rivoluzionare il settore della salute e del benessere. Ad esempio, l\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare nuovi dispositivi indossabili per il fitness che monitorano più metriche di salute e forniscono feedback più personalizzati. Inoltre, l\u0026rsquo;ESP32 potrebbe essere utilizzato per sviluppare nuovi dispositivi di monitoraggio della salute a distanza che consentono ai medici di fornire assistenza medica remota in tempo reale.\nL\u0026rsquo;ESP32 è una piattaforma potente e versatile che offre un\u0026rsquo;ampia gamma di possibilità per lo sviluppo di applicazioni per la salute e il benessere. I suoi sviluppi futuri hanno il potenziale per migliorare la salute e il benessere delle persone in tutto il mondo.\nCapitolo 4: Monitoraggio ambientale con l\u0026rsquo;ESP32 Il monitoraggio ambientale è il processo di raccolta e analisi dei dati sull\u0026rsquo;ambiente. I dati ambientali possono essere utilizzati per una varietà di scopi, tra cui la gestione delle risorse naturali, la protezione dell\u0026rsquo;ambiente e la ricerca scientifica.\nL\u0026rsquo;ESP32 consuma una quantità relativamente piccola di energia, che lo rende adatto per l\u0026rsquo;utilizzo in applicazioni alimentate a batteria o a energia solare. La disponibiltà di connessioni è fondamentale in questo tipo di applicazioni e non batsa prevedere il collegamento alle sole reti WI-FI. L\u0026rsquo;ESP32 integra una serie di moduli di connettività wireless tra cui LoRa ed ESP-NOW. Queste opzioni aggiuntive non sempre presenti nelle altre schede (ESP-NOW è un protocollo esclusivo dell\u0026rsquo;ESP32) permetteno la raccolta ei dati sensotriali e attuativi anche a distanze superiori ai 100 mt (ESP-NOW) e decine di KM (protocollo LoRa). Grazie all connessione wireless i dati racolti vengono rasmessi in tempo reale a un centro di controllo.\nTecniche e metodi per il monitoraggio ambientale con l\u0026rsquo;ESP32 La nostra scheda può essere utilizzatao per il monitoraggio ambientale in una varietà di modi, tra cui:\nRaccolta dati dei sensori: L\u0026rsquo;ESP32 può essere utilizzato per raccogliere dati ambientali da sensori, come i sensori di temperatura, umidità, qualità dell\u0026rsquo;aria, rumore e luminosità. Questi dati possono essere utilizzati per monitorare l\u0026rsquo;ambiente e identificare i problemi ambientali. Trasmissione dati: L\u0026rsquo;ESP32 può essere utilizzato per trasmettere i dati raccolti dai sensori a un centro di controllo. Questo centro di controllo può utilizzare i dati per analizzare l\u0026rsquo;ambiente e prendere decisioni per la gestione delle risorse naturali, la protezione dell\u0026rsquo;ambiente e la ricerca scientifica. Negli anni post Covid-19 le schede Iot hanno destato una attenzione crescente per la capacità di monitorare la qualità dell\u0026rsquo;aria in modo super economico. Più di un imprenditore ha espresso interesse nella scheda, elogiandone i vari aspetti innovativi e mettendo in luce le potenzialità di sviluppo\nEsempi di sistemi di monitoraggio ambientale basati sull\u0026rsquo;ESP32\nCome detto sopra il controllo dell\u0026rsquo;aria è stato il principiale fattore di successo nel periodo Covid-19 2, ma la fine della emergenza non ha diminuito l\u0026rsquo;interesse per la tematica. I sistemi di monitoraggio dell\u0026rsquo;aria possono usare l\u0026rsquo;ESP32 per raccogliere dati da specifici sensori di qualità dell\u0026rsquo;aria. Il costo di questa attrezzatura si aggira intorno alle poche decine di euro, pur fornendo qualità e affidabilitò di buon livello. I dati rilevati vengono in genere salvati su database NOSQL o Postgres per produrre previsioni affidabili grazie agli algoritmi in Machine Learning. Sempre grazie al ML i ricercatori possono individuare le specifiche fonti di inquinamento con un grado di precisione mai raggiunto prima. Con un numero sufficiente e variato di rilevazioni diventa possibili identificare singole entità produttive con comporatamenti ai limiri del lecito o nettamente aldilà della legge.\nSistemi di monitoraggio della temperatura: La nostra scheda può raccogliere dati sulla temperatura da sensori di temperatura/umidità molto precisi ma a basso costo. Esattamente come come accade con i sensori di emissioni tossiche/nocive, i dati possono essere utilizzati per monitorare il clima e identificare anomalie locali (ciminiere al di fuori dei limiti di legge) o globali come i cambiamenti climatici.\nSistemi di monitoraggio della flora e della fauna I sistemi di monitoraggio della flora e della fauna possono utilizzare l\u0026rsquo;Iot per monitorare la flora e la fauna con sensori di movimento e telecamere a basso costo per rilevare immagini. Recentemente il tema della biodiversità e della resilienza della flora terrestre ha guadagnato molta a ttenzione sui media internazionali e non per ragioni secondarie. La catena alimentare del pianeta dipende dalla resistenza di alcune piante e dalla loro capacità di resistere ai cambiamenti. Limitarsi a poche. redditizie varietà di cereali, ad esempio potrevbbe esporre la intera catena della produzione agricola ad uno stopo improvviso. Le cause potrebbero essere la inefficacia dei pedticidi o OGM costantemente irraggiati sulle colture e la crescente immunità di insetti e parassiti.\nL\u0026rsquo;uso attento e massiccio di risorse come l\u0026rsquo;ESP32 possono migliorare la nostra comprensione dell\u0026rsquo;ambiente e a proteggere la natura per le generazioni future. Il monitoraggio ambientale è un settore ampiamente trascurato dai governi perchè mette chiaramente in luce i minimi (per non dire deludenti) risultati ottenuti finora. Non ci aspettiamo che le stesse aziende, responsabili per la massima parte, forniscano dati e strumenti per diminuire i loro stessi ricavi. Certamente non siamo afflitti da tendenze anarchiche o libertarie ma la esigenza di raccogliere dati veri e continui da parte del cittadino è una esigenza imprescindibile e fattibile anche dal punto di vista tecnico-economico.\nUna intera batteria di sensori IoT di ultima generazione può costare meno di 200 euro e la fornitura di software adeguati non è certamente un problema con l\u0026rsquo;avvento del Machine Learning. Robotdazero offre gratuitamente per questi scopi la piattaforma Kaspian. Il nostro magari ambizioso obiettivo resta quello di cambiare i sistemi di monitoraggio ambientale e renderli autonomi e controllabili anche da piccoli comuni o associazioni di cittadini.\nIl monitoraggio ambientale è una parte importante della sostenibilità. Investire nella tecnologia di monitoraggio ambientale può certamente aiutare a ridurre l\u0026rsquo;impatto ambientale\nCosa sono in dettaglio i Sensori ambientali? I sensori ambientali sono dispositivi che misurano le condizioni di parametri come la temperatura, l\u0026rsquo;umidità, la qualità dell\u0026rsquo;aria, il rumore e la luminosità. Si possono usare in una varietà di applicazioni, tra cui la gestione delle risorse naturali e la protezione dell\u0026rsquo;ambiente e la ricerca scientifica.\nTipi di sensori ambientali I sensori sono in genere specifici per i diversi utilizzi e le metodologia di funzionamento.Per fare una carrellata alcuni dei tipi più comuni di sensori ambientali includono:\nSensori di temperatura: I sensori di temperatura misurano la temperatura ambiente. Tra i sensori più noti ricordo la famiglia DHT11 e DHT12, disponibili a basso costo ma con precisione di buon livello.\nSensori di umidità: I sensori di umidità misurano l\u0026rsquo;umidità ambiente.\nSensori di qualità dell\u0026rsquo;aria che misurano la concentrazione di inquinanti nell\u0026rsquo;aria (ossidi di azoto, carbonio, etc..)\nSensori di rumore che quantificano in decibel il livello di rumore ambientale.\nSensori di luminosità.\nL\u0026rsquo;utilizzo, dunque impone una certa varietà di hardware, ma anche le tecniche usate per le misurazioni tendono ad allargare le tipologia. In breve alcune delle tecniche più comuni di misurazione:\nTermoelettrici: I sensori termoelettrici misurano la temperatura utilizzando la differenza di tensione tra due metalli diversi. Capacitivi: I sensori capacitivi misurano la temperatura o l\u0026rsquo;umidità variando la capacità di un condensatore. Resistive: I sensori resistivi misurano la temperatura variando la resistenza elettrica di un materiale. Ottici: I sensori ottici misurano la qualità dell\u0026rsquo;aria o la luminosità utilizzando la luce. Acustici: I sensori acustici misurano il rumore utilizzando le onde sonore.\nAlcuni dei marchi più comuni di sensori ambientali includono:\nHoneywell Sensata Technologies Omron Sensirion Infineon Technologies - I sensori di temperatura per l\u0026rsquo;ESP32 Leggere la temperatura con l\u0026rsquo;ESP32 è un task molto semplice. Esiste in commercio una varietà di sensori con delle caratteristiche molto diverse tra loro e applicazioni sorprendenti. Nel post vi presentiamo quelli che abbiamo usato in alcuni impianti con celle frigorifere o in semplici laboratori alimentari.\n1. DHT11 ![sensore di temperatura DHT11](images/sensore di temperatura DHT11.jpg)\nIl DHT11 è un sensore che misura sia temperatura che umidità relativa. Contiene un chip che converte il segnale analogico in digitale e invia in binario i valori ai pin di Arduino o Raspberry. In questo modo vi evita le conversione che sono necessarie ad esempio nei sensori ad ultrasuoni, come spiegato in questo nostro post sul sensore HC-SR04.\nQuesta la tabella delle specifiche del sensore:\nDHT11 Protocollo di Comunicazione one wire (a filo singolo) Alimentazione da 3 a 5.5 V Temperature misurabili da 0º a 50 ºC +/-2 ºC Range Umidità dal 20 al 90% +/-5% Frequenza campionamento 1 secondo Librerie Arduino Adafruit DHT LibraryAdafruit Unified Sensor Library Dove acquistarlo? Controlla i prezzi su Amazon 2. DHT22 ![sensore di temperatura DHT22](images/sensore di temperatura DHT22.jpg)\nIl sensore DHT22 è (chiaramente) molto simile al DHT11. Misura temperatura e umidità come il gemello ma è molto più preciso e permette di registrare anche le temperature al di sotto dello zero (-40 ºC) e per questo lo usiamo di routine per il controllo delle celle frigorifere – automezzi compresi.\nIl prezzo è di poco superiore al DHT11 ma questo per voi non deve essere mai un problema: la qualità è superiore e il maggior prezzo che riuscirete a spuntare nei vostri lavori ripagherà il maggior costo.\nQuesta la tabella delle specifiche del sensore:\nDHT22 Protocollo di comunicazione \u0026ldquo;one wire\u0026rdquo; (filo singolo) Range di alimentazione da 3 a 6 V Temperatura misurabile da -40 º a 80 ºC +/-0.5ºC Umidità misurabile da 0 al 100% +/-2% Campionamento ogni 2 secondi Librerie software per Arduino Adafruit DHT LibraryAdafruit Unified Sensor Library Dove acquistarlo? Controlla i prezzi su Amazon 3. LM35DZ ![sensore di temperatura LM35](images/sensore di temperatura LM35.jpg)\nL’ LM35DZ è un sensore di temperatura a rilevazione lineare calibrato in gradi Celsius. La uscita è analogica ed è direttamente proporzionale alla temperatura: 10 mV per aumento o diminuzione di temperatura. State attenti a comprare esattamente questo sensore con la sigla che finisce in DZ: esistono altre due versioni del chip (si chiamano LM335 e LM34) calibrate in gradi Kelvin e in gradi Fahrenheit.\nEvitate di complicarvi la vita e e comprate solo la versione DZ, i prezzi sono identici!\nE ora la solita tabella, fate attenzione alla ottima precisione:\nLM35DZ Protocollo di comunicazione uscita analogica Range di alimentazione da 4 a 30 V Temperatura misurabile da -55º a 150ºC Precisione +/-0.3ºC (a 25ºC) lettura da Arduino con istruzioni del tipo: analogRead() Dove acquistarlo? controlla i prezzi su Amazon 4. BMP180 ![sensore di temperatura BMP180](images/sensore di temperatura BMP180.jpg)\nIl BMP180 viene presentato soprattutto come sensore barometrico, ma è anche un sensore di temperatura e quindo molto comodo per controllare le condizioni atmosferiche. Con un sensore di umidità atmosferica può diventare una centralina di rilevamento a basso costo e dalla buona precisione. Un sensore da provare il prima possibile.\nQuesta la tabella delle specifiche del sensore:\nBMP180 Protocollo di comunicazione uscita analogica Range di alimentazione da 1.8 a 3.6 V Temperatura misurabile da 0º a 65ºC Precisione +/-0.5ºC (a 25ºC) Dove acquistarlo? controlla i prezzi su Amazon 5. TMP36 ![sensore di temperatura TMP36](images/sensore di temperatura TMP36.jpg)\nIl TMP36 è un sensore di temperatura analogico piuttosto affidabile e robusto. Come per gli altri sensori analogici restituisce una tensione proporzionale alla temperatura rilevata. E’ perciò molto simile al LM35DZ di cui abbiamo parlato prima.\nQuesta la tabella delle specifiche del sensore:\nTMP36 Protocollo di comunicazione uscita analogica Range di alimentazione da 2.7 a 5.5 V Temperatura misurabile -40ºC to +125ºC Precisione +/-1.0ºC (a 25ºC) lettura da Arduino con istruzioni del tipo: analogRead() Dove acquistarlo? controlla i prezzi su Amazon\n6. LM75 ![sensore di temperatura LM75](images/sensore di temperatura LM75.jpg)\nL’ LM75 è un altro utilissimo sensore di temperaura. Funziona usando la comunicazione I2C, cioè comunica con Arduino usando i pin SDA e SCL e soprattutto ha un costo bassissimo che gli permette di essere esposto a temperature molto pericolose (125ºC) senza troppe ansie: costa appena 2€!\nQuesta la tabella delle specifiche del sensore:\nLM75 Protocollo di comunicazione I2C Range di alimentazione da 3.0 a 5.5V Temperatura misurabile da -55ºC a 125ºC Precisione +/-2.0ºC (at -55 to 125ºC range)) Librerie per Arduino Librerie I2C per LM75 Dove acquistarlo controlla i prezzi su Amazon 7. DS18B20 ![sensore di temperatura DS18B20](images/sensore di temperatura DS18B20.png)\nIl chip DS18B20 è un sensore di temperatura del tipo “one-wire” come il DHT11 che abbiamo visto verso l\u0026rsquo; inizio del post. Perciò necessita di una linea dati con tensione positiva e di una massa (GND) per comunicare con Arduino. Con il DS18B20 è estremamente facile leggere la temperatura in punti multipli perché ognuno di questi sensori ha un codice numerico univoco (un pò come il codice IMEI degli smartphone) e basta collegarli ai pin digitali di Arduino e leggere in sequenza tutti i sensori collegati.\nQuesta la tabella delle specifiche del sensore:\nDS18B20 Protocollo di comunicazione a filo singolo Range di alimentazione da 3.0 a 5.5V Temperatura misurabile da -55ºC to +125ºC Precisione +/-0.5 ºC (nell’intervallo -10ºC ~ 85ºC) Librerie Arduino DallasTemperatureOneWire Dove acquistarlo? Controlla i prezzi su Amazon 8. DS18B20 tenuta stagna ![sensore di temperatura DS18B20 impermeabile](images/sensore di temperatura DS18B20 impermeabile.jpg)\nIl DS18B20 è disponibile anche in versione impermeabile (a tenuta stagna) e questo gli permette di controllare la temperatura dei liquidi nello stesso range della versione “normale”.\nLa protezione dell\u0026rsquo;ambiente non è un problema rimandabile agli \u0026ldquo;altri\u0026rdquo; in genere, chiunque siano gli altri. Ogni errore e leggerezza nel gestire le risorse ambientali viene pagato collettivamente ma arricchisce solo alcuni individui, magari residenti a migliaia di chilometri dalle fonti di rischio. I dati raccolti dai sensori ambientali possono essere utilizzati per promuovere \u0026ldquo;class act\u0026rdquo;, denunce politiche o legali cui gli avversari dovranno rispondere fornendo a loro volta dati concreti e verificabili, non rassicurazioni.\nAnche la ricerca scientifica potrebbe avere un ruolo primario nella azione delle piccole comunità. Mettere a disposizioni i dati e tecniche di raccolta dati sarebbe un \u0026ldquo;regalo\u0026rdquo; apprezzato dai ricercatori universitari Robotdazero con la piattaforma Kaspian permetterebbe loro di accedere ai dati raccolti istantaneamente, con il semplice utilizzo di un account della nostra piattaforma Kaspian. La piattaforma, lo ricordiamo viene offerta gratuitamente per questo tipo di utilizzi ed è dotata di computer adeguati a gestire migliaia di sensori: può conservare i dati archiviati per anni usando le risorse di Amazon AWS.\nConclusione I sensori ambientali sono nel 2020/2030 degli strumenti essenziali per la protezione dell\u0026rsquo;ambiente, ci permettono di comprendere meglio le dinamiche evolutive del pianeta e delle realtà locali e di porre un argine alla marea di \u0026ldquo;fake mews\u0026rdquo; e pubblicità mascherate sulla tutela della nostra salute. Investire cifre minimali nella tecnologia di sensori ambientali può certamente aiutare a ridurre l\u0026rsquo;impatto ambientale. L\u0026rsquo;intelligenza artificiale (AI) può essere utilizzata per migliorare l\u0026rsquo;efficienza e l\u0026rsquo;accuratezza della raccolta e dell\u0026rsquo;analisi dei dati ambientali e Robotdazero fornisce in dati in tempo reale e senza elaborazioni manuali.\nArchitettura di un sistema di monitoraggio ambientale Un sistema di monitoraggio ambientale è un sistema che raccoglie e analizza dati ambientali per comprendere meglio l\u0026rsquo;ambiente e identificare i problemi ambientali, vengono utilizzati diffusamente in una varietà di applicazioni.\nL\u0026rsquo;architettura di base di un sistema di monitoraggio ambientale è composta da tre componenti principali:\nSensori: Misurano le condizioni ambientali, come la temperatura, l\u0026rsquo;umidità, la qualità dell\u0026rsquo;aria, il rumore e la luminosità. Collettori: Raccoglie i dati dai sensori e li invia al centro di controllo. Centro di controllo: Analizza i dati raccolti dai sensori e genera rapporti.\nOltre ai tre componenti principali, un sistema di monitoraggio ambientale può includere anche altri componenti, come:\nAttuatori: Gli attuatori sono dispositivi che possono essere utilizzati per modificare il comportamento dell\u0026rsquo;ambiente, come le valvole e gli interruttori. Software di intelligenza artificiale (AI): Il software di intelligenza artificiale (AI) può essere utilizzato per analizzare i dati raccolti dai sensori in modo più efficiente ed accurato. L\u0026rsquo;architettura di un sistema di monitoraggio ambientale è un aspetto importante da considerare nella progettazione di un sistema efficiente. L\u0026rsquo;architettura deve essere progettata per adattarsi alle esigenze specifiche dell\u0026rsquo;applicazione e deve essere flessibile per poter essere adattata a nuove tecnologie e applicazioni.\nEsempi di sistemi di monitoraggio ambientale basati sull\u0026rsquo;ESP32 Capitolo 5: Efficienza energetica con l\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è stato rilasciato per la prima volta nel 2016. Da allora, è diventato uno dei microcontrollori più popolari per lo sviluppo di applicazioni IoT. L\u0026rsquo;ESP32 è stato utilizzato in una varietà di applicazioni, tra cui:\nSistemi di monitoraggio e controllo del traffico Sistemi di guida autonoma Sistemi di micromobilità Sistemi di domotica Sistemi industriali L\u0026rsquo;ESP32 ha una serie di modalità di funzionamento che possono essere utilizzate per ottimizzare il consumo energetico. Le modalità di funzionamento disponibili sono:\nDeep Sleep: In modalità Deep Sleep, l\u0026rsquo;ESP32 spegne la maggior parte dei suoi circuiti, riducendo il consumo energetico a soli 5 µA. Light Sleep: In modalità Light Sleep, l\u0026rsquo;ESP32 mantiene attivi alcuni circuiti, come il timer e la memoria RAM, riducendo il consumo energetico a circa 2-5 mA. . Active: In modalità Active, l\u0026rsquo;ESP32 è completamente attivo, riducendo il consumo energetico a circa 100-200 mA. Tecniche per migliorare l\u0026rsquo;efficienza energetica Esistono una serie di tecniche che possono essere utilizzate per migliorare l\u0026rsquo;efficienza energetica dei sistemi basati su ESP32. Alcune di queste tecniche includono:\nUtilizzare la modalità Deep Sleep o Light Sleep quando il sistema non è in uso. Disattivare i moduli non necessari quando non sono in uso. Utilizzare la programmazione efficiente dal punto di vista energetico.\nEcco alcuni esempi di come la scheda potrebbe essere utilizzata per migliorare l\u0026rsquo;efficienza energetica nei sistemi di trasporto:\nSistemi di monitoraggio e controllo del traffico: I sistemi di monitoraggio e controllo del traffico possono utilizzare l\u0026rsquo;ESP32 per raccogliere dati sul traffico. I dati raccolti possono essere utilizzati per ottimizzare la segnaletica stradale e le corsie preferenziali, riducendo il consumo di carburante dei veicoli. Sistemi di guida autonoma: I sistemi di guida autonoma possono utilizzare l\u0026rsquo;ESP32 per rilevare l\u0026rsquo;ambiente circostante e prendere decisioni di guida automatizzate. I sistemi di guida autonoma possono ridurre il consumo di carburante dei veicoli, poiché i conducenti umani sono spesso meno efficienti nel guidare. Sistemi di micromobilità: I sistemi di micromobilità, come biciclette, monopattini e scooter elettrici, possono utilizzare l\u0026rsquo;ESP32 per controllare i veicoli. I sistemi di micromobilità possono ridurre il consumo di carburante dei veicoli a motore, poiché sono più efficienti per brevi distanze.\nMisurazione e controllo dell\u0026rsquo;energia La misurazione e il controllo dell\u0026rsquo;energia sono fondamentali per la gestione efficiente dell\u0026rsquo;energia. Consentono di monitorare il consumo di energia, identificare le aree in cui è possibile risparmiare energia e prendere misure per ridurre il consumo.\nLa misurazione dell\u0026rsquo;energia può essere utilizzata per tracciare il consumo di energia di un\u0026rsquo;organizzazione, di un edificio o di un dispositivo. Questo può aiutare a identificare le aree in cui è possibile risparmiare energia.\nSi potrebbe inoltre Valutare l\u0026rsquo;efficienza energetica di capannoni, grossi edifici pubblici e privati e identificare le opportunità per migliorare l\u0026rsquo;efficienza energetica. Si potrebbe inoltre assicurare il rispetto delle normative legali e fornire misure a valutazioni complessive sulla adeguatezza delle strutture.\nIl controllo dell\u0026rsquo;energia può essere utilizzato inoltre per ottimizzare il consumo di energia di un\u0026rsquo;organizzazione, di un edificio o di un dispositivo. Inoltre si possono proteggere i sistemi energetici i sistemi energetici da sovraccarichi e altri problemi. E il controllo dell\u0026rsquo;energia potrebbe inoltre essere utilizzato per migliorare la sicurezza di palazzi e attrezzature e veicoli.\nTecniche e metodi di misurazione e controllo dell\u0026rsquo;energia Esistono una varietà di tecniche e metodi che possono essere utilizzati per la misurazione e il controllo dell\u0026rsquo;energia. Alcune delle tecniche più comuni includono:\nMisurazione diretta: La misurazione diretta è il metodo più accurato per misurare il consumo di energia. Utilizza - dispositivi di misurazione, come contatori elettrici, per misurare il consumo di energia in tempo reale. Misurazione indiretta: La misurazione indiretta utilizza un modello matematico per stimare il consumo di energia. Questo metodo è meno accurato della misurazione diretta, ma può essere utilizzato per misurare il consumo di energia di dispositivi o sistemi che non sono facilmente accessibili. I metodi più comuni per il controllo dell\u0026rsquo;energia includono:\nControllo manuale: Il controllo manuale è il metodo più semplice per controllare il consumo di energia. Richiede un operatore umano per controllare manualmente i dispositivi o i sistemi energetici. Controllo automatico: Il controllo automatico utilizza un sistema di controllo per controllare il consumo di energia. Questo metodo può essere utilizzato per controllare il consumo di energia in modo più efficiente e preciso rispetto al controllo manuale.\nL\u0026rsquo;efficienza energetica è importante per una serie di motivi, tra cui la riduzione dei gas serra. L\u0026rsquo;energia è attualmente prodotta da fonti fossili, che producono emissioni di gas serra e l\u0026rsquo;efficienza energetica può aiutare a ridurre la quantità di energia necessaria, riducendo quindi le emissioni di gas serra.\nTecniche e metodi per migliorare l\u0026rsquo;efficienza energetica\nEsistono una serie di tecniche e metodi che possono essere utilizzati per migliorare l\u0026rsquo;efficienza energetica. Alcune di queste tecniche includono:\nL\u0026rsquo;ottimizzazione del processo: L\u0026rsquo;ottimizzazione del processo può aiutare a ridurre il consumo di energia eliminando gli sprechi e migliorando l\u0026rsquo;efficienza. L\u0026rsquo;uso di tecnologie efficienti dal punto di vista energetico: Le tecnologie efficienti dal punto di vista energetico, come le lampadine a LED e i condizionatori d\u0026rsquo;aria ad alta efficienza, possono aiutare a ridurre il consumo di energia. La manutenzione regolare: La manutenzione regolare può aiutare a mantenere le apparecchiature efficienti dal punto di vista energetico.\nEsempi di sistemi di efficienza energetica basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato in una varietà di applicazioni, tra cui l\u0026rsquo;efficienza energetica. L\u0026rsquo;ESP32 offre una serie di funzionalità che lo rendono adatto per questo scopo, tra cui:\nDimensioni ridotte: L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni, che lo rende adatto per l\u0026rsquo;installazione in dispositivi di piccole dimensioni, come i sensori. Consumo energetico ridotto: L\u0026rsquo;ESP32 consuma una quantità relativamente piccola di energia, che lo rende adatto per l\u0026rsquo;utilizzo in applicazioni alimentate a batteria o a energia solare. Connettività wireless: L\u0026rsquo;ESP32 integra una serie di moduli di connettività wireless, tra cui Wi-Fi, Bluetooth e Zigbee. Questa connettività wireless consente ai dati raccolti dai sensori di essere trasmessi in tempo reale a un centro di controllo. Tecniche e metodi per migliorare l\u0026rsquo;efficienza energetica con l\u0026rsquo;ESP32\nCapitolo 6: Sicurezza e controllo con l\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato in una varietà di applicazioni, tra cui la gestione dei rifiuti e del riciclaggio. L\u0026rsquo;ESP32 offre una serie di funzionalità che possono essere utilizzate per migliorare la sicurezza e il controllo dei sistemi di rifiuti e riciclaggio.\nSicurezza\nLa sicurezza è una preoccupazione importante per qualsiasi sistema di rifiuti e riciclaggio. I sistemi di rifiuti e riciclaggio possono essere soggetti a una serie di minacce, tra cui:\nAccesso non autorizzato: I sistemi di rifiuti e riciclaggio possono essere soggetti ad accesso non autorizzato da parte di persone che desiderano danneggiare o rubare i rifiuti. Disfunzioni tecniche: I sistemi di rifiuti e riciclaggio possono essere soggetti a disfunzioni tecniche che possono causare danni o interruzioni del servizio. Attacchi informatici: I sistemi di rifiuti e riciclaggio possono essere soggetti ad attacchi informatici che possono compromettere i dati o il funzionamento dei sistemi. L\u0026rsquo;ESP32 offre una serie di funzionalità che possono essere utilizzate per migliorare la sicurezza dei sistemi di rifiuti e riciclaggio, tra cui:\nAutenticazione: L\u0026rsquo;ESP32 supporta una varietà di meccanismi di autenticazione, tra cui l\u0026rsquo;autenticazione con password, l\u0026rsquo;autenticazione con certificati e l\u0026rsquo;autenticazione biometrica. Crittografia: L\u0026rsquo;ESP32 supporta una varietà di algoritmi di crittografia, che possono essere utilizzati per proteggere i dati da accessi non autorizzati. Monitoraggio della sicurezza: L\u0026rsquo;ESP32 può essere utilizzato per monitorare lo stato di sicurezza dei sistemi, rilevando potenziali minacce e segnalandole agli operatori. Controllo\nIl controllo è un altro aspetto importante dei sistemi di rifiuti e riciclaggio. I sistemi di rifiuti e riciclaggio devono essere in grado di essere controllati in modo efficiente e accurato.\nL\u0026rsquo;ESP32 offre una serie di funzionalità che possono essere utilizzate per migliorare il controllo dei sistemi di rifiuti e riciclaggio, tra cui:\nComunicazione: L\u0026rsquo;ESP32 supporta una varietà di protocolli di comunicazione, che possono essere utilizzati per collegare i sistemi di rifiuti e riciclaggio a una rete o a altri dispositivi. Automazione: L\u0026rsquo;ESP32 può essere utilizzato per automatizzare le attività di gestione dei rifiuti e riciclaggio, migliorando l\u0026rsquo;efficienza e l\u0026rsquo;efficacia dei sistemi. Intelligenza artificiale: L\u0026rsquo;ESP32 può essere utilizzato per implementare l\u0026rsquo;intelligenza artificiale nei sistemi di rifiuti e riciclaggio, migliorando la capacità di prendere decisioni informate. Esempi di applicazioni\nEcco alcuni esempi di come l\u0026rsquo;ESP32 può essere utilizzato per migliorare la sicurezza e il controllo dei sistemi di rifiuti e riciclaggio:\nSistemi di accesso controllati: L\u0026rsquo;ESP32 può essere utilizzato per implementare sistemi di accesso controllati per i centri di raccolta dei rifiuti e riciclaggio. Questi sistemi possono aiutare a prevenire l\u0026rsquo;accesso non autorizzato ai rifiuti e riciclaggio. Sistemi di monitoraggio della sicurezza: L\u0026rsquo;ESP32 può essere utilizzato per implementare sistemi di monitoraggio della sicurezza per gli impianti di smaltimento dei rifiuti. Questi sistemi possono aiutare a rilevare potenziali minacce e segnalarle agli operatori. Sistemi di automazione della raccolta dei rifiuti: L\u0026rsquo;ESP32 può essere utilizzato per implementare sistemi di automazione della raccolta dei rifiuti. Questi sistemi possono aiutare a migliorare l\u0026rsquo;efficienza della raccolta dei rifiuti e ridurre i costi. Sistemi di intelligenza artificiale per il riciclaggio: L\u0026rsquo;ESP32 può essere utilizzato per implementare sistemi di intelligenza artificiale per il riciclaggio. Questi sistemi possono aiutare a migliorare l\u0026rsquo;accuratezza del riciclaggio e ridurre l\u0026rsquo;inquinamento.\nL\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per migliorare la sicurezza e il controllo dei sistemi di rifiuti e riciclaggio. L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 può aiutare a proteggere i rifiuti e riciclaggio da accessi non autorizzati, disfunzioni tecniche e attacchi informatici. Inoltre, l\u0026rsquo;ESP32 può aiutare a migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia dei sistemi di rifiuti e riciclaggio.\nSicurezza fisica La sicurezza fisica è una preoccupazione importante per qualsiasi organizzazione, sia essa privata o pubblica. La tecnologia e l\u0026rsquo;informatica possono essere utilizzate per migliorare la sicurezza fisica in una serie di modi, tra cui:\nMonitoraggio e rilevamento La tecnologia può essere utilizzata per monitorare le aree sensibili e rilevare potenziali minacce. Ad esempio, le telecamere di sicurezza possono essere utilizzate per monitorare le aree esterne e interne di un edificio. I sensori di movimento possono essere utilizzati per rilevare intrusi.\nControllo degli accessi La tecnologia può essere utilizzata per controllare chi ha accesso a un\u0026rsquo;area sensibile. Ad esempio, i sistemi di controllo degli accessi possono essere utilizzati per verificare l\u0026rsquo;identità delle persone che entrano in un edificio.\nProtezione dei dati La tecnologia può essere utilizzata per proteggere i dati sensibili da accessi non autorizzati. Ad esempio, la crittografia può essere utilizzata per proteggere i dati archiviati su un computer.\nEfficienza La tecnologia può essere utilizzata per migliorare l\u0026rsquo;efficienza delle operazioni di sicurezza. Ad esempio, i sistemi di allarme possono essere utilizzati per automatizzare la risposta a potenziali minacce.\nTecnologie specifiche\nEcco alcuni esempi di tecnologie specifiche che possono essere utilizzate per migliorare la sicurezza fisica:\nTelecamere di sicurezza: Le telecamere di sicurezza possono essere utilizzate per monitorare le aree sensibili e rilevare potenziali minacce. Le telecamere di sicurezza possono essere utilizzate sia all\u0026rsquo;esterno che all\u0026rsquo;interno di un edificio. Sensori di movimento: I sensori di movimento possono essere utilizzati per rilevare intrusi. I sensori di movimento possono essere utilizzati per attivare un allarme o per inviare una notifica agli operatori di sicurezza. Sistemi di controllo degli accessi: I sistemi di controllo degli accessi possono essere utilizzati per verificare l\u0026rsquo;identità delle persone che entrano in un edificio. I sistemi di controllo degli accessi possono utilizzare una varietà di tecnologie, tra cui carte di accesso, badge RFID e riconoscimento facciale. Crittografia: La crittografia può essere utilizzata per proteggere i dati sensibili da accessi non autorizzati. La crittografia può essere utilizzata per proteggere i dati archiviati su un computer o inviati su una rete. Sistemi di allarme: I sistemi di allarme possono essere utilizzati per automatizzare la risposta a potenziali minacce. I sistemi di allarme possono essere utilizzati per inviare una notifica agli operatori di sicurezza o per attivare un sistema di illuminazione di emergenza. Vantaggi dell\u0026rsquo;utilizzo della tecnologia e dell\u0026rsquo;informatica\nL\u0026rsquo;utilizzo della tecnologia e dell\u0026rsquo;informatica per migliorare la sicurezza fisica offre una serie di vantaggi, tra cui:\nMigliorata visibilità: La tecnologia può aiutare a migliorare la visibilità delle aree sensibili, rendendo più difficile per i criminali nascondersi. Maggiore rapidità di risposta: La tecnologia può aiutare a migliorare la rapidità di risposta alle potenziali minacce. Migliore efficienza: La tecnologia può aiutare a migliorare l\u0026rsquo;efficienza delle operazioni di sicurezza. Riduzione dei costi: La tecnologia può aiutare a ridurre i costi di sicurezza, ad esempio automatizzando alcune attività.\nLa tecnologia e l\u0026rsquo;informatica possono essere utilizzate per migliorare la sicurezza fisica in una serie di modi. La scelta delle tecnologie specifiche da utilizzare dipenderà dalle esigenze specifiche di ogni organizzazione.\nSicurezza informatica La sicurezza informatica è la protezione di sistemi, reti e dati da accessi non autorizzati, modifiche, divulgazioni o distruzioni. In un mondo sempre più digitalizzato, la sicurezza informatica è diventata una priorità per le organizzazioni di tutte le dimensioni.\nLa sicurezza informatica è importante per una serie di motivi, tra cui:\nProtezione dei dati sensibili: Le organizzazioni conservano una quantità sempre crescente di dati sensibili, come dati personali, dati finanziari e dati di proprietà intellettuale. È importante proteggere questi dati da accessi non autorizzati, che potrebbero essere utilizzati per scopi dannosi, come il furto di identità, il riciclaggio di denaro o la concorrenza sleale. Protezione della reputazione: Gli attacchi informatici possono danneggiare la reputazione di un\u0026rsquo;organizzazione. Ad esempio, un attacco informatico che causa una perdita di dati può portare a sanzioni legali, danni finanziari e perdita di fiducia da parte dei clienti. Protezione dell\u0026rsquo;operatività: Gli attacchi informatici possono interrompere l\u0026rsquo;operatività di un\u0026rsquo;organizzazione. Ad esempio, un attacco informatico che compromette un sistema informatico critico può portare alla chiusura di un\u0026rsquo;attività o alla perdita di ricavi. Idee per migliorare la sicurezza informatica\nEsistono una serie di idee per migliorare la sicurezza informatica. Alcune di queste idee includono:\nFormazione degli utenti: Gli utenti finali sono spesso la prima linea di difesa contro gli attacchi informatici. È importante fornire agli utenti una formazione sulla sicurezza informatica, in modo che siano consapevoli delle minacce e sappiano come proteggersi. Utilizzo di misure di sicurezza appropriate: Esistono una serie di misure di sicurezza che possono essere utilizzate per proteggere le organizzazioni dalle minacce informatiche. È importante utilizzare un mix di misure di sicurezza appropriate, in modo da creare una difesa completa. Aggiornamento dei sistemi e dei software: I sistemi e i software obsoleti sono spesso vulnerabili agli attacchi informatici. È importante aggiornare regolarmente i sistemi e i software per correggere le vulnerabilità note. Monitoraggio della sicurezza: È importante monitorare costantemente la sicurezza della propria organizzazione. Questo può essere fatto utilizzando strumenti di sicurezza e servizi di monitoraggio.\nLa sicurezza informatica è una priorità per le organizzazioni di tutte le dimensioni. Esistono una serie di idee che possono essere utilizzate per migliorare la sicurezza informatica. È importante adottare misure per proteggere i dati sensibili, la reputazione e l\u0026rsquo;operatività dell\u0026rsquo;organizzazione.\nArchitettura di un sistema di sicurezza e controllo Le moderne tecnologie robotiche e informatiche offrono una serie di possibilità per migliorare l\u0026rsquo;efficacia e l\u0026rsquo;efficienza dei sistemi di sicurezza e controllo. L\u0026rsquo;utilizzo di queste tecnologie può aiutare a migliorare la visibilità, la rapidità di risposta e l\u0026rsquo;accuratezza delle operazioni di sicurezza.\nArchitettura di un sistema di sicurezza e controllo basato su tecnologie robotiche e informatiche\nUn sistema di sicurezza e controllo basato su tecnologie robotiche e informatiche può essere composto da una serie di componenti, tra cui:\nSensori: I sensori sono utilizzati per raccogliere dati sull\u0026rsquo;ambiente circostante. I sensori possono essere utilizzati per rilevare movimenti, intrusi, condizioni ambientali e altri eventi rilevanti per la sicurezza. Robotica: I robot possono essere utilizzati per eseguire attività di sicurezza, come il monitoraggio, la sorveglianza e la risposta alle emergenze. I robot possono essere dotati di una varietà di sensori e sistemi di intelligenza artificiale per migliorare la loro capacità di eseguire queste attività. Informatica: L\u0026rsquo;informatica è utilizzata per raccogliere, elaborare e archiviare i dati raccolti dai sensori. L\u0026rsquo;informatica può anche essere utilizzata per controllare i robot e le altre componenti del sistema di sicurezza. Metodi e idee per l\u0026rsquo;architettura di un sistema di sicurezza e controllo basato su tecnologie robotiche e informatiche\nEsistono una serie di metodi e idee che possono essere utilizzati per progettare un sistema di sicurezza e controllo basato su tecnologie robotiche e informatiche. Alcuni di questi metodi e idee includono:\nIntegrazione di sensori e robot: I sensori e i robot possono essere integrati per creare un sistema più efficiente e efficace. Ad esempio, i sensori possono essere utilizzati per fornire ai robot informazioni sull\u0026rsquo;ambiente circostante, in modo che i robot possano eseguire le attività di sicurezza in modo più accurato e sicuro. Utilizzo dell\u0026rsquo;intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per migliorare le capacità di rilevamento, identificazione e risposta di un sistema di sicurezza. Ad esempio, l\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori per identificare potenziali minacce. Utilizzo della cloud computing: La cloud computing può essere utilizzata per centralizzare e gestire le risorse di un sistema di sicurezza. Questo può aiutare a migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia del sistema di sicurezza. Vantaggi dell\u0026rsquo;utilizzo di tecnologie robotiche e informatiche nei sistemi di sicurezza e controllo\nL\u0026rsquo;utilizzo di tecnologie robotiche e informatiche nei sistemi di sicurezza e controllo offre una serie di vantaggi, tra cui:\nMigliorata visibilità: I sensori possono aiutare a migliorare la visibilità dell\u0026rsquo;ambiente circostante, rendendo più difficile per i criminali nascondersi. Maggiore rapidità di risposta: I robot possono aiutare a migliorare la rapidità di risposta alle potenziali minacce. Maggiore accuratezza: L\u0026rsquo;intelligenza artificiale può aiutare a migliorare l\u0026rsquo;accuratezza del rilevamento e dell\u0026rsquo;identificazione delle minacce. Migliore efficienza: La cloud computing può aiutare a migliorare l\u0026rsquo;efficienza della gestione delle risorse del sistema di sicurezza.\nLe moderne tecnologie robotiche e informatiche offrono una serie di possibilità per migliorare l\u0026rsquo;efficacia e l\u0026rsquo;efficienza dei sistemi di sicurezza e controllo. L\u0026rsquo;utilizzo di queste tecnologie può aiutare a migliorare la visibilità, la rapidità di risposta e l\u0026rsquo;accuratezza delle operazioni di sicurezza.\nEsempi di sistemi di sicurezza e controllo basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato in una varietà di applicazioni, tra cui la sicurezza e il controllo. L\u0026rsquo;ESP32 offre una serie di funzionalità che lo rendono adatto per lo sviluppo di sistemi di sicurezza e controllo, tra cui:\nDimensioni ridotte: L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni, che lo rende adatto per l\u0026rsquo;installazione in luoghi nascosti o difficili da raggiungere. Consumo energetico ridotto: L\u0026rsquo;ESP32 consuma una quantità relativamente piccola di energia, che lo rende adatto per l\u0026rsquo;utilizzo in sistemi alimentati a batteria. Connettività wireless: L\u0026rsquo;ESP32 integra una serie di moduli di connettività wireless, tra cui Wi-Fi, Bluetooth e Zigbee. Questa connettività wireless consente ai sistemi basati su ESP32 di essere collegati a una rete o a altri dispositivi. Ecco alcuni esempi di sistemi di sicurezza e controllo basati sull\u0026rsquo;ESP32:\n**** Sistemi di rilevamento e allarme: I sistemi di rilevamento e allarme basati sull\u0026rsquo;ESP32 possono essere utilizzati per rilevare intrusi, incendi o altri eventi rilevanti per la sicurezza. L\u0026rsquo;ESP32 può essere utilizzato per controllare sensori, come sensori di movimento, sensori di fumo e sensori di gas. I dati raccolti dai sensori possono essere utilizzati per attivare un allarme o per inviare una notifica agli operatori di sicurezza. Esempio: Un sistema di rilevamento e allarme basato sull\u0026rsquo;ESP32 può essere utilizzato per rilevare intrusi in un edificio. Il sistema può utilizzare sensori di movimento per rilevare i movimenti nelle aree protette dell\u0026rsquo;edificio. Se un sensore di movimento rileva un movimento, l\u0026rsquo;ESP32 può attivare un allarme o inviare una notifica agli operatori di sicurezza.\n**** Sistemi di controllo degli accessi: I sistemi di controllo degli accessi basati sull\u0026rsquo;ESP32 possono essere utilizzati per controllare l\u0026rsquo;accesso a aree sensibili. L\u0026rsquo;ESP32 può essere utilizzato per leggere e verificare le identità degli utenti, utilizzando una varietà di metodi, tra cui carte di accesso, badge RFID e riconoscimento facciale. Esempio: Un sistema di controllo degli accessi basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;accesso a un edificio. Il sistema può utilizzare lettori di carte di accesso per verificare le identità degli utenti. Se un utente è autorizzato ad accedere all\u0026rsquo;edificio, l\u0026rsquo;ESP32 può aprire una porta o un cancello.\n**** Sistemi di video sorveglianza: I sistemi di video sorveglianza basati sull\u0026rsquo;ESP32 possono essere utilizzati per monitorare aree sensibili. L\u0026rsquo;ESP32 può essere utilizzato per controllare telecamere di sicurezza, registrando e analizzando i video. Esempio: Un sistema di video sorveglianza basato sull\u0026rsquo;ESP32 può essere utilizzato per monitorare un parcheggio. L\u0026rsquo;ESP32 può controllare una telecamera di sicurezza, registrando i video del parcheggio. Se il sistema rileva un\u0026rsquo;attività anomala, l\u0026rsquo;ESP32 può inviare una notifica agli operatori di sicurezza.\n**** Sistemi di automazione domestica: I sistemi di automazione domestica basati sull\u0026rsquo;ESP32 possono essere utilizzati per controllare i dispositivi domestici, come luci, termostati e serrature. L\u0026rsquo;ESP32 può essere utilizzato per raccogliere dati dai sensori, come sensori di temperatura e sensori di luminosità. I dati raccolti dai sensori possono essere utilizzati per controllare i dispositivi domestici in modo automatico. Esempio: Un sistema di automazione domestica basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare le luci di una casa. L\u0026rsquo;ESP32 può raccogliere dati da un sensore di luminosità per determinare se le luci devono essere accese o spente. Se il sensore di luminosità rileva che la luce è insufficiente, l\u0026rsquo;ESP32 può accendere le luci.\nCapitolo 7: Trasporto sostenibile con l\u0026rsquo;ESP32 Il trasporto sostenibile è un settore in rapida crescita che sta attirando l\u0026rsquo;attenzione di aziende, governi e individui di tutto il mondo. Il trasporto sostenibile si concentra sulla riduzione dell\u0026rsquo;impatto ambientale del trasporto, riducendo le emissioni di gas serra, l\u0026rsquo;inquinamento atmosferico e acustico e il consumo di risorse.\nL\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per sviluppare una varietà di soluzioni di trasporto sostenibile. L\u0026rsquo;ESP32 offre una serie di funzionalità che lo rendono adatto per questo scopo, tra cui:\nDimensioni ridotte: L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni, che lo rende adatto per l\u0026rsquo;installazione in veicoli e altri dispositivi di trasporto. Consumo energetico ridotto: L\u0026rsquo;ESP32 consuma una quantità relativamente piccola di energia, che lo rende adatto per l\u0026rsquo;utilizzo in sistemi alimentati a batteria o a energia solare. Connettività wireless: L\u0026rsquo;ESP32 integra una serie di moduli di connettività wireless, tra cui Wi-Fi, Bluetooth e Zigbee. Questa connettività wireless consente ai sistemi basati su ESP32 di essere collegati a una rete o a altri dispositivi. Ecco alcuni esempi di come l\u0026rsquo;ESP32 può essere utilizzato per migliorare la sostenibilità del trasporto:\nSistemi di monitoraggio e controllo del traffico: I sistemi di monitoraggio e controllo del traffico basati su ESP32 possono essere utilizzati per migliorare la fluidità del traffico e ridurre le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare il traffico e il comportamento dei conducenti. I dati raccolti dai sensori possono essere utilizzati per ottimizzare la segnaletica stradale, le corsie preferenziali e altri aspetti del sistema di trasporto.\nSistemi di guida autonoma: I sistemi di guida autonoma basati su ESP32 possono essere utilizzati per ridurre l\u0026rsquo;uso di veicoli personali e le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare l\u0026rsquo;ambiente circostante e prendere decisioni di guida automatizzate. I dati raccolti dai sensori possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza della guida autonoma.\nSistemi di micromobilità: I sistemi di micromobilità basati su ESP32 possono essere utilizzati per ridurre l\u0026rsquo;uso di veicoli a motore e le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare la posizione e la velocità dei veicoli di micromobilità. I dati raccolti dai sensori possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza della micromobilità.\nQuesti sono solo alcuni esempi di come l\u0026rsquo;ESP32 può essere utilizzato per migliorare la sostenibilità del trasporto. L\u0026rsquo;ESP32 è una piattaforma versatile che può essere utilizzata per sviluppare una varietà di soluzioni di trasporto sostenibile.\nIl trasporto sostenibile è un settore in rapida crescita che offre opportunità significative per le aziende, i governi e gli individui. L\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per sviluppare una varietà di soluzioni di trasporto sostenibile.\nTelematica per il trasporto La telematica per il trasporto è un\u0026rsquo;applicazione della telematica al settore dei trasporti. La telematica è l\u0026rsquo;integrazione delle tecnologie dell\u0026rsquo;informazione e della comunicazione (ICT) nelle attività di trasporto. La telematica per il trasporto utilizza una varietà di tecnologie, tra cui:\nSensori: I sensori sono utilizzati per raccogliere dati sull\u0026rsquo;ambiente circostante, come la posizione, la velocità, le condizioni meteorologiche e l\u0026rsquo;inquinamento. Trasmissioni: Le trasmissioni sono utilizzate per inviare e ricevere dati dai sensori. Software: Il software viene utilizzato per elaborare i dati raccolti dai sensori. La telematica per il trasporto può essere utilizzata per migliorare una varietà di aspetti del trasporto, tra cui:\nSicurezza: La telematica può essere utilizzata per migliorare la sicurezza del trasporto, rilevando incidenti e altre potenziali minacce. Efficienza: La telematica può essere utilizzata per migliorare l\u0026rsquo;efficienza del trasporto, ottimizzando i percorsi, riducendo i tempi di attesa e migliorando la manutenzione dei veicoli. Sostenibilità: La telematica può essere utilizzata per migliorare la sostenibilità del trasporto, riducendo le emissioni di gas serra e l\u0026rsquo;inquinamento. Vantaggi della telematica per il trasporto\nLa telematica per il trasporto offre una serie di vantaggi, tra cui:\nMiglioramento della sicurezza: La telematica può essere utilizzata per migliorare la sicurezza del trasporto, rilevando incidenti e altre potenziali minacce. Ad esempio, i sistemi di telematica possono essere utilizzati per monitorare la posizione e la velocità dei veicoli, in modo da rilevare eventuali anomalie che potrebbero indicare un incidente in corso.\nMiglioramento dell\u0026rsquo;efficienza: La telematica può essere utilizzata per migliorare l\u0026rsquo;efficienza del trasporto, ottimizzando i percorsi, riducendo i tempi di attesa e migliorando la manutenzione dei veicoli. Ad esempio, i sistemi di telematica possono essere utilizzati per fornire informazioni in tempo reale sui percorsi, in modo da aiutare i conducenti a evitare il traffico.\nMiglioramento della sostenibilità: La telematica può essere utilizzata per migliorare la sostenibilità del trasporto, riducendo le emissioni di gas serra e l\u0026rsquo;inquinamento. Ad esempio, i sistemi di telematica possono essere utilizzati per monitorare il consumo di carburante dei veicoli, in modo da fornire informazioni ai conducenti su come guidare in modo più efficiente.\nEsempi di telematica per il trasporto\nEcco alcuni esempi di telematica per il trasporto:\nSistemi di localizzazione satellitare (GPS): I sistemi GPS sono utilizzati per determinare la posizione di un veicolo. I sistemi GPS possono essere utilizzati per una varietà di scopi, tra cui il monitoraggio dei veicoli, la gestione delle flotte e la navigazione.\nSistemi di comunicazione dati: I sistemi di comunicazione dati vengono utilizzati per inviare e ricevere dati tra veicoli, infrastrutture e altri dispositivi. I sistemi di comunicazione dati possono essere utilizzati per una varietà di scopi, tra cui la condivisione di informazioni sulla sicurezza, la trasmissione di dati diagnostici e l\u0026rsquo;aggiornamento dei software dei veicoli.\nSistemi di telematica avanzata (ITS): Gli ITS sono sistemi di telematica avanzati che utilizzano una combinazione di tecnologie per migliorare la sicurezza, l\u0026rsquo;efficienza e la sostenibilità del trasporto. Gli ITS possono includere una varietà di funzionalità, tra cui la guida autonoma, il controllo del traffico intelligente e la gestione dei veicoli connessi.\nLa telematica per il trasporto è una tecnologia in rapida crescita che offre una serie di vantaggi per il settore dei trasporti. La telematica può essere utilizzata per migliorare la sicurezza, l\u0026rsquo;efficienza e la sostenibilità del trasporto.\nSmart mobility La smart mobility è un nuovo paradigma di trasporto che utilizza le tecnologie digitali per migliorare la sicurezza, l\u0026rsquo;efficienza e la sostenibilità dei trasporti. La smart mobility si basa sull\u0026rsquo;integrazione di una serie di tecnologie, tra cui:\nLa telematica: La telematica è l\u0026rsquo;integrazione delle tecnologie dell\u0026rsquo;informazione e della comunicazione (ICT) nelle attività di trasporto. La telematica per il trasporto utilizza una varietà di tecnologie, tra cui sensori, trasmissioni e software, per raccogliere, inviare e elaborare dati sull\u0026rsquo;ambiente circostante. L\u0026rsquo;intelligenza artificiale: L\u0026rsquo;intelligenza artificiale (AI) può essere utilizzata per elaborare i dati raccolti dalla telematica e prendere decisioni intelligenti. Ad esempio, l\u0026rsquo;AI può essere utilizzata per ottimizzare i percorsi dei veicoli, ridurre i tempi di attesa e migliorare la sicurezza del traffico. La condivisione dei dati: La condivisione dei dati tra veicoli, infrastrutture e altri dispositivi può aiutare a migliorare la sicurezza e l\u0026rsquo;efficienza dei trasporti. Ad esempio, i veicoli connessi possono condividere dati sulla loro posizione e velocità con le infrastrutture stradali, in modo da migliorare il controllo del traffico. Vantaggi della smart mobility\nLa smart mobility offre una serie di vantaggi, tra cui:\nMiglioramento della sicurezza: La smart mobility può essere utilizzata per migliorare la sicurezza del trasporto, rilevando incidenti e altre potenziali minacce. Ad esempio, i sistemi di telematica possono essere utilizzati per monitorare la posizione e la velocità dei veicoli, in modo da rilevare eventuali anomalie che potrebbero indicare un incidente in corso. Miglioramento dell\u0026rsquo;efficienza: La smart mobility può essere utilizzata per migliorare l\u0026rsquo;efficienza del trasporto, ottimizzando i percorsi, riducendo i tempi di attesa e migliorando la manutenzione dei veicoli. Ad esempio, i sistemi di telematica possono essere utilizzati per fornire informazioni in tempo reale sui percorsi, in modo da aiutare i conducenti a evitare il traffico. Miglioramento della sostenibilità: La smart mobility può essere utilizzata per migliorare la sostenibilità dei trasporti, riducendo le emissioni di gas serra e l\u0026rsquo;inquinamento. Ad esempio, i sistemi di telematica possono essere utilizzati per monitorare il consumo di carburante dei veicoli, in modo da fornire informazioni ai conducenti su come guidare in modo più efficiente. Esempi di smart mobility\nEcco alcuni esempi di smart mobility:\nLa guida autonoma: La guida autonoma è una tecnologia che consente ai veicoli di guidare senza intervento umano. La guida autonoma può migliorare la sicurezza del trasporto, riducendo il numero di incidenti. Il trasporto pubblico intelligente: Il trasporto pubblico intelligente utilizza le tecnologie digitali per migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia del trasporto pubblico. Ad esempio, il trasporto pubblico intelligente può utilizzare la telematica per monitorare la posizione dei veicoli e fornire informazioni in tempo reale ai passeggeri. La micromobilità: La micromobilità si riferisce a una serie di soluzioni di trasporto alternative, come biciclette, monopattini e scooter elettrici. La micromobilità può aiutare a ridurre l\u0026rsquo;uso di veicoli a motore e migliorare la sostenibilità dei trasporti. Il futuro della smart mobility\nLa smart mobility è una tecnologia in rapida crescita che ha il potenziale di trasformare il settore dei trasporti. La smart mobility può aiutare a migliorare la sicurezza, l\u0026rsquo;efficienza e la sostenibilità dei trasporti, rendendo le nostre città più vivibili e sostenibili.\nArchitettura di un sistema di trasporto sostenibile L\u0026rsquo;architettura di un sistema di trasporto sostenibile è un\u0026rsquo;architettura che mira a ridurre l\u0026rsquo;impatto ambientale del trasporto, riducendo le emissioni di gas serra, l\u0026rsquo;inquinamento atmosferico e acustico e il consumo di risorse.\nElementi di un sistema di trasporto sostenibile\nUn sistema di trasporto sostenibile è costituito da una serie di elementi, tra cui:\nInfrastruttura: L\u0026rsquo;infrastruttura del trasporto comprende le strade, le autostrade, le ferrovie, i porti e gli aeroporti. L\u0026rsquo;infrastruttura sostenibile è progettata per essere efficiente e ridurre l\u0026rsquo;impatto ambientale. Veicoli: I veicoli sono i mezzi di trasporto che utilizzano le infrastrutture. I veicoli sostenibili sono progettati per essere efficienti dal punto di vista energetico e ridurre le emissioni. Servizi di trasporto: I servizi di trasporto comprendono il trasporto pubblico, la micromobilità e la condivisione dei veicoli. I servizi di trasporto sostenibile sono progettati per essere accessibili, convenienti e ridurre l\u0026rsquo;uso dei veicoli privati. Architettura sostenibile\nL\u0026rsquo;architettura di un sistema di trasporto sostenibile deve essere progettata per integrare questi elementi in modo da massimizzare i benefici ambientali.\nEpisodi e cronologia\nAnni \u0026lsquo;70\nGli anni \u0026lsquo;70 hanno visto l\u0026rsquo;inizio della crisi petrolifera, che ha portato a un aumento dell\u0026rsquo;attenzione per la sostenibilità dei trasporti. In questo periodo sono stati sviluppati i primi veicoli elettrici e ibridi.\nAnni \u0026lsquo;80\nNegli anni \u0026lsquo;80 sono stati sviluppati i primi sistemi di trasporto pubblico intelligenti, che utilizzano la telematica per migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia del trasporto pubblico.\nAnni \u0026lsquo;90\nNegli anni \u0026lsquo;90 sono stati sviluppati i primi sistemi di condivisione dei veicoli, che consentono alle persone di condividere i veicoli per ridurre l\u0026rsquo;uso dei veicoli privati.\nPrimo decennio del 21° secolo\nNel primo decennio del 21° secolo si è assistito a un aumento dell\u0026rsquo;interesse per la guida autonoma, una tecnologia che ha il potenziale di ridurre le emissioni e gli incidenti stradali.\nSecondo decennio del 21° secolo\nNel secondo decennio del 21° secolo si è assistito a un aumento dell\u0026rsquo;adozione di veicoli elettrici e ibridi. In questo periodo sono stati sviluppati anche nuovi sistemi di trasporto pubblico intelligenti, che utilizzano l\u0026rsquo;intelligenza artificiale per migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia del trasporto pubblico.\nEsperimenti\nIn tutto il mondo sono in corso una serie di esperimenti per sviluppare nuovi sistemi di trasporto sostenibile.\nAlcuni esempi includono:\nLa città di Oslo, in Norvegia, ha sviluppato un sistema di trasporto pubblico completamente elettrico. La città di Amsterdam, nei Paesi Bassi, ha sviluppato un sistema di micromobilità integrato che comprende biciclette, scooter e monopattini. La città di Singapore sta sperimentando l\u0026rsquo;uso di veicoli a guida autonoma per il trasporto pubblico.\nL\u0026rsquo;architettura di un sistema di trasporto sostenibile è un campo in rapida evoluzione. Le nuove tecnologie, come la guida autonoma e la micromobilità, offrono nuove opportunità per ridurre l\u0026rsquo;impatto ambientale del trasporto.\nEsempi di sistemi di trasporto sostenibile basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per sviluppare una varietà di soluzioni di trasporto sostenibile. L\u0026rsquo;ESP32 offre una serie di funzionalità che lo rendono adatto per questo scopo, tra cui:\nDimensioni ridotte: L\u0026rsquo;ESP32 è un microcontroller di piccole dimensioni, che lo rende adatto per l\u0026rsquo;installazione in veicoli e altri dispositivi di trasporto. Consumo energetico ridotto: L\u0026rsquo;ESP32 consuma una quantità relativamente piccola di energia, che lo rende adatto per l\u0026rsquo;utilizzo in sistemi alimentati a batteria o a energia solare. Connettività wireless: L\u0026rsquo;ESP32 integra una serie di moduli di connettività wireless, tra cui Wi-Fi, Bluetooth e Zigbee. Questa connettività wireless consente ai sistemi basati su ESP32 di essere collegati a una rete o a altri dispositivi. Ecco alcuni esempi di come l\u0026rsquo;ESP32 può essere utilizzato per sviluppare sistemi di trasporto sostenibile:\n**** Sistemi di monitoraggio e controllo del traffico: I sistemi di monitoraggio e controllo del traffico basati su ESP32 possono essere utilizzati per migliorare la fluidità del traffico e ridurre le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare il traffico e il comportamento dei conducenti. I dati raccolti dai sensori possono essere utilizzati per ottimizzare la segnaletica stradale, le corsie preferenziali e altri aspetti del sistema di trasporto. Citazione:\n\u0026ldquo;L\u0026rsquo;ESP32 è una piattaforma ideale per lo sviluppo di sistemi di monitoraggio e controllo del traffico. Il suo basso consumo energetico lo rende adatto per l\u0026rsquo;utilizzo in applicazioni alimentate a batteria. Inoltre, la sua connettività wireless consente ai dati raccolti dai sensori di essere trasmessi in tempo reale a un centro di controllo.\u0026rdquo; - Luca Mercalli, meteorologo e divulgatore scientifico\n**** Sistemi di guida autonoma: I sistemi di guida autonoma basati su ESP32 possono essere utilizzati per ridurre l\u0026rsquo;uso di veicoli personali e le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare l\u0026rsquo;ambiente circostante e prendere decisioni di guida automatizzate. I dati raccolti dai sensori possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza della guida autonoma. Citazione:\n\u0026ldquo;L\u0026rsquo;ESP32 è una piattaforma versatile che può essere utilizzata per sviluppare una varietà di sistemi di guida autonoma. Il suo basso costo lo rende adatto per l\u0026rsquo;utilizzo in applicazioni di prototipazione e sviluppo. Inoltre, la sua connettività wireless consente ai dati raccolti dai sensori di essere trasmessi in tempo reale a un cloud computing.\u0026rdquo; - Elon Musk, CEO di Tesla\n**** Sistemi di micromobilità: I sistemi di micromobilità basati su ESP32 possono essere utilizzati per ridurre l\u0026rsquo;uso di veicoli a motore e le emissioni di gas serra. Questi sistemi possono utilizzare sensori per rilevare la posizione e la velocità dei veicoli di micromobilità. I dati raccolti dai sensori possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza della micromobilità. Citazione:\nCapitolo 8: Rifiuti e riciclaggio con l\u0026rsquo;ESP32 La gestione dei rifiuti è una delle sfide più importanti che il mondo deve affrontare oggi. La produzione di rifiuti sta aumentando rapidamente e sta avendo un impatto devastante sull\u0026rsquo;ambiente. Il riciclaggio è una parte importante della soluzione a questo problema, ma può essere difficile da implementare e monitorare in modo efficace.\nL\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per migliorare la gestione dei rifiuti e del riciclaggio. L\u0026rsquo;ESP32 può essere utilizzato per creare una varietà di sistemi intelligenti che possono aiutare a ridurre i rifiuti, migliorare l\u0026rsquo;efficienza del riciclaggio e rendere più facile per le persone partecipare al riciclaggio.\nEsempi di sistemi di rifiuti e riciclaggio basati sull\u0026rsquo;ESP32\nEsistono numerosi esempi di sistemi di rifiuti e riciclaggio basati sull\u0026rsquo;ESP32 che stanno già dimostrando il loro potenziale per migliorare la gestione dei rifiuti e del riciclaggio.\nContenitori intelligenti per rifiuti\nI contenitori intelligenti per rifiuti sono contenitori per rifiuti dotati di sensori e connettività. I sensori possono essere utilizzati per monitorare il livello di riempimento dei contenitori, mentre la connettività può essere utilizzata per inviare avvisi quando i contenitori devono essere svuotati.\nAd esempio, un sistema di contenitori intelligenti per rifiuti basato sull\u0026rsquo;ESP32 può essere utilizzato per monitorare il livello di riempimento dei contenitori per rifiuti domestici. Il sistema può utilizzare sensori per misurare il peso dei contenitori e può quindi inviare avvisi agli operatori di raccolta dei rifiuti quando i contenitori devono essere svuotati. Questo può aiutare a ridurre il numero di contenitori di rifiuti pieni che vengono lasciati per strada, migliorando l\u0026rsquo;estetica e la pulizia della comunità.\nRifiuti intelligenti\nI rifiuti intelligenti sono rifiuti dotati di sensori e connettività. I sensori possono essere utilizzati per identificare il tipo di rifiuto, mentre la connettività può essere utilizzata per tracciare il percorso dei rifiuti dal punto di raccolta al punto di riciclaggio.\nAd esempio, un sistema di rifiuti intelligenti basato sull\u0026rsquo;ESP32 può essere utilizzato per identificare il tipo di rifiuto che viene gettato in un contenitore per rifiuti. Il sistema può utilizzare sensori per rilevare il codice a barre o il codice QR sui rifiuti e può quindi inviare le informazioni al centro di riciclaggio. Questo può aiutare a migliorare l\u0026rsquo;efficienza del riciclaggio, assicurando che i rifiuti vengano riciclati correttamente.\nApplicazioni mobili per il riciclaggio\nLe applicazioni mobili per il riciclaggio possono aiutare le persone a imparare a riciclare correttamente. Queste applicazioni possono fornire informazioni sui diversi tipi di rifiuti, sui siti di riciclaggio locali e sui programmi di riciclaggio.\nAd esempio, un\u0026rsquo;applicazione mobile per il riciclaggio basata sull\u0026rsquo;ESP32 può essere utilizzata per fornire informazioni sui diversi tipi di rifiuti domestici. L\u0026rsquo;applicazione può utilizzare la fotocamera del dispositivo mobile per scansionare i rifiuti e può quindi fornire informazioni sul tipo di rifiuto e sul modo in cui deve essere riciclato. Questo può aiutare le persone a riciclare correttamente, anche se non sono familiari con i diversi tipi di rifiuti.\nConclusione\nL\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per migliorare la gestione dei rifiuti e del riciclaggio. L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 può aiutare a ridurre i rifiuti, migliorare l\u0026rsquo;efficienza del riciclaggio e rendere più facile per le persone partecipare al riciclaggio.\nL\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 per la gestione dei rifiuti e del riciclaggio offre una serie di vantaggi, tra cui:\nMigliorata efficienza: I sistemi basati sull\u0026rsquo;ESP32 possono aiutare a migliorare l\u0026rsquo;efficienza della raccolta dei rifiuti e del riciclaggio. Ad esempio, i contenitori intelligenti per rifiuti possono aiutare a ridurre il numero di contenitori di rifiuti pieni che vengono lasciati per strada. Migliorata sostenibilità: I sistemi basati sull\u0026rsquo;ESP32 possono aiutare a ridurre l\u0026rsquo;impatto ambientale dei rifiuti. Ad esempio, i rifiuti intelligenti possono aiutare a migliorare l\u0026rsquo;efficienza del riciclaggio, riducendo la quantità di rifiuti che finiscono in discarica. Maggiore facilità d\u0026rsquo;uso: I sistemi basati sull\u0026rsquo;ESP32 possono rendere più facile per le persone partecipare al riciclaggio. Ad esempio, le applicazioni mobili per il riciclaggio possono fornire informazioni sui diversi tipi di rifiuti e sui siti di riciclaggio locali.\nGestione dei rifiuti La produzione di rifiuti è una conseguenza inevitabile dell\u0026rsquo;attività umana. Nelle civiltà avanzate e tecnologiche, la produzione di rifiuti è particolarmente elevata. Ciò è dovuto a una serie di fattori, tra cui:\nL\u0026rsquo;aumento della popolazione: La popolazione mondiale è in continua crescita, e questo si traduce in un aumento della produzione di rifiuti. L\u0026rsquo;aumento del tenore di vita: Il tenore di vita nelle civiltà avanzate è generalmente più elevato rispetto alle civiltà meno sviluppate. Questo si traduce in un consumo di risorse più elevato, che porta a una produzione di rifiuti più elevata. L\u0026rsquo;uso di tecnologie più avanzate: Le tecnologie più avanzate spesso generano più rifiuti rispetto alle tecnologie meno avanzate. Ad esempio, i dispositivi elettronici sono spesso realizzati con materiali difficili da riciclare. La gestione dei rifiuti è una sfida complessa nelle civiltà avanzate e tecnologiche. I rifiuti possono avere un impatto negativo sull\u0026rsquo;ambiente, sulla salute pubblica e sull\u0026rsquo;economia.\nImpatto ambientale dei rifiuti\nI rifiuti possono avere un impatto negativo sull\u0026rsquo;ambiente in una serie di modi, tra cui:\nL\u0026rsquo;inquinamento dell\u0026rsquo;aria, dell\u0026rsquo;acqua e del suolo: I rifiuti possono rilasciare sostanze inquinanti nell\u0026rsquo;ambiente, che possono danneggiare la salute umana e animale e l\u0026rsquo;ecosistema. Il cambiamento climatico: I rifiuti organici in discarica producono gas serra, che contribuiscono al cambiamento climatico. L\u0026rsquo;esaurimento delle risorse naturali: I rifiuti possono contenere materiali che possono essere riutilizzati o riciclati, ma che invece vengono smaltiti in discarica. Questo può portare all\u0026rsquo;esaurimento delle risorse naturali. Impatto sulla salute pubblica dei rifiuti\nI rifiuti possono avere un impatto negativo sulla salute pubblica in una serie di modi, tra cui:\nLa diffusione di malattie: I rifiuti possono ospitare batteri e altri microrganismi che possono causare malattie. L\u0026rsquo;inquinamento delle acque potabili: I rifiuti possono contaminare le acque potabili, rendendole pericolose da bere. La presenza di ratti e altri animali infestanti: I rifiuti possono attirare ratti e altri animali infestanti, che possono essere portatori di malattie. Impatto economico dei rifiuti\nI rifiuti possono avere un impatto negativo sull\u0026rsquo;economia in una serie di modi, tra cui:\nI costi di raccolta e smaltimento: La raccolta e lo smaltimento dei rifiuti sono attività costose. La perdita di produttività: I rifiuti possono causare perdite di produttività, ad esempio quando le persone devono perdere tempo per pulire i rifiuti abbandonati. La perdita di attrattiva: I rifiuti possono rendere un\u0026rsquo;area meno attraente per i turisti e gli investitori. Soluzioni per la gestione dei rifiuti\nEsistono una serie di soluzioni per la gestione dei rifiuti nelle civiltà avanzate e tecnologiche. Queste soluzioni includono:\nLa riduzione della produzione di rifiuti: La riduzione della produzione di rifiuti è la soluzione migliore per ridurre l\u0026rsquo;impatto ambientale, sulla salute pubblica e sull\u0026rsquo;economia. Ciò può essere fatto attraverso una serie di misure, tra cui: L\u0026rsquo;educazione ambientale: L\u0026rsquo;educazione ambientale può aiutare le persone a ridurre il loro consumo e a riciclare correttamente. La progettazione di prodotti più sostenibili: I prodotti più sostenibili sono realizzati con materiali riciclabili e/o biodegradabili. Il riciclaggio: Il riciclaggio consente di recuperare materiali dai rifiuti, riducendo la necessità di materie prime e di smaltimento in discarica. Il compostaggio: Il compostaggio consente di trasformare i rifiuti organici in materiale organico, che può essere utilizzato per migliorare la fertilità del suolo. L\u0026rsquo;incenerimento con recupero energetico: L\u0026rsquo;incenerimento con recupero energetico consente di generare energia dai rifiuti, riducendo la necessità di combustibili fossili. La scelta della soluzione migliore per la gestione dei rifiuti dipende da una serie di fattori, tra cui le caratteristiche dei rifiuti, le condizioni economiche e ambientali e le preferenze della popolazione.\nRiciclaggio dei rifiuti La necessità del riciclaggio dei rifiuti\nLa produzione di rifiuti è una conseguenza inevitabile dell\u0026rsquo;attività umana. Nelle società avanzate e tecnologiche, la produzione di rifiuti è particolarmente elevata. Ciò è dovuto a una serie di fattori, tra cui:\nL\u0026rsquo;aumento della popolazione: La popolazione mondiale è in continua crescita, e questo si traduce in un aumento della produzione di rifiuti. L\u0026rsquo;aumento del tenore di vita: Il tenore di vita nelle società avanzate è generalmente più elevato rispetto alle società meno sviluppate. Questo si traduce in un consumo di risorse più elevato, che porta a una produzione di rifiuti più elevata. L\u0026rsquo;uso di tecnologie più avanzate: Le tecnologie più avanzate spesso generano più rifiuti rispetto alle tecnologie meno avanzate. Ad esempio, i dispositivi elettronici sono spesso realizzati con materiali difficili da riciclare. La gestione dei rifiuti è una sfida complessa nelle società avanzate e tecnologiche. I rifiuti possono avere un impatto negativo sull\u0026rsquo;ambiente, sulla salute pubblica e sull\u0026rsquo;economia.\nImpatto ambientale dei rifiuti\nI rifiuti possono avere un impatto negativo sull\u0026rsquo;ambiente in una serie di modi, tra cui:\nL\u0026rsquo;inquinamento dell\u0026rsquo;aria, dell\u0026rsquo;acqua e del suolo: I rifiuti possono rilasciare sostanze inquinanti nell\u0026rsquo;ambiente, che possono danneggiare la salute umana e animale e l\u0026rsquo;ecosistema. Il cambiamento climatico: I rifiuti organici in discarica producono gas serra, che contribuiscono al cambiamento climatico. L\u0026rsquo;esaurimento delle risorse naturali: I rifiuti possono contenere materiali che possono essere riutilizzati o riciclati, ma che invece vengono smaltiti in discarica. Questo può portare all\u0026rsquo;esaurimento delle risorse naturali. Impatto sulla salute pubblica dei rifiuti\nI rifiuti possono avere un impatto negativo sulla salute pubblica in una serie di modi, tra cui:\nLa diffusione di malattie: I rifiuti possono ospitare batteri e altri microrganismi che possono causare malattie. L\u0026rsquo;inquinamento delle acque potabili: I rifiuti possono contaminare le acque potabili, rendendole pericolose da bere. La presenza di ratti e altri animali infestanti: I rifiuti possono attirare ratti e altri animali infestanti, che possono essere portatori di malattie. Impatto economico dei rifiuti\nI rifiuti possono avere un impatto negativo sull\u0026rsquo;economia in una serie di modi, tra cui:\nI costi di raccolta e smaltimento: La raccolta e lo smaltimento dei rifiuti sono attività costose. La perdita di produttività: I rifiuti possono causare perdite di produttività, ad esempio quando le persone devono perdere tempo per pulire i rifiuti abbandonati. La perdita di attrattiva: I rifiuti possono rendere un\u0026rsquo;area meno attraente per i turisti e gli investitori. Il riciclaggio come soluzione\nIl riciclaggio è un processo che consente di recuperare materiali dai rifiuti, riducendo la necessità di materie prime e di smaltimento in discarica. Il riciclaggio ha una serie di vantaggi, tra cui:\nRiduce l\u0026rsquo;impatto ambientale: Il riciclaggio aiuta a ridurre l\u0026rsquo;inquinamento dell\u0026rsquo;aria, dell\u0026rsquo;acqua e del suolo, il cambiamento climatico e l\u0026rsquo;esaurimento delle risorse naturali. Migliora la salute pubblica: Il riciclaggio aiuta a ridurre la diffusione di malattie, l\u0026rsquo;inquinamento delle acque potabili e la presenza di ratti e altri animali infestanti. Riduce i costi economici: Il riciclaggio aiuta a ridurre i costi di raccolta e smaltimento dei rifiuti. Il riciclaggio è una soluzione importante per la gestione dei rifiuti nelle società avanzate e tecnologiche. Il riciclaggio può aiutare a ridurre l\u0026rsquo;impatto ambientale, migliorare la salute pubblica e ridurre i costi economici.\nCome aumentare il riciclaggio\nEsistono una serie di misure che possono essere adottate per aumentare il riciclaggio, tra cui:\nL\u0026rsquo;educazione ambientale: L\u0026rsquo;educazione ambientale può aiutare le persone a comprendere l\u0026rsquo;importanza del riciclaggio e a imparare a riciclare correttamente. L\u0026rsquo;introduzione di sistemi di raccolta differenziata: I sistemi di raccolta differenziata consentono di raccogliere i rifiuti in base al tipo di materiale. Questo facilita il riciclaggio e migliora l\u0026rsquo;efficienza del processo. Incentivi economici: Gli incentivi economici, come la riduzione delle tasse sui rifiuti riciclati, possono incentivare le persone a riciclare. Le società avanzate e tecnologiche dovrebbero adottare misure per aumentare il riciclaggio. Il riciclaggio è una soluzione importante per la gestione dei rifiuti e può aiutare a proteggere l\u0026rsquo;ambiente\nArchitettura di un sistema di rifiuti e riciclaggio La tecnologia avanzata può essere utilizzata per migliorare l\u0026rsquo;efficienza, l\u0026rsquo;efficacia e la sostenibilità dei sistemi di rifiuti e riciclaggio. Un sistema di rifiuti e riciclaggio basato sui metodi della tecnologia avanzata potrebbe avere un\u0026rsquo;architettura simile a quella illustrata di seguito:\nLivello 1: Generazione dei rifiuti\nIl livello 1 è responsabile della generazione dei rifiuti. Questo livello include attività come la produzione, il consumo e lo smaltimento dei rifiuti.\nLivello 2: Raccolta e trasporto dei rifiuti\nIl livello 2 è responsabile della raccolta e del trasporto dei rifiuti. Questo livello include attività come la raccolta differenziata, la pesatura e il trasporto dei rifiuti ai centri di raccolta.\nLivello 3: Riciclaggio e recupero\nIl livello 3 è responsabile del riciclaggio e del recupero dei rifiuti. Questo livello include attività come la selezione, la lavorazione e la vendita dei materiali riciclati.\nLivello 4: Smaltimento dei rifiuti\nIl livello 4 è responsabile dello smaltimento dei rifiuti che non possono essere riciclati o recuperati. Questo livello include attività come l\u0026rsquo;incenerimento, la discarica e la produzione di energia dai rifiuti.\nIntegrazione dei livelli\nI diversi livelli del sistema possono essere integrati utilizzando una serie di tecnologie avanzate, tra cui:\nSensori: I sensori possono essere utilizzati per monitorare i rifiuti e raccogliere dati. Questi dati possono essere utilizzati per migliorare l\u0026rsquo;efficienza e l\u0026rsquo;efficacia del sistema. Intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori e prendere decisioni automatizzate. Connettività: La connettività può essere utilizzata per collegare i diversi componenti del sistema. Ciò consente di scambiare dati e informazioni in modo rapido ed efficiente. Esempi di applicazione della tecnologia avanzata\nEcco alcuni esempi di come la tecnologia avanzata può essere applicata a ciascun livello del sistema:\nLivello 1: Generazione dei rifiuti\nSensori: I sensori possono essere utilizzati per monitorare la produzione di rifiuti. Questi dati possono essere utilizzati per identificare le tendenze e le opportunità di riduzione dei rifiuti. Intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori e identificare le opportunità di ridurre i rifiuti. Livello 2: Raccolta e trasporto dei rifiuti\nSensori: I sensori possono essere utilizzati per monitorare il flusso dei rifiuti. Questi dati possono essere utilizzati per ottimizzare il percorso di raccolta e trasporto dei rifiuti. Intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori e ottimizzare il percorso di raccolta e trasporto dei rifiuti. Livello 3: Riciclaggio e recupero\nSensori: I sensori possono essere utilizzati per identificare i materiali riciclabili. Questi dati possono essere utilizzati per migliorare la selezione e la lavorazione dei materiali riciclati. Intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori e migliorare la selezione e la lavorazione dei materiali riciclati. Livello 4: Smaltimento dei rifiuti\nSensori: I sensori possono essere utilizzati per monitorare le condizioni dei rifiuti negli impianti di smaltimento. Questi dati possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza degli impianti. Intelligenza artificiale: L\u0026rsquo;intelligenza artificiale può essere utilizzata per analizzare i dati raccolti dai sensori e migliorare la sicurezza e l\u0026rsquo;efficienza degli impianti. Vantaggi dell\u0026rsquo;utilizzo della tecnologia avanzata\nL\u0026rsquo;utilizzo della tecnologia avanzata nei sistemi di rifiuti e riciclaggio può offrire una serie di vantaggi, tra cui:\nMigliorata efficienza: La tecnologia avanzata può aiutare a migliorare l\u0026rsquo;efficienza dei sistemi di rifiuti e riciclaggio, riducendo i costi e migliorando i risultati. Maggiore efficacia: La tecnologia avanzata può aiutare a migliorare l\u0026rsquo;efficacia dei sistemi di rifiuti e riciclaggio, aumentando la quantità di rifiuti riciclati e recuperati. Maggiore sostenibilità: La tecnologia avanzata può aiutare a migliorare la sostenibilità dei sistemi di rifiuti e riciclaggio, riducendo l\u0026rsquo;impatto ambientale. Conclusione\nL\u0026rsquo;utilizzo della tecnologia avanzata nei sistemi di rifiuti e riciclaggio è una tendenza in crescita. La tecnologia avanzata può offrire una serie di vantaggi, tra cui l\u0026rsquo;efficienza, l\u0026rsquo;efficacia e la sostenibilità.\nEsempi di sistemi di rifiuti e riciclaggio basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui la gestione dei rifiuti e del riciclaggio. Esistono numerosi esempi di sistemi di rifiuti e riciclaggio basati sull\u0026rsquo;ESP32 che stanno già dimostrando il loro potenziale per migliorare l\u0026rsquo;efficienza, l\u0026rsquo;efficacia e la sostenibilità dei sistemi di gestione dei rifiuti.\nContenitori intelligenti per rifiuti\nI contenitori intelligenti per rifiuti sono contenitori per rifiuti dotati di sensori e connettività. I sensori possono essere utilizzati per monitorare il livello di riempimento dei contenitori, mentre la connettività può essere utilizzata per inviare avvisi quando i contenitori devono essere svuotati.\nAd esempio, un sistema di contenitori intelligenti per rifiuti basato sull\u0026rsquo;ESP32 può essere utilizzato per monitorare il livello di riempimento dei contenitori per rifiuti domestici. Il sistema può utilizzare sensori per misurare il peso dei contenitori e può quindi inviare avvisi agli operatori di raccolta dei rifiuti quando i contenitori devono essere svuotati. Questo può aiutare a ridurre il numero di contenitori di rifiuti pieni che vengono lasciati per strada, migliorando l\u0026rsquo;estetica e la pulizia della comunità.\nRifiuti intelligenti\nI rifiuti intelligenti sono rifiuti dotati di sensori e connettività. I sensori possono essere utilizzati per identificare il tipo di rifiuto, mentre la connettività può essere utilizzata per tracciare il percorso dei rifiuti dal punto di raccolta al punto di riciclaggio.\nAd esempio, un sistema di rifiuti intelligenti basato sull\u0026rsquo;ESP32 può essere utilizzato per identificare il tipo di rifiuto che viene gettato in un contenitore per rifiuti. Il sistema può utilizzare sensori per rilevare il codice a barre o il codice QR sui rifiuti e può quindi inviare le informazioni al centro di riciclaggio. Questo può aiutare a migliorare l\u0026rsquo;efficienza del riciclaggio, assicurando che i rifiuti vengano riciclati correttamente.\nApplicazioni mobili per il riciclaggio\nLe applicazioni mobili per il riciclaggio possono aiutare le persone a imparare a riciclare correttamente. Queste applicazioni possono fornire informazioni sui diversi tipi di rifiuti, sui siti di riciclaggio locali e sui programmi di riciclaggio.\nAd esempio, un\u0026rsquo;applicazione mobile per il riciclaggio basata sull\u0026rsquo;ESP32 può essere utilizzata per fornire informazioni sui diversi tipi di rifiuti domestici. L\u0026rsquo;applicazione può utilizzare la fotocamera del dispositivo mobile per scansionare i rifiuti e può quindi fornire informazioni sul tipo di rifiuto e sul modo in cui deve essere riciclato. Questo può aiutare le persone a riciclare correttamente, anche se non sono familiari con i diversi tipi di rifiuti.\nAltri esempi\nOltre agli esempi sopra riportati, ci sono molti altri modi in cui l\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di rifiuti e riciclaggio. Alcuni altri esempi includono:\nSistemi di pesatura dei rifiuti: I sistemi di pesatura dei rifiuti possono essere utilizzati per misurare il peso dei rifiuti raccolti. Queste informazioni possono essere utilizzate per migliorare la fatturazione dei servizi di raccolta dei rifiuti e per monitorare l\u0026rsquo;efficienza della raccolta dei rifiuti. Sistemi di monitoraggio della qualità dell\u0026rsquo;aria: I sistemi di monitoraggio della qualità dell\u0026rsquo;aria possono essere utilizzati per monitorare la qualità dell\u0026rsquo;aria nelle vicinanze di impianti di smaltimento dei rifiuti. Queste informazioni possono essere utilizzate per migliorare la sicurezza e l\u0026rsquo;efficienza degli impianti di smaltimento dei rifiuti. Sistemi di monitoraggio della sicurezza: I sistemi di monitoraggio della sicurezza possono essere utilizzati per monitorare la sicurezza degli impianti di smaltimento dei rifiuti. Queste informazioni possono essere utilizzate per prevenire incidenti e migliorare l\u0026rsquo;efficienza degli impianti di smaltimento dei rifiuti.\nCapitolo 9: Edilizia sostenibile con l\u0026rsquo;ESP32 L\u0026rsquo;edilizia sostenibile è un settore in rapida crescita che mira a ridurre l\u0026rsquo;impatto ambientale dell\u0026rsquo;edilizia, migliorando l\u0026rsquo;efficienza energetica, la qualità dell\u0026rsquo;aria e l\u0026rsquo;utilizzo delle risorse. L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui l\u0026rsquo;edilizia sostenibile.\nVantaggi dell\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 in edilizia sostenibile\nL\u0026rsquo;ESP32 offre una serie di vantaggi per l\u0026rsquo;edilizia sostenibile, tra cui:\nCosto contenuto: l\u0026rsquo;ESP32 è un microcontroller economico, il che lo rende un\u0026rsquo;opzione conveniente per gli sviluppatori di edifici sostenibili. Versatile: l\u0026rsquo;ESP32 è una piattaforma versatile che può essere utilizzata per una varietà di applicazioni edilizie. Compatibile con il cloud: l\u0026rsquo;ESP32 è compatibile con il cloud, il che consente agli sviluppatori di edifici di raccogliere e analizzare i dati in modo remoto. Esempi di applicazioni dell\u0026rsquo;ESP32 in edilizia sostenibile\nL\u0026rsquo;ESP32 può essere utilizzato per una varietà di applicazioni edilizie sostenibili, tra cui:\nMonitoraggio energetico: i sensori possono essere utilizzati per raccogliere dati sull\u0026rsquo;utilizzo energetico di un edificio, come consumo di elettricità, acqua e gas. Questi dati possono essere utilizzati per identificare opportunità di efficienza energetica e ridurre le emissioni di carbonio. Monitoraggio energetico con l\u0026rsquo;ESP32Opens in a new window it.aliexpress.com Monitoraggio energetico con l\u0026rsquo;ESP32 Controllo dell\u0026rsquo;illuminazione: l\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;illuminazione di un edificio in modo da ottimizzarne l\u0026rsquo;efficienza. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per accendere e spegnere automaticamente le luci in base alla luminosità naturale. Controllo dell\u0026rsquo;illuminazione con l\u0026rsquo;ESP32Opens in a new window forum.arduino.cc Controllo dell\u0026rsquo;illuminazione con l\u0026rsquo;ESP32 Controllo del riscaldamento e del raffreddamento: l\u0026rsquo;ESP32 può essere utilizzato per controllare il riscaldamento e il raffreddamento di un edificio in modo da ottimizzarne l\u0026rsquo;efficienza. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per programmare il riscaldamento e il raffreddamento in base alle condizioni meteorologiche previste. Controllo del riscaldamento e del raffreddamento con l\u0026rsquo;ESP32Opens in a new window futuranet.it Controllo del riscaldamento e del raffreddamento con l\u0026rsquo;ESP32 Controllo degli accessi: l\u0026rsquo;ESP32 può essere utilizzato per controllare gli accessi a un edificio in modo da migliorare la sicurezza e l\u0026rsquo;efficienza. Ad esempio, l\u0026rsquo;ESP32 può essere utilizzato per attivare automaticamente le serrature quando un sensore rileva la presenza di una persona. Controllo degli accessi con l\u0026rsquo;ESP32Opens in a new window it.emcelettronica.com Controllo degli accessi con l\u0026rsquo;ESP32 Conclusione\nL\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per creare una varietà di sistemi di edilizia sostenibile. L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 può aiutare gli sviluppatori di edifici a ridurre l\u0026rsquo;impatto ambientale dei loro progetti, migliorare l\u0026rsquo;efficienza energetica e garantire la sostenibilità a lungo termine dell\u0026rsquo;edilizia.\nAlcuni altri esempi di applicazioni dell\u0026rsquo;ESP32 in edilizia sostenibile includono:\nSistemi di ventilazione naturale: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di ventilazione naturale di un edificio in modo da migliorare la qualità dell\u0026rsquo;aria interna. Sistemi di ventilazione naturale con l\u0026rsquo;ESP32Opens in a new window www.amazon.it Sistemi di ventilazione naturale con l\u0026rsquo;ESP32 Sistemi di raccolta dell\u0026rsquo;acqua piovana: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di raccolta dell\u0026rsquo;acqua piovana di un edificio in modo da ridurre il consumo di acqua potabile. Sistemi di raccolta dell\u0026rsquo;acqua piovana con l\u0026rsquo;ESP32Opens in a new window www.barberiniproject.com Sistemi di raccolta dell\u0026rsquo;acqua piovana con l\u0026rsquo;ESP32 Sistemi di accumulo di energia: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di accumulo di energia di un edificio in modo da ottimizzare l\u0026rsquo;utilizzo dell\u0026rsquo;energia rinnovabile. Sistemi di accumulo di energia con l\u0026rsquo;ESP32Opens in a new window www.kostal-solar-electric.com Sistemi di accumulo di energia con l\u0026rsquo;ESP32 L\u0026rsquo;edilizia sostenibile è un settore in rapida crescita e l\u0026rsquo;ESP32 ha il potenziale per svolgere un ruolo importante in questo settore.\nSmart building Cos\u0026rsquo;è un edificio intelligente?\nUn edificio intelligente, o smart building, è un edificio dotato di un sistema di automazione integrato che utilizza tecnologie digitali per monitorare e controllare le sue funzioni. Questo sistema può essere utilizzato per migliorare l\u0026rsquo;efficienza energetica, la sicurezza, il comfort e la produttività.\nVantaggi degli edifici intelligenti\nGli edifici intelligenti offrono una serie di vantaggi, tra cui:\nMiglioramento dell\u0026rsquo;efficienza energetica: Gli edifici intelligenti possono utilizzare sensori e controlli per monitorare e ottimizzare l\u0026rsquo;utilizzo delle risorse energetiche. Ciò può aiutare a ridurre i costi energetici e le emissioni di carbonio. edificio intelligente che migliora l\u0026rsquo;efficienza energeticaOpens in a new window www.bosch-press.it edificio intelligente che migliora l\u0026rsquo;efficienza energetica Miglioramento della sicurezza: Gli edifici intelligenti possono utilizzare sistemi di sicurezza integrati per migliorare la sicurezza degli occupanti. Ciò può includere la video sorveglianza, il rilevamento degli intrusi e i sistemi di controllo degli accessi. edificio intelligente che migliora la sicurezzaOpens in a new window www.sicurezzamagazine.it edificio intelligente che migliora la sicurezza Miglioramento del comfort: Gli edifici intelligenti possono utilizzare sistemi di controllo dell\u0026rsquo;illuminazione, del riscaldamento e del raffreddamento per ottimizzare il comfort degli occupanti. Ciò può aiutare a migliorare la produttività e la soddisfazione dei dipendenti. edificio intelligente che migliora il comfortOpens in a new window energy.mapsgroup.it edificio intelligente che migliora il comfort Miglioramento della produttività: Gli edifici intelligenti possono utilizzare tecnologie come la connettività Wi-Fi e le telecamere di sorveglianza per migliorare la produttività dei dipendenti. Ciò può includere la condivisione dei file, la collaborazione e la sicurezza. edificio intelligente che migliora la produttivitàOpens in a new window www.rockwellautomation.com edificio intelligente che migliora la produttività Applicazioni degli edifici intelligenti\nGli edifici intelligenti possono essere utilizzati in una varietà di applicazioni, tra cui:\nImprese: Gli edifici intelligenti possono essere utilizzati per migliorare l\u0026rsquo;efficienza e la produttività delle aziende. edificio intelligente utilizzato dalle impreseOpens in a new window www.teknoring.com edificio intelligente utilizzato dalle imprese Scuole: Gli edifici intelligenti possono essere utilizzati per migliorare l\u0026rsquo;apprendimento e la sicurezza degli studenti. edificio intelligente utilizzato dalle scuoleOpens in a new window www.eai.enea.it edificio intelligente utilizzato dalle scuole Ospedali: Gli edifici intelligenti possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;assistenza dei pazienti. edificio intelligente utilizzato dagli ospedaliOpens in a new window www.kone.it edificio intelligente utilizzato dagli ospedali Case: Gli edifici intelligenti possono essere utilizzati per migliorare il comfort e la sicurezza dei residenti. edificio intelligente utilizzato dalle caseOpens in a new window www.kone.it edificio intelligente utilizzato dalle case Tecnologie utilizzate negli edifici intelligenti\nGli edifici intelligenti utilizzano una varietà di tecnologie, tra cui:\nSensori: I sensori vengono utilizzati per raccogliere dati sulle condizioni dell\u0026rsquo;edificio. Ad esempio, i sensori possono essere utilizzati per misurare la temperatura, l\u0026rsquo;umidità, la luce e la presenza di persone. Controlli: I controlli vengono utilizzati per automatizzare le funzioni dell\u0026rsquo;edificio. Ad esempio, i controlli possono essere utilizzati per accendere e spegnere le luci, regolare il riscaldamento e il raffreddamento e controllare l\u0026rsquo;accesso. Software: Il software viene utilizzato per gestire i dati e i controlli dell\u0026rsquo;edificio. Connettività: La connettività viene utilizzata per collegare i sistemi dell\u0026rsquo;edificio a Internet. Il futuro degli edifici intelligenti\nGli edifici intelligenti stanno diventando sempre più comuni. Si prevede che la spesa globale per l\u0026rsquo;edilizia intelligente raggiungerà i 120 miliardi di dollari entro il 2025.\nL\u0026rsquo;adozione degli edifici intelligenti è guidata da una serie di fattori, tra cui:\nL\u0026rsquo;aumento dei costi energetici: Gli edifici intelligenti possono aiutare a ridurre i costi energetici, rendendoli un\u0026rsquo;opzione più attraente per gli sviluppatori e i proprietari di edifici. La crescente consapevolezza della sostenibilità: Gli edifici intelligenti possono aiutare a ridurre l\u0026rsquo;impatto ambientale, rendendoli un\u0026rsquo;opzione più attraente per i proprietari di edifici e gli occupanti. L\u0026rsquo;innovazione tecnologica: Le nuove tecnologie stanno rendendo più facile e conveniente l\u0026rsquo;installazione e la gestione degli edifici intelligenti. Gli edifici intelligenti hanno il potenziale per trasformare il modo in cui viviamo, lavoriamo e impariamo. Offrono una serie di vantaggi, tra cui l\u0026rsquo;efficienza energetica, la sicurezza, il comfort e la produttività.\nSmart grid Una smart grid è una rete elettrica intelligente che utilizza tecnologie digitali per migliorare l\u0026rsquo;efficienza, la sicurezza e la sostenibilità. Le smart grid utilizzano sensori, controlli e software per raccogliere dati e informazioni sulle condizioni della rete. Questi dati possono quindi essere utilizzati per ottimizzare la produzione, la distribuzione e il consumo di energia.\nVantaggi delle smart grid\nLe smart grid offrono una serie di vantaggi, tra cui:\nMiglioramento dell\u0026rsquo;efficienza energetica: Le smart grid possono aiutare a ridurre le perdite di energia e migliorare l\u0026rsquo;efficienza della produzione e della distribuzione. Ciò può aiutare a ridurre i costi energetici e le emissioni di carbonio. Smart grid che migliora l\u0026rsquo;efficienza energeticaOpens in a new window www.wekiwi.it Smart grid che migliora l\u0026rsquo;efficienza energetica Miglioramento della sicurezza: Le smart grid possono aiutare a migliorare la sicurezza della rete elettrica, rendendola meno vulnerabile a guasti e interruzioni. Smart grid che migliora la sicurezzaOpens in a new window www.tomorrow.bio Smart grid che migliora la sicurezza Miglioramento della sostenibilità: Le smart grid possono aiutare a integrare le fonti di energia rinnovabile nella rete elettrica, rendendola più sostenibile. Smart grid che migliora la sostenibilitàOpens in a new window www.eai.enea.it Smart grid che migliora la sostenibilità Applicazioni delle smart grid\nLe smart grid possono essere utilizzate in una varietà di applicazioni, tra cui:\nProduzione: Le smart grid possono essere utilizzate per ottimizzare la produzione di energia, inclusa la produzione di energia rinnovabile. Smart grid utilizzata per la produzioneOpens in a new window www.manutenzione-online.com Smart grid utilizzata per la produzione Distribuzione: Le smart grid possono essere utilizzate per ottimizzare la distribuzione di energia, inclusa la distribuzione di energia rinnovabile. Smart grid utilizzata per la distribuzioneOpens in a new window it.wikipedia.org Smart grid utilizzata per la distribuzione Consumo: Le smart grid possono essere utilizzate per migliorare il consumo di energia da parte dei consumatori, inclusa la gestione della domanda. Smart grid utilizzata per il consumoOpens in a new window www.studioninarello.it Smart grid utilizzata per il consumo Tecnologie utilizzate nelle smart grid\nLe smart grid utilizzano una varietà di tecnologie, tra cui:\nSensori: I sensori vengono utilizzati per raccogliere dati sulle condizioni della rete. Ad esempio, i sensori possono essere utilizzati per misurare la tensione, la corrente, la potenza e la frequenza. Controlli: I controlli vengono utilizzati per automatizzare le funzioni della rete. Ad esempio, i controlli possono essere utilizzati per regolare la produzione, la distribuzione e il consumo di energia. Software: Il software viene utilizzato per gestire i dati e i controlli della rete. Connettività: La connettività viene utilizzata per collegare i sistemi della rete a Internet. Il futuro delle smart grid\nLe smart grid stanno diventando sempre più comuni. Si prevede che la spesa globale per le smart grid raggiungerà i 260 miliardi di dollari entro il 2025.\nL\u0026rsquo;adozione delle smart grid è guidata da una serie di fattori, tra cui:\nL\u0026rsquo;aumento della domanda di energia: Le smart grid possono aiutare a soddisfare la crescente domanda di energia, inclusa la domanda di energia rinnovabile. La crescente consapevolezza della sostenibilità: Le smart grid possono aiutare a ridurre l\u0026rsquo;impatto ambientale, rendendole un\u0026rsquo;opzione più attraente per i governi, le imprese e i consumatori. L\u0026rsquo;innovazione tecnologica: Le nuove tecnologie stanno rendendo più facile e conveniente l\u0026rsquo;installazione e la gestione delle smart grid. Le smart grid hanno il potenziale per trasformare il modo in cui produciamo, distribuiamo e consumiamo energia. Offrono una serie di vantaggi, tra cui l\u0026rsquo;efficienza energetica, la sicurezza e la sostenibilità.\nArchitettura di un sistema di edilizia sostenibile View other drafts\nArchitettura di un sistema di edilizia sostenibile\nL\u0026rsquo;architettura di un sistema di edilizia sostenibile è costituita da una serie di componenti che lavorano insieme per fornire un\u0026rsquo;edilizia che sia produttiva, sostenibile e resiliente. Questi componenti includono:\nDesign: Il design di un edificio sostenibile è fondamentale per garantire che sia efficiente dal punto di vista energetico e delle risorse. Il design sostenibile dovrebbe prendere in considerazione fattori come la posizione dell\u0026rsquo;edificio, la forma, l\u0026rsquo;orientamento e i materiali utilizzati. Design di un edificio sostenibileOpens in a new window mielearredo.com Design di un edificio sostenibile Tecnologie: Le tecnologie sostenibili possono essere utilizzate per migliorare l\u0026rsquo;efficienza energetica, la qualità dell\u0026rsquo;aria e l\u0026rsquo;utilizzo delle risorse di un edificio. Le tecnologie sostenibili comuni includono l\u0026rsquo;isolamento, le finestre a risparmio energetico, i sistemi di illuminazione a LED e i sistemi di riscaldamento e raffreddamento efficienti dal punto di vista energetico. Tecnologie sostenibili utilizzate in ediliziaOpens in a new window ambientenonsolo.com Tecnologie sostenibili utilizzate in edilizia Gestione: La gestione di un edificio sostenibile è importante per garantire che sia utilizzato in modo efficiente e sostenibile. La gestione sostenibile dovrebbe includere attività come la formazione dei dipendenti, l\u0026rsquo;implementazione di politiche e procedure sostenibili e la misurazione del consumo di energia e delle risorse. Gestione di un edificio sostenibileOpens in a new window www.gruppo3i.it Gestione di un edificio sostenibile I componenti dell\u0026rsquo;architettura di un sistema di edilizia sostenibile possono essere combinati in diversi modi per creare sistemi di edilizia sostenibile personalizzati. Un approccio comune è quello di utilizzare un approccio integrato che combina design, tecnologie e gestione. Questo approccio consente di creare sistemi di edilizia sostenibile che siano efficienti, efficaci e sostenibili.\nEcco alcuni esempi specifici di come i componenti dell\u0026rsquo;architettura di un sistema di edilizia sostenibile possono essere utilizzati per migliorare la sostenibilità dell\u0026rsquo;edilizia:\nIl design sostenibile può essere utilizzato per ridurre il fabbisogno energetico di un edificio. Ad esempio, un edificio progettato per sfruttare la luce naturale può ridurre la necessità di illuminazione artificiale. Le tecnologie sostenibili possono essere utilizzate per ridurre l\u0026rsquo;impatto ambientale di un edificio. Ad esempio, un sistema di riscaldamento e raffreddamento efficiente dal punto di vista energetico può ridurre le emissioni di carbonio. La gestione sostenibile può essere utilizzata per migliorare l\u0026rsquo;efficienza operativa di un edificio. Ad esempio, una politica di spegnimento delle luci quando le stanze sono vuote può ridurre il consumo di energia. L\u0026rsquo;architettura di un sistema di edilizia sostenibile è un campo in rapida evoluzione. Le nuove tecnologie e le pratiche stanno emergendo continuamente che offrono nuove opportunità per migliorare la sostenibilità dell\u0026rsquo;edilizia.\nEsempi di sistemi di edilizia sostenibile basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui l\u0026rsquo;edilizia sostenibile. Esistono numerosi esempi di sistemi di edilizia sostenibile basati sull\u0026rsquo;ESP32 che stanno già dimostrando il loro potenziale per migliorare la produttività, ridurre l\u0026rsquo;impatto ambientale e rendere l\u0026rsquo;edilizia più sostenibile.\nMonitoraggio energetico\nI sensori possono essere utilizzati per raccogliere dati sull\u0026rsquo;utilizzo energetico di un edificio, come consumo di elettricità, acqua e gas. Questi dati possono essere utilizzati per identificare opportunità di efficienza energetica e ridurre le emissioni di carbonio.\nAd esempio, un sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per monitorare il consumo di energia di un edificio. Il sistema può utilizzare sensori per misurare l\u0026rsquo;energia consumata da vari dispositivi e sistemi dell\u0026rsquo;edificio, come l\u0026rsquo;illuminazione, il riscaldamento e il raffreddamento. I dati raccolti dal sistema possono essere utilizzati per identificare i dispositivi e i sistemi che consumano più energia. Questo può aiutare gli occupanti dell\u0026rsquo;edificio a prendere decisioni informate sulle modifiche che possono essere apportate per ridurre il consumo energetico.\nControllo dell\u0026rsquo;illuminazione\nL\u0026rsquo;illuminazione è uno dei maggiori consumatori di energia in un edificio. I sistemi di controllo dell\u0026rsquo;illuminazione basati sull\u0026rsquo;ESP32 possono essere utilizzati per migliorare l\u0026rsquo;efficienza energetica dell\u0026rsquo;illuminazione.\nAd esempio, un sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;illuminazione di un edificio in base alla luminosità naturale. Il sistema può utilizzare sensori per misurare la luminosità naturale e può quindi accendere o spegnere le luci in modo automatico. Questo può aiutare a ridurre il consumo di energia dell\u0026rsquo;illuminazione, senza sacrificare il comfort degli occupanti.\nControllo del riscaldamento e del raffreddamento\nIl riscaldamento e il raffreddamento sono altri importanti consumatori di energia in un edificio. I sistemi di controllo del riscaldamento e del raffreddamento basati sull\u0026rsquo;ESP32 possono essere utilizzati per migliorare l\u0026rsquo;efficienza energetica del riscaldamento e del raffreddamento.\nAd esempio, un sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare il riscaldamento e il raffreddamento di un edificio in base alla temperatura interna. Il sistema può utilizzare sensori per misurare la temperatura interna e può quindi regolare il riscaldamento e il raffreddamento in modo automatico. Questo può aiutare a ridurre il consumo di energia del riscaldamento e del raffreddamento, senza sacrificare il comfort degli occupanti.\nControllo degli accessi\nI sistemi di controllo degli accessi basati sull\u0026rsquo;ESP32 possono essere utilizzati per migliorare la sicurezza e l\u0026rsquo;efficienza degli edifici.\nAd esempio, un sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare l\u0026rsquo;accesso a un edificio in base all\u0026rsquo;identità degli occupanti. Il sistema può utilizzare sensori per rilevare la presenza di persone e può quindi attivare o disattivare le serrature in modo automatico. Questo può aiutare a migliorare la sicurezza degli edifici, senza sacrificare la comodità degli occupanti.\nAltri esempi\nOltre agli esempi sopra riportati, ci sono molti altri modi in cui l\u0026rsquo;ESP32 può essere utilizzato per creare sistemi di edilizia sostenibile. Alcuni altri esempi includono:\nSistemi di ventilazione naturale: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di ventilazione naturale di un edificio in modo da migliorare la qualità dell\u0026rsquo;aria interna. Sistemi di raccolta dell\u0026rsquo;acqua piovana: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di raccolta dell\u0026rsquo;acqua piovana di un edificio in modo da ridurre il consumo di acqua potabile. Sistemi di accumulo di energia: l\u0026rsquo;ESP32 può essere utilizzato per controllare i sistemi di accumulo di energia di un edificio in modo da ottimizzare l\u0026rsquo;utilizzo dell\u0026rsquo;energia rinnovabile. L\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per creare una varietà di sistemi di edilizia sostenibile. L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 può aiutare gli edifici a ridurre l\u0026rsquo;impatto ambientale, migliorare la produttività e garantire la sostenibilità a lungo termine dell\u0026rsquo;edilizia.\nCapitolo 10: Agricoltura sostenibile con l\u0026rsquo;ESP32 L\u0026rsquo;agricoltura sostenibile è un settore in rapida crescita che mira a ridurre l\u0026rsquo;impatto ambientale dell\u0026rsquo;agricoltura, migliorando la produttività e la qualità delle colture. L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui l\u0026rsquo;agricoltura sostenibile.\nVantaggi dell\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 in agricoltura sostenibile\nL\u0026rsquo;ESP32 offre una serie di vantaggi per l\u0026rsquo;agricoltura sostenibile, tra cui:\nCosto contenuto: l\u0026rsquo;ESP32 è un microcontroller economico, il che lo rende un\u0026rsquo;opzione conveniente per gli agricoltori. Versatile: l\u0026rsquo;ESP32 è una piattaforma versatile che può essere utilizzata per una varietà di applicazioni agricole. Compatibile con il cloud: l\u0026rsquo;ESP32 è compatibile con il cloud, il che consente agli agricoltori di raccogliere e analizzare i dati in modo remoto. Esempi di applicazioni dell\u0026rsquo;ESP32 in agricoltura sostenibile\nL\u0026rsquo;ESP32 può essere utilizzato per una varietà di applicazioni agricole sostenibili, tra cui:\nMonitoraggio delle colture: i sensori possono essere utilizzati per raccogliere dati sulle condizioni delle colture e del terreno, come temperatura, umidità, pH e livelli di nutrienti. Questi dati possono essere utilizzati per monitorare la salute delle colture e identificare potenziali problemi. Monitoraggio delle colture con l’ESP32Opens in a new window futuranet.it Monitoraggio delle colture con l’ESP32 Irrigazione a goccia: l\u0026rsquo;irrigazione a goccia è un metodo di irrigazione efficiente che fornisce acqua direttamente alle radici delle colture. Questo metodo può aiutare a ridurre lo spreco di acqua e migliorare l\u0026rsquo;efficienza dell\u0026rsquo;irrigazione. Irrigazione a goccia con l’ESP32Opens in a new window it.aliexpress.com Irrigazione a goccia con l’ESP32 Controllo dei parassiti: i droni possono essere utilizzati per distribuire pesticidi e altri prodotti fitosanitari in modo più mirato. Ciò può aiutare a ridurre l\u0026rsquo;inquinamento e migliorare la salute delle colture. Controllo dei parassiti con l’ESP32Opens in a new window www.ivanberdini.it Controllo dei parassiti con l’ESP32 Raccolta delle colture: i robot possono essere utilizzati per automatizzare le attività agricole, come la raccolta delle colture. Ciò può aiutare a ridurre la fatica degli agricoltori e migliorare la sicurezza sul lavoro. Raccolta delle colture con l’ESP32Opens in a new window www.fabiogalli.net Raccolta delle colture con l’ESP32 Conclusione\nL\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per creare una varietà di sistemi di agricoltura sostenibile. L\u0026rsquo;utilizzo dell\u0026rsquo;ESP32 può aiutare gli agricoltori a ridurre l\u0026rsquo;impatto ambientale della loro attività, migliorare la produttività e garantire la sostenibilità a lungo termine dell\u0026rsquo;agricoltura.\nAgricoltura di precisione L\u0026rsquo;agricoltura di precisione: una tecnologia sostenibile per l\u0026rsquo;agricoltura del futuro\nL\u0026rsquo;agricoltura di precisione è una strategia di gestione agricola che utilizza tecnologie informatiche e telematiche per raccogliere, elaborare e analizzare dati in tempo reale sulle condizioni del terreno, delle colture e dell\u0026rsquo;ambiente. Questi dati vengono poi utilizzati per prendere decisioni mirate e tempestive per migliorare la produttività, ridurre l\u0026rsquo;impatto ambientale e migliorare la qualità dei prodotti agricoli.\nL\u0026rsquo;agricoltura di precisione è una tecnologia emergente che sta rapidamente guadagnando popolarità in tutto il mondo. È particolarmente adatta per le aziende agricole di grandi dimensioni che gestiscono terreni eterogenei e che desiderano migliorare l\u0026rsquo;efficienza e la sostenibilità della loro attività.\nVantaggi dell\u0026rsquo;agricoltura di precisione\nL\u0026rsquo;agricoltura di precisione offre numerosi vantaggi, tra cui:\nMiglioramento della produttività: L\u0026rsquo;agricoltura di precisione consente agli agricoltori di applicare le risorse necessarie (acqua, fertilizzanti, pesticidi) solo dove e quando serve, riducendo gli sprechi e migliorando l\u0026rsquo;efficienza. Riduzione dell\u0026rsquo;impatto ambientale: L\u0026rsquo;agricoltura di precisione aiuta a ridurre l\u0026rsquo;inquinamento dell\u0026rsquo;acqua e dell\u0026rsquo;aria, migliorando la salute del suolo e degli ecosistemi. Miglioramento della qualità dei prodotti agricoli: L\u0026rsquo;agricoltura di precisione consente agli agricoltori di produrre prodotti di alta qualità, più sani e nutrienti. Tecnologie utilizzate nell\u0026rsquo;agricoltura di precisione\nL\u0026rsquo;agricoltura di precisione utilizza una serie di tecnologie, tra cui:\nSensori: I sensori vengono utilizzati per raccogliere dati sulle condizioni del terreno, delle colture e dell\u0026rsquo;ambiente. I dati raccolti possono includere informazioni sulla temperatura del suolo, l\u0026rsquo;umidità, la fertilità, la salute delle piante, le condizioni meteorologiche e altro ancora. Tecnologie di elaborazione dati: I dati raccolti dai sensori vengono elaborati da computer per generare informazioni utili agli agricoltori. Queste informazioni possono includere mappe di fertilità del suolo, modelli di crescita delle piante e altro ancora. Tecnologie di controllo: Le informazioni generate dalle tecnologie di elaborazione dati vengono utilizzate per controllare le operazioni agricole. Ad esempio, i dati possono essere utilizzati per guidare macchine agricole, irrigare le colture o applicare fertilizzanti e pesticidi. Esempi di applicazioni dell\u0026rsquo;agricoltura di precisione\nL\u0026rsquo;agricoltura di precisione può essere utilizzata per una varietà di applicazioni, tra cui:\nFertilizzazione a rateo variabile: L\u0026rsquo;applicazione di fertilizzanti in base alle esigenze specifiche di ciascuna pianta può aiutare a ridurre gli sprechi e migliorare la resa. Irrigazione a rateo variabile: L\u0026rsquo;irrigazione delle colture solo quando e dove serve può aiutare a risparmiare acqua e ridurre lo spreco. Guida assistita: I trattori e altri macchinari agricoli possono essere dotati di sensori e tecnologie di guida assistita per migliorare la precisione e ridurre i rischi di incidenti. Rilevamento delle infestazioni: I sensori possono essere utilizzati per rilevare precocemente le infestazioni di parassiti e malattie, consentendo agli agricoltori di intervenire in modo tempestivo. Conclusione\nL\u0026rsquo;agricoltura di precisione è una tecnologia promettente che ha il potenziale di trasformare l\u0026rsquo;agricoltura del futuro. Offre numerosi vantaggi, tra cui l\u0026rsquo;aumento della produttività, la riduzione dell\u0026rsquo;impatto ambientale e il miglioramento della qualità dei prodotti agricoli.\nCon l\u0026rsquo;aumento della popolazione mondiale e la scarsità delle risorse naturali, l\u0026rsquo;agricoltura di precisione è diventata sempre più importante. Questa tecnologia può aiutare gli agricoltori a produrre più cibo con meno risorse, contribuendo a garantire la sicurezza alimentare del pianeta.\nAgricoltura digitale L\u0026rsquo;agricoltura digitale: una rivoluzione per il futuro del cibo\nL\u0026rsquo;agricoltura digitale è l\u0026rsquo;applicazione delle tecnologie digitali all\u0026rsquo;agricoltura. Si tratta di un settore in rapida evoluzione, che sta rapidamente trasformando il modo in cui produciamo e consumiamo il cibo.\nI vantaggi dell\u0026rsquo;agricoltura digitale\nL\u0026rsquo;agricoltura digitale offre una serie di vantaggi, tra cui:\nMigliore produttività: le tecnologie digitali possono aiutare gli agricoltori a migliorare la produttività delle loro colture, riducendo l\u0026rsquo;utilizzo di risorse e aumentando i raccolti. Agricoltura digitale per migliorare la produttivitàOpens in a new window www.argologica.com Agricoltura digitale per migliorare la produttività Migliore sostenibilità: le tecnologie digitali possono aiutare gli agricoltori a ridurre l\u0026rsquo;impatto ambientale della loro attività, migliorando l\u0026rsquo;efficienza idrica e l\u0026rsquo;uso dei fertilizzanti. Agricoltura digitale per migliorare la sostenibilitàOpens in a new window www.libreriauniversitaria.it Agricoltura digitale per migliorare la sostenibilità Migliore tracciabilità: le tecnologie digitali possono aiutare a tracciare la provenienza del cibo, garantendo ai consumatori una maggiore trasparenza e sicurezza. Agricoltura digitale per migliorare la tracciabilitàOpens in a new window www.selenella.it Agricoltura digitale per migliorare la tracciabilità Le tecnologie digitali utilizzate nell\u0026rsquo;agricoltura\nLe tecnologie digitali utilizzate nell\u0026rsquo;agricoltura sono molteplici, tra cui:\nSensori: i sensori vengono utilizzati per raccogliere dati sulle condizioni delle colture e del terreno, come temperatura, umidità, pH e livelli di nutrienti. Sensori utilizzati nell\u0026rsquo;agricoltura digitaleOpens in a new window www.syen.it Sensori utilizzati nell\u0026rsquo;agricoltura digitale Drone: i droni vengono utilizzati per acquisire immagini e video delle colture, che possono essere poi utilizzati per analizzare le condizioni delle piante e identificare problemi. Drone utilizzati nell\u0026rsquo;agricoltura digitaleOpens in a new window www.squadronefly.it Drone utilizzati nell\u0026rsquo;agricoltura digitale Robotica: i robot vengono utilizzati per svolgere compiti ripetitivi o pericolosi, come la raccolta delle colture o la distribuzione dei fertilizzanti. Robotica utilizzata nell\u0026rsquo;agricoltura digitaleOpens in a new window makerfairerome.eu Robotica utilizzata nell\u0026rsquo;agricoltura digitale Big data: l\u0026rsquo;analisi dei big data può aiutare gli agricoltori a prendere decisioni più informate, basate sulle informazioni raccolte dai sensori e dagli altri dispositivi digitali. Big data utilizzati nell\u0026rsquo;agricoltura digitaleOpens in a new window www.formart.it Big data utilizzati nell\u0026rsquo;agricoltura digitale Il futuro dell\u0026rsquo;agricoltura digitale\nL\u0026rsquo;agricoltura digitale è ancora una tecnologia emergente, ma sta rapidamente guadagnando slancio. Si stima che il mercato globale dell\u0026rsquo;agricoltura digitale raggiungerà i 250 miliardi di dollari entro il 2025.\nL\u0026rsquo;agricoltura digitale ha il potenziale per rivoluzionare il settore agricolo, rendendolo più produttivo, sostenibile e trasparente.\nArchitettura di un sistema di agricoltura sostenibile L\u0026rsquo;architettura di un sistema di agricoltura sostenibile è costituita da una serie di componenti che lavorano insieme per fornire un\u0026rsquo;agricoltura che sia produttiva, sostenibile e resiliente. Questi componenti includono:\nSensori: i sensori vengono utilizzati per raccogliere dati sulle condizioni delle colture e del terreno, come temperatura, umidità, pH e livelli di nutrienti. Questi dati possono essere utilizzati per monitorare la salute delle colture e identificare potenziali problemi. Sensori utilizzati nell\u0026rsquo;agricoltura sostenibileOpens in a new window www.media.enea.it Sensori utilizzati nell\u0026rsquo;agricoltura sostenibile Droni: i droni vengono utilizzati per acquisire immagini e video delle colture, che possono essere poi utilizzati per analizzare le condizioni delle piante e identificare problemi. I droni possono anche essere utilizzati per distribuire fertilizzanti, pesticidi e altri prodotti agricoli in modo più efficiente. Droni utilizzati nell\u0026rsquo;agricoltura sostenibileOpens in a new window blog.biotravel.it Droni utilizzati nell\u0026rsquo;agricoltura sostenibile Robotica: i robot vengono utilizzati per svolgere compiti ripetitivi o pericolosi, come la raccolta delle colture o la distribuzione dei fertilizzanti. I robot possono aiutare a ridurre la fatica degli agricoltori e migliorare l\u0026rsquo;efficienza della produzione agricola. Robotica utilizzata nell\u0026rsquo;agricoltura sostenibileOpens in a new window www.argologica.com Robotica utilizzata nell\u0026rsquo;agricoltura sostenibile Big data: l\u0026rsquo;analisi dei big data può aiutare gli agricoltori a prendere decisioni più informate, basate sulle informazioni raccolte dai sensori e dagli altri dispositivi digitali. L\u0026rsquo;analisi dei big data può essere utilizzata per ottimizzare l\u0026rsquo;utilizzo delle risorse, ridurre gli sprechi e migliorare la resa delle colture. Big data utilizzati nell\u0026rsquo;agricoltura sostenibileOpens in a new window www.meccanicanews.com Big data utilizzati nell\u0026rsquo;agricoltura sostenibile Intelligenza artificiale (AI): l\u0026rsquo;intelligenza artificiale (AI) può essere utilizzata per automatizzare le attività agricole, migliorare la precisione delle decisioni e sviluppare nuove tecnologie agricole. L\u0026rsquo;AI ha il potenziale per trasformare il settore agricolo, rendendolo più efficiente, sostenibile e resiliente. Intelligenza artificiale (AI) utilizzata nell\u0026rsquo;agricoltura sostenibileOpens in a new window resoilfoundation.org Intelligenza artificiale (AI) utilizzata nell\u0026rsquo;agricoltura sostenibile Questi componenti possono essere combinati in diversi modi per creare sistemi di agricoltura sostenibile. Un approccio comune è quello di utilizzare un sistema integrato che combina sensori, droni, robot, big data e AI. Questo approccio consente agli agricoltori di raccogliere dati in tempo reale sulle condizioni delle colture e del terreno, e di utilizzare questi dati per prendere decisioni informate su come gestire la loro attività.\nUn altro approccio è quello di utilizzare un sistema modulare che consente agli agricoltori di scegliere i componenti che meglio si adattano alle loro esigenze. Questo approccio può essere utile per gli agricoltori di piccole dimensioni o per gli agricoltori che desiderano sperimentare nuove tecnologie.\nIndipendentemente dall\u0026rsquo;approccio scelto, l\u0026rsquo;architettura di un sistema di agricoltura sostenibile deve essere progettata per soddisfare le esigenze specifiche dell\u0026rsquo;azienda agricola. I fattori da considerare includono la dimensione dell\u0026rsquo;azienda agricola, il tipo di colture coltivate, le condizioni climatiche e le risorse disponibili.\nEcco alcuni esempi specifici di come i componenti dell\u0026rsquo;architettura di un sistema di agricoltura sostenibile possono essere utilizzati per migliorare la sostenibilità dell\u0026rsquo;agricoltura:\n**I sensori possono essere utilizzati per monitorare l\u0026rsquo;utilizzo dell\u0026rsquo;acqua e dei fertilizzanti. Ciò può aiutare gli agricoltori a ridurre lo spreco di risorse e migliorare l\u0026rsquo;efficienza della produzione agricola. **I droni possono essere utilizzati per distribuire fertilizzanti e pesticidi in modo più mirato. Ciò può aiutare a ridurre l\u0026rsquo;inquinamento e migliorare la salute delle colture. **I robot possono essere utilizzati per automatizzare le attività agricole, come la raccolta delle colture e la semina. Ciò può aiutare a ridurre la fatica degli agricoltori e migliorare la sicurezza sul lavoro. **L\u0026rsquo;analisi dei big data può essere utilizzata per ottimizzare l\u0026rsquo;uso delle risorse, ridurre gli sprechi e migliorare la resa delle colture. **L\u0026rsquo;intelligenza artificiale può essere utilizzata per automatizzare le attività agricole, migliorare la precisione delle decisioni e sviluppare nuove tecnologie agricole. L\u0026rsquo;applicazione di questi componenti può aiutare gli agricoltori a ridurre l\u0026rsquo;impatto ambientale della loro attività, migliorare la produttività e garantire la sostenibilità a lungo termine dell\u0026rsquo;agricoltura.\nEsempi di sistemi di agricoltura sostenibile basati sull\u0026rsquo;ESP32 L\u0026rsquo;ESP32 è un microcontroller economico e versatile che può essere utilizzato per una varietà di applicazioni, tra cui l\u0026rsquo;agricoltura sostenibile. Esistono numerosi esempi di sistemi di agricoltura sostenibile basati sull\u0026rsquo;ESP32 che stanno già dimostrando il loro potenziale per migliorare la produttività, ridurre l\u0026rsquo;impatto ambientale e rendere l\u0026rsquo;agricoltura più sostenibile.\nMonitoraggio delle colture\nUn\u0026rsquo;applicazione comune dell\u0026rsquo;ESP32 in agricoltura è il monitoraggio delle colture. I sensori possono essere utilizzati per raccogliere dati sulle condizioni delle colture e del terreno, come temperatura, umidità, pH e livelli di nutrienti. Questi dati possono essere utilizzati per monitorare la salute delle colture e identificare potenziali problemi.\nAd esempio, un sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per monitorare l\u0026rsquo;umidità del terreno delle colture. I sensori di umidità possono essere installati nel terreno e possono essere collegati all\u0026rsquo;ESP32 tramite un bus I2C o SPI. L\u0026rsquo;ESP32 può quindi utilizzare questi dati per controllare un irrigatore. Se l\u0026rsquo;umidità del terreno scende al di sotto di un certo livello, l\u0026rsquo;ESP32 può attivare l\u0026rsquo;irrigatore per innaffiare le colture.\nIrrigazione a goccia\nUn\u0026rsquo;altra applicazione dell\u0026rsquo;ESP32 in agricoltura è l\u0026rsquo;irrigazione a goccia. L\u0026rsquo;irrigazione a goccia è un metodo di irrigazione efficiente che fornisce acqua direttamente alle radici delle colture. Questo metodo può aiutare a ridurre lo spreco di acqua e migliorare l\u0026rsquo;efficienza dell\u0026rsquo;irrigazione.\nUn sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare un sistema di irrigazione a goccia. L\u0026rsquo;ESP32 può utilizzare i dati dei sensori per determinare quando e quanto acqua deve essere fornita alle colture. Ad esempio, l\u0026rsquo;ESP32 può utilizzare i dati di temperatura e umidità per determinare la frequenza con cui le colture devono essere irrigate.\nPest control\nI droni possono essere utilizzati per distribuire pesticidi e altri prodotti fitosanitari in modo più mirato. Ciò può aiutare a ridurre l\u0026rsquo;inquinamento e migliorare la salute delle colture.\nUn sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare un drone per l\u0026rsquo;applicazione di pesticidi. L\u0026rsquo;ESP32 può utilizzare i dati dei sensori per identificare le aree che necessitano di trattamento. Ad esempio, l\u0026rsquo;ESP32 può utilizzare i dati di immagini per identificare le aree in cui le colture sono infestate da parassiti.\nRaccolta delle colture\nI robot possono essere utilizzati per automatizzare le attività agricole, come la raccolta delle colture. Ciò può aiutare a ridurre la fatica degli agricoltori e migliorare la sicurezza sul lavoro.\nUn sistema basato sull\u0026rsquo;ESP32 può essere utilizzato per controllare un robot per la raccolta delle colture. L\u0026rsquo;ESP32 può utilizzare i dati dei sensori per guidare il robot e raccogliere le colture. Ad esempio, l\u0026rsquo;ESP32 può utilizzare i dati di visione artificiale per identificare le colture mature da raccogliere.\nConclusione\nL\u0026rsquo;ESP32 è una piattaforma potente che può essere utilizzata per creare una varietà di sistemi di agricoltura sostenibile. Esistono numerosi esempi di sistemi basati sull\u0026rsquo;ESP32 che stanno già dimostrando il loro potenziale per migliorare la produttività, ridurre l\u0026rsquo;impatto ambientale e rendere l\u0026rsquo;agricoltura più sostenibile.\nAlcuni altri esempi di sistemi di agricoltura sostenibile basati sull\u0026rsquo;ESP32 includono:\nSistemi di controllo dell\u0026rsquo;illuminazione: questi sistemi possono essere utilizzati per controllare l\u0026rsquo;illuminazione delle serre in modo da ottimizzare la crescita delle colture. Sistema di controllo dell\u0026rsquo;illuminazione basato sull\u0026rsquo;ESP32Opens in a new window www.ziotester.it Sistema di controllo dell\u0026rsquo;illuminazione basato sull\u0026rsquo;ESP32 Sistemi di monitoraggio del clima: questi sistemi possono essere utilizzati per raccogliere dati sul clima, come temperatura, umidità e luce solare. Questi dati possono essere utilizzati per prendere decisioni informate sulla gestione dell\u0026rsquo;azienda agricola. Sistema di monitoraggio del clima basato sull\u0026rsquo;ESP32Opens in a new window it.emcelettronica.com Sistema di monitoraggio del clima basato sull\u0026rsquo;ESP32 Sistemi di tracciabilità delle colture: questi sistemi possono essere utilizzati per tracciare la provenienza delle colture. Ciò può aiutare a garantire la trasparenza e la sicurezza delle catene di approvvigionamento alimentari. Sistema di tracciabilità delle colture basato sull\u0026rsquo;ESP32Opens in a new window www.meccanicanews.com Sistema di tracciabilità delle colture basato sull\u0026rsquo;ESP32 L\u0026rsquo;agricoltura sostenibile è un settore in rapida crescita e l\u0026rsquo;ESP32 ha il potenziale per svolgere un ruolo importante in questo settore.\nRobotdazero.it - post - R.124.0.80.0\n","permalink":"https://www.robotdazero.it/blog/come-usare-lesp32-per-lo-sviluppo-sostenibile-e-lambiente/","summary":"\u003ch2 id=\"introduzione-allo-sviluppo-sostenibile-e-allambiente\"\u003eIntroduzione allo sviluppo sostenibile e all\u0026rsquo;ambiente\u003c/h2\u003e\n\u003cp\u003eLo \u0026ldquo;Sviluppo Sostenibile\u0026rdquo; è un modello di sviluppo economico e sociale che mira a soddisfare i bisogni delle generazioni attuali senza compromettere la capacità delle generazioni future di soddisfare i propri bisogni. Lo sviluppo sostenibile si basa su tre pilastri fondamentali:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eSostenibilità ambientale\u003c/strong\u003e: Lo sviluppo sostenibile deve essere rispettoso dell\u0026rsquo;ambiente e deve preservare le risorse naturali per le generazioni future.\n\u003cstrong\u003eSostenibilità economica\u003c/strong\u003e: Lo sviluppo sostenibile deve essere sostenibile dal punto di vista economico e deve garantire la crescita e la prosperità economica.\n\u003cstrong\u003eSostenibilità sociale\u003c/strong\u003e: Lo sviluppo sostenibile deve essere sostenibile dal punto di vista sociale e deve garantire la giustizia sociale e la parità di opportunità per tutti.\u003c/p\u003e","title":"Come usare l'ESP32 per lo sviluppo sostenibile e l'ambiente"},{"content":" Cosa sono i sensori di sensori di anidride carbonica? Un sensore di anidride carbonica (CO2) è un dispositivo utilizzato per misurare la quantità di anidride carbonica nell’aria. La percentuale di gas viene misurata in parti per milione (ppm) e normalmente ha un valore di circa 400 ppm. L’anidride carbonica è un gas inodore e incolore e da qualche tempo viene considerato uno dei gas serra che influenzano il clima del pianeta. La CO2 assieme agli ossidi di azoto e al metano, crea un cappa ai limiti della atmosfera e riesce a trattenere il calore della Terra. Le temperature di conseguenza aumentano in modo anomalo con effetti collegati come l’aumento dei livelli oceanici e disturbi nella coltivazione del del suolo.\nMisurare la presenza di CO2 è di grande importanza nel controllo dei processi di combustione industriale, nel controllo della qualità dell’aria indoor, nella previsione delle malattie polonarie in decine di task o applicazioni minori come la qualità deli prodotti agricoli, farmaceutici, della conservazione e nella produzione di bevande alcoliche. Viene misurato in genere con sensori non dispersive infrared (NDIR) o con tecnologie elettro-chimiche.\nI sensori non dispersive infrared (NDIR) I sensori non dispersive infrared (NDIR) sono dispositivi utilizzati per rilevare la presenza di determinati gas nell’aria, come ad esempio anidride carbonica (CO2), monossido di carbonio (CO) e metano (CH4).\nQuesti sensori utilizzano una sorgente di luce infrarossa che emette un raggio di luce attraverso un filtro selettivo, progettato per lasciare passare solo la lunghezza d’onda specifica della banda di assorbimento del gas target. Se il gas target è presente nell’area in cui il sensore è stato installato, assorbe l’energia della luce e ne riduce l’intensità. La quantità di gas viene quindi misurata in base alla quantità di luce infrarossa assorbita.\nI sensori NDIR sono noti per la loro elevata precisione e stabilità a lungo termine, nonché per la loro capacità di misurare gas anche a basse concentrazioni. Sono ampiamente utilizzati in applicazioni industriali e commerciali, come la sorveglianza della qualità dell’aria in edifici e la rilevazione di fughe di gas nelle fabbriche e nelle centrali elettriche. I sensori NDIR sono rapidamente diventati la soluzione più comune per misurare la concentrazione di CO2 con un impressionante range di valori, fino a quasi il 100% di volume atmosferico.\nCome viene prodotta la CO2? Viene prodotta durante il respiro, la combustione e i processi di decadimento naturale. La mole della CO2 presente nella atmosfera dipende dunque sia dai processi endogeni di animali e piante che dalla somma delle attività umane nei locali indoor.\nLa produzione di anidride carbonica (CO2) come sottoprodotto del metabolismo animale è un processo endogeno che avviene attraverso la respirazione cellulare. Quando le cellule degli organismi viventi metabolizzano i nutrienti (come carboidrati, grassi e proteine) per produrre energia, la CO2 viene prodotta come un prodotto di scarto del processo.\nNel corpo umano, l’ossigeno viene respirato attraverso i polmoni e trasportato ai tessuti attraverso la circolazione del sangue. Quando l’ossigeno viene utilizzato dalle cellule per produrre energia, viene prodotta CO2, che viene quindi trasportata attraverso la circolazione del sangue fino ai polmoni e successivamente eliminata dall’organismo attraverso la respirazione.\nIn altre parole, la CO2 è un prodotto di scarto del processo metabolico endogeno e la sua produzione è una conseguenza naturale del funzionamento del corpo umano e di altri animali.\nCome funzionano i sensori di anidride carbonica? Il tipo più diffuso. l’ NDIR è formato da una sorgente di infrarosso, una sorgente luminosa, da un filtro passabanda e da un rilevatore elettronico. Il gas da controllare viene isolato cambiando la lunghezza d’onda del filtro elettronico. Nella CO2 in particolare si usa la lungezza d’onda di 4.26 µm. Questa lunghezza d’onda specifica non viene assorbita da tutti gli altri gas che si possono trovare nel vapore acqueo .Il sistema più comune è il NDIR, una classe di sensori che blocca scherma la ritenzione della luce infrarossa ad una particolare frequenza (4,3 µm), una frequenza alla quale la CO2 ha grandi aree di forza eccezionalmente. Se la luce infrarossa viene consumata, la CO2 è disponibile, mentre la non ritenzione mostra un’assenza di CO2. Più luce infrarossa viene consumata, maggiore è il raggruppamento di CO2.\nLa spettroscopia fotoacustica sottopone un esempio a battiti di energia elettromagnetica che è sintonizzata esplicitamente sulla frequenza di ingestione di CO2. Con ogni battito cardiaco di energia, gli atomi di CO2 all’interno dell’esempio trattengono e creano onde di pressione attraverso l’impatto fotoacustico. Queste onde di tensione vengono quindi riconosciute con un identificatore acustico e commutate completamente in una CO2 utilizzabile sfogliando un PC o un chip. I sensori elettrochimici di anidride carbonica misurano il flusso elettrico per decidere la quantità di CO2 disponibile nell’aria. Nel punto in cui la CO2 entra nel sensore, risponde sinteticamente all’interno di una superficie polimerica, provocando una carica elettrica. Il tipo e la misura della carica elettrica vengono quindi utilizzati per decidere la quantità di CO2 disponibile. I sensori NDIR CO2 hanno vantaggi di esecuzione rispetto ad altri progressi di scoperta a causa della solidità a lungo raggio, dell’esattezza e del basso utilizzo di energia per la stima della CO2.\nPer quale motivo i livelli di CO2 sono importanti? In ambienti chiusi, come ad esempio in stanze o locali senza adeguata ventilazione, la concentrazione di CO2 può aumentare rapidamente, causando sintomi come mal di testa, vertigini, affaticamento, difficoltà di concentrazione e aumento della frequenza respiratoria. In caso di concentrazioni estreme, la CO2 può anche causare perdita di coscienza.\nLa CO2 può anche rappresentare un rischio in ambienti di lavoro come fabbriche, cave, miniere e cantieri, dove può accumularsi in pozzi, gallerie e cunicoli. In questi casi, sono necessarie misure di sicurezza per monitorare e controllare la concentrazione di CO2, al fine di proteggere i lavoratori.\nInoltre, l’eccessiva emissione di CO2 nell’atmosfera rappresenta un grave problema ambientale, in quanto contribuisce al cambiamento climatico e all’acidificazione degli oceani. Per questo motivo, è importante ridurre le emissioni di CO2 attraverso pratiche sostenibili come l’uso di energie rinnovabili e la riduzione del consumo energetico.\nAlti livelli di CO2 anche per un periodo limitato hanno efffetti avversi sulla salute degli individui:\nInoltre un esame sperimentale condotto in ambiente chiuso dimostra che bassi livelli di CO2 e una ventilazione efficace possono migliorare del 60% le prestazioni degli operatori.\nDopo un esteso screening del COVID19, è stato dimostrato che esiste una relazione tra la percentuale di CO2 e la trasmissione di virus come il Coronavirus o la normale influenza. Controllando il livello di CO2 nei luoghi chiusi si possono valutare con buona approssimazione i rischi di trasmissione virale per via aerea. In generale la esposizione prolungata alla CO2 ha sempre conseguenze serie per il benessere dell’organismo.\nI nuovi sensori di anidride carbonica proposti da Robotdazero Le nostre centraline per la CO2 utilizzano l’innovativo sistema NDIR. Il sensore può misurare attendibilmente percentuali di CO2 nell’intervallo da 1 e 5000 ppm con una precisione di ± 45 ppm. Noi lo offriamo nella centralina HW204. In questo dispositivo il sensore principale è stato accoppiato as un sensore di temperatura, un sensore di umidità ed un sensore di pressione barometrica per fornire un quadro consistente delle condizioni ambientali all’interno di spazi chiusi. Di seguito i dati rilevanti della centraline HW204.\nCentralina di controllo Robotdazero HW204: Range di controllo della anidride carbonica: 1 ~ 5000 m PPM Range di misurazione della temperatura: -20 ~ +45 gradi centrigradi (Celsius) Durata della batteria di 2 anni (utilizzando un accumulatore 16850) Cloud Connector per trasferire in modo sicuro (usa il protocollo https) le informazioni I vantaggi dell’utilizzo di un sensore di CO2 Raccogliendo ed esaminando le informazioni controllate dai sensori di CO2, le organizzazioni possono riconoscere rapidamente ed efficacemente lo sviluppo previsto di CO2 nei loro luoghi di lavoro e negli spazi interni.\nUnendo i sensori con ventilazione controllata a richiesta (DCV), un’organizzazione vorrà dirigere naturalmente il flusso di vento all’interno del luogo di lavoro per rispondere ai focus di CO2 in un momento casuale. Questo dà entrambi un posto di lavoro superiore ma inoltre consente di risparmiare energia come le strutture di ventilazione possono funzionare quando richiesto.\nPer riassumere: l’anidride carbonica è un gas potenzialmente pericoloso quando è presente in percentuali elevate. La sua misurazione e scoperta precoce con dei sensori efficaci basati su Arduino, Esp32 e IOT in genere permette di rispondere rapidamente livelli di protezione consistenti prima si manifestino danni a livello fisiologico.\nRobotdazero.it - post - R.175.3.5.0\n","permalink":"https://www.robotdazero.it/blog/i-nostri-sensori-di-anidride-carbonica/","summary":"\u003cstyle\u003e\n.x {\n    transition:transform 0.60s ease;\n}\n\n.x:hover {\n    -webkit-transform:scale(1.50); /* or some other value */\n    transform:scale(1.50);\n}\n\u003c/style\u003e\n\u003ch3 id=\"cosa-sono-i-sensori-di-sensori-di-anidride-carbonica\"\u003eCosa sono i sensori di sensori di anidride carbonica?\u003c/h3\u003e\n\u003cp\u003eUn sensore di anidride carbonica (CO2) è un dispositivo utilizzato per misurare la quantità di anidride carbonica nell’aria. La percentuale di gas viene misurata in parti per milione (ppm) e normalmente ha un valore di circa 400 ppm. L’anidride carbonica è un gas inodore e incolore  e da qualche tempo viene considerato uno dei gas serra che influenzano il clima del pianeta. La CO2 assieme agli ossidi di azoto e al metano, crea un cappa ai limiti della atmosfera e riesce a trattenere il calore della Terra. Le temperature di conseguenza aumentano in modo anomalo con effetti collegati come l’aumento dei livelli oceanici e disturbi nella coltivazione del del suolo.\u003c/p\u003e","title":"I nostri sensori di anidride carbonica"},{"content":" Come usare Arduino per una applicazione divertente e semplice da capire, ma con alcuni spunti interessanti per approfondire la gestione delle stringhe e dei caratteri con il C++. COS’È IL CODICE MORSE Il codice Morse è un tipo di comunicazione in uso da molto tempo. È stato ampiamente utilizzato per oltre un secolo e ha offerto un modo economico per collegare zone, strutture di trasmissione terrestri e ponti radio.\nOggi l’uso del codice Morse è assai diminuito rispetto a 50 anni orsono, ma molti gruppi di radioamatori lo usano ancora per trasmettere messaggi con apparati economici e magari inadatti al traffico vocale.\nInoltre, amministrazioni pubbliche e associazioni possono scegliere il Morse come risorsa estrema per comunicare verso zone remote, prive di telefono o di energia elettrica. Le navi tuttora possono usare il codice Morse per lanciare allarmi, il famoso SOS. PROGRAMMA PER IL LETTORE DI CODICE MORSE La parte hardware del progettino è molto semplice e per questo motivo preferiamo partire analizzando il sorgente scritto in Arduino C++.\n/* THE SOFTWARE IS PROVIDED \u0026#34;AS IS\u0026#34;, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ int ledPin = 13; char* letters[] = { “.-”, “-…”, “-.-.”, “-..”, “.”, “..-.”, “–.”, “….”, “..”, “.—”, “-.-”, “.-..”, “–”, “-.”, “—”, “.–.”, “–.-”, “.-.”, “…”, “-”, “..-”, “…-”, “.–”, “-..-”, “-.–”, “–..” }; // A-I // J-R // S-Z char* numbers[] = { “—–”, “.—-”, “..—”, “…–”, “….-”, “…..”, “-….”, “–…”, “—..”, “—-.” }; int dotDelay = 200; void setup() { pinMode(ledPin, OUTPUT); Serial.begin(9600); } void loop() { char ch; if (Serial.available()) { ch = Serial.read(); // read a single letter if (ch \u0026gt;= ‘a’ \u0026amp;\u0026amp; ch \u0026lt;= ‘z’) { flashSequence(letters[ch - ‘a’]); } else if (ch \u0026gt;= ‘A’ \u0026amp;\u0026amp; ch \u0026lt;= ‘Z’) { flashSequence(letters[ch - ‘A’]); } else if (ch \u0026gt;= ‘0’ \u0026amp;\u0026amp; ch \u0026lt;= ‘9’) { flashSequence(numbers[ch - ‘0’]); } else if (ch == ‘ ‘) { delay(dotDelay * 4); // gap between words } } } void flashSequence(char* sequence) { int i = 0; while (sequence[i] != NULL) { flashDotOrDash(sequence[i]); i++; } delay(dotDelay * 3); } void flashDotOrDash(char dotOrDash) { digitalWrite(ledPin, HIGH); if (dotOrDash == ‘.’) { delay(dotDelay); } else // must be a - { delay(dotDelay * 3); } digitalWrite(ledPin, LOW); delay(dotDelay); } COME FUNZIONA IL PROGRAMMA Nel loop, controlleremo costantemente se ci sono state inviate delle lettere attraverso il cavo USB. Il flag di Arduino Serial.available() sarà attivata quando arriva un carattere da trasformare in Morse e la funzione Serial.read() ci darà quel carattere e noi lo assegniamo ad una variabile “ch”, che useremo dentro il loop(). A questo punto troviamo delle istruzioni if in sequenza che leggono il carattere e stabiliscono se è una lettera maiuscola, minuscola o uno spazio tra due parole.\nNel primo if cerchiamo di capire se il carattere è compreso tra “a” e “z”. In questo caso, possiamo usare la sequenza di punti e linee all’inizio del programma. Otteniamo la sequenza esatta sottraendo il valore ASCII di “a” da quello del carattere da cambiare. Nel C++ di Arduino possiamo farlo senza problemi perche internamente la rappresentazione di una lettera corrisponde al suo codice numerico.\nLa stringa trovata viene passata ad una funzione chiamata flashSequence(). La funzione flashSequence cercherà su ogni pezzo del raggruppamento e lo tradurrà in linea o punto.\nLe stringhe in C hanno tutte un codice extra alla fine che indice la fine della sequenza e viene indicato con il termine NULL.\nIl loop while continua fino a quando non arriviamo al NULL. La funzione flashDotOrDash() accende il LED e simula un punto o una linea cambiando la lunghezza del segnale. In caso di linea triplica la lunghezza rispetto al punto.\nASSEMBLAGGIO Così dovrebbe apparire il montaggio reale:\nI COMPONENTI NECESSARI: Arduino Uno R3 LED D1 5mm Rosso R1 270 Ω 0.25W Breadboard mini Batteria standard 9v Plug per batteria 9v compatibile con Arduino Per la alimentazione possiamo usare una normalissima batteria da 9 volt reperibile praticamente dovunque, non serve neppure che sia alcalina o ricaricabile visto il bassissimo consumo del LED.\nIL COLLAUDO FINALE Carica lo scketch facendo poi la compilazione / upload. una volta che il programma è stato caricato su Arduino possiamo usare il Monitor Seriale dove possiamo digitare delle stringhe da mandare ad Arduino. Sempre nel Mnitor Seriale possiamo ricevere le risposte della scheda ai nostri comandi nella sezione superiore.\nIn alto, c’è un campo in cui è possibile comporre una riga di testo che verrà inviata ad Arduino quando si fa clic su Invia o si preme INVIO. Sotto c’è una zone in cui saranno mostrati tutti i messaggi provenienti dalla scheda Arduino. Direttamente nella parte inferiore della finestra è presente un elenco a discesa in cui è possibile scegliere la velocità di invio delle informazioni. Qualunque cosa selezioni qui dovrebbe coordinare la velocità di trasmissione che indichi nel messaggio di avvio del tuo contenuto. Utilizziamo 9600, che è l’impostazione predefinita, quindi non ci sono ragioni valide per trasformare qualcosa qui.\nQuindi, dovremmo semplicemente inviare il monitor seriale e digitare alcuni contenuti nel campo Invia e premere INVIO. In questo modo dovremmo ottenere il nostro messaggio in codice Morse.\n","permalink":"https://www.robotdazero.it/blog/tradurre-il-codice-morse-con-arduino/","summary":"\u003chr\u003e\n\u003ch5 id=\"come-usare-arduino-per-una-applicazione-divertente-e-semplice-da-capire-ma-con-alcuni-spunti-interessanti-per-approfondire-la-gestione-delle-stringhe-e-dei-caratteri-con-il-c\"\u003eCome usare Arduino per una applicazione divertente e semplice da capire, ma con alcuni spunti interessanti per approfondire la gestione delle stringhe e dei caratteri con il C++.\u003c/h5\u003e\n\u003ch4 id=\"cosè-il-codice-morse\"\u003eCOS’È IL CODICE MORSE\u003c/h4\u003e\n\u003cp\u003eIl codice Morse è un tipo di comunicazione in uso da molto tempo.\nÈ stato ampiamente utilizzato per oltre un secolo e ha offerto un modo economico per collegare zone, strutture di trasmissione terrestri e ponti radio.\u003c/p\u003e\n\u003cp\u003eOggi l’uso del codice Morse è assai diminuito rispetto a 50 anni orsono, ma molti gruppi di radioamatori lo usano ancora per trasmettere messaggi con apparati economici e magari inadatti al traffico vocale.\u003c/p\u003e","title":"Tradurre il codice Morse con Arduino"},{"content":"Un articolo uscito su Instructables.com ci permette di scoprire il potente Raspberry PI. Scoprirai come collegarlo ad Arduino in un articolo dettagliatissimo e con istruzioni passo passo.\nUn interessante emulatore di Commodore 64 non solo per i nostalgici degli anni 80 In questo interessante progetto un Raspberry Pi viene utilizzato come CPU assieme ad Arduino, usato solo per le connessioni hardware e la interfaccia USB.\nIl Raspberry Pi dispone di maggiore potenza elaborativa rispetto ad Arduino ed è in grado di far girare molte piattaforme di emulazione compresa quello utilizzata nel progetto e chiamata Retropie.\nIl telaio del Commodore 64 viene completamente svuotato e la vecchia scheda madre sostituita con l’accoppiata Pi + Arduino.\nL’autore del progetto su Instructables, la bibbia dell’autocostruzione consiglia di utilizzare un Raspberry Pi 3B, con Arduino che traduce la tastiera a matrice Commodore 64 in una tastiera compatibile con la interfaccia USB HID usata dal Pi. Questo il link dell’articolo.\n","permalink":"https://www.robotdazero.it/blog/come-usare-arduino-per-far-rinascere-il-commodore-64/","summary":"\u003cp\u003eUn articolo uscito su Instructables.com ci permette di scoprire il potente Raspberry PI. Scoprirai come collegarlo ad Arduino in un articolo dettagliatissimo e con istruzioni passo passo.\u003c/p\u003e\n\u003cp\u003e \u003c/p\u003e\n\u003ch2 id=\"un-interessante-emulatore-di-commodore-64-non-solo-per-i-nostalgici-degli-anni-80\"\u003eUn interessante emulatore di Commodore 64 non solo per i nostalgici degli anni 80\u003c/h2\u003e\n\u003chr\u003e\n\u003cp\u003eIn questo interessante progetto un Raspberry Pi viene utilizzato come CPU assieme ad Arduino, usato solo per le connessioni hardware e la interfaccia USB.\u003c/p\u003e\n\u003cp\u003eIl Raspberry Pi dispone di maggiore potenza elaborativa rispetto ad Arduino ed è in grado di far girare molte piattaforme di emulazione compresa quello utilizzata nel progetto e chiamata \u003ca href=\"https://www.raspberrypi.org/blog/retropie-for-raspberry-pi-4-video-game-emulation-on-our-fastest-ever-device/\"\u003eRetropie\u003c/a\u003e.\u003c/p\u003e","title":"Come usare Arduino per far rinascere il Commodore 64"},{"content":"r.103.1.0\nI droni commerciali con algoritmi di machine learning hanno il potenziale per rivoluzionare molti settori, tra cui l\u0026rsquo;agricoltura, l\u0026rsquo;edilizia, la sicurezza e la logistica.\nNell\u0026rsquo;agricoltura, i droni possono essere utilizzati per monitorare le colture per rilevare malattie e parassiti, e per applicare fertilizzanti e pesticidi in modo mirato. Questo può aiutare gli agricoltori a migliorare i raccolti e ad ridurre i costi.\nNell\u0026rsquo;edilizia, i droni possono essere utilizzati per ispezionare le strutture per rilevare difetti, e per eseguire misurazioni e rilievi. Questo può aiutare gli appaltatori a ridurre i tempi e i costi delle costruzioni.\nNel settore della sicurezza, i droni possono essere utilizzati per sorvegliare aree sensibili, come aeroporti, impianti nucleari e grandi eventi. Possono anche essere utilizzati per ricercare e salvare persone in pericolo.\nNel settore della logistica, i droni possono essere utilizzati per consegnare merci in aree remote o congestionate. Possono anche essere utilizzati per trasportare campioni di laboratorio e altri beni delicati.\nQuesti sono solo alcuni esempi del potenziale dei droni commerciali con algoritmi di machine learning. Man mano che la tecnologia continua a svilupparsi, è probabile che vedremo ancora più applicazioni per questi droni nei prossimi anni.\nEcco alcuni dei vantaggi dell\u0026rsquo;utilizzo dei droni commerciali con algoritmi di machine learning:\nMaggiore efficienza: i droni possono eseguire compiti in modo più rapido ed efficiente rispetto agli umani. Maggiore precisione: i droni possono raccogliere dati con maggiore precisione rispetto agli umani. Maggiore sicurezza: i droni possono essere utilizzati in aree pericolose per gli umani. Maggiore flessibilità: i droni possono essere utilizzati in un'ampia gamma di applicazioni. Tuttavia, ci sono anche alcune sfide che devono essere affrontate prima che i droni commerciali con algoritmi di machine learning possano diventare ampiamente utilizzati. Queste sfide includono:\nRegolamentazione: la regolamentazione dei droni commerciali varia da paese a paese. Costo: i droni commerciali possono essere costosi da acquistare e da operare. Sicurezza: i droni possono rappresentare un rischio per la sicurezza se non vengono utilizzati correttamente. Privacy: i droni possono essere utilizzati per raccogliere dati personali sulle persone senza il loro consenso. Nonostante queste sfide, il futuro dei droni commerciali con algoritmi di machine learning è promettente. Man mano che la tecnologia continua a svilupparsi e le sfide vengono affrontate, è probabile che vedremo ancora più applicazioni per questi droni nei prossimi anni.\n","permalink":"https://www.robotdazero.it/blog/quale-sara-il-futuro-dei-droni-commerciali/","summary":"\u003cp style=\"font-size: 12px\"\u003er.103.1.0\u003c/p\u003e\n\u003cp\u003eI droni commerciali con algoritmi di machine learning hanno il potenziale per rivoluzionare molti settori, tra cui l\u0026rsquo;agricoltura, l\u0026rsquo;edilizia, la sicurezza e la logistica.\u003c/p\u003e\n\u003cp\u003eNell\u0026rsquo;agricoltura, i droni possono essere utilizzati per monitorare le colture per rilevare malattie e parassiti, e per applicare fertilizzanti e pesticidi in modo mirato. Questo può aiutare gli agricoltori a migliorare i raccolti e ad ridurre i costi.\u003c/p\u003e\n\u003cp\u003eNell\u0026rsquo;edilizia, i droni possono essere utilizzati per ispezionare le strutture per rilevare difetti, e per eseguire misurazioni e rilievi. Questo può aiutare gli appaltatori a ridurre i tempi e i costi delle costruzioni.\u003c/p\u003e","title":"Quale sarà il futuro dei droni commerciali?"},{"content":"r.102.1.0\nLA ROBOTICA È UN CAMPO IN RAPIDA EVOLUZIONE CON IL POTENZIALE PER RIVOLUZIONARE IL MODO IN CUI LAVORIAMO. ECCO ALCUNI DEI PROSSIMI SVILUPPI DELLA ROBOTICA IN AMBITO COMMERCIALE: Robot più autonomi: i robot stanno diventando sempre più autonomi, il che significa che possono svolgere compiti senza la necessità di un intervento umano. Ciò consente loro di eseguire attività pericolose o ripetitive, liberando gli esseri umani per concentrarsi su attività più creative o strategiche. Robot più intelligenti: i robot stanno diventando anche più intelligenti, il che significa che possono imparare e adattarsi al loro ambiente. Ciò consente loro di svolgere compiti più complessi e di interagire con gli esseri umani in modo più naturale. Robot più economici: i costi dei robot stanno diminuendo, il che li rende più accessibili alle aziende di tutte le dimensioni. Ciò sta portando a un aumento dell\u0026rsquo;adozione dei robot da parte delle aziende di tutti i settori. Robot più versatili: i robot stanno diventando più versatili, il che significa che possono essere utilizzati per svolgere una varietà di compiti. Ciò consente alle aziende di utilizzare i robot per automatizzare una serie di attività, il che può portare a un aumento dell\u0026rsquo;efficienza e della produttività. Questi sono solo alcuni dei prossimi sviluppi della robotica in ambito commerciale. La robotica è una tecnologia potente che ha il potenziale per trasformare il modo in cui lavoriamo. Man mano che la robotica continua a svilupparsi, è probabile che avrà un impatto ancora maggiore sulla nostra economia e sulla nostra società.\n","permalink":"https://www.robotdazero.it/blog/quali-saranno-i-prossimi-sviluppi-della-robotica-in-ambito-commerciale/","summary":"\u003cp style=\"font-size: 12px\"\u003er.102.1.0\u003c/p\u003e\n\u003ch3 id=\"la-robotica-è-un-campo-in-rapida-evoluzione-con-il-potenziale-per-rivoluzionare-il-modo-in-cui-lavoriamo-ecco-alcuni-dei-prossimi-sviluppi-della-robotica-in-ambito-commerciale\"\u003eLA ROBOTICA È UN CAMPO IN RAPIDA EVOLUZIONE CON IL POTENZIALE PER RIVOLUZIONARE IL MODO IN CUI LAVORIAMO. ECCO ALCUNI DEI PROSSIMI SVILUPPI DELLA ROBOTICA IN AMBITO COMMERCIALE:\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003eRobot più autonomi\u003c/strong\u003e: i robot stanno diventando sempre più autonomi, il che significa che possono svolgere compiti senza la necessità di un intervento umano. Ciò consente loro di eseguire attività pericolose o ripetitive, liberando gli esseri umani per concentrarsi su attività più creative o strategiche.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRobot più intelligenti\u003c/strong\u003e: i robot stanno diventando anche più intelligenti, il che significa che possono imparare e adattarsi al loro ambiente. Ciò consente loro di svolgere compiti più complessi e di interagire con gli esseri umani in modo più naturale.\nRobot più economici: i costi dei robot stanno diminuendo, il che li rende più accessibili alle aziende di tutte le dimensioni. Ciò sta portando a un aumento dell\u0026rsquo;adozione dei robot da parte delle aziende di tutti i settori.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eRobot più versatili\u003c/strong\u003e: i robot stanno diventando più versatili, il che significa che possono essere utilizzati per svolgere una varietà di compiti. Ciò consente alle aziende di utilizzare i robot per automatizzare una serie di attività, il che può portare a un aumento dell\u0026rsquo;efficienza e della produttività.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eQuesti sono solo alcuni dei prossimi sviluppi della robotica in ambito commerciale. La robotica è una tecnologia potente che ha il potenziale per trasformare il modo in cui lavoriamo. Man mano che la robotica continua a svilupparsi, è probabile che avrà un impatto ancora maggiore sulla nostra economia e sulla nostra società.\u003c/p\u003e","title":"Quali saranno i prossimi sviluppi della robotica in ambito commerciale"},{"content":" INTRODUZIONE Un semplice progetto con ESP32 o Arduino per leggere in tempo reale il livello dei liquidi in un serbatoio. Useremo un sensore ad ultrasuoni ANGEEK JSN-SR04T con portata max di circa 3.5 mt e un normale display LCD.\nQuesto hardware minimale serve a controllare la profondità di un serbatoio fino a circa 4 metri di altezza e a mostrare in real time e in modo continuo il valore della colonna del liquido. Un aspetto interessante e la capacità di adattarsi alla quantità \u0026ldquo;iniziale\u0026rdquo; del liquido con una facile calibrazione dei sensori.\nLa routine di calibrazione per l\u0026rsquo;ESP32 è davvero semplice ma comunque interessante per chi vuole imparare a programmare con Arduino/Ep32 e vi consigliamo di scaricare il programma (free come sempre) dal nostro sito Github.\nNell\u0026rsquo;articolo troverete molte foto della realizzazione pratica e dell\u0026rsquo;assemblaggio sperimentale che abbiamo adottato per costruire box e circuito.\nDovendo lavorare in un ambiente sottoposto a perdite di liquidi (l\u0026rsquo;acqua non è amica della elettronica!) Abbiano provveduto a schermare la basetta dalle infiltrazioni usando una cornicetta in plastica PET costruita con la stampante 3D. I COMPONENTI DEL KIT Modulo display LCD 16X2 carattere seriale blu con retroilluminazione Scheda di Sviluppo ESP-WROOM-32 ESP-32 ESP-32S 2.4GHz WiFi Sensore ad ultrasuoni impermeabile ANGEEK JSN-SR04T Circuito stampato multi-funzione Robotdazero 4 Potenziometro 5 KOhm Alimentatore Wall da 5V e 3A. Circuito stampato multunzione Robotdazero \u0026ldquo;orange\u0026rdquo; ATTENZIONE: nel kit non sono inclusi: box, cavetti, connettori Dupont, viti, staffe etc. Forniamo solo la parte elettronica compreso l\u0026rsquo;alimentatore da muro.\nIL CODICE SORGENTE #include \u0026lt;LiquidCrystal_I2C.h\u0026gt; #include \u0026lt;math.h\u0026gt; #include \u0026lt;Wire.h\u0026gt; #define I2C_SDA 23 #define I2C_SCL 18 #define VELOCITA_DEL_SUONO 0.034 #define TENTATIVI_CALIBRAZIONE 8 const int echoPin = 21; const int trigPin = 22; const int PinPotenziometro = 13; int DistanzaCm; long DurataPing; float ValorePotenziometro; float h[3]; float CalibrazioneSensore; float Livello; LiquidCrystal_I2C lcd(0x27,16,2); void setup() { Serial.begin(115200); Wire.begin(I2C_SDA, I2C_SCL, 10000); lcd.init(); lcd.clear(); lcd.backlight(); lcd.setCursor(0,0); lcd.print(\u0026#34;Inizio procedura\u0026#34;); delay(3000); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); for (int ix=1; ix\u0026lt;=TENTATIVI_CALIBRAZIONE; ix++) { ValorePotenziometro = round(analogRead(PinPotenziometro)/10); h[ix%3] = ValorePotenziometro; Serial.print(\u0026#34;Trimmer: \u0026#34;); Serial.println(ValorePotenziometro); lcd.clear(); lcd.print(\u0026#34;Trimmer: \u0026#34;); lcd.print(ValorePotenziometro); delay(1000); } Livello = 10 * int((h[0]+h[1]+h[2]) / 30); CalibrazioneSensore = 0; Serial.print(\u0026#34;Livello iniziale (cm): \u0026#34;); Serial.println(Livello); Serial.println(\u0026#34;Fine setup\\n\u0026#34;); lcd.clear(); lcd.setCursor(0,0); lcd.print(\u0026#34;Liv. iniziale cm:\u0026#34;); lcd.setCursor(0,1); lcd.print(Livello); delay(3000); } void loop() { digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); DurataPing = pulseIn(echoPin, HIGH); DistanzaCm = DurataPing * VELOCITA_DEL_SUONO/2; if (!CalibrazioneSensore) { CalibrazioneSensore = DistanzaCm; Serial.print(\u0026#34;Aria libera iniziale (cm): \u0026#34;); Serial.println(CalibrazioneSensore); Serial.println(\u0026#34;\\n\u0026#34;); } Serial.print(\u0026#34;Aria libera (cm): \u0026#34;); Serial.println(DistanzaCm); Serial.print(\u0026#34;Livello liquido (cm): \u0026#34;); Serial.println(Livello - DistanzaCm + CalibrazioneSensore); Serial.println(\u0026#34;\\n\u0026#34;); lcd.setCursor(0,0); lcd.print(\u0026#34;Livello liquido:\u0026#34;); lcd.setCursor(0,1); lcd.print(\u0026#34; \u0026#34;); lcd.setCursor(0,1); lcd.print(Livello - DistanzaCm + CalibrazioneSensore); lcd.setCursor(8,1); lcd.print(\u0026#34;(cm)\u0026#34;); delay(2000); } COME COSTRUIRE LA CENTRALINA A COSTO ZERO Il kit è disponibile sul nostro ecommerce ad un prezzo competitivo, ma nulla vieta di acquistare separatamente i pezzi su Amazon e di fare l\u0026rsquo;upload del nostro programma sul vostro ESP32. Il codice del programma è \u0026ldquo;free\u0026rdquo; e \u0026ldquo;open source\u0026rdquo;, potete dunque modificarlo a vostro piacere.\nFOTO DEL KIT MONTATO Contenitore in plastica del sensore di livello liquidi Assemblaggio complessivo del kit I pezzi principali del kit Vista ravvicinata della basetta con l\u0026rsquo;ESP32 Vista complessiva del kint montato e collaudato Particolare del display LCD 16X2 Robotdazero.it - post - R.109.1.5.6\n","permalink":"https://www.robotdazero.it/blog/una-centralina-elettronica-per-controllare-il-livello-di-un-serbatoio/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003ch3 id=\"introduzione\"\u003eINTRODUZIONE\u003c/h3\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUn semplice progetto con ESP32 o Arduino per leggere in tempo reale il livello dei liquidi in un serbatoio. Useremo un sensore ad ultrasuoni ANGEEK JSN-SR04T con portata max di circa 3.5 mt e un normale display LCD.\u003c/p\u003e\u003c/blockquote\u003e\n\u003cp\u003eQuesto hardware minimale serve a controllare la profondità di un serbatoio fino a circa 4 metri di altezza e a mostrare in real time e in modo continuo il valore della colonna del liquido. Un aspetto interessante e la capacità di adattarsi alla quantità \u0026ldquo;iniziale\u0026rdquo; del liquido con una facile calibrazione dei sensori.\u003c/p\u003e","title":"Una centralina elettronica per controllare il livello di un serbatoio"},{"content":" L’ESP32 è una scheda di sviluppo molto potente e versatile, utilizzata in molte applicazioni IOT. Una delle questioni più importanti quando si lavora con l’ESP32 è la scelta dell’alimentazione giusta per garantire il corretto funzionamento della scheda. Può essere alimentato attraverso un’ampia gamma di fonti di alimentazione, tra cui l’alimentazione tramite USB, tramite batterie, tramite un alimentatore esterno e molto altro. Ecco alcune delle opzioni più comuni.\nI PIN DI ALIMENTAZIONE DELL\u0026rsquo;ESP32 Si può alimentare l\u0026rsquo;ESP32 in due modi diversi: Tramite la presa USB ed erogare 3.3 e 5V dai pin della scheda oppure in alternativa si possono fornire 3.3V o 5V direttamente sulle porte 3.3V e 5V.\nQuesti sono i pin da usare per la alimentazione della scheda e delle periferiche:\nPIN 3.3V PIN 5V PIN GROUND (pin della massa) Le periferiche compatibili possono prevelare dunque 3.3 e 5V da questi PIN quando usiamo la USB.\nALIMENTAZIONE CON PRESA USB L’alimentazione tramite USB è una delle opzioni più comuni per l’ESP32. In questo caso, l’ESP32 viene alimentato direttamente tramite il cavo USB che viene collegato alla scheda. Questa opzione è molto conveniente e facile da utilizzare, ma non è sempre la soluzione migliore.\nL’alimentazione tramite USB può limitare la quantità di corrente disponibile per l’ESP32, il che può influire sulla sua capacità di funzionare in modo efficiente, soprattutto quando si utilizzano componenti esterni.\nLe prese USB sono diventate uno standard nella maggior parte dei computer e dei dispositivi elettronici. Sono utilizzate per alimentare i dispositivi, trasferire dati e fornire connettività a una vasta gamma di periferiche. Purtroppo non tutte le prese USB sono create uguali. In questo articolo, vedremo il voltaggio delle prese USB dei computer e cosa significa per i dispositivi collegati ad esse.\nIl voltaggio delle prese USB non è sempre di 5V Il voltaggio delle prese USB può variare a seconda del tipo di porta USB. In genere, le porte USB di tipo 1.0 e 2.0 forniscono un voltaggio di 5 volt, mentre le porte USB di tipo 3.0 e 3.1 forniscono un voltaggio di 5 volt o 12 volt. inoltre non tutte le prese USB forniscono la stessa quantità di corrente. Alcune prese USB possono fornire solo una quantità limitata di corrente diciamo circa 0.5A, mentre altre possono fornire una maggiore quantità di corrente fino a 1.2A.\nCome controllare il voltaggio delle prese USB? Per capire il voltaggio delle prese USB, è possibile utilizzare un voltmetro. Un voltmetro è un dispositivo che misura la tensione elettrica tra due punti. Per misurare la tensione delle prese USB, è necessario collegare il voltmetro alle prese USB e misurare la tensione. Tuttavia, è importante notare che non tutti i voltmetri sono in grado di misurare la tensione delle prese USB in modo accurato. Alcuni voltmetri potrebbero fornire una lettura inaccurata, a seconda della qualità del dispositivo e della porta USB stessa.\nALIMENTAZIONE TRAMITE IL PIN VIN Un altro modo per alimentare ESP32 è utilizzando il pin Vin, comunemente conosciuto come pin 5V. Il pin Vin in ESP32 e in altre schede microcontroller come Arduino è collegato a un regolatore di tensione a bordo. Qualsiasi tensione collegata al pin Vin passa prima attraverso il regolatore, che la riduce a 3,3 V e la alimenta ai periferici della scheda ESP32.\n🔑 Utilizzando una alimentazione esterna regolata da 5V, possiamo alimentare ESP32 attraverso il pin Vin, collegando la GND di ESP32 con la GND esterna dell\u0026#8217;alimentazione. Qualsiasi tensione compresa tra 5V e 12V può essere collegata al pin Vin di ESP32, tuttavia non è consigliabile utilizzare più di 6V o 7V. Poiché ESP32 ha bisogno solo di 3,3 V per funzionare, le restanti tensioni vengono dissipate dal regolatore di tensione LDO sotto forma di calore. 🚀 Upgrade Professionale: Se vuoi eliminare i problemi di stabilità e gestire l'alimentazione con un Mini-UPS integrato, consulta la documentazione del Sentinel Node. ALIMENTAZIONE CON BATTERIE RICARICABILI La ultima opzione sulla lista per alimentare l’ESP32 è l’utilizzo di batterie esterne. L’ESP32 funziona a 3,3 V, quindi può essere facilmente alimentato utilizzando le batterie esterne. Mentre si alimenta l’ESP32 con una batteria esterna, utilizzare sempre il pin Vin poiché è collegato a un regolatore di tensione integrato che protegge da qualsiasi tipo di danni all’ESP32.\nEcco un elenco di tutte le batterie che possono essere utilizzate per alimentare l’ESP32:\nUtilizzo di una power bank Utilizzo di batterie NiMH o batterie standard (2 x 1,5 V) Batterie al litio Batterie LiFePO4 Batterie al litio polimero 🔋 Gestione Energetica: Per evitare che la scarica della batteria interrompa i tuoi log, il Sentinel Node integra un sistema di gestione carica e continuità professionale. AVVERTENZE Ecco alcune avvertenze da tenere a mente durante l’alimentazione dell’ESP32 con una fonte di alimentazione esterna:\nUtilizzare sempre una fonte di alimentazione a tensione regolata Non collegare dispositivi all’ESP32 che richiedono più corrente, come i motori Non utilizzare più di una fonte di alimentazione contemporaneamente Se il regolatore di tensione si surriscalda, spegnere la scheda ESP32.\nLe batterie ricaricabili LIPO Gli accumulatori al litio sono utilizzati in una vasta gamma di dispositivi elettronici, come telefoni cellulari, computer portatili, tablet, droni elettrici, automobili elettriche e molto altro ancora. In questo articolo, vedremo come funzionano gli accumulatori al litio e quali sono i loro vantaggi e svantaggi.\nGli accumulatori al litio funzionano attraverso il movimento degli ioni di litio tra gli elettrodi positivi e negativi. Quando gli ioni di litio si spostano verso l’elettrodo positivo, si verifica una reazione chimica che rilascia energia elettrica. Quando gli ioni di litio si spostano verso l’elettrodo negativo, la batteria viene ricaricata.\nGli accumulatori al litio hanno molte caratteristiche positive rispetto ad altri tipi di batterie. In primo luogo, sono leggeri e compatti, il che li rende adatti per l’uso in dispositivi portatili. In secondo luogo, hanno una durata della vita più lunga rispetto ad altre batterie. Infine, gli accumulatori al litio sono in grado di mantenere una tensione costante durante la maggior parte della loro scarica, il che significa che possono fornire una potenza costante ai dispositivi.\nQuali sono i vantaggi e gli svantaggi degli accumulatori al litio? Come tutte le tecnologie, gli accumulatori al litio hanno vantaggi e svantaggi.\nVantaggi:\nLeggeri e compatti: gli accumulatori al litio sono leggeri e compatti, il che li rende adatti per l’uso in dispositivi portatili. Lunga durata della vita: gli accumulatori al litio hanno una durata della vita più lunga rispetto ad altre batterie. Potenza costante: gli accumulatori al litio sono in grado di mantenere una tensione costante durante la maggior parte della loro scarica, il che significa che possono fornire una potenza costante ai dispositivi. Svantaggi:\nCosti: gli accumulatori al litio possono essere costosi rispetto ad altre batterie. Rischio di incendio: gli accumulatori al litio possono causare incendi se non vengono caricati, scaricati o conservati correttamente. Sensibilità alla temperatura: gli accumulatori al litio possono essere sensibili alle temperature estreme. Gli accumulatori al litio sono diventati uno standard nell’industria delle batterie per i loro vantaggi in termini di leggerezza, durata della vita e potenza costante. Tuttavia, hanno anche degli svantaggi in termini di costi, rischio di incendio e sensibilità alla temperatura. È importante utilizzare gli accumulatori al litio in modo sicuro e corretto per evitare danni o incidenti.\nALIMENTAZIONE CON ALIMENTATORE ESTERNO L’alimentazione tramite alimentatore esterno è un’altra opzione che può essere utile quando si lavora con l’ESP32. In questo caso, l’ESP32 viene alimentato attraverso un alimentatore esterno, il quale fornisce una tensione di alimentazione costante e stabile. Questa opzione è particolarmente utile quando si utilizzano sensori o componenti esterni che richiedono una maggiore quantità di corrente.\nPer realizzare progetti come la Centralina controllo livello liquidi che puoi trovare in kit sul nostro ecommerce, la soluzione con alimentatore esterno rimane al momento la soluzione migliore.\nGLI ALIMENTATORI DA LABORATORIO Gli alimentatori elettrici da laboratorio sono strumenti fondamentali per chi lavora con l’elettronica. Consentono di fornire tensione e corrente regolabili e stabili ai circuiti elettronici, sia per la verifica del funzionamento dei componenti che per la progettazione e la sperimentazione di nuovi circuiti. In questo articolo, esploreremo come funzionano gli alimentatori elettrici da laboratorio e quali sono le loro caratteristiche principali.\nCome funzionano gli alimentatori elettrici da laboratorio? Gli alimentatori elettrici da laboratorio funzionano mediante la conversione di tensione alternata (AC) in tensione continua (DC). L’alimentatore dispone di un trasformatore che converte la tensione alternata della presa a muro in una tensione alternata di bassa frequenza, che viene quindi raddrizzata e filtrata per ottenere una tensione continua. Questa tensione continua viene quindi regolata e controllata mediante circuiti di regolazione per fornire alla uscita dell’alimentatore una tensione e una corrente costanti e regolabili. Quali sono le caratteristiche principali degli alimentatori elettrici da laboratorio?\nTensione e corrente regolabili: la capacità di regolare la tensione e la corrente dell’alimentatore è fondamentale per adattarsi alle esigenze specifiche del circuito elettronico in fase di test o sperimentazione.\nStabilità: la tensione e la corrente devono essere stabili per evitare danni al circuito in fase di test. L’alimentatore deve mantenere una tensione e una corrente costante anche in presenza di carichi variabili.\nProtezioni: l’alimentatore deve essere dotato di protezioni come cortocircuiti, sovraccarichi e surriscaldamenti per evitare danni al circuito in fase di test e prevenire il rischio di incendi.\nDisplay: gli alimentatori moderni sono dotati di display LCD che forniscono informazioni sulla tensione e la corrente in uscita, consentendo un controllo accurato dei valori.\nInterfaccia utente: gli alimentatori moderni possono essere dotati di un’interfaccia utente facile da usare, composta da pulsanti e manopole per la regolazione dei valori di tensione e corrente.\nIndipendentemente dalla fonte di alimentazione scelta, è importante assicurarsi che la tensione di alimentazione fornita sia stabile e costante. Inoltre, è importante scegliere la giusta tensione di alimentazione in base alle specifiche dell’ESP32.\nCOME RIDURRE IL CONSUMO ENERGETICO L\u0026rsquo;ESP32 è in grado di entrare in modalità \u0026ldquo;deep sleep\u0026rdquo;: In modalità \u0026ldquo;deep sleep\u0026rdquo; il consumo energetico può essere ridotto fino a soli 5 µA. Può essere utilizzata per estendere la durata della batteria di un dispositivo ESP32. Ad esempio, un progetto di domotica che deve monitorare un sensore di temperatura potrebbe entrare in modalità sleep quando il sensore non rileva alcun cambiamento di temperatura.\n🔑 In questo modo, il dispositivo ESP32 consumerà solo una piccola quantità di energia, anche se è in funzione 24 ore su 24, 7 giorni su 7. LA MODALITÀ \u0026ldquo;SLEEP\u0026rdquo; DELL ESP32 La modalità sleep dell\u0026rsquo;ESP32 è una modalità di funzionamento in cui il consumo energetico del chip è notevolmente ridotto. In modalità sleep, la CPU, la maggior parte della RAM e tutte le periferiche che sono clockate da APB_CLK vengono disattivate.\nLe uniche parti del chip che rimangono attive sono: Il controller RTC Il coprocessore ULP La memoria RTC FAST La memoria RTC SLOW La modalità sleep può essere utilizzata per estendere la durata della batteria di un dispositivo ESP32. Ad esempio, un dispositivo che deve monitorare un sensore di temperatura potrebbe entrare in modalità sleep quando il sensore non rileva alcun cambiamento di temperatura.\nIn questo modo, il dispositivo ESP32 consumerà solo una piccola quantità di energia, anche se è in funzione 24 ore su 24, 7 giorni su 7.\nL\u0026rsquo;ESP32 offre due modalità sleep: Light sleep: In modalità light sleep, la CPU e la maggior parte della RAM rimangono attive, ma il loro consumo energetico è ridotto. Deep sleep: In modalità deep sleep, la CPU, la maggior parte della RAM e tutte le periferiche che sono clockate da APB_CLK vengono disattivate. La modalità deep sleep è più efficiente dal punto di vista energetico rispetto alla modalità light sleep, ma richiede più tempo per riattivare il dispositivo.\nPer entrare in modalità sleep, il programmatore deve utilizzare la funzione\nesp_deep_sleep_start(). Questa funzione accetta un parametro che specifica il tempo di attesa prima che il dispositivo venga riattivato. Se il parametro è impostato su 0, il dispositivo verrà riattivato da un evento di riattivazione.\nLA ANALISI DETTAGLIATA DEI CONSUMI NELLE VARIE MODALITA' Quante sono esattamente esattamente la modalità di funzinamento dell\u0026rsquo;ESP32? Grazie alla sua gestione avanzata dell\u0026rsquo;alimentazione, l\u0026rsquo;ESP32 offre cinque modalità di alimentazione configurabili. In ordine di consumo:\nModalità \u0026ldquo;Attiva\u0026rdquo; Modalità \u0026ldquo;Modem Sleep\u0026rdquo; Modalità \u0026ldquo;Light Sleep\u0026rdquo; Modalità \u0026ldquo;Deep Sleep\u0026rdquo; Modalità \u0026ldquo;Hibernation\u0026rdquo; Ogni modalità ha caratteristiche distinte e capacità di risparmio energetico. Proviamo a dare un\u0026rsquo;occhiata analitica.\nModalità #1: \u0026ldquo;Attiva\u0026rdquo; (160 ~ 260mA) La modalità normale è anche indicata come modalità attiva. In questa modalità, tutte le periferiche del chip rimangono attive.\nPoiché tutto è sempre attivo in questa modalità (in particolare il modulo WiFi, il core di elaborazione e il modulo Bluetooth), il chip consuma circa 240 mA di potenza. Occasionalmente la scheda può assorbire più di 750 mA in particolare quando sia WiFi che Bluetooth sono utilizzati contemporaneamente.\n🔑 In questa modalità il consumo energetico della scheda può variare moltissimo tra un istante e il successivo e possiamo quindi parlare solo di consumi medi. Tutti protocolli di comunicazione RF, infatti hanno dei picchi molto alti di consumo nelle operazioni di connessione e riconnessione. Pacchetto Wi-Fi Tx 13dBm21dBm 160260 mA Pacchetto Wi-Fi/BT Tx 0dBm 120 mA Wi-Fi / BT Rx e ascolto 80 ~ 90 mA Questa modalità consuma il massimo della potenza ed è la meno efficiente. Per risparmiare energia, è necessario disabilitare le funzionalità che non sono in uso passando a un\u0026rsquo;altra modalità di alimentazione.\nModalità #2: \u0026ldquo;Modem Sleep\u0026rdquo; (3 ~ 20mA) In modalità sleep modem, tutto è attivo tranne il WiFi, il Bluetooth e la radio. La CPU rimane attiva e l\u0026rsquo;orologio è configurabile. In questa modalità, il chip può consumare dai 3 mA fino a 20 mA. Per mantenere attiva la connessione, Wi-Fi, Bluetooth e la radio vengono svegliati a intervalli predefiniti. Durante questo schema, ESP32 passa dalla modalità attiva alla modalità di sospensione del modem.\nPer realizzare questo sofisticato sistema, l\u0026rsquo;ESP32 si collega al router in modalità \u0026ldquo;station mode\u0026rdquo;\u0026quot; usando il DTIM \u0026ldquo;beacon\u0026rdquo;. Il modulo Wi-Fi viene disabilitato tra due attivazioni del DTIM e quindi riabilitato poco prima del prossimo beacon.\n🔑 Il tempo di \"sonno\" è determinato dall'intervallo del DTIM impostato nel router, parliamo di circa 200 ms fino a un massimo di 1000 ms. Che vuol dire DTIM? DTIM è l\u0026rsquo;acronimo di Delivery Traffic Indication Message: con il DTIM il router trasmette un frame beacon (faro o esca) periodicamente. Ogni frame contiene informazioni relative alla rete. Viene utilizzato per annunciare la presenza di una rete wireless e per sincronizzare tutti i membri connessi.\nModalità #3: \u0026ldquo;Light Sleep” (0.8mA) Questa modalità è molto simile al \u0026ldquo;modem sleep\u0026rdquo; associazione. L\u0026rsquo;unica differenza è che in modalità light sleep, la CPU, la maggior parte della RAM e le periferiche digitali sono dotate di clock.\nChe cosa è il \u0026ldquo;Clock Gating\u0026rdquo;? Clock gating è una tecnica di gestione dell\u0026rsquo;alimentazione per ridurre il consumo di potenza dinamica rimuovendo o ignorando il segnale di clock della scheda. Il Clock gating riduce il consumo energetico ignorando alcuni cicli del clock (pruning). Con questo sistema vengono disabilitate alcune parti del circuito e in particolare vengono bloccati i circuiti di flip-flop, impedendo loro di commutare stato. Poichè i circuiti di flip-flop consumano una buona dose di energia, il consumo energetico complessivo viene ridotto enormemente.\nDurante la modalità light sleep, la CPU viene messa in pausa disabilitando il suo impulso di clock. Il modulo RTC e il coprocessore ULP rimangono invece attivi. Ciò si traduce in un consumo energetico inferiore rispetto alla modalità \u0026ldquo;sleep del modem\u0026rdquo; intorno a 0,8 mA.\nPrima di entrare in modalità light sleep, ESP32 memorizza il suo stato interno nella RAM e riprende il funzionamento al risveglio dal sonno. Questo è indicato come ritenzione RAM completa.\nModalità #4: \u0026ldquo;Deep Sleep” (0.15mA ~ 10µA) In modalità deep sleep, le CPU, la maggior parte della RAM e tutte le periferiche digitali sono disabilitate. Solo le seguenti parti del chip rimangono operative:\nCoprocessore ULP RTC: fast and slow memory Regolatore di RTC Periferiche RTC 🔑 L'ESP32 ha 8kB di memoria SRAM che nella nomenclatura di Espressif diventano la \"RTC fast memory\". I dati salvati sulla RTC non vengono cancellati durante il deep sleep. Tuttavia, verranno cancellati quando si preme il pulsante di reset (il pulsante etichettato EN o RST sull'ESP32). In modalità deep sleep, il chip consuma tra 0,15 mA (quando il coprocessore ULP è acceso) e 10 µA. Parliamo di µA e quindi in questa modalità il consumo può scendere praticamente a zero! Durante la modalità deep sleep, la CPU principale viene spenta, mentre il coprocessore ULP (Ultra-Low-Power) può rilevare le letture del sensore e riattivare la CPU in base alle esigenze. Tutto ciò è utile per progettare applicazioni in cui la CPU deve essere svegliata da un evento esterno, come un timer, pur mantenendo un consumo energetico minimo.\n🔑 Tutto ciò che è memorizzato nella memoria principale viene cancellato e non è più possibile accedervi. Al contrario la piccolissima memoria RTC viene mantenuta attiva e il suo contenuto viene conservato fino al \"risveglio\" del chip. Questo è il motivo per cui il chip memorizza i dati di connessione Wi-Fi e Bluetooth proprio nella memoria RTC! . 👉 Per approfondire l'hardware deterministico: Sentinel Node - Specifiche Tecniche\nCome conservare i dati nella modalità deep sleep Se vuoi utilizzare i dati dopo un riavvio, devi memorizzarli nella memoria RTC definendo una variabile globale con l\u0026rsquo;attributo RTC_DATA_ATTR. Ad esempio:\nRTC_DATA_ATTR int myVar = 0; Quando il chip si sveglia dal sonno profondo, esegue un reset e inizia l\u0026rsquo;esecuzione del programma dall\u0026rsquo;inizio.\nQuando si sveglia dal \u0026ldquo;deep sleep\u0026rdquo;, l\u0026rsquo;ESP32 può eseguire uno wake stub di sveglia del deep sleep.\nIl wake stub è un pezzo di codice che viene eseguito non appena il chip si sveglia, PRIMA che venga eseguita qualsiasi normale inizializzazione, bootloader o codice utente. Dopo aver eseguito il wake stub, il chip può 1 - tornare a dormire oppure 2 - continuare ad eseguire il codice utente.\nModalità #5: \u0026ldquo;Hibernation” (2.5µA) La modalità Hibernation o Ibernazione è molto simile al \u0026ldquo;deep sleep\u0026rdquo;. L\u0026rsquo;unica differenza è che in modalità ibernazione, il chip disabilita l\u0026rsquo;oscillatore interno a 8 MHz e il coprocessore ULP, lasciando solo un timer RTC e alcuni pin GPIO per \u0026ldquo;risvegliare\u0026rdquo; il chip.\n🔑 Poiché anche la memoria di ripristino RTC è disattivata, non è possibile salvare i dati in modalità ibernazione! Di conseguenza, il consumo energetico del chip è ulteriormente ridotto: in modalità ibernazione consuma solo circa 2,5 µA. Questa modalità è particolarmente utile se si sta lavorando su un progetto che non ha bisogno di essere attivo tutto il tempo.\nAd esempio puoi sfruttare questa modalità per scattare delle foto ad animali, automobili, persone che transitano raramente in un luogo confinato. Un sensore ad ultrasuoni collegato ad un pin GPIO è in grado di svegliare l\u0026rsquo;ESP, scattare una foto e salvarla su una micro SD-Card.\nDEVICE: SENTINEL_NODE_V3.5 MISSION CRITICAL SENTINEL NODE V3.5 Industrial Data Integrity \u0026 Deterministic Logging System\nSTORAGE FRAM TECHNOLOGY Zero latenza, scritture infinite. Blindato contro power-loss. LOGIC HARDWARE WATCHDOG Ripristino fisico esterno. Reazione autonoma al crash firmware. TIMING DEDICATED RTC Time-stamping deterministico indipendente da server NTP. POWER SURGE PROTECTION Diodi P6KE15A. Hardened per ambienti industriali (14.89V). ANALISI TECNICA HARDWARE GITHUB REPOSITORY ","permalink":"https://www.robotdazero.it/blog/esp32-e-la-sua-alimentazione/","summary":"\u003chr\u003e\n\u003cbr\u003e\n\u003cp\u003e\u003cimg alt=\"esp32 alimentato con batterie ricaricabili\" loading=\"lazy\" src=\"/blog/esp32-e-la-sua-alimentazione/header.jpg\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eL’ESP32\u003c/strong\u003e è una scheda di sviluppo molto potente e versatile, utilizzata in molte applicazioni IOT. Una delle questioni più importanti quando si lavora con l’ESP32 è la scelta dell’alimentazione giusta per garantire il corretto funzionamento della scheda. Può essere alimentato attraverso un’ampia gamma di fonti di alimentazione, tra cui l’alimentazione tramite USB, tramite batterie, tramite un alimentatore esterno e molto altro. Ecco alcune delle opzioni più comuni.\u003c/p\u003e","title":"ESP32 e la sua alimentazione"},{"content":"Perchè usare il comando Git Il software Git è stato creato da Linus Torvalds, il famoso sviluppatore finlandese noto principalmente come creatore del kernel Linux. Torvalds ha creato Git nel 2005 per gestire lo sviluppo del kernel Linux stesso. Ha sviluppato Git come un sistema di controllo delle versioni distribuito, progettato per affrontare le esigenze specifiche del grande progetto open-source che è il kernel Linux.\nCosa veniva usato prima dell\u0026rsquo;arrivo di Git? Prima del programma Git, i programmatori utilizzavano diversi sistemi per il controllo delle versioni e la gestione del codice sorgente. Alcuni dei sistemi più comuni erano:\nRCS (Revision Control System): RCS è stato uno dei primi sistemi di controllo delle versioni, introdotto nel 1982. Era principalmente utilizzato per gestire le modifiche ai file di testo, mantenendo una singola versione del file in modo esplicito.\nCVS (Concurrent Versions System): Introdotta nel 1986, CVS è un sistema di controllo delle versioni distribuito utilizzato per gestire progetti collaborativi. Era ampiamente utilizzato nei primi anni 2000 e consentiva a più sviluppatori di lavorare contemporaneamente sullo stesso progetto.\nSVN (Subversion): SVN è stato introdotto nel 2000 ed è stato un sistema di controllo delle versioni molto popolare e un passo avanti rispetto a CVS. SVN forniva un modello di gestione delle versioni centralizzato e supportava la collaborazione tra sviluppatori.\nMercurial: Mercurial è un sistema di controllo delle versioni distribuito simile a Git, ma è stato sviluppato indipendentemente da Git. È stato introdotto nel 2005 ed è stato utilizzato da molte comunità di sviluppatori.\nBazaar: Bazaar è un altro sistema di controllo delle versioni distribuito che ha avuto una certa popolarità nella comunità open-source prima dell\u0026rsquo;avvento di Git. È stato sviluppato da Canonical e utilizzato per progetti come Ubuntu.\nQuesti sistemi di controllo delle versioni erano stati ampiamente utilizzati prima che Git diventasse ampiamente popolare grazie alla sua velocità, efficienza e capacità di gestire grandi progetti distribuiti in modo eccellente.\nGit è diventato ampiamente popolare e ora viene utilizzato per gestire lo sviluppo di numerosi altri progetti software in tutto il mondo. 👉 Il comando \"git\" è importante su Linux (e in generale su molti altri sistemi operativi) perché è uno strumento di controllo delle versioni ampiamente utilizzato e potente. Inoltre con Git puoi accedere amolti progetti Open di robotica disponibili liberamente su github.com Ecco alcuni dei migliori progetti di robotica ospitati su GitHub: Open Robotics: Open Robotics è un\u0026rsquo;organizzazione senza scopo di lucro che gestisce una serie di progetti di robotica open source, tra cui ROS, Gazebo e MoveIt! Robot Operating System (ROS): ROS è un framework open source per lo sviluppo di robot. Fornisce una piattaforma comune per la comunicazione tra i diversi componenti di un robot, come i sensori, i motori e l\u0026rsquo;intelligenza artificiale. Gazebo: Gazebo è un simulatore di robot open source. Può essere utilizzato per simulare l\u0026rsquo;ambiente in cui opera un robot, testando e valutando i diversi algoritmi di controllo. MoveIt!: MoveIt! è un framework open source per il controllo del movimento dei robot. Fornisce una serie di funzionalità per pianificare e comandare i movimenti di un robot, in modo sicuro ed efficiente. Arduino: Arduino è una piattaforma di sviluppo open source per la creazione di dispositivi elettronici. Offre una serie di schede di sviluppo, che possono essere utilizzate per creare una varietà di progetti robotici. Una avvertenza per chi usa Windows Ci sono alcune ragioni per cui Git può essere più difficile da usare su Windows che su Linux.\nGit è stato originariamente sviluppato per Linux. Questo significa che Git è più compatibile con l\u0026rsquo;architettura Linux e può essere più difficile da usare su Windows, che ha una diversa architettura.\nWindows non viene fornito con Git preinstallato. Gli utenti di Windows devono installare Git separatamente, il che può essere un processo complicato.\nCi sono meno risorse disponibili per aiutare gli utenti di Windows con Git. Ci sono molti tutorial e documentazione disponibili per aiutare gli utenti di Linux con Git, ma ci sono meno risorse disponibili per gli utenti di Windows.\nNonostante queste difficoltà, Git può essere utilizzato su Windows. Esistono diversi modi per semplificare l\u0026rsquo;uso di Git su Windows, ad esempio utilizzando un client Git come SourceTree o GitHub Desktop.\nCome installare Git su Windows 10/11 Scarica Git Il primo passo è scaricare il programma di installazione di Git dal sito web di Git per Windows.\nEsegui il programma di installazione Una volta scaricato il programma di installazione, eseguilo. Il programma di installazione ti guiderà attraverso il processo di installazione di Git.\nConfigura Git Dopo aver installato Git, dovrai configurarlo. Ciò include impostare il tuo nome utente e indirizzo e-mail. Puoi farlo eseguendo il seguente comando in una finestra del prompt dei comandi:\ngit config --global user.name Your Name git config --global user.email your@email.com Come testare Git Una volta configurato Git, puoi testarlo eseguendo il seguente comando in una finestra del prompt dei comandi:\ngit --version Questo comando dovrebbe stampare la versione di Git che hai installato.\nEcco alcuni motivi per cui dovresti usare Git su Linux: Noi di Robotdazero preferiamo sempre usare software e sistemi Open Source. A nostro modesto avviso permettono maggiore libertà di azione al programmatore e presentano meno bug rispetto al sofware a pagamento.\n👉 Se vuoi provare un sistema alternativo a Windows ti suggerisco Linux nella distro di Ubuntu. Per noi si tratta di un OS maturo e affidabile e ti consiglio di provarlo se non lo usi già! Cosa può fare Git su Ubuntu/Linux: Controllo delle versioni: Git permette di tenere traccia delle modifiche apportate ai file nel tempo, consentendo di recuperare versioni precedenti di un progetto. Questo è utile per il backup, per ripristinare modifiche indesiderate o per collaborare con altri sviluppatori.\nCollaborazione: Git facilita la collaborazione tra sviluppatori. Consente a più persone di lavorare contemporaneamente sullo stesso progetto, integrando e gestendo facilmente le modifiche apportate da ciascun membro del team.\nBranching e merging: Git offre funzionalità avanzate per creare nuovi \u0026ldquo;branch\u0026rdquo; (rami) di sviluppo, che consentono di lavorare su nuove funzionalità o correzioni di bug senza influire direttamente sulla versione principale del codice. Successivamente, i rami possono essere facilmente fusi (merged) per integrare le modifiche nella versione principale.\nGestione delle modifiche: Git consente di analizzare le modifiche apportate ai file, visualizzare le differenze tra versioni e ripristinare parti specifiche dei file. Questo rende più semplice individuare e risolvere problemi o errori nel codice.\nDistribuzione e hosting: Git offre la possibilità di distribuire e condividere facilmente il codice sorgente attraverso servizi di hosting come GitHub, GitLab e Bitbucket. Questi servizi consentono agli sviluppatori di pubblicare i loro progetti, collaborare con altri, ricevere feedback e tenere traccia delle modifiche nel tempo.\n👉 In sintesi, Git semplifica il processo di sviluppo del software, migliorando la gestione delle versioni, la collaborazione tra team di sviluppo e la distribuzione dei progetti. È diventato uno standard de facto nell'ambito dello sviluppo software ed è ampiamente utilizzato sia su Linux che su altri sistemi operativi. Details Github e Gitlab prendono il nome da questo tool e in linea di massima sei obbligato ad usarlo. In certe occasioni potresti usare in alternativa il comando wget, ad esempio per scaricare i file binari di un progetto su github.com.\nOutput del programma Git sulla nostra piattaforma ML Kaspian Per installare Git su Ubuntu, puoi seguire questi passaggi: Apri il terminale sul tuo sistema Ubuntu. Puoi farlo premendo Ctrl+Alt+T sulla tastiera o cercando \u0026ldquo;Terminal\u0026rdquo; nel menu delle applicazioni.\nAggiorna l\u0026rsquo;elenco dei pacchetti disponibili con il seguente comando:\n$ sudo apt update Installa Git utilizzando il comando:\n$ sudo apt install git Durante l\u0026rsquo;installazione, ti verrà chiesto di confermare l\u0026rsquo;installazione dei pacchetti. Digita \u0026ldquo;Y\u0026rdquo; e premi Invio per procedere.\nUna volta completata l\u0026rsquo;installazione, puoi verificare se Git è stato installato correttamente digitando il seguente comando:\n$ git --version Verrà visualizzata la versione di Git installata sul tuo sistema.\nOra hai Git correttamente installato su Ubuntu e sei pronto per utilizzarlo nel terminale. Puoi iniziare a clonare repository, creare nuovi repository o gestire i tuoi progetti con Git.\nI Primi comandi su Git I comandi di Git possono essere talvolta complicati ma per svolgere le operazioni di base la sintassi del comando è sempre intuitiva. Di seguito riportiamo i comandi indispensabili per iniziare.\ngit init Il comando git init viene usato per creare un archivio Git vuoto. Dopo il comando viene fisicamente creata una directory .git con alcuni files e delle sottodirectory. Continuando ad usare gli altri comandi Git, la directory si riempirà di altri files e directory. In linea di massima sono usati per contenere tutte le versioni del sofware sotto revisione.\ngit add . Il comando Add viene udato per aggiungere dei file al sistema di controllo di Git. Dopo questo comando Git terrà traccia delle modifiche e ne conserverà tutte le versioni.\ngit commit -m \u0026ldquo;messaggio di commento\u0026rdquo; Il comando commit permette di salvare i cambiamenti della directory locale. Tutti gli aggiornamenti finiscono nel repository di Git. La opzione: –m \u0026ldquo;\u0026rdquo; ti permette di descrivere le modifiche al programma e il motivo in modo che siamo comprensibili ai collaboratori.\ngit status Questo comando fornisce lo status del repository in esame. Il comando elenca il \u0026ldquo;branch\u0026rdquo; di lavoro, i files modificati e se esistono dei files resenti nella directory ma non sotto controllo di Git.\ngit clone \u0026lt;remote_URL\u0026gt; 👉 Il comando clone è forse il più utile se volete usare software open source preso dal nostro sito o da internet. Il comando permette di scaricare un programma remoto in una directory locale mantenendo intatta la struttura dei file e salvando tutte le le revisioni. E' equivalente a \"Git init\" quando lavorate con dei repository remoti. Alcune anomalie di Git Git può essere difficile da imparare. Git è un sistema complesso con molti comandi e opzioni. Può essere difficile imparare a usarlo, soprattutto per chi non ha familiarità con i sistemi di controllo versione.\nGit può essere lento. Git è un sistema efficiente, ma può essere lento quando si lavora con grandi repository.\nGit può essere difficile da configurare. Git può essere difficile da configurare, soprattutto su sistemi con molti utenti.\nGit può essere difficile da usare in team. Git può diventare assai ostico da usare in team, soprattutto quando si lavora su progetti con molti sviluppatori.\nAlcuni suggerimenti per superare queste difficoltà: Imparare Git gradualmente. Non c\u0026rsquo;è bisogno di imparare tutto Git in una volta sola. Inizia imparando i comandi e le opzioni di base e poi approfondisci man mano che ne hai bisogno. Usare un client Git. Ci sono molti client Git disponibili, che possono semplificare l\u0026rsquo;uso di Git. Un client Git può aiutarti con attività come la clonazione, il commit, il push e il pull di repository. Usare un hosting Git. Un hosting Git, come GitHub, GitLab o BitBucket, può aiutarti a gestire i tuoi repository Git e a collaborare con altri sviluppatori. Nonostante i suoi difetti, Git è uno strumento potente e versatile.\nTi consiglio di usarlo per gestire progetti di qualsiasi dimensione, anche minima: la comodità di azzerare modifiche \u0026ldquo;sbagliate\u0026rdquo; con un solo comando del tipo:\n$ git checkout HEAD nomefile è davvero impagabile. Con un po\u0026rsquo; di pratica, puoi superare le difficoltà di Git e sfruttare i suoi numerosi vantaggi.\nE infine alcuni suggerimenti generali per aumentare la qualità del codice sorgente con Git Tracciamento delle modifiche al codice: Git può essere utilizzato per tenere traccia delle modifiche al codice, in modo da poter identificare e risolvere i bug nel codice. Test del codice: Git può essere utilizzato per automatizzare i test del codice, in modo da poter eseguire i test su tutte le modifiche al codice in modo rapido e semplice. Restituzione a una versione precedente: Git può essere utilizzato per ripristinare il codice a una versione precedente, se necessario. Questo può essere utile se si introduce un bug nel codice o se si verifica un problema con le modifiche al codice. Documentazione: Git può essere utilizzato per documentare il codice, in modo che sia facile capire come funziona il codice e come utilizzarlo. Robotdazero.it - post - R.178.3.3.0\n","permalink":"https://www.robotdazero.it/blog/perche-usare-il-programma-git/","summary":"\u003ch2 id=\"perchè-usare-il-comando-git\"\u003ePerchè usare il comando Git\u003c/h2\u003e\n\u003cp\u003eIl software Git è stato creato da \u003ca href=\"https://it.wikipedia.org/wiki/Linus_Torvalds\" target=\"_blank\" rel=\"noopener\"\u003eLinus Torvalds\u003c/a\u003e, il famoso sviluppatore finlandese noto principalmente come creatore del kernel Linux. Torvalds ha creato Git nel 2005 per gestire lo sviluppo del kernel Linux stesso. Ha sviluppato Git come un sistema di controllo delle versioni distribuito, progettato per affrontare le esigenze specifiche del grande progetto open-source che è il kernel Linux.\u003c/p\u003e\n\u003ch3 id=\"cosa-veniva-usato-prima-dellarrivo-di-git\"\u003eCosa veniva usato prima dell\u0026rsquo;arrivo di Git?\u003c/h3\u003e\n\u003cp\u003ePrima del programma Git, i programmatori utilizzavano diversi sistemi per il controllo delle versioni e la gestione del codice sorgente. Alcuni dei sistemi più comuni erano:\u003c/p\u003e","title":"Perchè usare il programma Git"},{"content":"\nConoscere l’indirizzo IP del nostro computer è molto facile usando il browser ma sulla shell di Linux dobbiamo imparare altri sistemi. Scopriamo alcuni dei metodi più comuni. Per scoprire l’indirizzo internet del nostro computer in linea di massima potremmo usare il comando :\n/sbin/ifconfig -a per avere un quadro completo della situazione, ma questo è il risultato che ci potrebbe fornire la shell del nostro PC Linux:\nlo: flags=73\u0026lt;UP,LOOPBACK,RUNNING\u0026gt; mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10 loop txqueuelen 1000 (Local Loopback) RX packets 94260 bytes 151349678 (151.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 94260 bytes 151349678 (151.3 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0\nSe cerchi su Google questa è probabilmente la prima soluzione che ti appare. Come vedi districarsi tra tante righe di output è davvero complicato. Il risultato è così confuso da lasciare un poco interdetti. Io ti consiglio di usare questi metodi alternativi, molto piu semplici: curl icanhazip.com oppure usando wget:\nwget -qO- icanhazip.com Ecco un sito alternativo per sapere il tuo indirizzo IP in rete: curl ifconfig.me/ip e nella versione con wget:\nwget -qO- icanhazip.com Ti consiglio di usare sempre questi comandi che si appoggiano a dei siti internet e di salvare il comando in un file script dandogli il nome “ipp” o un altro nome che ti riesce facile da ricordare.\nRobotdazero.it - post - R.170.3.3.0\n","permalink":"https://www.robotdazero.it/blog/come-scoprire-lindirizzo-internet-del-tuo-pc/","summary":"\u003cbr\u003e\n\u003ch4 id=\"conoscere-l8217indirizzo-ip-del-nostro-computer-è-molto-facile-usando-il-browser-ma-sulla-shell-di-linux-dobbiamo-imparare-altri-sistemi-scopriamo-alcuni-dei-metodi-più-comuni\"\u003eConoscere l’indirizzo IP del nostro computer è molto facile usando il browser ma sulla shell di Linux dobbiamo imparare altri sistemi. Scopriamo alcuni dei metodi più comuni.\u003c/h4\u003e\n\u003cp\u003ePer scoprire l’indirizzo internet del nostro computer in linea di massima potremmo usare il comando :\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e/sbin/ifconfig -a\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003eper avere un quadro completo della situazione, ma questo è il risultato che ci potrebbe fornire la shell del nostro PC Linux:\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003elo: flags=73\u0026lt;UP,LOOPBACK,RUNNING\u0026gt;  mtu 65536\ninet 127.0.0.1  netmask 255.0.0.0\ninet6 ::1  prefixlen 128  scopeid 0x10\u003chost\u003e\nloop  txqueuelen 1000  (Local Loopback)\nRX packets 94260  bytes 151349678 (151.3 MB)\nRX errors 0  dropped 0  overruns 0  frame 0\nTX packets 94260  bytes 151349678 (151.3 MB)\nTX errors 0  dropped 0 overruns 0  carrier 0  collisions 0\u003c/p\u003e","title":"Come scoprire l'indirizzo internet del tuo PC"},{"content":"\nConvertire i numeri in stringhe con Python è una delle operazioni più comuni della scrittura di un programma, eppure in alcuni casi può suscitare perplessità e incertezze. Ad esempio I numeri posso essere interi o float (con virgola e numeri decimali) con diverse istruzioni per convertirli. Oggi parliamo velocemente dei più semplici, i numeri interi. Poichè non vengono usati quasi mai nei calcoli, ci concentriamo sul loro utiliizzo assieme alle stringhe. Le stringhe sono delle semplicissime sequenze di caratteri chiuse da delle virgolette e sono onnipresenti in tutti i linguaggi. Per usare dei numeri interi assieme alle stringhe bisogna convertirli in formato string e questo è possibile con la funzione: str(). Convertire i numeri in stringhe con Python usando str() print(str(3+1)) risultato = “4”. In Python, per fortuna, possiamo convertire non solo i numeri interi ma anche altri tipi di dati usando str(). str() è una funzione interna del linguaggio Python e perciò si può usare senza ricorrere ad una import di libreria. Convertire un numero intero in una stringa Proviamo a convertire il numero 87 in una stringa: basta semplicemente preporre “str(” prima del numero e chiudere la parentesi ”)” come in questo breve esempio: variabile = str(87) type(variabile) \u0026lt;strong\u003erisposta: \u0026lt;type 'str'\u0026gt; \u0026lt;/strong\u003e La funzione type() ci indica che abbiamo ottenuto correttamente un oggetto di tipo stringa. Come unire string e numeri interi Per ottenere delle frasi leggibili e di senso compiuto all’interno del nostro software, dobbiamo spesso mescolare numeri e parole. Non è un lavoro difficile, ma se sei all’inizio anche il prossimo breve esempio potrebbe lasciarti perplesso. La chiave per unire le stringhe fra loro è usare l’operatore ”+” ma se lo usi in modo sbagliato avrai questo risultato: porte = 4 auto = \"Ford\" print(\"Una \" + auto + \" a \" + porte + \" porte\") \u0026lt;strong\u003e**Traceback (most recent call last): File \"\u0026lt;stdin\u0026gt;\", line 1, in \u0026lt;module\u0026gt;\u0026lt;/strong\u003e \u0026lt;strong\u003eTypeError: cannot concatenate 'str' and 'int' objects** \u0026lt;/strong\u003e Per aggiustare il codice comunque basta convertire il numero intero in una stringa usando str(): \u0026nbsp; porte = 4 auto = \"Ford\" print(\"Una \" + auto + \" a \" + str(porte) + \" porte\") \u0026lt;strong\u003eUna Ford a 4 porte \u0026lt;/strong\u003e L’errore si nota facilmente confrontando la terza riga del primo riquadro e la terza riga del secondo. Puoi provare Python installandolo sul tuo computer, ti basta andare a questo indirizzo. \u0026nbsp; ","permalink":"https://www.robotdazero.it/blog/come-convertire-i-numeri-in-stringhe-con-python/","summary":"\u003cbr\u003e\n\u003cdiv\u003e\n  Convertire i numeri in stringhe con Python è una delle operazioni più comuni della scrittura di un programma, eppure in alcuni casi può suscitare perplessità e incertezze. Ad esempio I numeri posso essere interi o float (con virgola e numeri decimali) con diverse istruzioni per convertirli. Oggi parliamo velocemente dei più semplici, i numeri interi. \u003cspan style=\"font-size: 1rem;\"\u003ePoichè non vengono usati quasi mai nei calcoli, ci concentriamo sul loro utiliizzo assieme alle stringhe. Le stringhe sono delle semplicissime sequenze di caratteri chiuse da delle virgolette e sono onnipresenti in tutti i linguaggi.\u003c/span\u003e\n\u003c/div\u003e\n\u003cdiv class=\"cms mw6\"\u003e\n  \u003cstrong\u003e\u003cspan style=\"font-size: 1rem;\"\u003ePer usare dei numeri interi assieme alle stringhe bisogna convertirli in formato string e questo è possibile con la funzione: \u003c/span\u003estr()\u003cspan style=\"font-size: 1rem;\"\u003e.\u003c/span\u003e\u003c/strong\u003e\n\u003c/div\u003e\n\u003cdiv class=\"cms mw6\"\u003e\n  \u003ch2 id=\"la-funzione-str\"\u003e\n    Convertire i numeri in stringhe con Python usando str()\n  \u003c/h2\u003e\n  \u003cblockquote\u003e\n    \u003cp\u003e\n      print(str(3+1))\n    \u003c/p\u003e","title":"Come convertire i numeri in stringhe con Python"},{"content":"Arduino e i dispositivi ad alto assorbimento In molte applicazioni della Robotica ci troveremo ad usare dispositivi ad alto assorbimento, che richiedono correnti che i nostri controller possano pilotare. In questi casi, prima di passare ai relay dedicati potremo usare un transistor di media potenza come il TIP120.\nUno dei malintesi più comuni tra chi inizia con la microelettronica è la idea di pilotare motori elettrici, servocomandi o decine di Led usando solo le uscite di Arduino. Purtroppo questi e svariati altri dispositivi richiedono correnti e tensioni molto più alte di quelle erogabili da Arduino (40mA ~ 5.0V).\nSolo per fare un esempio, il piccolo motore elettrico che useremo in questo progetto richiede correnti di 500mA (milliampere) per potere funzionare: pensate alla corrente che sarebbe necessaria per spostare un cancello automatico! Detto questo, la soluzione ai problemi di corrente o tensione è davvero semplice: usare un transistor come interruttore o “switch”, e per questo compito non esiste nulla di meglio che usarne uno di tipo Darlington come ad esempio il TIP120.\nNon appena applichiamo una piccola tensione alla base di un transistor Darlington, il componente si attiva e permette alla corrente ad alto amperaggio di passare liberamente.\nSe vuoi approfondire la differenza tra corrente e tensione ti consiglio di leggere questo articolo del blog. Usando il TIP120 come un interruttore velocissimo, possiamo regolare la velocità del motorino usando la tecnica PWM o Modulazione a larghezza di impulso. Per applicare la PWM al nostro controller useremo la piccola tensione proveniente dal pin 9 di Arduino per attivare il Tip 120 in modo discontinuo. Con delle pause sempre più lunghe tra un impulso e l’altro possiamo rallentare la velocità del motorino, mentre con pause ridotte a zero possiamo mandarlo al massimo.\nNel circuito useremo anche un piccolo diodo, l\u0026rsquo;N4001 destinato a proteggere il transistor dalle correnti prodotte dal motorino quando, ad esempio, lo fai girare manualmente: il diodo serve appunto come una “conduttore a senso unico” e impedirà alle correnti parassite o in “reverse” di danneggiare il TIP120.\n👋 Il diodo N4001 è un diodo di tipo NPN, con una tensione di soglia di circa 0,7 V. Questo significa che, se la tensione applicata al diodo è inferiore a 0,7 V, il diodo non condurrà corrente. Se la tensione applicata al diodo è superiore a 0,7 V, il diodo inizierà a condurre corrente. La corrente che fluisce attraverso il diodo è proporzionale alla differenza di tensione tra le due estremità del diodo. Come proteggere un circuito dalle tensioni parassite Se un circuito è alimentato da una batteria, è possibile utilizzare un diodo N4001 per proteggere il circuito dalla tensione inversa della batteria. La batteria ha una tensione inversa di circa 2 V. Se la tensione inversa della batteria supera la tensione di soglia del diodo N4001, il diodo inizierà a condurre corrente. Questa corrente limiterà la tensione inversa applicata al circuito, proteggendolo da danni.\nUn altro modo per utilizzare un diodo N4001 per proteggere un circuito è di collegarlo in parallelo al circuito. In questo modo, il diodo si accenderà in caso di sovraccarico del circuito. Il sovraccarico può essere causato da un aumento della corrente o della tensione applicata al circuito. Quando il diodo si accende, limita la corrente che fluisce attraverso il circuito, proteggendolo da danni.\nEcco altri esempi specifici di come può essere utilizzato un diodo N4001 per proteggere un circuito:\nProtezione da tensione inversa: un diodo N4001 può essere utilizzato per proteggere un circuito alimentato da una batteria dalla tensione inversa della batteria. Protezione da sovraccarico di corrente: un diodo N4001 può essere utilizzato per proteggere un circuito da un sovraccarico di corrente. Protezione da sovraccarico di tensione: un diodo N4001 può essere utilizzato per proteggere un circuito da un sovraccarico di tensione. Perchè il pin 9 Useremo spesso il terminale 9 PWM di Arduino perchè rappresenta il pin PWM più facile da individuare sulla scheda: se guardi altri progetti vedrai come molti abbiano fatto la scelta, non per esigenze tecniche dunque, ma solo per comodità.\nLo schema del circuito Segui attentamente la disposizione dei connettori, studia la foto e potrai collegare Il TIP120 al tuo Arduino in pochi minuti.\nI collegamenti del \u0026ldquo;solo\u0026rdquo; Arduino VCC \u0026ndash;\u0026gt;|5V| E[Arduino] TIP-120 \u0026ndash;\u0026gt;|PIN 9| E[Arduino] GND \u0026ndash;\u0026gt;|GND| E[Scheda Arduino] Il codice completo int pinMotorino = 9; void setup() { Serial.begin(9600); pinMode(pinMotorino, OUTPUT); } void loop() { Serial.println(\u0026#34;Loop\u0026#34;); for(int x = 0; x \u0026lt;= 255; x++) analogWrite(pinMotorino, x); delay(20); } delay(1); } Fai copia e incolla nell\u0026rsquo;IDE di Arduino e quindi compila e fai l\u0026rsquo;upload programma. Dopo il reset dovresti sentire il motorino accelerare e rallentare ciclicamente\u0026hellip;\nRobotdazero.it - post - R.137.2.2.0\n","permalink":"https://www.robotdazero.it/blog/come-pilotare-un-motore-elettrico-usando-arduino/","summary":"\u003ch2 id=\"arduino-e-i-dispositivi-ad-alto-assorbimento\"\u003eArduino e i dispositivi ad alto assorbimento\u003c/h2\u003e\n\u003cp\u003eIn molte applicazioni della Robotica ci troveremo ad usare dispositivi ad alto assorbimento, che richiedono correnti che i nostri controller possano pilotare. In questi casi, prima di passare ai relay dedicati potremo usare un transistor di media potenza come il TIP120.\u003c/p\u003e\n\u003cbr\u003e\n\u003cblockquote\u003e\n\u003cp\u003eUno dei malintesi più comuni tra chi inizia con la microelettronica è la idea di pilotare motori elettrici, servocomandi o decine di Led usando solo le uscite di Arduino. Purtroppo questi e svariati altri dispositivi richiedono correnti e tensioni molto più alte di quelle erogabili da Arduino (40mA ~ 5.0V).\u003c/p\u003e","title":"Come pilotare un motore elettrico usando Arduino"},{"content":"\nQuesto documento descrive la installazione completa di Kaspian sul tuo server personale.\nCosa serve prima di iniziare Server Linux ospitato su Linode, Digital Ocean, Amazon AWS o simili Coppia di chiavi SSH per accedere a Github dal terminale di Linux Git installato sul server Linux Account attivo su Github Details Git è il software più usato per il controllo e il download dei programmi in versione sorgente. Github e Gitlab prendono il nome da questo tool, in alternativa poreste usare il comando wget per scaricare i file zippati da Terminale.\nCome installare la nostra piattaforma sul vostro server Linux Kaspian funziona con la tecnologia a microkernel e si appoggia a docker e docker-compose: è necessario installare entrambi i tools per poi lanciare le routine di build\nCome installare Docker e docker-compose sudo apt update sudo apt install apt-transport-https ca-certificates curl software-properties-common` curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo \u0026#34;deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable\u0026#34; | sudo tee /etc/apt/sources.list.d/docker.list \u0026gt; /dev/null sudo apt update apt-cache policy docker-ce mkdir -p ~/.docker/cli-plugins/ curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-composee $ chmod +x ~/.docker/cli-plugins/docker-compose $ curl -SL https://github.com/docker/compose/releases/download/v2.3.3/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-composee Infine si deve installare il pacchetto di Docker\n$ sudo apt install docker-ce Docker adesso dovrebbe essere installato con il daemon attivo e settato per ripartire in automatico dopo ogni reboot. Per controllare basta eseguire:\n$ sudo systemctl status docker e dovrebbe apparire un output del tipo 👉\ndocker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-07-04 09:51:25 UTC; 1 weeks 0 days ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 747 (dockerd) Tasks: 92 Memory: 84.9M CGroup: /system.slice/docker.service ├─ 747 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ├─ 1018 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.19.0.2 -container-port 9000 ├─ 1022 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 9000 -container-ip 172.19.0.2 -container-port 9000 ├─ 1079 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8004 -container-ip 172.19.0.2 -container-port 8004 ├─ 1091 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8004 -container-ip 172.19.0.2 -container-port 8004 ├─ 8370 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 443 -container-ip 172.18.0.8 -container-port 443 ├─ 8375 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 443 -container-ip 172.18.0.8 -container-port 443 ├─ 8390 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 80 -container-ip 172.18.0.8 -container-port 80 ├─ 8395 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 80 -container-ip 172.18.0.8 -container-port 80 ├─921235 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8005 -container-ip 172.18.0.11 -container-port 8005 └─921240 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8005 -container-ip 172.18.0.11 -container-port 8005\u0026#34; /\u0026gt;}} Per le vedere le opzioni dispinbili basta scrivere:\n$ docker docker-subcommand --help e per le impostazione di sistema:\n$ docker info Docker è disponibile in varie versioni e potete selezionare la più aggiornata in questa pagina del sito.\nInstallare docker-compose Per installare docker-compose oltre a Docker funzionante serve:\ngit clone https://github.com/h-enk/doks-child-theme.git my-doks-site Starter theme Intended for intermediate to advanced users Intended for major customizations git clone https://github.com/h-enk/doks.git my-doks-site Details Not sure which one is for you? Pick the child theme.\nFare il rebuild di Kaspian con Docker docker-compose down docker-compose rm -f docker-compose pull docker-compose up --build -d docker-compose logs -f Installare le librerie JS npm install Controllare la installazione La creazione della piattaforma è gestita interamente con docker, ma prima di collegare sensori e altro è necessario testare il sistema, in particolare il software di cache REDIS e il database Postgres.\ndocker ps se tutto il sitema è stato installato correttamente dovrebbe qualcosa di simile a questo:\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 8b3ad08c73aa k4_celery-beat \u0026#34;/code/docker-entryp…\u0026#34; 2 hours ago Up 2 hours 8005/tcp k4_celery-beat_1 f72c057c6b70 k4_celery \u0026#34;/code/docker-entryp…\u0026#34; 2 hours ago Up 2 hours 8005/tcp k4_celery_1 8db42dcf3304 k4_app \u0026#34;/code/docker-entryp…\u0026#34; 2 hours ago Up 2 hours 0.0.0.0:8005-\u0026gt;8005/tcp, :::8005-\u0026gt;8005/tcp k4_app_1 5d6d7a3149ed postgres:9.6 \u0026#34;docker-entrypoint.s…\u0026#34; 2 hours ago Up 2 hours 5432/tcp k4_db_1 31b16a25b5e0 redis:3.0 \u0026#34;docker-entrypoint.s…\u0026#34; 2 hours ago Up 2 hours 6379/tcp ","permalink":"https://www.robotdazero.it/docs/piattaforma/quick-start/","summary":"\u003cbr\u003e\n\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/docs/piattaforma/quick-start/header.png\"\u003e\u003c/p\u003e\n\u003cp\u003eQuesto documento descrive la installazione completa di Kaspian sul tuo server personale.\u003c/p\u003e\n\u003ch2 id=\"cosa-serve-prima-di-iniziare\"\u003eCosa serve prima di iniziare\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eServer Linux ospitato su Linode, Digital Ocean, Amazon AWS o simili\u003c/li\u003e\n\u003cli\u003eCoppia di chiavi SSH per accedere a Github dal terminale di Linux\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://git-scm.com/\"\u003eGit\u003c/a\u003e installato sul server Linux\u003c/li\u003e\n\u003cli\u003eAccount attivo su \u003ca href=\"https://www.github.com/\"\u003eGithub\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003cdetails\u003e\n  \u003csummary\u003eDetails\u003c/summary\u003e\n  \u003cp\u003e\u003ca href=\"https://www.robotdazero.it/blog/perch%C3%A8-usare-il-programma-git/\" target=\"_blank\" rel=\"noopener\"\u003eGit\u003c/a\u003e è il software più usato per il controllo e il download dei programmi in versione sorgente. Github e Gitlab prendono il nome da questo tool, in alternativa poreste usare  il comando \u003ca href=\"https://en.wikipedia.org/wiki/Wget\" target=\"_blank\" rel=\"noopener\"\u003ewget\u003c/a\u003e per scaricare i file zippati da Terminale.\u003c/p\u003e","title":"Quick Start"},{"content":"\nPuoi preparare da solo la tua infrastruttura per far funzionare la nostra piattaforma ma ti suggeriamo di partire con la versione ospitata sui nostri computer che puoi richiedere gratuitamente visitando questa pagina.\nCosa accade al primo accesso Con la nostra versione cloud puoi partire senza installare il programma e in pochi minuti potrai leggere sulla App i dati dei tuoi sensori. La App è compatibile con ogni Arduino dotato di accesso al WIFI e con ESP32 (tutte le versioni).\nCosa bisogna impostare nelle opzioni per partire Usando le credenziali che riceverai via email dovrai accedere alla App dal tuo PC e andare subito alla pagina delle impostazioni, premere modifica e inserire le credenziali della tua WIFI (SSID e password). Dopo avere premuto \u0026ldquo;AGGIORNA\u0026rdquo; la nostra App dovrebbe apparire come nella immagine sotto. Il resto della configurazione, le API e le password dei servizi associati sono invece inserite automaticamente da noi.\nCome programmare il tuo Arduino Appena inserite le credenziali WIFI puoi andare nella HOME della App Kaspian cliccando sul logo:\ne cliccare su \u0026ldquo;CREA IL SORGENTE PER ARDUINO\u0026rdquo;.Verrà creato un file dal nome \u0026ldquo;arduino.setup\u0026rdquo; che potrai scaricare nella cartella di download. Ti basterà copiare il contenuto del file in un programma per Arduino IDE e procedere con il solito ciclo di compilazione / upload.\nI files contengono le tue credenziali WIFI da te impostate e le credenziali per Amazon AWS. Le foto scattate dalle tue WebCAM saranno conservate sul sistema ad alta sicurezza Amazon S3, mentre i dati numerici saranno conservati su MQTT, il database Amazon per applicazioni IOT.\nFatto questo devi aspettare almeno cinque minuti e potrai andare nel client della App Kaspian sul tuo telefonino, ad esempio e visualizzare i dati dei sensori nella pagina \u0026ldquo;Sorveglianza\u0026rdquo;.\n","permalink":"https://www.robotdazero.it/docs/piattaforma/cloud/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/docs/piattaforma/cloud/header.png\"\u003e\u003c/p\u003e\n\u003cp\u003ePuoi preparare da solo la tua infrastruttura per far funzionare la nostra piattaforma ma ti suggeriamo di partire con la versione ospitata sui nostri computer che puoi richiedere gratuitamente visitando questa \u003ca href=\"/docs/piattaforma/trial/\"\u003epagina\u003c/a\u003e.\u003c/p\u003e\n\u003ch3 id=\"cosa-accade-al-primo-accesso\"\u003eCosa accade al primo accesso\u003c/h3\u003e\n\u003cp\u003eCon la nostra versione cloud puoi partire senza installare il programma e in pochi minuti potrai leggere sulla App i dati dei tuoi sensori.  La App è compatibile con ogni Arduino dotato di accesso al WIFI e con ESP32 (tutte le versioni).\u003c/p\u003e","title":"La piattaforma in cloud"},{"content":" 💡 Ubuntu richiede il comando `sudo` per eseguire codice con i permessi di root! Flake8 Per controllare il sorgente Python con flake8:\nfile: server-check-code.sh\nflake8 \u0026gt; /tmp/linter prospector \u0026gt;\u0026gt; /tmp/linter vi /tmp/linter Pulire il disco Per pulire il disco dalle immagine inutilizzate di Docker:\nfile: server-clean-disk.sh\necho \u0026#34;** Use carefully, answer \u0026#39;N\u0026#39; if you are unsure\u0026#34; docker system prune --filter \u0026#34;until=24h\u0026#34; --filter \u0026#34;label!=keep\u0026#34; Creare i dati iniziali Per creare i dati iniziali per la piattaforma:\nfile: server-make-initial-data.sh\n# python manage.py dumpdata --natural-foreign --natural-primary -e contenttypes -e auth.Permission --indent 2 \u0026gt; ./kaspianapp/base/fixtures/kaspianapp.json INSTANCE=\u0026#34;$( docker ps | grep k4_app | awk \u0026#39;NR==1{print $1}\u0026#39;)\u0026#34; echo $INSTANCE docker exec -i $INSTANCE /venv/bin/python \\ manage.py dumpdata \\ auth.user \\ auth.group \\ wagtailusers.userprofile \\ wagtailimages.image \\ wagtailimages.rendition \\ wagtailimages.uploadedimage \\ wagtaildocs.document \\ mapi \\ --natural-foreign \\ --natural-primary \\ -e contenttypes \\ -e auth.Permission \\ --indent 2 \u0026gt; kaspianapp/base/fixtures/kaspianapp.json Caricare i dati iniziali: file: server-load-initial-data.sh\nNSTANCE=\u0026#34;$( docker ps | grep k4_app | awk \u0026#39;NR==1{print $1}\u0026#39;)\u0026#34; echo $INSTANCE docker exec -i $INSTANCE /venv/bin/python manage.py loaddata kaspianapp/base/fixtures/kaspianapp.json Per rilanciare il server Django file: server-restart.sh\nNSTANCE=\u0026#34;$( docker ps | grep k4_app | awk \u0026#39;NR==1{print $1}\u0026#39;)\u0026#34; echo $INSTANCE docker exec -i $INSTANCE /venv/bin/python manage.py loaddata kaspianapp/base/fixtures/kaspianapp.json Per far ripartire il server senza fare il rebuild completo: file: server-start.sh\ndocker-compose pull docker-compose up --build -d docker-compose logs -f Per settare i permessi delle directory: file: server-set-permissions.sh\nsudo chmod ugo+rw ~/docker/kaspian-media/ ","permalink":"https://www.robotdazero.it/docs/piattaforma/commands/","summary":"\u003cdiv class=\"alert alert-doks d-flex\" role=\"alert\"\u003e\n  \u003cdiv class=\"flex-shrink-1 alert-icon\"\u003e💡 \u003c/div\u003e\n  \n    \u003cdiv class=\"w-100\"\u003eUbuntu richiede il comando `sudo` per eseguire codice con i permessi di root! \u003c/div\u003e\n  \n\u003c/div\u003e\n\n\u003ch2 id=\"flake8\"\u003eFlake8\u003c/h2\u003e\n\u003cp\u003ePer controllare il sorgente Python con flake8:\u003c/p\u003e\n\u003cp\u003efile: \u003cstrong\u003eserver-check-code.sh\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eflake8 \u0026gt; /tmp/linter\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eprospector \u0026gt;\u0026gt; /tmp/linter\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003evi /tmp/linter\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"pulire-il-disco\"\u003ePulire il disco\u003c/h2\u003e\n\u003cp\u003ePer pulire il disco dalle immagine inutilizzate di Docker:\u003c/p\u003e\n\u003cp\u003efile: \u003cstrong\u003eserver-clean-disk.sh\u003c/strong\u003e\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003eecho \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;** Use carefully, answer \u0026#39;N\u0026#39; if you are unsure\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003edocker system prune --filter \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;until=24h\u0026#34;\u003c/span\u003e --filter \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;label!=keep\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"creare-i-dati-iniziali\"\u003eCreare i dati iniziali\u003c/h2\u003e\n\u003cp\u003ePer creare i dati iniziali per la piattaforma:\u003c/p\u003e","title":"Comandi principali"},{"content":" 💡 Learn more about semantic versioning and advanced range syntax. Check for outdated packages The npm outdated command will check the registry to see if any (or, specific) installed packages are currently outdated:\nnpm outdated [[\u0026lt;@scope\u0026gt;/]\u0026lt;pkg\u0026gt; ...] Update packages The npm update command will update all the packages listed to the latest version (specified by the tag config), respecting semver:\nnpm update [\u0026lt;pkg\u0026gt;...] ","permalink":"https://www.robotdazero.it/docs/piattaforma/update/","summary":"\u003cdiv class=\"alert alert-doks d-flex\" role=\"alert\"\u003e\n  \u003cdiv class=\"flex-shrink-1 alert-icon\"\u003e💡 \u003c/div\u003e\n  \n    \u003cdiv class=\"w-100\"\u003eLearn more about \u003ca href=\"https://docs.npmjs.com/about-semantic-versioning\"\u003esemantic versioning\u003c/a\u003e and \u003ca href=\"https://docs.npmjs.com/cli/v6/using-npm/semver#advanced-range-syntax\"\u003eadvanced range syntax\u003c/a\u003e. \u003c/div\u003e\n  \n\u003c/div\u003e\n\n\u003ch2 id=\"check-for-outdated-packages\"\u003eCheck for outdated packages\u003c/h2\u003e\n\u003cp\u003eThe \u003ca href=\"https://docs.npmjs.com/cli/v7/commands/npm-outdated\"\u003e\u003ccode\u003enpm outdated\u003c/code\u003e\u003c/a\u003e command will check the registry to see if any (or, specific) installed packages are currently outdated:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm outdated \u003cspan style=\"color:#f92672\"\u003e[[\u003c/span\u003e\u0026lt;@scope\u0026gt;/\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\u0026lt;pkg\u0026gt; ...\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003ch2 id=\"update-packages\"\u003eUpdate packages\u003c/h2\u003e\n\u003cp\u003eThe \u003ca href=\"https://docs.npmjs.com/cli/v7/commands/npm-update\"\u003e\u003ccode\u003enpm update\u003c/code\u003e\u003c/a\u003e command will update all the packages listed to the latest version (specified by the tag config), respecting semver:\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-bash\" data-lang=\"bash\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003enpm update \u003cspan style=\"color:#f92672\"\u003e[\u003c/span\u003e\u0026lt;pkg\u0026gt;...\u003cspan style=\"color:#f92672\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e","title":"Come aggiornare"},{"content":" Costruisci il profondimetro in KIT HW103 e avrai a disposizione un vero prodotto industriale da sfruttare per il tuo business.\nScegli la professione del futuro in offerta a soli €139.00 - puoi pagare in 3 rate con Paypal o Klarna! Il software è totalmente gratuito (link) e la realizzazione del KIT alla portata di una persona con 3 mesi di esperienza nella microelettronica. L\u0026rsquo;intero progetto è disponibile in scatola di montaggio con tutti i componenti, compresa la scatola semi-impermeabile in ABS e la minuteria per il montaggio. Permette di controllare mediante ultrasuoni il livello di ogni liquido fino alla profondità di 4 mt. La sonda a ultrasuoni è in resina impermeabile e resiste ai liquidi leggermente corrosivi. Il diametro della sonda è pari a 2.52 cm, perfetto per tubi e manicotti da un pollice (standard industriale) con gioco di 1 mm da sigillare con silicone neutro. Elenco dei componenti I componenti contrassegnati con il simbolo della chiave sono originali Robotdazero e puoi acquistarli singolarmente nel nostro ecommerce A. Modulo display seriale LCD 16X2 blu con retroilluminazione (pz 1) B. Scheda sviluppo ESP-WROOM-32 (pz 1) C. Sensore ad ultrasuoni impermeabile ANGEEK JSN-SR04T (pz 1) D. Potenziometro 5 KOhm (pz 1) E. Alimentatore USB da muro 2 Porte 5V/2.1A (pz 1) F. 🔑 Circuito stampato multifunzione “orange” (pz 1) G. Cavo connessione USB \u0026ldquo;basic\u0026rdquo; tipo B per ESP32 (pz 1) H. Mammut bianchi (pz 2) I. Matassa fili per bassa tensione \u0026lt;12V (mt.2) L. 🔑 Cornice impermeabile \u0026ldquo;3D Printed\u0026rdquo; in PETG per display LCD (pz 1) M. Scatola Derivazione Esterna dim. 30x22x12cm (pz 1) Acquistalo adesso Puoi pagare con carta di credito oppure in tre rate con Paypal e Klarna.\nAcquista Il kit completamente assemblato senza copertura Il retro del display LCD 16x2 montato sul case ","permalink":"https://www.robotdazero.it/docs/hardware/profondimetro/","summary":"\u003cimg width=\"800\" class=\"x figure-img img-fluid lazyload blur-up\"  src=\"images/102.jpg\" alt=\"\"\u003e\n\u003ch3 id=\"costruisci-il-profondimetro-in-kit-hw103\"\u003eCostruisci il profondimetro in KIT HW103\u003c/h3\u003e\n\u003cp\u003ee avrai a disposizione un vero prodotto industriale da sfruttare per il tuo business.\u003c/p\u003e\n\u003ch3 id=\"scegli-la-professione-del-futuro\"\u003eScegli la professione del futuro\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ein offerta a soli €139.00 - puoi pagare in 3 rate con Paypal o Klarna!\u003c/li\u003e\n\u003cli\u003eIl software è totalmente gratuito (\u003ca href=\"https://github.com/sebadima/corso-esp32-profondimetro-digitale/blob/main/src/main.ino\" target=\"_blank\"\u003elink\u003c/a\u003e) e la realizzazione del KIT alla portata di una persona con 3 mesi di esperienza nella microelettronica.\u003c/li\u003e\n\u003cli\u003eL\u0026rsquo;intero progetto è disponibile in scatola di montaggio con tutti i componenti, compresa la scatola semi-impermeabile in ABS e la minuteria per il montaggio. Permette di controllare mediante ultrasuoni il livello di ogni liquido fino alla profondità di 4 mt.\u003c/li\u003e\n\u003cli\u003eLa sonda a ultrasuoni è in resina impermeabile e resiste ai liquidi leggermente corrosivi. Il diametro della sonda è pari a 2.52 cm, perfetto per tubi e manicotti da un pollice (standard industriale) con gioco di 1 mm da sigillare con silicone neutro.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"elenco-dei-componenti\"\u003eElenco dei componenti\u003c/h3\u003e\n\u003ch5\u003eI componenti contrassegnati con il simbolo della chiave sono originali Robotdazero e puoi acquistarli singolarmente nel nostro \u003ca href=\"/docs/ecommerce/\"\u003eecommerce\u003c/a\u003e\u003c/h5\u003e\n\u003cul\u003e\n\u003cli\u003eA. Modulo display seriale LCD 16X2 blu con retroilluminazione (pz 1)\u003c/li\u003e\n\u003cli\u003eB. Scheda sviluppo ESP-WROOM-32 (pz 1)\u003c/li\u003e\n\u003cli\u003eC. Sensore ad ultrasuoni impermeabile ANGEEK JSN-SR04T (pz 1)\u003c/li\u003e\n\u003cli\u003eD. Potenziometro 5 KOhm (pz 1)\u003c/li\u003e\n\u003cli\u003eE. Alimentatore USB da muro 2 Porte 5V/2.1A (pz 1)\u003c/li\u003e\n\u003cli\u003eF. 🔑 \u003ca href=\"/docs/ecommerce/multifunzione\"\u003eCircuito stampato\u003c/a\u003e multifunzione “orange” (pz 1)\u003c/li\u003e\n\u003cli\u003eG. Cavo connessione USB \u0026ldquo;basic\u0026rdquo; tipo B per ESP32 (pz 1)\u003c/li\u003e\n\u003cli\u003eH. Mammut bianchi (pz 2)\u003c/li\u003e\n\u003cli\u003eI. Matassa fili per bassa tensione \u0026lt;12V (mt.2)\u003c/li\u003e\n\u003cli\u003eL. 🔑 \u003ca href=\"/docs/ecommerce/cornice-display\"\u003eCornice\u003c/a\u003e impermeabile \u0026ldquo;3D Printed\u0026rdquo; in PETG per display LCD (pz 1)\u003c/li\u003e\n\u003cli\u003eM. Scatola Derivazione Esterna dim. 30x22x12cm (pz 1)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"acquistalo-adesso\"\u003eAcquistalo adesso\u003c/h3\u003e\n\u003cp\u003ePuoi pagare con carta di credito oppure in tre rate con Paypal e Klarna.\u003c/p\u003e","title":"Profondimetro Digitale"},{"content":"\nSe sei qui perché il tuo ESP32 crasha dopo 48 ore o perde dati al riavvio, ecco lo schema elettrico di come abbiamo risolto con la FRAM.\nIl Notaio Digitale che rende obsoleta la solita SD-Card TARGET_CPU\nESP32-WROVER-E STORAGE_TECH\nFRAM (ZERO_SD) SURGE_PROTECTION\nPASS (14.89V) Se pensi che l’IoT sia fatto di breadboard e cavetti Dupont, sei nel posto sbagliato. Il Sentinel Node V3.5 non è un termometro smart; è un asset industriale progettato con una sola ossessione: il determinismo. In un mondo dove \u0026ldquo;pazienza\u0026rdquo; e \u0026ldquo;speranza\u0026rdquo; sono i fallimenti dell\u0026rsquo;ingegneria conservativa, noi rispondiamo con la fisica e l\u0026rsquo;elettronica bruta.\nLe schede SD sono una malattia dei sistemi embedded. Si corrompono, si usurano e falliscono quando l\u0026rsquo;ispettore HACCP bussa alla porta. Nel Sentinel Node V3.5, le SD sono bandite. L\u0026rsquo;archiviazione è affidata esclusivamente a memorie FRAM (MB85RC256V).\nPerché? Scritture praticamente infinite, latenza zero e nessuna dipendenza dal file system. Il dato viene notarizzato istantaneamente. Se salta la corrente, il dato è già lì, blindato. Un caseificio non è un ufficio; è un campo di battaglia elettromagnetico. Per far sopravvivere l\u0026rsquo;ESP32-WROVER-E, abbiamo implementato una protezione a cipolla che schernisce gli spike industriali:\nI diodi P6KE15A taglia i transitori distruttivi prima che tocchino la logica, mentre i diodi 1N5822 (Schottky) isolano i rami dei sensori. Se un cavo va in corto, il resto della centralina continua a fatturare. Inoltre 1N4148 funzions come filtro Logico sui GPIO per eliminare i \u0026ldquo;latch-up\u0026rdquo; e i freeze software inspiegabili\nSetup (200€): L\u0026rsquo;hardware è un asset in comodato d\u0026rsquo;uso. Noi manteniamo il controllo del perimetro, tu hai la garanzia del funzionamento.\nCanone (25€/mese): Il profitto è nel dato ricorrente, non nel margine sul singolo componente. Digitalizziamo l\u0026rsquo;HACCP con firma SHA-256 e ML predittivo. Se il compressore sta cedendo, lo sai prima che il prodotto diventi scarto.\nEfficienza Termica e Stabilità a 12V Operare a 12V nominali non è un caso. Ridurre il delta di tensione per lo step-down MP1584EN significa meno calore dissipato in box stagni IP65. Utilizziamo componenti assiali montati \u0026ldquo;alti\u0026rdquo; sulla PCB (3mm dai reofori): i piedini agiscono come radiatori naturali, dissipando lo stress termico nell\u0026rsquo;aria ed evitando di \u0026ldquo;cuocere\u0026rdquo; la FRAM o il microcontrollore.\nLocal-First Resilience La centralina è autonoma. Grazie all\u0026rsquo;RTC DS3231, i timestamp sono certi anche offline. Il protocollo prevede un handshake ACK con Django: il buffer FRAM viene svuotato solo quando il server conferma la ricezione del dato. Niente cloud-dipendenza per le logiche di controllo (MOSFET isolati per pompe e ventole): la sicurezza operativa è locale, la comodità è remota.\nAnalisi della risposta in frequenza del filtro di ingresso. Simulazione dell\u0026rsquo;impatto degli spike generati dai motori sulla linea DC. Validazione del tempo di commutazione degli optoisolatori di protezione. Vista interna del montaggio reale dei componenti nel box IP65.\nIl software Open Source È possibile implementare autonomamente il monitoraggio in tempo reale dei propri sensori e la registrazione dei dati conformi alle normative, senza costi aggiuntivi. Puoi usare gratuitamente il nostro software open source descritto in questo articolo, progettato e testato per ESP32 e Raspberry Pi 3/5.\nEssendo un programma O.S. puoi personalizzare i codici sorgente per collegare i tuoi sensori e replicare a costo zero la nostra centralina Sentinel.\nIn questo modo, potrai realizzare una soluzione \u0026ldquo;self-hosted\u0026rdquo;, sicura e con il pieno controllo dei tuoi dati, senza dipendenze esterne. Il Sentinel Node V3.5 è la fine del debito tecnico cartaceo. Mentre gli altri compilano registri a mano sperando nella clemenza degli ispettori, i nostri clienti esibiscono log notarizzati e in formato CSV.\n64,2026-03-06 11:46:16,-18.53,4.76,77.6,101326.0 65,2026-03-06 11:46:31,-17.2,4.98,75.4,101238.0 66,2026-03-06 11:46:46,-18.08,4.51,78.6,101422.0 67,2026-03-06 11:47:01,-17.26,3.92,75.3,101226.0 68,2026-03-06 12:47:45,-18.49,3.95,77.9,1013.47 69,2026-03-06 12:48:00,-18.17,4.17,82.5,1013.79 70,2026-03-06 12:48:15,-18.89,4.02,77.1,1012.59 71,2026-03-06 12:48:30,-17.32,3.17,81.9,1012.38 72,2026-03-06 12:48:45,-17.65,3.36,79.7,1012.47 73,2026-03-06 12:49:00,-17.38,3.52,81.1,1014.15 74,2026-03-06 12:49:15,-17.32,3.96,78.2,1014.06 75,2026-03-06 12:49:30,-18.43,3.03,75.1,1013.26 76,2026-03-06 12:49:45,-17.51,3.09,81.8,1013.91 77,2026-03-06 12:50:00,-18.22,3.02,81.1,1014.23 78,2026-03-06 12:50:15,-17.05,3.65,81.7,1012.57 79,2026-03-06 12:50:30,-18.1,4.41,81.1,1013.91 80,2026-03-06 12:50:45,-18.77,3.68,79.7,1013.94 81,2026-03-06 12:51:20,-18.16,13.54,76.0,1013.39 82,2026-03-06 12:51:35,-17.76,13.87,83.4,1012.95 83,2026-03-06 12:51:50,-18.25,13.37,76.2,1012.96 84,2026-03-06 12:52:05,-17.02,13.31,84.5,1013.37 85,2026-03-06 12:52:20,-18.01,13.13,79.0,1014.21 86,2026-03-06 12:52:35,-18.46,14.77,80.0,1012.95 87,2026-03-06 12:52:50,-17.23,13.74,76.5,1013.24 REF: SRC_CODE_V3.5 SENTINEL NODE V3.5 Sorgenti firmware e documentazione hardware\nGET REPOSITORY La nostra ARCHITETTURA SAAS: Monitoraggio on line della Azienda L\u0026rsquo;integrazione tra la centralina polivalente e l\u0026rsquo;infrastruttura Cloud trasforma l\u0026rsquo;hardware in un generatore di valore continuo. Non si tratta di una semplice dashboard, ma di un sistema di notarizzazione distribuito.\n1. Resilienza dell\u0026rsquo;Architettura: Il Modello \u0026ldquo;Local-First\u0026rdquo; La vera resilienza di un SaaS industriale non risiede nella stabilità della connessione, ma nella capacità di gestire l\u0026rsquo;assenza di essa.\nBuffer Distribuito: Grazie alla filosofia FRAM + Django, il sistema non teme i blackout di rete. La centralina accumula i dati localmente e attende l\u0026rsquo;Handshake ACK dal server prima di liberare la memoria fisica. Disaccoppiamento (Decoupling): Il backend è separato dalla logica di ricezione. Anche se la dashboard web è in manutenzione, i worker asincroni (Celery/Redis) processano i dati in arrivo, garantendo che nessun log vada perso. 2. Visualizzazione Real-Time: Decisioni basate sui Dati Visualizzare grafici in tempo reale significa trasformare il rumore elettrico in informazioni decisionali immediate.\nLatenza Zero (AJAX/WebSockets): La dashboard aggiorna i widget senza ricaricare la pagina, permettendo di monitorare transitori critici (es. picchi di carico) istantaneamente. Integrità del Segnale: Il dato viene processato da filtri software che eliminano gli spike EMI (interferenze), mostrando solo la realtà fisica del processo. Analisi Multi-Layer: Possibilità di sovrapporre i dati di più sensori per identificare correlazioni nascoste (es. cali di tensione all\u0026rsquo;attivazione di un attuatore). 3. Utilità Strategica: Da Reattivo a Predittivo Il modello SaaS sposta l\u0026rsquo;azienda dal \u0026ldquo;riparare il guasto\u0026rdquo; al \u0026ldquo;prevenire il fermo macchina\u0026rdquo;.\nNotarizzazione Immutabile: Ogni punto del grafico è associato a un hash SHA-256. In caso di contestazione o ispezione, esiste la prova matematica che il dato non è stato alterato. Soglie Dinamiche: Regole intelligenti che monitorano la pendenza del trend. Se una variabile accelera troppo velocemente, il sistema invia una notifica push prima del superamento della soglia critica. Accessibilità Universale: VPN criptata e interfaccia responsive per monitorare l\u0026rsquo;impianto da mobile, con controllo manuale degli attuatori protetto da token JWT. REGOLA D\u0026rsquo;ORO: L\u0026rsquo;hardware garantisce la sopravvivenza fisica, il SaaS garantisce il valore economico del dato.\nDashboard della nostra app di monitoraggio sensori on line\nAPPENDICE: PROTOCOLLO DI NOTARIZZAZIONE SENTINEL-DJANGO Il valore del Sentinel Node non è nel dato grezzo, ma nella sua immutabilità. Il workflow segue una logica di \u0026ldquo;Trustless Ingestion\u0026rdquo; tra l\u0026rsquo;hardware e il backend.\n1. Estrazione e Firma Locale (ESP32 + FRAM) Ogni pacchetto di log (es. 256 byte di letture ADC) viene firmato prima dell\u0026rsquo;invio:\nBuffer: Il microcontrollore legge i dati dalla FRAM MB85RC256V, eliminando ogni rischio di corruzione tipico delle SD-Card. Hashing: Viene generato un hash SHA-256 del payload. Secret: L\u0026rsquo;hash include una chiave univoca (Unique Device ID) salvata nell\u0026rsquo;area protetta della Flash dell\u0026rsquo;ESP32. 2. Handshake mTLS e Bulk Upload Il trasferimento avviene solo via mTLS secured REST API:\nHandshake ACK: Il Sentinel Node invia il pacchetto; se il server risponde con 201 Created e l\u0026rsquo;hash di conferma, il puntatore della FRAM viene avanzato. Resilienza: Se la connessione fallisce, la FRAM mantiene il dato indefinitamente. Nessun dato viene perso nel \u0026ldquo;vuoto\u0026rdquo; del cloud. 3. Verifica Integrità lato Server (Django) Il backend Django non si limita a salvare il dato, lo valida:\nRe-Hashing: Il server ricalcola lo SHA-256 del payload ricevuto. Matching: Se l\u0026rsquo;hash ricalcolato non coincide con quello inviato dal nodo, il log viene marcato come CORRUPTED_OR_TAMPERED e scatta l\u0026rsquo;alert immediato. Database Immortale: Una volta validato, il dato viene salvato con un timestamp certificato dall\u0026rsquo;RTC DS3231 locale, garantendo valore legale anche in caso di sfasamento dell\u0026rsquo;orologio di sistema. NOTA PER LE ISPEZIONI: Qualsiasi tentativo di modificare i dati nel database sarà rilevabile dal disallineamento degli hash di controllo incrociati.\nREF: SRC_CODE_V3.5 SENTINEL NODE V3.5 Sorgenti firmware e documentazione hardware\nGET REPOSITORY ","permalink":"https://www.robotdazero.it/docs/hardware/sentinel/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/docs/hardware/sentinel/header.jpg\"\u003e\u003c/p\u003e\n\u003chr\u003e\n\u003cp\u003e\u003cstrong\u003eSe sei qui perché il tuo ESP32 crasha dopo 48 ore o perde dati al riavvio, ecco lo schema elettrico di come abbiamo risolto con la FRAM.\u003c/strong\u003e\u003c/p\u003e\n\u003ctable style=\"border: none; border-collapse: collapse; border-spacing: 0;\"\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/sebadima/robotdazero-docs/releases\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/version-v3.5-orange?style=flat-square\" alt=\"Version\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/sebadima/robotdazero-docs/discussions\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/chat-Discussions-yellowgreen?style=flat-square\u0026logo=github\" alt=\"Discussions\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n    \u003ctd\u003e\n      \u003ca href=\"https://github.com/sebadima/robotdazero-docs/wiki\"\u003e\n        \u003cimg src=\"https://img.shields.io/badge/docs-Wiki-blue?style=flat-square\" alt=\"Wiki\"\u003e\n      \u003c/a\u003e\n    \u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003ch2 id=\"il-notaio-digitale-che-rende-obsoleta-la-solita-sd-card\"\u003eIl Notaio Digitale che rende obsoleta la solita SD-Card\u003c/h2\u003e\n\u003cdiv class=\"sentinel-header-specs\" style=\"display: flex; gap: 20px; margin-bottom: 30px; font-family: 'Courier New', monospace;\"\u003e\n    \u003cdiv class=\"spec-card\" style=\"border-left: 4px solid #00ff00; padding-left: 10px;\"\u003e\n        \u003cspan style=\"font-size: 0.8em; color: #888;\"\u003eTARGET_CPU\u003c/span\u003e\u003cbr\u003e\n        \u003cstrong\u003eESP32-WROVER-E\u003c/strong\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"spec-card\" style=\"border-left: 4px solid #00ff00; padding-left: 10px;\"\u003e\n        \u003cspan style=\"font-size: 0.8em; color: #888;\"\u003eSTORAGE_TECH\u003c/span\u003e\u003cbr\u003e\n        \u003cstrong\u003eFRAM (ZERO_SD)\u003c/strong\u003e\n    \u003c/div\u003e\n    \u003cdiv class=\"spec-card\" style=\"border-left: 4px solid #ff0000; padding-left: 10px;\"\u003e\n        \u003cspan style=\"font-size: 0.8em; color: #888;\"\u003eSURGE_PROTECTION\u003c/span\u003e\u003cbr\u003e\n        \u003cstrong\u003ePASS (14.89V)\u003c/strong\u003e\n    \u003c/div\u003e\n\u003c/div\u003e\n\u003cp\u003eSe pensi che l’IoT sia fatto di breadboard e cavetti Dupont, sei nel posto sbagliato. Il Sentinel Node V3.5 non è un termometro smart; è un asset industriale progettato con una sola ossessione: il determinismo. In un mondo dove \u0026ldquo;pazienza\u0026rdquo; e \u0026ldquo;speranza\u0026rdquo; sono i fallimenti dell\u0026rsquo;ingegneria conservativa, noi rispondiamo con la fisica e l\u0026rsquo;elettronica bruta.\u003c/p\u003e","title":"Centralina Sentinel Node V3.5:"},{"content":"\nI vantaggi della nostra scheda Multifunzione Sblocca il potenziale dell\u0026rsquo;IoT con la nostra scheda presaldati ESP32!\nQuesta scheda rivoluzionaria rende lo sviluppo di progetti IoT più facile che mai, eliminando la necessità di saldature complicate. Collega fino a 5 sensori in modo rapido e semplice, senza bisogno di competenze tecniche avanzate.\nCaratteristiche Principali:\nCompatibilità ESP32: Sfrutta la potenza e la flessibilità del modulo ESP32 per creare progetti IoT avanzati. Connessione Sensori senza Saldature: Collega fino a 5 sensori tramite connettori a morsettiera, evitando saldature e semplificando l\u0026rsquo;assemblaggio. Ampia Compatibilità Sensori: Supporta un\u0026rsquo;ampia gamma di sensori digitali e analogici, offrendo massima flessibilità per il tuo progetto. Pronta all\u0026rsquo;Uso: La scheda viene fornita pre-programmata con un firmware di base, permettendoti di iniziare subito a sviluppare il tuo progetto. Ideale per Prototipazione e Imparare: Perfetta per hobbisti, studenti e maker che desiderano realizzare progetti IoT senza complicate saldature. Applicazioni:\nDomotica: Monitora la tua casa con sensori di temperatura, umidità, luminosità e movimento. Automazione Industriale: Controlla macchinari e sistemi industriali con sensori di pressione, temperatura e livello. Agricoltura Intelligente: Monitora le condizioni ambientali e la salute delle colture con sensori di umidità del suolo, temperatura e luminosità. Wearables: Crea dispositivi indossabili con sensori di movimento, frequenza cardiaca e temperatura corporea. Perché Scegliere la Nostra Scheda Presaldati ESP32:\nFacile da Usare: Elimina la necessità di saldature, rendendola accessibile a tutti i livelli di esperienza. Versatile: Supporta una varietà di sensori e applicazioni. Conveniente: Offre un modo economico per iniziare con lo sviluppo di progetti IoT. Affidabile: Progettata con componenti di alta qualità per garantire prestazioni durature. Inizia a costruire il tuo futuro IoT oggi stesso con la nostra scheda presaldati ESP32!\nAcquista ora e scopri la libertà di sviluppo senza saldature!\nPer maggiori informazioni, visita il nostro sito web o contattaci per ricevere assistenza.\nNon perdere questa opportunità di dare vita alle tue idee IoT!\nVantaggi Aggiuntivi: Risparmia tempo e denaro: Elimina il processo di saldatura e la necessità di acquistare componenti aggiuntivi. Semplifica il processo di apprendimento: Perfettamente adatta per principianti che desiderano esplorare l\u0026rsquo;IoT. Riduci i rischi di errori: La scheda pre-assemblata garantisce un minor numero di errori di connessione. Espandi le tue possibilità: Offre la possibilità di aggiungere ulteriori funzionalità con moduli aggiuntivi. Scegli la nostra scheda presaldati ESP32 e svela il tuo potenziale creativo!\nAcquistalo adesso Puoi pagare con carta di credito oppure in tre rate con Paypal e Klarna.\nAcquista ","permalink":"https://www.robotdazero.it/docs/hardware/multifunzione/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/docs/hardware/multifunzione/header.png\"\u003e\u003c/p\u003e\n\u003ch3 id=\"i-vantaggi-della-nostra-scheda-multifunzione\"\u003eI vantaggi della nostra scheda Multifunzione\u003c/h3\u003e\n\u003cp\u003eSblocca il potenziale dell\u0026rsquo;IoT con la nostra scheda presaldati ESP32!\u003c/p\u003e\n\u003cp\u003eQuesta scheda rivoluzionaria rende lo sviluppo di progetti IoT più facile che mai, eliminando la necessità di saldature complicate. Collega fino a 5 sensori in modo rapido e semplice, senza bisogno di competenze tecniche avanzate.\u003c/p\u003e\n\u003cp\u003eCaratteristiche Principali:\u003c/p\u003e\n\u003cp\u003eCompatibilità ESP32: Sfrutta la potenza e la flessibilità del modulo ESP32 per creare progetti IoT avanzati.\nConnessione Sensori senza Saldature: Collega fino a 5 sensori tramite connettori a morsettiera, evitando saldature e semplificando l\u0026rsquo;assemblaggio.\nAmpia Compatibilità Sensori: Supporta un\u0026rsquo;ampia gamma di sensori digitali e analogici, offrendo massima flessibilità per il tuo progetto.\nPronta all\u0026rsquo;Uso: La scheda viene fornita pre-programmata con un firmware di base, permettendoti di iniziare subito a sviluppare il tuo progetto.\nIdeale per Prototipazione e Imparare: Perfetta per hobbisti, studenti e maker che desiderano realizzare progetti IoT senza complicate saldature.\nApplicazioni:\u003c/p\u003e","title":"Scheda Multifunzione"},{"content":"\nIl nostro hosting: Netlify\nESPHome ESPHome\n","permalink":"https://www.robotdazero.it/docs/risorse/links/","summary":"\u003cp\u003e\u003cimg loading=\"lazy\" src=\"/docs/risorse/links/header.png\"\u003e\u003c/p\u003e\n\u003ch4 id=\"il-nostro-hosting\"\u003eIl nostro hosting:\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://app.netlify.com\"\u003eNetlify\u003c/a\u003e\u003c/p\u003e\n\u003ch4 id=\"esphome\"\u003eESPHome\u003c/h4\u003e\n\u003cp\u003e\u003ca href=\"https://esphome.io/\"\u003eESPHome\u003c/a\u003e\u003c/p\u003e","title":"I link di Robotdazero"},{"content":"\rAGRITECH 2026\rThe Digital Soil. The Smart Harvest.\nLa Terra 4.0\rL'agricoltura non è più quella dei nostri nonni. È diventata la nuova frontiera dell'elettronica avanzata.\nOltre la Tradizione\rDimenticate l'immagine del settore conservatore e lento. Negli ultimi anni, l'Agritech ha subito una metamorfosi radicale: oggi i campi sono laboratori a cielo aperto dove AI, IoT e Sensoristica lavorano in simbiosi con la biologia. Non si tratta più di \"aspettare la pioggia\", ma di prevedere le necessità della pianta con precisione chirurgica.\nL'automazione ha trasformato il lavoro agricolo in una disciplina High-Tech: droni per lo spettro multispettrale, centraline neurale e gestione predittiva delle risorse idriche. Robotdazero è parte attiva di questo cambiamento, portando il rigore del software nello sporco della terra.\nSergio Rame\rTech Lead. Progettiamo l'hardware che ascolta la voce del terreno.\nTech Stack Agrario\rMonitoraggio\rReal-time pH \u0026 EC Analysis\rNetwork\rLoRaWAN \u0026 Low-Energy Mesh\rControllo\rAlgoritmi Predittivi 2026\rIl Futuro è Oggi\rEfficienza Risorse\rRisparmio idrico fino al 40% grazie all'irrigazione basata su dati reali, non su calendari.\nZero Sprechi\rNutrizione di precisione per ridurre l'impatto ambientale e massimizzare la resa del raccolto.\nUnisciti alla Rivoluzione\rCollaborazioni\rinfo@robotdazero.it\rSupporto Tech\rKaspian Project Lab\r","permalink":"https://www.robotdazero.it/agritech/","summary":"\u003cstyle\u003e\r\n   /* 1. RESET E OTTIMIZZAZIONE PERFORMANCE */\r\n   .main { max-width: 100% !important; padding: 0 !important; margin: 0 !important; }\r\n   .page-header { display: none; }\r\n   .content-limit {\r\n   max-width: 1100px;\r\n   margin: 0 auto;\r\n   padding: 80px 20px;\r\n   text-align: left;\r\n   }\r\n   /* 2. TIPOGRAFIA MODERNA */\r\n   .societa-header h1 { font-size: 3.5rem; font-weight: 900; color: #007bff; margin-bottom: 10px; letter-spacing: -1px; }\r\n   .societa-header p { font-size: 1.4rem; color: var(--secondary); margin-bottom: 60px; line-height: 1.4; }\r\n   .info-group { margin-bottom: 60px; }\r\n   .info-group h2 {\r\n   font-size: 1.8rem;\r\n   font-weight: 800;\r\n   margin-bottom: 25px;\r\n   display: flex;\r\n   align-items: center;\r\n   gap: 10px;\r\n   }\r\n   .info-group h2::after {\r\n   content: \"\";\r\n   height: 2px;\r\n   flex-grow: 1;\r\n   background: linear-gradient(90deg, rgba(0,123,255,0.2), transparent);\r\n   }\r\n   /* 3. CARDS TECH-STYLE */\r\n   .info-card {\r\n   background: var(--entry);\r\n   padding: 25px;\r\n   border-radius: 16px;\r\n   border: 1px solid var(--border);\r\n   display: inline-block;\r\n   min-width: 480px;\r\n   max-width: 100%;\r\n   transition: all 0.3s ease;\r\n   box-shadow: 0 4px 20px rgba(0,0,0,0.03);\r\n   }\r\n   .info-card:hover { border-color: #007bff; transform: translateY(-2px); }\r\n   /* 4. DATA ALIGNMENT */\r\n   .data-row { display: flex; margin-bottom: 12px; font-size: 1.1rem; align-items: center; }\r\n   .data-row:last-child { margin-bottom: 0; }\r\n   .label { width: 180px; font-weight: 700; color: var(--secondary); opacity: 0.8; font-size: 0.9rem; text-transform: uppercase; }\r\n   .value { font-weight: 600; font-family: 'JetBrains Mono', monospace; color: var(--primary); }\r\n   /* 5. GRID SEDI */\r\n   .sedi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }\r\n   .sedi-grid .info-card { display: block; min-width: auto; }\r\n   /* 6. FOUNDER PROFILE */\r\n   .founder-profile { \r\n   display: flex; \r\n   align-items: center; \r\n   gap: 30px; \r\n   margin-top: 40px; \r\n   padding: 30px; \r\n   background: rgba(0,123,255,0.03); \r\n   border-radius: 20px;\r\n   }\r\n   .founder-image {\r\n   width: 130px; height: 130px;\r\n   border-radius: 50%; object-fit: cover;\r\n   border: 3px solid #007bff;\r\n   box-shadow: 0 10px 30px rgba(0,123,255,0.2);\r\n   }\r\n   .founder-info h3 { margin: 0; font-size: 1.5rem; font-weight: 800; }\r\n   .founder-info p { margin: 5px 0 0; color: var(--secondary); font-style: italic; }\r\n   /* HERO SECTION - 2026 EDITION */\r\n   .hero-societa {\r\n   position: relative;\r\n   width: 100%;\r\n   height: 500px;\r\n   background: url('/images/hero/325.jpg') center/cover no-repeat;\r\n   display: flex;\r\n   align-items: center;\r\n   justify-content: center;\r\n   color: white;\r\n   overflow: hidden;\r\n   }\r\n   .hero-overlay {\r\n   position: absolute;\r\n   top: 0; left: 0; width: 100%; height: 100%;\r\n   /* Abbiamo abbassato l'opacità da 0.8 a 0.3 e da 0.4 a 0.1 */\r\n   background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%); \r\n   z-index: 1;\r\n   }\r\n   .hero-content { position: relative; z-index: 2; text-align: center; }\r\n   .hero-content h1 { font-size: 5rem; font-weight: 900; margin: 0; letter-spacing: 4px; }\r\n   @media (max-width: 768px) {\r\n   .hero-content h1 { font-size: 3rem; }\r\n   .sedi-grid { grid-template-columns: 1fr; }\r\n   .info-card { min-width: 100%; }\r\n   .founder-profile { flex-direction: column; text-align: center; }\r\n   }\r\n\u003c/style\u003e\r\n\u003csection class=\"hero-societa\"\u003e\r\n   \u003cdiv class=\"hero-overlay\"\u003e\u003c/div\u003e\r\n   \u003cdiv class=\"hero-content\"\u003e\r\n      \u003ch1 style=\"font-size: 4.0rem; font-weight: 500; letter-spacing: 2px;color: #EEEEEE\"\u003eAGRITECH 2026\u003c/h1\u003e\r\n      \u003cp style=\"font-size: 1.5rem; font-weight: 300; letter-spacing: 2px;\"\u003eThe Digital Soil. The Smart Harvest.\u003c/p\u003e","title":"Agritech"},{"content":"\rMaker's Selection 2026\rComponenti selezionati per Arduino ed ESP32\rESP32 Wroom\rAFFIDABILE\rAZDelivery ESP32 NodeMCU WiFi CP2102 - - ESP32 WROOM - Wi...\r\"Brand noto per ottima documentazione.\"\r11,99 €\rVedi\rTOP CHOICE\rBinghe ESP mit CH340 Schede di sviluppo, ESP 30 Pins ESP-...\r\"Componente essenziale per il tuo laboratorio.\"\r9,99 €\rVedi\rTOP CHOICE\rRUIZHI 2 ES2 Mini , ESP-3-2-S ESP-32-WROOM-32D Modulo WiF...\r\"Componente essenziale per il tuo laboratorio.\"\r11,49 €\rVedi\rTOP CHOICE\rDUBEUYEW 2.4 GHz Dual Core WLAN WiFi + Bluetooth 2-in-1 M...\r\"Componente essenziale per il tuo laboratorio.\"\r15,99 €\rVedi\rTOP CHOICE\rAYWHP 2 30PIN Nodemcu ESP32 CH340 Schede di sviluppo, ESP...\r\"Componente essenziale per il tuo laboratorio.\"\r11,59 €\rVedi\rAFFIDABILE\rAZDelivery ESP32 NodeMCU WiFi CP2102 - - ESP32 WROOM - Wi...\r\"Brand noto per ottima documentazione.\"\r11,99 €\rVedi\rSTARTER KIT\rELEGOO ESP32 3 USB C, 2.4GHz Dual Mode Wifi+Bluetooth Mic...\r\"Ottimo rapporto qualità prezzo.\"\r25,99 €\rVedi\rTOP CHOICE\rQIQIAZI per ESP-32 ESP ,3 per ESP-32S Tipo C 2.4GHz WiFi ...\r\"Componente essenziale per il tuo laboratorio.\"\r15,59 €\rVedi\rSensori temperatura umidità Arduino\rSENSORE\rSHT31-D Sensore di Temperatura Digitale RUIZHI SHT31-D Mo...\r\"Alta precisione per i tuoi dati ambientali.\"\r11,18 €\rVedi\rSENSORE\rAYWHP 3 SHT31-D Sensore di temperatura e umidità,modulo s...\r\"Alta precisione per i tuoi dati ambientali.\"\r10,99 €\rVedi\rSENSORE\rSHT31-D Sensore di Temperatura Digitale RUIZHI SHT31-D Mo...\r\"Alta precisione per i tuoi dati ambientali.\"\r20,63 €\rVedi\rSENSORE\rBinghe Sensore Temperatura e Umidità - 3 ,\r\"Alta precisione per i tuoi dati ambientali.\"\r16,99 €\rVedi\rSENSORE\rAYWHP 1 CJMCU-680 Temperature and Humidity Sensor,Modulo ...\r\"Alta precisione per i tuoi dati ambientali.\"\r9,99 €\rVedi\rSENSORE\rARCELI 5 x sensore di temperatura e umidità, sensori di t...\r\"Alta precisione per i tuoi dati ambientali.\"\r8,59 €\rVedi\rSENSORE\rAZDelivery 3 x KY-015 DHT11 Modulo Sensore di Temperatura...\r\"Alta precisione per i tuoi dati ambientali.\"\r10,99 €\rVedi\rSENSORE\rAYWHP Kompa-tibe - Modulo sensore di temperatura DHT, sen...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rESP32 LoRa\rLONG RANGE\rRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r24,99 €\rVedi\rLONG RANGE\rRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r59,99 €\rVedi\rLONG RANGE\rRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r49,73 €\rVedi\rLONG RANGE\rConfezione da 2 schede ESP32 LoRa V3 Batteria 1100 mAh Cu...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\rVedi offerta\rVedi\rLONG RANGE\rESP32 LoRa V3 Scheda Sviluppo + Batteria 3.7V 3000mAh + K...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\rVedi offerta\rVedi\rLONG RANGE\rAlloggiamento per Modulo LoRa ESP32 V3 – , antenna, batte...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r19,68 €\rVedi\rLONG RANGE\rDiymore per ESP32 LoRa 1262 V3 per ESP32 LX7 Dual-core 0....\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r26,99 €\rVedi\rLONG RANGE\rTracker wireless con display LoRa ESP32, QIQIAZI ESP32 SX...\r\"Trasmissione dati a lungo raggio senza WiFi.\"\r29,99 €\rVedi\rDisplay OLED I2C\rDISPLAY\rAZDelivery 3 x 0.91 pollici Display OLED I2C SSD1306 Chip...\r\"Schermo nitido a basso consumo energetico.\"\r14,99 €\rVedi\rDISPLAY\rAZDelivery 1.3 pollici Display OLED I2C SSH1106 Chip 128 ...\r\"Schermo nitido a basso consumo energetico.\"\r9,99 €\rVedi\rDISPLAY\r1,3\" OLED I2C Display Modulo Binghe 1,3 Zoll LED OLED Dis...\r\"Schermo nitido a basso consumo energetico.\"\r11,99 €\rVedi\rDISPLAY\r1,3\" OLED I2C Display Modulo Binghe 3 1,3 Zoll LED OLED D...\r\"Schermo nitido a basso consumo energetico.\"\r13,99 €\rVedi\rDISPLAY\rAZDelivery 5 x 0.96 pollici Display OLED I2C SSD1306 Chip...\r\"Schermo nitido a basso consumo energetico.\"\r25,99 €\rVedi\rDISPLAY\r3 Dispositivo di visualizzazione LCD minuscolo del modulo...\r\"Schermo nitido a basso consumo energetico.\"\r9,99 €\rVedi\rDISPLAY\rAPKLVSR 3 0,96 Pollici Modulo OLED Display Module, 0.96 I...\r\"Schermo nitido a basso consumo energetico.\"\r10,99 €\rVedi\rDISPLAY\rAZDelivery 0.96 pollici Display OLED I2C SSD1306 Chip 128...\r\"Schermo nitido a basso consumo energetico.\"\r9,99 €\rVedi\rServomotori digitali\rTOP CHOICE\rDigital Metal Servo Binghe 25KG Digitale Servomotore Meta...\r\"Componente essenziale per il tuo laboratorio.\"\r14,99 €\rVedi\rTOP CHOICE\rDS3225 25 kg digital servo motor AYWHP 1 ingranaggio in m...\r\"Componente essenziale per il tuo laboratorio.\"\r14,59 €\rVedi\rTOP CHOICE\rHAXIHA 2 Servo Motore Digitale,Ingranaggi Metallici,Coppi...\r\"Componente essenziale per il tuo laboratorio.\"\r13,99 €\rVedi\rTOP CHOICE\rHOTUT 13KG Micro Servomotore Digitale con Ingranaggi in M...\r\"Componente essenziale per il tuo laboratorio.\"\r9,99 €\rVedi\rTOP CHOICE\rHOTUT 3 Servo Motore Digitale Servomotore, Servo Micro Mo...\r\"Componente essenziale per il tuo laboratorio.\"\r7,19 €\rVedi\rAFFIDABILE\rAZDelivery Micro Servomotore Digitale MG996R con ingranag...\r\"Brand noto per ottima documentazione.\"\r12,99 €\rVedi\rAI VISION\rMiuzei Servo Motore Digitale 15 kg Servomotore Pieno Rame...\r\"Perfetto per riconoscimento immagini e streaming.\"\r19,99 €\rVedi\rTOP CHOICE\rMiuzei 15KG Digital Servomotore, 180° Mini Servo Motore S...\r\"Componente essenziale per il tuo laboratorio.\"\r10,99 €\rVedi\rModuli GPS NEO-6M\rTOP CHOICE\rGonnely Modulo satellitare GPS Mini NEO-6M Modulo satelli...\r\"Componente essenziale per il tuo laboratorio.\"\r14,69 €\rVedi\rTOP CHOICE\rModulo GPS con U Blox Neo 6 m e antenna ceramica per e re...\r\"Componente essenziale per il tuo laboratorio.\"\r27,22 €\rVedi\rTOP CHOICE\rICQUANZX GY-NEO6MV2 NEO-6M - Modulo di controllo di volo ...\r\"Componente essenziale per il tuo laboratorio.\"\r7,99 €\rVedi\rTOP CHOICE\rGY-NEO6MV2 NEO-6M Modulo di controllo di volo GPS 3V-5V c...\r\"Componente essenziale per il tuo laboratorio.\"\r10,09 €\rVedi\rTOP CHOICE\rGY-NEO6MV2 NEO-6M Modulo di controllo di volo GPS 3V-5V c...\r\"Componente essenziale per il tuo laboratorio.\"\r13,09 €\rVedi\rTOP CHOICE\rAepen 2 Modulo GPS, GY-GPS6MV2 NEO-6M Modulo di Posizione...\r\"Componente essenziale per il tuo laboratorio.\"\r16,99 €\rVedi\rTOP CHOICE\rARCELI GT-U7 GPS Modulo, piccolo ricevitore GPS a basso c...\r\"Componente essenziale per il tuo laboratorio.\"\r10,99 €\rVedi\rTOP CHOICE\rGonnely Modulo satellitare GPS Mini NEO-6M Modulo satelli...\r\"Componente essenziale per il tuo laboratorio.\"\r14,69 €\rVedi\rSensori movimento PIR Arduino\rSENSORE\rOiyagai 2 Mini Modulo Rilevatore Sensore di Movimento Uma...\r\"Alta precisione per i tuoi dati ambientali.\"\r12,50 €\rVedi\rSENSORE\rPIR Modulo Sensori di Movimento Binghe 3 PIR Sonda del se...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rSENSORE\rPIR Modulo Sensori di Movimento Binghe 5 PIR Sonda del se...\r\"Alta precisione per i tuoi dati ambientali.\"\r11,99 €\rVedi\rSENSORE\rAZDelivery Sensori di movimento HC-SR501 PIR Modulo di ri...\r\"Alta precisione per i tuoi dati ambientali.\"\r8,99 €\rVedi\rSENSORE\rAZDelivery 3 x Sensori di movimento HC-SR501 PIR Modulo d...\r\"Alta precisione per i tuoi dati ambientali.\"\r11,99 €\rVedi\rSENSORE\rPIR Modulo Sensori di Movimento Binghe 3 PIR Sonda del se...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rSENSORE\rDollaTek Kit di 5 moduli sensore di rilevamento movimento...\r\"Alta precisione per i tuoi dati ambientali.\"\r10,99 €\rVedi\rTOP CHOICE\rARCELI 2 Mini rivelatore di movimento umano a infrarossi ...\r\"Componente essenziale per il tuo laboratorio.\"\r6,99 €\rVedi\rRelè 5V Arduino\rTOP CHOICE\r5 5V 1 canale modulo relè scheda scheda relè scudo trigge...\r\"Componente essenziale per il tuo laboratorio.\"\r6,99 €\rVedi\rRELE 220V\rGTIWUNG 2 Modulo Relè a 4 Canali 5V, Scheda Relè Con Opto...\r\"Isolamento sicuro per carichi di potenza.\"\r9,99 €\rVedi\rTOP CHOICE\rRUNCCI-YUN 5 Modulo Relè a 1 Canale 5V Trigger di Livello...\r\"Componente essenziale per il tuo laboratorio.\"\r8,99 €\rVedi\rAFFIDABILE\rAZDelivery 1 Canale KY-019 Modulo Relais 5V High-Level-Tr...\r\"Brand noto per ottima documentazione.\"\r7,49 €\rVedi\rRELE 220V\rELEGOO 8 Channel DC 5V Modulo Relay con Accoppiatore Otti...\r\"Isolamento sicuro per carichi di potenza.\"\r15,99 €\rVedi\rTOP CHOICE\rAYWHP 5 5V Modulo relè per PIC AVR DSP ARM\r\"Componente essenziale per il tuo laboratorio.\"\r6,99 €\rVedi\rRELE 220V\rGTIWUNG 10 Modulo Relè a 1 Canale 5V, 1 Canale Scheda con...\r\"Isolamento sicuro per carichi di potenza.\"\r12,99 €\rVedi\rTOP CHOICE\rRUNCCI-YUN 5 Modulo Relè a 1 Canale 5V Trigger di Livello...\r\"Componente essenziale per il tuo laboratorio.\"\r8,99 €\rVedi\rMicro SD Card Module SPI\rAFFIDABILE\rAZDelivery Modulo Lettore SPI Reader Micro Scheda SD TF M...\r\"Brand noto per ottima documentazione.\"\r6,99 €\rVedi\rTOP CHOICE\rANGEEK 5 Micro SD SPI Modulo lettore Memoria TF Card Shie...\r\"Componente essenziale per il tuo laboratorio.\"\r8,99 €\rVedi\rTOP CHOICE\rYoumile 10 SD Card Module Micro SD SDHC TF Card Adapter R...\r\"Componente essenziale per il tuo laboratorio.\"\r14,99 €\rVedi\rTOP CHOICE\rDAOKAI 5 Micro SD Card Module TF Card Adapter Reader con ...\r\"Componente essenziale per il tuo laboratorio.\"\r16,39 €\rVedi\rAFFIDABILE\rAZDelivery Modulo Lettore SPI Reader Micro Scheda SD TF M...\r\"Brand noto per ottima documentazione.\"\r6,99 €\rVedi\rTOP CHOICE\rJZK 5 moduli per scheda Micro SD da 3,3 V 5 V con interfa...\r\"Componente essenziale per il tuo laboratorio.\"\r7,99 €\rVedi\rAFFIDABILE\rAZDelivery 3 x Modulo Lettore SPI Reader Micro Scheda SD ...\r\"Brand noto per ottima documentazione.\"\r8,49 €\rVedi\rTOP CHOICE\rkwmobile 2X modulo Micro SD Card per e Raspberry Pi - Kit...\r\"Componente essenziale per il tuo laboratorio.\"\r8,19 €\rVedi\rESP32-CAM\rAI VISION\rdiymore Bluetooth WiFi ESP32-CAM-MB con modulo scheda TF ...\r\"Perfetto per riconoscimento immagini e streaming.\"\r14,99 €\rVedi\rAI VISION\rAYWHP 2 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\r\"Perfetto per riconoscimento immagini e streaming.\"\r23,99 €\rVedi\rAI VISION\rAYWHP 1 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\r\"Perfetto per riconoscimento immagini e streaming.\"\r14,99 €\rVedi\rAI VISION\rAYWHP 3 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\r\"Perfetto per riconoscimento immagini e streaming.\"\r30,99 €\rVedi\rAI VISION\rESP32 Cam Kit Telecamere RUIZHI 2 ESP32-CAM Scheda Blueto...\r\"Perfetto per riconoscimento immagini e streaming.\"\r22,96 €\rVedi\rAI VISION\rdiymore 2 per ESP32 USB C per ESP32 CAM,WLAN/Bluetooth, d...\r\"Perfetto per riconoscimento immagini e streaming.\"\r22,99 €\rVedi\rAI VISION\rdiymore Bluetooth WiFi ESP32-CAM-MB con modulo scheda TF ...\r\"Perfetto per riconoscimento immagini e streaming.\"\r14,99 €\rVedi\rAI VISION\rQIQIAZI ESP-CAM Modulo, ESP-CAM con fotocamera OV2640, Wi...\r\"Perfetto per riconoscimento immagini e streaming.\"\r10,59 €\rVedi\rSensori biometrici Arduino\rSENSORE\rDollaTek Modulo sensore di Lettore di Impronte digitali O...\r\"Alta precisione per i tuoi dati ambientali.\"\r16,99 €\rVedi\rSENSORE\rModulo sensore di impronte digitali, R307S scanner ottico...\r\"Alta precisione per i tuoi dati ambientali.\"\r16,40 €\rVedi\rSENSORE\rGeekstory Lettore di impronte digitali ottiche modulo sen...\r\"Alta precisione per i tuoi dati ambientali.\"\r26,99 €\rVedi\rSENSORE\rARCELI 5 Sensore di trasduttore di misurazione della Dist...\r\"Alta precisione per i tuoi dati ambientali.\"\r6,99 €\rVedi\rSENSORE\rModulo pulsesensor sensore pulsazioni frequenza cardiaca ...\r\"Alta precisione per i tuoi dati ambientali.\"\r4,99 €\rVedi\rSENSORE\rARCELI 5 Pz Sensore di Umidità del Suolo Hygrometer Modul...\r\"Alta precisione per i tuoi dati ambientali.\"\r6,89 €\rVedi\rSENSORE\rAPKLVSR 5 Modulo ultrasonico,Modulo sensore di distanza per\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rSENSORE\rARCELI 5 Hall Effect KY-003 Modulo sensore magnetico DC 5...\r\"Alta precisione per i tuoi dati ambientali.\"\r5,99 €\rVedi\rMicrofoni I2S ESP32\rTOP CHOICE\rAYWHP INMP441 modulo microfonico omnidirezionale 3 I2S Us...\r\"Componente essenziale per il tuo laboratorio.\"\r10,99 €\rVedi\rTOP CHOICE\rYoumile INMP441 Modulo microfono omnidirezionale Interfac...\r\"Componente essenziale per il tuo laboratorio.\"\r15,79 €\rVedi\rTOP CHOICE\rAYWHP INMP441 modulo microfonico omnidirezionale 6 I2S Us...\r\"Componente essenziale per il tuo laboratorio.\"\r16,99 €\rVedi\rTOP CHOICE\rARCELI 3 INMP441 Modulo microfono omnidirezionale, interf...\r\"Componente essenziale per il tuo laboratorio.\"\r11,99 €\rVedi\rTOP CHOICE\rAYWHP INMP441 modulo microfonico omnidirezionale 3 I2S Us...\r\"Componente essenziale per il tuo laboratorio.\"\r10,99 €\rVedi\rTOP CHOICE\rAYWHP INMP441 modulo microfonico omnidirezionale 6 I2S Us...\r\"Componente essenziale per il tuo laboratorio.\"\r16,99 €\rVedi\rSENSORE\rDollaTek INMP441 Uscita Microfono omnidirezionale I2S Dig...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rTOP CHOICE\r3 INMP441 modulo microfono omnidirezionale con interfacci...\r\"Componente essenziale per il tuo laboratorio.\"\r9,59 €\rVedi\rSensore qualità aria CO2\rSENSORE\rRadoff Now - Air Quality Monitor con Sensore Qualità Aria...\r\"Alta precisione per i tuoi dati ambientali.\"\r122,00 €\rVedi\rTOP CHOICE\rAirthings 2960 View Plus monitor per il radon e la qualit...\r\"Componente essenziale per il tuo laboratorio.\"\r239,00 €\rVedi\rAI VISION\rAirthings 321 Wave Enhance - Monitor della qualità dell'a...\r\"Perfetto per riconoscimento immagini e streaming.\"\r149,99 €\rVedi\rDISPLAY\rSwitchBot rilevatore di CO2, termometro ambiente interno ...\r\"Schermo nitido a basso consumo energetico.\"\r69,99 €\rVedi\rSENSORE\rSwitchBot Rilevatore di CO2 Bluetooth con termometro IP65...\r\"Alta precisione per i tuoi dati ambientali.\"\r79,99 €\rVedi\rSENSORE\rMonitor di qualità dell'aria per interni: sensore di temp...\r\"Alta precisione per i tuoi dati ambientali.\"\r23,99 €\rVedi\rSENSORE\rfocombance Rivelatore CO2 Monitor Rilevatore Gas 5 in 1, ...\r\"Alta precisione per i tuoi dati ambientali.\"\rVedi offerta\rVedi\rTOP CHOICE\rMonitor di qualità dell'aria WiFi: il misuratore intellig...\r\"Componente essenziale per il tuo laboratorio.\"\r28,99 €\rVedi\rTastiera matriciale Arduino\rTOP CHOICE\rAihasd 4 * 4 Microcontroller Matrice Tastiera Modulo Tast...\r\"Componente essenziale per il tuo laboratorio.\"\r10,99 €\rVedi\rTOP CHOICE\rTastiera morbida MATRICIALE Touch 4x4 16 Tasti KEYPAD RAS...\r\"Componente essenziale per il tuo laboratorio.\"\r4,80 €\rVedi\rAFFIDABILE\rAZDelivery 4x4 Matrix Keypad Tastiera e Raspberry Pi incl...\r\"Brand noto per ottima documentazione.\"\r8,99 €\rVedi\rTOP CHOICE\rDollaTek 5 4x4 University Tastiera Interruttore a Chiave ...\r\"Componente essenziale per il tuo laboratorio.\"\r7,99 €\rVedi\rTOP CHOICE\rANGEEK 5 16 Key Membrane Switch Keypad 4X4 Matrix Keyboar...\r\"Componente essenziale per il tuo laboratorio.\"\r8,99 €\rVedi\rAFFIDABILE\rAZDelivery 5 x Matrix 4x4 Array Keypad Tastiera incluso u...\r\"Brand noto per ottima documentazione.\"\r10,99 €\rVedi\rAFFIDABILE\rAZDelivery 5 x Matrix 4x4 Keypad Tastiera e Raspberry Pi ...\r\"Brand noto per ottima documentazione.\"\r23,99 €\rVedi\rTOP CHOICE\rKit fai-da-te 1x4 4 Tastiera tastiera tasto tasto indipen...\r\"Componente essenziale per il tuo laboratorio.\"\r4,13 €\rVedi\rModulo RTC DS3231\rTOP CHOICE\rModulo Adafruit RTC Orologio in tempo reale di precisione...\r\"Componente essenziale per il tuo laboratorio.\"\r28,26 €\rVedi\rAFFIDABILE\rAZDelivery Real Time Clock RTC DS3231 e Batteria gratuita...\r\"Brand noto per ottima documentazione.\"\r9,99 €\rVedi\rTOP CHOICE\rTECNOIOT 2x DS3231 AT24C32 IIC Module Precision Clock for\r\"Componente essenziale per il tuo laboratorio.\"\r10,52 €\rVedi\rTOP CHOICE\rAYWHP 4 Real Time Clock RTC orologio I2C in tempo reale, ...\r\"Componente essenziale per il tuo laboratorio.\"\r8,59 €\rVedi\rAFFIDABILE\rAZDelivery 5x Real Time Clock RTC DS3231 e Batteria gratu...\r\"Brand noto per ottima documentazione.\"\r19,99 €\rVedi\rSENSORE\rRemingtape DS3231 AT24C32 IIC - Modulo orologio di precis...\r\"Alta precisione per i tuoi dati ambientali.\"\r3,01 €\rVedi\rTOP CHOICE\rTECNOULAB 2 DS3231 AT24C32 IIC Modulo Modulo Orologio di ...\r\"Componente essenziale per il tuo laboratorio.\"\r10,40 €\rVedi\rSENSORE\rRTC IIC Modulo Precision Clock,QIQIAZI Tempo Reale Modulo...\r\"Alta precisione per i tuoi dati ambientali.\"\r6,59 €\rVedi\rLettore RFID RC522\rTOP CHOICE\rAptoFun 2 RC522 IC Card RFID Reader modulo RF Reader modu...\r\"Componente essenziale per il tuo laboratorio.\"\r8,50 €\rVedi\rAFFIDABILE\rAZDelivery Kit RFID RC522 13,56MHz con Reader, Chip e Sch...\r\"Brand noto per ottima documentazione.\"\r8,49 €\rVedi\rAFFIDABILE\rAZDelivery 3 x Kit RFID RC522 13,56MHz con Reader, Chip e...\r\"Brand noto per ottima documentazione.\"\r14,99 €\rVedi\rSENSORE\rKit RFID per , modulo sensore RFID IC con lettore, chip e...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,59 €\rVedi\rTOP CHOICE\rAptoFun 2 RC522 IC Card RFID Reader modulo RF Reader modu...\r\"Componente essenziale per il tuo laboratorio.\"\r8,50 €\rVedi\rAFFIDABILE\rAZDelivery 5 x Kit RFID RC522 13,56MHz con Reader, Chip e...\r\"Brand noto per ottima documentazione.\"\r19,99 €\rVedi\rTOP CHOICE\rBinghe 2 RFID Kit, Modulo di induzione della scheda IC RF...\r\"Componente essenziale per il tuo laboratorio.\"\r7,99 €\rVedi\rTOP CHOICE\rlectroWorldFR Kit RFID RC 522 - Lettore, chip e scheda 13...\r\"Componente essenziale per il tuo laboratorio.\"\r12,59 €\rVedi\rSensore distanza Ultrasuoni\rSENSORE\rELEGOO Modulo Sensore di Distanza a Ultrasuoni 5 per , Ra...\r\"Alta precisione per i tuoi dati ambientali.\"\r11,99 €\rVedi\rSENSORE\rSensore di Distanza a Ultrasuoni Sensore Impermeabile Con...\r\"Alta precisione per i tuoi dati ambientali.\"\r34,05 €\rVedi\rSENSORE\rEPLZON HC-SR04 Modulo sensore di distanza ad ultrasuoni a...\r\"Alta precisione per i tuoi dati ambientali.\"\r12,99 €\rVedi\rSENSORE\rJSN-SR04T Ultrasonic Impermeabile Sensore RUIZHI 2 JSN-SR...\r\"Alta precisione per i tuoi dati ambientali.\"\r11,41 €\rVedi\rSENSORE\rJSN-SR04T Ultrasonic Impermeabile Sensore RUIZHI 3 JSN-SR...\r\"Alta precisione per i tuoi dati ambientali.\"\r18,26 €\rVedi\rSENSORE\rARCELI 5 Sensore di trasduttore di misurazione della Dist...\r\"Alta precisione per i tuoi dati ambientali.\"\r6,99 €\rVedi\rSENSORE\rAihasd 3 4 Pin ultrasonica del modulo HC-SR04 sensore di ...\r\"Alta precisione per i tuoi dati ambientali.\"\r7,99 €\rVedi\rSENSORE\r2 Modulo Sensore Ultrasuoni Impermeabile 5V JSN-SR04T Mod...\r\"Alta precisione per i tuoi dati ambientali.\"\r10,09 €\rVedi\rStriscia LED WS2812B\rTOP CHOICE\rBTF-LIGHTING WS2812B Fili in lega ECO RGB 5050SMD Indiriz...\r\"Componente essenziale per il tuo laboratorio.\"\r27,99 €\rVedi\rTOP CHOICE\rTOPAI Striscia LED COB WS2812B 5mm Ultrasottile 5 Metri, ...\r\"Componente essenziale per il tuo laboratorio.\"\r32,99 €\rVedi\rTOP CHOICE\rBTF-LIGHTING WS2812B RGB 5050SMD Indirizzabile individual...\r\"Componente essenziale per il tuo laboratorio.\"\r28,99 €\rVedi\rTOP CHOICE\rBTF-LIGHTING WS2811 IC=RGB IC Indirizzabile Dream Color S...\r\"Componente essenziale per il tuo laboratorio.\"\r22,99 €\rVedi\rAI VISION\rBeaeet Striscia LED 24V 20m 5050 RGB per Camera da Letto,...\r\"Perfetto per riconoscimento immagini e streaming.\"\r19,99 €\rVedi\rTOP CHOICE\rWS2812B Striscia LED indirizzabile individualmente 5050 S...\r\"Componente essenziale per il tuo laboratorio.\"\r20,99 €\rVedi\rTOP CHOICE\rCUQI WS2812B Striscia LED Indirizzabile Individualmente 5...\r\"Componente essenziale per il tuo laboratorio.\"\r12,39 €\rVedi\rTOP CHOICE\rBTF-LIGHTING WS2812E Fili in lega ECO RGB 5050SMD Indiriz...\r\"Componente essenziale per il tuo laboratorio.\"\r16,99 €\rVedi\rShield Ethernet ESP32\rTOP CHOICE\rLILYGO T-ETH-Lite ESP32-S3 W5500 Ethernet TTGO Modulo ESP...\r\"Componente essenziale per il tuo laboratorio.\"\r28,00 €\rVedi\rTOP CHOICE\rW5100 Ethernet Shield RUIZHI W5100 Scheda di espansione E...\r\"Componente essenziale per il tuo laboratorio.\"\r11,09 €\rVedi\rTOP CHOICE\rWaveshare ESP32-S3 ETH , 10/100Mbps RJ45 Ethernet Port, W...\r\"Componente essenziale per il tuo laboratorio.\"\r26,99 €\rVedi\rAFFIDABILE\rAZDelivery Ethernet Shield W5100 con Slot per Schede Micr...\r\"Brand noto per ottima documentazione.\"\r15,99 €\rVedi\rTOP CHOICE\rEthernet Shield 2 [A000024] - Estensione per connettere I...\r\"Componente essenziale per il tuo laboratorio.\"\r31,50 €\rVedi\rTOP CHOICE\rLILYGO T-ETH-Lite ESP32 RTL8201 Ethernet TTGO Modulo Supp...\r\"Componente essenziale per il tuo laboratorio.\"\r30,00 €\rVedi\rTOP CHOICE\rWaveshare ESP32-P4-ETH High-Performance , Based On ESP32-...\r\"Componente essenziale per il tuo laboratorio.\"\r26,99 €\rVedi\rTOP CHOICE\rEthernet ESP32-S3, porta Ethernet RJ45 da 10/100 Mbps, su...\r\"Componente essenziale per il tuo laboratorio.\"\r30,71 €\rVedi\rBMS Ricarica Litio TP4056\rPOWER\rModulo di ricarica agli ioni di litio TP4056 + DW01, corr...\r\"Gestione sicura della ricarica litio.\"\r9,60 €\rVedi\rTOP CHOICE\rRUNCCI-YUN 5 TP4057 USB C 3.7V 1A Interfaccia di Ingresso...\r\"Componente essenziale per il tuo laboratorio.\"\r6,99 €\rVedi\rTOP CHOICE\rBMS 2S 3S 30,8 x 18,3 x 5 mm, caricabatterie per batteria...\r\"Componente essenziale per il tuo laboratorio.\"\r7,09 €\rVedi\rPOWER\rModulo di ricarica intelligente Tp4056, 50 , soluzione di...\r\"Gestione sicura della ricarica litio.\"\r17,00 €\rVedi\rPOWER\rModulo di Ricarica TP4056 + DW01 agli Ioni di Litio, Corr...\r\"Gestione sicura della ricarica litio.\"\r12,68 €\rVedi\rTOP CHOICE\rOuitble Scheda di Protezione PCB 3S 12V 40A Scheda di Pro...\r\"Componente essenziale per il tuo laboratorio.\"\r8,09 €\rVedi\rPOWER\rParadisetronic.com Modulo di Ricarica agli ioni di Litio ...\r\"Gestione sicura della ricarica litio.\"\r9,19 €\rVedi\rTOP CHOICE\rEMSea 2 Scheda Di Protezione Della Batteria Al Litio 3S 6...\r\"Componente essenziale per il tuo laboratorio.\"\r17,02 €\rVedi\rGenerato automaticamente il 22/01/2026 13:04\r","permalink":"https://www.robotdazero.it/esp32-su-amazon/","summary":"\u003cstyle\u003e\r\n    :root { \r\n        --bg: #f8fafc;           /* Sfondo pagina chiaro e pulito */\r\n        --card: #ffffff;         /* Card bianco puro */\r\n        --text-main: #1a202c;    /* Colore TESTO PRODOTTO (molto leggibile) */\r\n        --text-muted: #4a5568;   /* Colore recensione (grigio fumo) */\r\n        --accent: #ff9900;       /* Colore HOVER e bordi (Arancio Amazon) */\r\n        --price: #b12704;        /* Rosso scuro per il prezzo */\r\n        --border: #e2e8f0;       /* Grigio chiaro per i bordi card */\r\n    }\r\n\r\n    /* Struttura generale */\r\n    .container { \r\n        max-width: 1200px; \r\n        margin: 0 auto; \r\n        font-family: 'Outfit', -apple-system, sans-serif;\r\n    }\r\n\r\n    header { \r\n        text-align: center; \r\n        margin-bottom: 50px; \r\n        padding-bottom: 40px; \r\n        border-bottom: 1px solid var(--border); \r\n    }\r\n\r\n    h1 { \r\n        font-size: 2.8rem; \r\n        font-weight: 800; \r\n        margin: 0; \r\n        background: linear-gradient(90deg, #1a202c, #4a5568);\r\n        -webkit-background-clip: text; \r\n        -webkit-text-fill-color: transparent; \r\n    }\r\n\r\n    .subtitle { color: var(--text-muted); margin-top: 10px; font-size: 1.1rem; }\r\n\r\n    .category-section { margin-bottom: 70px; }\r\n\r\n    .category-title { \r\n        font-size: 1.6rem; \r\n        font-weight: 700; \r\n        color: var(--text-main); \r\n        margin-bottom: 25px; \r\n        padding-left: 15px; \r\n        border-left: 5px solid var(--accent); \r\n        text-transform: uppercase;\r\n        letter-spacing: 1px;\r\n    }\r\n\r\n    .grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 25px; }\r\n\r\n    /* CARD DESIGN */\r\n    .card { \r\n        background: var(--card); \r\n        border: 1px solid var(--border); \r\n        border-radius: 12px; \r\n        overflow: hidden; \r\n        position: relative;\r\n        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\r\n        display: flex; \r\n        flex-direction: column;\r\n        box-shadow: 0 1px 3px rgba(0,0,0,0.05);\r\n    }\r\n\r\n    /* CAMBIO COLORE HOVER QUI */\r\n    .card:hover { \r\n        transform: translateY(-8px); \r\n        border-color: var(--accent); /* Il bordo diventa arancio */\r\n        box-shadow: 0 15px 30px rgba(0,0,0,0.1);\r\n    }\r\n\r\n    .card a { text-decoration: none; color: inherit; display: block; }\r\n\r\n    .badge-emotion { \r\n        position: absolute; top: 12px; left: 12px; z-index: 10;\r\n        background: #333; color: #fff; \r\n        padding: 5px 10px; border-radius: 4px; font-weight: 700; font-size: 0.65rem; text-transform: uppercase;\r\n    }\r\n\r\n    .img-wrap { \r\n        height: 200px; padding: 20px; background: #fff; display: flex; \r\n        align-items: center; justify-content: center; cursor: pointer;\r\n        border-bottom: 1px solid #f1f1f1;\r\n    }\r\n\r\n    .img-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; transition: 0.3s; }\r\n    .card:hover .img-wrap img { transform: scale(1.05); }\r\n\r\n    .info { padding: 20px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }\r\n\r\n    /* TESTO PRODOTTO */\r\n    .killer-title { \r\n        font-weight: 700; \r\n        font-size: 1rem; \r\n        line-height: 1.4; \r\n        color: var(--text-main); \r\n        height: 2.8em; \r\n        overflow: hidden; \r\n        transition: color 0.2s;\r\n    }\r\n\r\n    /* CAMBIO COLORE TESTO SU HOVER */\r\n    .card:hover .killer-title { color: var(--accent); }\r\n\r\n    .micro-review { \r\n        font-size: 0.85rem; \r\n        color: var(--text-muted); \r\n        font-style: italic; \r\n        background: #f8fafc; \r\n        padding: 10px; \r\n        border-radius: 6px;\r\n        margin-bottom: auto;\r\n        border-left: 3px solid #cbd5e0;\r\n    }\r\n\r\n    .price-box { \r\n        display: flex; \r\n        align-items: center; \r\n        justify-content: space-between; \r\n        margin-top: 15px;\r\n        padding-top: 15px;\r\n        border-top: 1px solid #f1f1f1;\r\n    }\r\n\r\n    .price { font-size: 1.3rem; font-weight: 800; color: var(--price); }\r\n\r\n    .btn { \r\n        background: var(--accent); \r\n        color: white !important; \r\n        text-decoration: none; \r\n        font-size: 0.85rem;\r\n        padding: 10px 20px; \r\n        border-radius: 6px; \r\n        font-weight: 700; \r\n        text-transform: uppercase;\r\n        transition: 0.2s;\r\n    }\r\n\r\n    .btn:hover { background: #e68a00; filter: brightness(1.1); }\r\n\r\n    .footer { \r\n        text-align: center; \r\n        margin-top: 80px; \r\n        color: var(--text-muted); \r\n        font-size: 0.8rem; \r\n        border-top: 1px solid var(--border);\r\n        padding-top: 20px;\r\n    }\r\n\u003c/style\u003e\r\n\u003cdiv class=\"container\"\u003e\r\n   \u003cheader\u003e\r\n      \u003ch1\u003eMaker's Selection 2026\u003c/h1\u003e\r\n      \u003cdiv class=\"subtitle\"\u003eComponenti selezionati per Arduino ed ESP32\u003c/div\u003e\r\n   \u003c/header\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eESP32 Wroom\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81LQ3uoqwnL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery ESP32 NodeMCU WiFi CP2102 - - ESP32 WROOM - Wi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D86JDPD6?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61xE57vacOL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D86JDPD6?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBinghe ESP mit CH340 Schede di sviluppo, ESP 30 Pins ESP-...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D86JDPD6?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CLCQQPXW?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71f0h2c7BsL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CLCQQPXW?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUIZHI 2 ES2 Mini , ESP-3-2-S ESP-32-WROOM-32D Modulo WiF...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,49 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CLCQQPXW?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0B4DPKJTQ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71F1UysjACL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0B4DPKJTQ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDUBEUYEW 2.4 GHz Dual Core WLAN WiFi + Bluetooth 2-in-1 M...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e15,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0B4DPKJTQ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FNMFQJ4R?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71uS7OMXPML._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FNMFQJ4R?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 2 30PIN Nodemcu ESP32 CH340 Schede di sviluppo, ESP...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FNMFQJ4R?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81LQ3uoqwnL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery ESP32 NodeMCU WiFi CP2102 - - ESP32 WROOM - Wi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B071P98VTG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSTARTER KIT\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D8T5XD3P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81fI8SidxLL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D8T5XD3P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eELEGOO ESP32 3 USB C, 2.4GHz Dual Mode Wifi+Bluetooth Mic...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Ottimo rapporto qualità prezzo.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e25,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D8T5XD3P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DBHT2TLL?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71YD7Z5S+rL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DBHT2TLL?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eQIQIAZI per ESP-32 ESP ,3 per ESP-32S Tipo C 2.4GHz WiFi ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e15,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DBHT2TLL?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eSensori temperatura umidità Arduino\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPQ1TQK5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71jBM90mPAL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPQ1TQK5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eSHT31-D Sensore di Temperatura Digitale RUIZHI SHT31-D Mo...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,18 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPQ1TQK5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPFTC7ZF?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61MGJ+KXyyL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPFTC7ZF?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 3 SHT31-D Sensore di temperatura e umidità,modulo s...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPFTC7ZF?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPPZRQYB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/713UTKYKReL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPPZRQYB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eSHT31-D Sensore di Temperatura Digitale RUIZHI SHT31-D Mo...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e20,63 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPPZRQYB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D7BNXG3T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61gjZw9WGaL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D7BNXG3T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBinghe Sensore Temperatura e Umidità - 3 ,\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D7BNXG3T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPFY2RXV?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61ulauO9aRL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPFY2RXV?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 1 CJMCU-680 Temperature and Humidity Sensor,Modulo ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPFY2RXV?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CK195FRJ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71-jg9c1RML._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CK195FRJ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 5 x sensore di temperatura e umidità, sensori di t...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CK195FRJ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B089W7Y1WN?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71N0HyysqbL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B089W7Y1WN?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 3 x KY-015 DHT11 Modulo Sensore di Temperatura...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B089W7Y1WN?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FN3Y98FX?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61bTfMvUNIL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FN3Y98FX?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP Kompa-tibe - Modulo sensore di temperatura DHT, sen...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FN3Y98FX?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eESP32 LoRa\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FP4XT3CG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71lrHmSqB7L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FP4XT3CG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e24,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FP4XT3CG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FP4YGQP8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71KqVpXkGgL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FP4YGQP8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e59,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FP4YGQP8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FP52MQTT?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71lBN92+-AL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FP52MQTT?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUIZHI ESP32 V3 LoRa Board per Meshtastic, LoRa ESP32 V3 ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e49,73 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FP52MQTT?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F1CXG94J?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61R9LQC6fhL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F1CXG94J?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eConfezione da 2 schede ESP32 LoRa V3 Batteria 1100 mAh Cu...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003eVedi offerta\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F1CXG94J?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F4RDYJKK?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81isIf6lheL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F4RDYJKK?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eESP32 LoRa V3 Scheda Sviluppo + Batteria 3.7V 3000mAh + K...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003eVedi offerta\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F4RDYJKK?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F6C659SQ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61KKqpF2FDL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F6C659SQ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAlloggiamento per Modulo LoRa ESP32 V3 – , antenna, batte...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e19,68 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F6C659SQ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BJF6G67Z?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71GT5iHKxaL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BJF6G67Z?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDiymore per ESP32 LoRa 1262 V3 per ESP32 LX7 Dual-core 0....\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e26,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BJF6G67Z?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eLONG RANGE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DRHSW9L4?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71fRzuTfhsL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DRHSW9L4?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eTracker wireless con display LoRa ESP32, QIQIAZI ESP32 SX...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Trasmissione dati a lungo raggio senza WiFi.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e29,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DRHSW9L4?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eDisplay OLED I2C\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07BY6QN7Q?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81+IDm0O2sL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07BY6QN7Q?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 3 x 0.91 pollici Display OLED I2C SSD1306 Chip...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07BY6QN7Q?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B078J78R45?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71jZucpI1aL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B078J78R45?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 1.3 pollici Display OLED I2C SSH1106 Chip 128 ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B078J78R45?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DFCHBQQB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61QBSqzM1bL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DFCHBQQB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e1,3\" OLED I2C Display Modulo Binghe 1,3 Zoll LED OLED Dis...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DFCHBQQB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DFCFYS4Z?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71bbAihrXQL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DFCFYS4Z?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e1,3\" OLED I2C Display Modulo Binghe 3 1,3 Zoll LED OLED D...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e13,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DFCFYS4Z?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B074NJMPYJ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81an3xXqiiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B074NJMPYJ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 5 x 0.96 pollici Display OLED I2C SSD1306 Chip...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e25,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B074NJMPYJ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CT2QP43S?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61qMvVvAgcL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CT2QP43S?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e3 Dispositivo di visualizzazione LCD minuscolo del modulo...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CT2QP43S?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CFFK32S8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/618yXrePDYL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CFFK32S8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAPKLVSR 3 0,96 Pollici Modulo OLED Display Module, 0.96 I...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CFFK32S8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01L9GC470?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81an3xXqiiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01L9GC470?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 0.96 pollici Display OLED I2C SSD1306 Chip 128...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01L9GC470?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eServomotori digitali\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DFCKDW95?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61pssMkiQ5L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DFCKDW95?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDigital Metal Servo Binghe 25KG Digitale Servomotore Meta...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DFCKDW95?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DJVXW5D5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61mMTF8q-TL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DJVXW5D5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDS3225 25 kg digital servo motor AYWHP 1 ingranaggio in m...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DJVXW5D5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F892P2WQ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Y2k29oOZL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F892P2WQ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eHAXIHA 2 Servo Motore Digitale,Ingranaggi Metallici,Coppi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e13,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F892P2WQ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CZHQHB1M?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51dHoc2UIuL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CZHQHB1M?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eHOTUT 13KG Micro Servomotore Digitale con Ingranaggi in M...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CZHQHB1M?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DSPYZ4SH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71+UHt3obZL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DSPYZ4SH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eHOTUT 3 Servo Motore Digitale Servomotore, Servo Micro Mo...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,19 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DSPYZ4SH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07H87592P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71QSFS8WtZL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07H87592P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Micro Servomotore Digitale MG996R con ingranag...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07H87592P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BTYRBBFY?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/91qHf6TjXcL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BTYRBBFY?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eMiuzei Servo Motore Digitale 15 kg Servomotore Pieno Rame...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e19,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BTYRBBFY?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BTYNYP6M?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/813pjtu6moL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BTYNYP6M?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eMiuzei 15KG Digital Servomotore, 180° Mini Servo Motore S...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BTYNYP6M?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eModuli GPS NEO-6M\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61-o8G9Sh0L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGonnely Modulo satellitare GPS Mini NEO-6M Modulo satelli...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,69 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01D0MXHS6?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/31tkb4PDYwL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01D0MXHS6?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo GPS con U Blox Neo 6 m e antenna ceramica per e re...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e27,22 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01D0MXHS6?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B088LR3488?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/512x4cPF9cL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B088LR3488?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eICQUANZX GY-NEO6MV2 NEO-6M - Modulo di controllo di volo ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B088LR3488?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DX1V4WS1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61LVTZ-hGXL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DX1V4WS1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGY-NEO6MV2 NEO-6M Modulo di controllo di volo GPS 3V-5V c...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DX1V4WS1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D9K2ZKBS?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61DvQp-BKUL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D9K2ZKBS?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGY-NEO6MV2 NEO-6M Modulo di controllo di volo GPS 3V-5V c...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e13,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D9K2ZKBS?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B08CZSL193?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71EY3TLRP7L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B08CZSL193?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAepen 2 Modulo GPS, GY-GPS6MV2 NEO-6M Modulo di Posizione...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B08CZSL193?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CM9FPXQV?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61rO-zR18-L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CM9FPXQV?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI GT-U7 GPS Modulo, piccolo ricevitore GPS a basso c...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CM9FPXQV?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61-o8G9Sh0L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGonnely Modulo satellitare GPS Mini NEO-6M Modulo satelli...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,69 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09J916W5V?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eSensori movimento PIR Arduino\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07DW49X56?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/615v2V6rJWL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07DW49X56?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eOiyagai 2 Mini Modulo Rilevatore Sensore di Movimento Uma...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,50 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07DW49X56?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61bC1dICwYL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ePIR Modulo Sensori di Movimento Binghe 3 PIR Sonda del se...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D7C6Z7N8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61rBkPybzaL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D7C6Z7N8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ePIR Modulo Sensori di Movimento Binghe 5 PIR Sonda del se...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D7C6Z7N8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07V6BY66P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/7174DKmBfoL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07V6BY66P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Sensori di movimento HC-SR501 PIR Modulo di ri...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07V6BY66P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07CNBYRQ7?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81yDyze2jtL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07CNBYRQ7?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 3 x Sensori di movimento HC-SR501 PIR Modulo d...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07CNBYRQ7?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61bC1dICwYL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ePIR Modulo Sensori di Movimento Binghe 3 PIR Sonda del se...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D7BV2BT4?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BGPDMWP9?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51H6KwveJ9L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BGPDMWP9?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDollaTek Kit di 5 moduli sensore di rilevamento movimento...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BGPDMWP9?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07MY2TYC3?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51YLmITtonL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07MY2TYC3?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 2 Mini rivelatore di movimento umano a infrarossi ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07MY2TYC3?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eRelè 5V Arduino\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DFCT877T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71QkFdTZDHL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DFCT877T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e5 5V 1 canale modulo relè scheda scheda relè scudo trigge...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DFCT877T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eRELE 220V\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DJVYZH7N?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/711taOPxBrL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DJVYZH7N?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGTIWUNG 2 Modulo Relè a 4 Canali 5V, Scheda Relè Con Opto...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Isolamento sicuro per carichi di potenza.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DJVYZH7N?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71bjEpS4UvL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUNCCI-YUN 5 Modulo Relè a 1 Canale 5V Trigger di Livello...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07TYG14N6?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71VasG0YzsL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07TYG14N6?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 1 Canale KY-019 Modulo Relais 5V High-Level-Tr...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,49 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07TYG14N6?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eRELE 220V\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B06XQYFSHR?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71exQM5DX9L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B06XQYFSHR?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eELEGOO 8 Channel DC 5V Modulo Relay con Accoppiatore Otti...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Isolamento sicuro per carichi di potenza.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e15,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B06XQYFSHR?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DGXLD36Y?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71F1Rr0qgcL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DGXLD36Y?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 5 5V Modulo relè per PIC AVR DSP ARM\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DGXLD36Y?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eRELE 220V\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CSJQZ89V?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81rVo1KvjYL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CSJQZ89V?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGTIWUNG 10 Modulo Relè a 1 Canale 5V, 1 Canale Scheda con...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Isolamento sicuro per carichi di potenza.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CSJQZ89V?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71bjEpS4UvL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUNCCI-YUN 5 Modulo Relè a 1 Canale 5V Trigger di Livello...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F59PPVZB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eMicro SD Card Module SPI\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61CNHcfrflL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Modulo Lettore SPI Reader Micro Scheda SD TF M...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07SBR9NL1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71WGaeHer4L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07SBR9NL1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eANGEEK 5 Micro SD SPI Modulo lettore Memoria TF Card Shie...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07SBR9NL1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0C6KB34GZ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71K1uGDqOxL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0C6KB34GZ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eYoumile 10 SD Card Module Micro SD SDHC TF Card Adapter R...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0C6KB34GZ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09YYJTCP7?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71DRBFLL0nL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09YYJTCP7?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDAOKAI 5 Micro SD Card Module TF Card Adapter Reader con ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,39 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09YYJTCP7?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61CNHcfrflL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Modulo Lettore SPI Reader Micro Scheda SD TF M...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B06X1DX5WS?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CQXNZH8T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61sUceHngiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CQXNZH8T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eJZK 5 moduli per scheda Micro SD da 3,3 V 5 V con interfa...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CQXNZH8T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B077MCQS9P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71VkKp24Y6L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B077MCQS9P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 3 x Modulo Lettore SPI Reader Micro Scheda SD ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,49 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B077MCQS9P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B06XHJTGGC?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Hzpa8RU3L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B06XHJTGGC?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ekwmobile 2X modulo Micro SD Card per e Raspberry Pi - Kit...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,19 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B06XHJTGGC?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eESP32-CAM\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71NTNCORzzL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ediymore Bluetooth WiFi ESP32-CAM-MB con modulo scheda TF ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FNMJBXKR?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71P1zk-n7jL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FNMJBXKR?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 2 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e23,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FNMJBXKR?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FNMJ2M56?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71HGiTnbMAL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FNMJ2M56?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 1 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FNMJ2M56?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FNMJ54QB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71vLpdfWb3L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FNMJ54QB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 3 ESP32 CAM WiFi Bluetooth Board,ESP32 CAM MB Entwi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e30,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FNMJ54QB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CNSRSZZK?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71oa86q196L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CNSRSZZK?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eESP32 Cam Kit Telecamere RUIZHI 2 ESP32-CAM Scheda Blueto...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e22,96 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CNSRSZZK?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D9BSRYF9?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71dg-V7qy8L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D9BSRYF9?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ediymore 2 per ESP32 USB C per ESP32 CAM,WLAN/Bluetooth, d...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e22,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D9BSRYF9?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71NTNCORzzL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003ediymore Bluetooth WiFi ESP32-CAM-MB con modulo scheda TF ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F2F24JSZ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DKT9BDBD?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/613Y5pXMyPL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DKT9BDBD?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eQIQIAZI ESP-CAM Modulo, ESP-CAM con fotocamera OV2640, Wi...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DKT9BDBD?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eSensori biometrici Arduino\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07PRMXXXN?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51Al91y1k5L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07PRMXXXN?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDollaTek Modulo sensore di Lettore di Impronte digitali O...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07PRMXXXN?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0GCCGKVCH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51O1m6CQy4L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0GCCGKVCH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo sensore di impronte digitali, R307S scanner ottico...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,40 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0GCCGKVCH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07BQ9VNWR?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61SSOt+bWVL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07BQ9VNWR?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eGeekstory Lettore di impronte digitali ottiche modulo sen...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e26,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07BQ9VNWR?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61gXUt3Lm3L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 5 Sensore di trasduttore di misurazione della Dist...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07VJ9XB7T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51qFQ4OUukL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07VJ9XB7T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo pulsesensor sensore pulsazioni frequenza cardiaca ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e4,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07VJ9XB7T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07CQT5RC8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51NWgBbngLL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07CQT5RC8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 5 Pz Sensore di Umidità del Suolo Hygrometer Modul...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,89 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07CQT5RC8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D1K85KQG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71qSBJEvTPL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D1K85KQG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAPKLVSR 5 Modulo ultrasonico,Modulo sensore di distanza per\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D1K85KQG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07CB1ZW93?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61twd5zvvgL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07CB1ZW93?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 5 Hall Effect KY-003 Modulo sensore magnetico DC 5...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e5,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07CB1ZW93?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eMicrofoni I2S ESP32\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61mU38DlLiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP INMP441 modulo microfonico omnidirezionale 3 I2S Us...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B08218WSXH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61ZmY2qcEzL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B08218WSXH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eYoumile INMP441 Modulo microfono omnidirezionale Interfac...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e15,79 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B08218WSXH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/6102N9WqePL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP INMP441 modulo microfonico omnidirezionale 6 I2S Us...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CH2TYXCZ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71lc4C7cWCL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CH2TYXCZ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 3 INMP441 Modulo microfono omnidirezionale, interf...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CH2TYXCZ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61mU38DlLiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP INMP441 modulo microfonico omnidirezionale 3 I2S Us...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DX1VMRK1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/6102N9WqePL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP INMP441 modulo microfonico omnidirezionale 6 I2S Us...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DX1WLSK8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B081JN1CW5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51t3nlY4KmL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B081JN1CW5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDollaTek INMP441 Uscita Microfono omnidirezionale I2S Dig...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B081JN1CW5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0G48CB36W?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71I253lV2JL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0G48CB36W?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e3 INMP441 modulo microfono omnidirezionale con interfacci...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0G48CB36W?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eSensore qualità aria CO2\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CNQ5ST1L?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61lyo7aHQBL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CNQ5ST1L?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRadoff Now - Air Quality Monitor con Sensore Qualità Aria...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e122,00 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CNQ5ST1L?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B097YW5Q72?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61uF0Sh09mL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B097YW5Q72?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAirthings 2960 View Plus monitor per il radon e la qualit...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e239,00 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B097YW5Q72?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CGM4X4RP?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/612dk9HkwSL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CGM4X4RP?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAirthings 321 Wave Enhance - Monitor della qualità dell'a...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e149,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CGM4X4RP?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eDISPLAY\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DBVDWB6G?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/718WFK8HzCL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DBVDWB6G?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eSwitchBot rilevatore di CO2, termometro ambiente interno ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Schermo nitido a basso consumo energetico.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e69,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DBVDWB6G?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F66SXS1L?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61RDOkxB-aL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F66SXS1L?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eSwitchBot Rilevatore di CO2 Bluetooth con termometro IP65...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e79,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F66SXS1L?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F5WTVPXB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71MNPPWSkwL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F5WTVPXB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eMonitor di qualità dell'aria per interni: sensore di temp...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e23,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F5WTVPXB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0G39B8V8T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61Zw6+aJ16L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0G39B8V8T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003efocombance Rivelatore CO2 Monitor Rilevatore Gas 5 in 1, ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003eVedi offerta\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0G39B8V8T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FN749Y3K?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71fMB+wmN9L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FN749Y3K?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eMonitor di qualità dell'aria WiFi: il misuratore intellig...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e28,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FN749Y3K?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eTastiera matriciale Arduino\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07G99LH4B?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51hgcJouZsL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07G99LH4B?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAihasd 4 * 4 Microcontroller Matrice Tastiera Modulo Tast...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07G99LH4B?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0C3Z3ZP8H?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/3138V8jfgqL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0C3Z3ZP8H?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eTastiera morbida MATRICIALE Touch 4x4 16 Tasti KEYPAD RAS...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e4,80 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0C3Z3ZP8H?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07D2FGQL4?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Yww-3HvvL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07D2FGQL4?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 4x4 Matrix Keypad Tastiera e Raspberry Pi incl...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07D2FGQL4?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07DK57KVM?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/612ofNXjiDL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07DK57KVM?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eDollaTek 5 4x4 University Tastiera Interruttore a Chiave ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07DK57KVM?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07X5VL58V?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61tRk4ssH6L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07X5VL58V?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eANGEEK 5 16 Key Membrane Switch Keypad 4X4 Matrix Keyboar...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07X5VL58V?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07CNXPZS4?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/713PhGzEdiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07CNXPZS4?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 5 x Matrix 4x4 Array Keypad Tastiera incluso u...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07CNXPZS4?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07ZT2RRT1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/711h+7oFKmL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07ZT2RRT1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 5 x Matrix 4x4 Keypad Tastiera e Raspberry Pi ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e23,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07ZT2RRT1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09L7PYT13?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51Rl+VyQzEL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09L7PYT13?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eKit fai-da-te 1x4 4 Tastiera tastiera tasto tasto indipen...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e4,13 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09L7PYT13?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eModulo RTC DS3231\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01CAOG8IG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51IG3BANnLL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01CAOG8IG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo Adafruit RTC Orologio in tempo reale di precisione...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e28,26 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01CAOG8IG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01M2B7HQB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81A8oQoVMtL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01M2B7HQB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Real Time Clock RTC DS3231 e Batteria gratuita...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01M2B7HQB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07LH592FM?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61OTYZJM6fL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07LH592FM?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eTECNOIOT 2x DS3231 AT24C32 IIC Module Precision Clock for\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,52 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07LH592FM?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FN3Z58LH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/710q8DCRvUL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FN3Z58LH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAYWHP 4 Real Time Clock RTC orologio I2C in tempo reale, ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FN3Z58LH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B076GP5B94?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81yPOTTOweL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B076GP5B94?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 5x Real Time Clock RTC DS3231 e Batteria gratu...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e19,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B076GP5B94?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0G5B1FB9R?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/410ZOOpsPxL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0G5B1FB9R?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRemingtape DS3231 AT24C32 IIC - Modulo orologio di precis...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e3,01 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0G5B1FB9R?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0C78KLRH2?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61+hnUfuyHL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0C78KLRH2?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eTECNOULAB 2 DS3231 AT24C32 IIC Modulo Modulo Orologio di ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,40 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0C78KLRH2?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DBHQCH7R?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/716iMtF5yaL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DBHQCH7R?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRTC IIC Modulo Precision Clock,QIQIAZI Tempo Reale Modulo...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DBHQCH7R?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eLettore RFID RC522\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61STfIl4O9L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAptoFun 2 RC522 IC Card RFID Reader modulo RF Reader modu...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,50 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01M28JAAZ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81CqhPXM9lL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01M28JAAZ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Kit RFID RC522 13,56MHz con Reader, Chip e Sch...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,49 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01M28JAAZ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B074S8MRQ7?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Vv-vgIIlL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B074S8MRQ7?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 3 x Kit RFID RC522 13,56MHz con Reader, Chip e...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e14,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B074S8MRQ7?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DLGVNX93?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71TQiH-VYKL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DLGVNX93?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eKit RFID per , modulo sensore RFID IC con lettore, chip e...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DLGVNX93?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61STfIl4O9L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAptoFun 2 RC522 IC Card RFID Reader modulo RF Reader modu...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,50 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01I5DH69Q?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B074S9FZC5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81Vc+SCaVeL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B074S9FZC5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery 5 x Kit RFID RC522 13,56MHz con Reader, Chip e...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e19,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B074S9FZC5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0D622MFK1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71WWtkifisL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0D622MFK1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBinghe 2 RFID Kit, Modulo di induzione della scheda IC RF...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0D622MFK1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0B12XWHC1?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51IjYWCcV7L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0B12XWHC1?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003electroWorldFR Kit RFID RC 522 - Lettore, chip e scheda 13...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,59 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0B12XWHC1?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eSensore distanza Ultrasuoni\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01COSN7O6?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71NxgIWPTmL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01COSN7O6?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eELEGOO Modulo Sensore di Distanza a Ultrasuoni 5 per , Ra...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01COSN7O6?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CLVC87R5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51O6pKUjBEL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CLVC87R5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eSensore di Distanza a Ultrasuoni Sensore Impermeabile Con...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e34,05 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CLVC87R5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0B56S9G6Q?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Sxdse0u7L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0B56S9G6Q?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eEPLZON HC-SR04 Modulo sensore di distanza ad ultrasuoni a...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0B56S9G6Q?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPPTTHTJ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71Rxrk8fGuL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPPTTHTJ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eJSN-SR04T Ultrasonic Impermeabile Sensore RUIZHI 2 JSN-SR...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,41 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPPTTHTJ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FPPYV62T?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71o6etZxvhL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FPPYV62T?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eJSN-SR04T Ultrasonic Impermeabile Sensore RUIZHI 3 JSN-SR...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e18,26 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FPPYV62T?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61gXUt3Lm3L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eARCELI 5 Sensore di trasduttore di misurazione della Dist...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07MPZR59P?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B00W3GRUZC?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61MUgU0ZbsL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B00W3GRUZC?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAihasd 3 4 Pin ultrasonica del modulo HC-SR04 sensore di ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B00W3GRUZC?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eSENSORE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DDKXCCRH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71bBJimHKBL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DDKXCCRH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003e2 Modulo Sensore Ultrasuoni Impermeabile 5V JSN-SR04T Mod...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Alta precisione per i tuoi dati ambientali.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e10,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DDKXCCRH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eStriscia LED WS2812B\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B088BDLMH2?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61aUWNyqxhL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B088BDLMH2?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBTF-LIGHTING WS2812B Fili in lega ECO RGB 5050SMD Indiriz...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e27,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B088BDLMH2?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F3TS8GHB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71KkVamUOBL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F3TS8GHB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eTOPAI Striscia LED COB WS2812B 5mm Ultrasottile 5 Metri, ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e32,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F3TS8GHB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01CDTECSG?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61aM0G5YZDL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01CDTECSG?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBTF-LIGHTING WS2812B RGB 5050SMD Indirizzabile individual...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e28,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01CDTECSG?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B01CP5PQU6?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61Yc6S1u7LL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B01CP5PQU6?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBTF-LIGHTING WS2811 IC=RGB IC Indirizzabile Dream Color S...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e22,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B01CP5PQU6?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAI VISION\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F9DVHJ7B?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81oaQSmfMgL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F9DVHJ7B?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBeaeet Striscia LED 24V 20m 5050 RGB per Camera da Letto,...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Perfetto per riconoscimento immagini e streaming.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e19,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F9DVHJ7B?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BTVBTHQ5?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/619jHkzG8TL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BTVBTHQ5?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eWS2812B Striscia LED indirizzabile individualmente 5050 S...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e20,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BTVBTHQ5?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0BTV9TD36?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/515GiYTMddL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0BTV9TD36?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eCUQI WS2812B Striscia LED Indirizzabile Individualmente 5...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,39 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0BTV9TD36?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B088K56MJT?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71mXgjDCzWL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B088K56MJT?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBTF-LIGHTING WS2812E Fili in lega ECO RGB 5050SMD Indiriz...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e16,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B088K56MJT?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eShield Ethernet ESP32\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CLGRSFGB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51oCi2WxnGL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CLGRSFGB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eLILYGO T-ETH-Lite ESP32-S3 W5500 Ethernet TTGO Modulo ESP...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e28,00 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CLGRSFGB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CLD4KXSL?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71U7uA7xLNL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CLD4KXSL?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eW5100 Ethernet Shield RUIZHI W5100 Scheda di espansione E...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e11,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CLD4KXSL?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DKJD4NVF?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61W1Kd5E8VL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DKJD4NVF?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eWaveshare ESP32-S3 ETH , 10/100Mbps RJ45 Ethernet Port, W...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e26,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DKJD4NVF?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eAFFIDABILE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B079GZZVR8?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71derAYfznL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B079GZZVR8?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eAZDelivery Ethernet Shield W5100 con Slot per Schede Micr...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Brand noto per ottima documentazione.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e15,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B079GZZVR8?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B086XJ4J6M?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61sWkFQWWlL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B086XJ4J6M?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eEthernet Shield 2 [A000024] - Estensione per connettere I...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e31,50 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B086XJ4J6M?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0CLGQQ4NJ?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61B3CvU5xiL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0CLGQQ4NJ?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eLILYGO T-ETH-Lite ESP32 RTL8201 Ethernet TTGO Modulo Supp...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e30,00 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0CLGQQ4NJ?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FMJD25QP?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61wj5xKIHZL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FMJD25QP?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eWaveshare ESP32-P4-ETH High-Performance , Based On ESP32-...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e26,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FMJD25QP?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0DLP18N8M?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71T+hn7SE2L._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0DLP18N8M?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eEthernet ESP32-S3, porta Ethernet RJ45 da 10/100 Mbps, su...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e30,71 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0DLP18N8M?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"category-section\"\u003e\r\n      \u003cdiv class=\"category-title\"\u003eBMS Ricarica Litio TP4056\u003c/div\u003e\r\n      \u003cdiv class=\"grid\"\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003ePOWER\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F5BQWHK3?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/51aRueYbyIL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F5BQWHK3?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo di ricarica agli ioni di litio TP4056 + DW01, corr...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Gestione sicura della ricarica litio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,60 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F5BQWHK3?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F59VQ8JC?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71BvzAhHymL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F59VQ8JC?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eRUNCCI-YUN 5 TP4057 USB C 3.7V 1A Interfaccia di Ingresso...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e6,99 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F59VQ8JC?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F93T2SXB?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71MeGdIBtvL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F93T2SXB?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eBMS 2S 3S 30,8 x 18,3 x 5 mm, caricabatterie per batteria...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e7,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F93T2SXB?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003ePOWER\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0FT35CZZH?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/913pakPZxAL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0FT35CZZH?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo di ricarica intelligente Tp4056, 50 , soluzione di...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Gestione sicura della ricarica litio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e17,00 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0FT35CZZH?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003ePOWER\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B0F5BS8DCS?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/61rlxM1WRCL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B0F5BS8DCS?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eModulo di Ricarica TP4056 + DW01 agli Ioni di Litio, Corr...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Gestione sicura della ricarica litio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e12,68 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B0F5BS8DCS?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09XV8RQKK?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/71v-yH1woES._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09XV8RQKK?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eOuitble Scheda di Protezione PCB 3S 12V 40A Scheda di Pro...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e8,09 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09XV8RQKK?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003ePOWER\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B07GDNYZGR?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/41YJM97zEIL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B07GDNYZGR?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eParadisetronic.com Modulo di Ricarica agli ioni di Litio ...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Gestione sicura della ricarica litio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e9,19 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B07GDNYZGR?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n         \u003cdiv class=\"card\"\u003e\r\n            \u003cdiv class=\"badge-emotion\"\u003eTOP CHOICE\u003c/div\u003e\r\n            \u003ca href=\"https://www.amazon.it/dp/B09Y5MR2YD?tag=robotdazero-21\" target=\"_blank\" class=\"img-wrap\"\u003e\r\n            \u003cimg src=\"https://m.media-amazon.com/images/I/81KE1BtA7YL._AC_UL320_.jpg\" alt=\"Product Image\"\u003e\r\n            \u003c/a\u003e\r\n            \u003cdiv class=\"info\"\u003e\r\n               \u003ca href=\"https://www.amazon.it/dp/B09Y5MR2YD?tag=robotdazero-21\" target=\"_blank\"\u003e\r\n                  \u003cdiv class=\"killer-title\"\u003eEMSea 2 Scheda Di Protezione Della Batteria Al Litio 3S 6...\u003c/div\u003e\r\n               \u003c/a\u003e\r\n               \u003cdiv class=\"micro-review\"\u003e\"Componente essenziale per il tuo laboratorio.\"\u003c/div\u003e\r\n               \u003cdiv class=\"price-box\"\u003e\r\n                  \u003cdiv class=\"price\"\u003e17,02 €\u003c/div\u003e\r\n                  \u003ca href=\"https://www.amazon.it/dp/B09Y5MR2YD?tag=robotdazero-21\" class=\"btn\" target=\"_blank\"\u003eVedi\u003c/a\u003e\r\n               \u003c/div\u003e\r\n            \u003c/div\u003e\r\n         \u003c/div\u003e\r\n      \u003c/div\u003e\r\n   \u003c/div\u003e\r\n   \u003cdiv class=\"footer\"\u003e\r\n      Generato automaticamente il 22/01/2026 13:04\r\n   \u003c/div\u003e\r\n\u003c/div\u003e","title":"ESP32 su Amazon"},{"content":"\rBUILDING 2026\rHardware. Software. Agritech Revolution.\nRobotdazero\rTrasformiamo bit in atomi. Dal 2016, progettiamo l'automazione che non c'era.\nInside the Vision\rNon siamo una semplice azienda di elettronica. Siamo un laboratorio di innovazione dove il rigore ingegneristico incontra la creatività del codice. Nati nel 2016 con l'ossessione per il dettaglio, oggi Robotdazero è il punto di riferimento per chi cerca soluzioni Agritech e automazioni custom che funzionano davvero.\nNiente fuffa, solo hardware solido e software ottimizzato. La nostra missione? Rendere la tecnologia complessa talmente semplice da sembrare invisibile.\nSergio Rame\rFounder \u0026 Tech Lead. Visionario per scelta, programmatore per passione.\nLegal \u0026 Stack\rPartita IVA\rIT00378808885\rCodice Fiscale\r00378808885\rVAT ID (EU)\rIT01416820890\rHQ \u0026 Lab\rRegistered Office\rViale Akradina 1, 96100 Siracusa (SR) - Italy\nOperational Lab\rViale Akradina 1, 96100 Siracusa (SR) - Italy\nGet in Touch\rDirect Email\rinfo@robotdazero.it\rCertified (PEC)\rsebastiano.dimartina@widipec.it\r","permalink":"https://www.robotdazero.it/societa/","summary":"\u003cstyle\u003e\r\n   /* 1. RESET E OTTIMIZZAZIONE PERFORMANCE */\r\n   .main { max-width: 100% !important; padding: 0 !important; margin: 0 !important; }\r\n   .page-header { display: none; }\r\n   .content-limit {\r\n   max-width: 1100px;\r\n   margin: 0 auto;\r\n   padding: 80px 20px;\r\n   text-align: left;\r\n   }\r\n   /* 2. TIPOGRAFIA MODERNA */\r\n   .societa-header h1 { font-size: 3.5rem; font-weight: 900; color: #007bff; margin-bottom: 10px; letter-spacing: -1px; }\r\n   .societa-header p { font-size: 1.4rem; color: var(--secondary); margin-bottom: 60px; line-height: 1.4; }\r\n   .info-group { margin-bottom: 60px; }\r\n   .info-group h2 {\r\n   font-size: 1.8rem;\r\n   font-weight: 800;\r\n   margin-bottom: 25px;\r\n   display: flex;\r\n   align-items: center;\r\n   gap: 10px;\r\n   }\r\n   .info-group h2::after {\r\n   content: \"\";\r\n   height: 2px;\r\n   flex-grow: 1;\r\n   background: linear-gradient(90deg, rgba(0,123,255,0.2), transparent);\r\n   }\r\n   /* 3. CARDS TECH-STYLE */\r\n   .info-card {\r\n   background: var(--entry);\r\n   padding: 25px;\r\n   border-radius: 16px;\r\n   border: 1px solid var(--border);\r\n   display: inline-block;\r\n   min-width: 480px;\r\n   max-width: 100%;\r\n   transition: all 0.3s ease;\r\n   box-shadow: 0 4px 20px rgba(0,0,0,0.03);\r\n   }\r\n   .info-card:hover { border-color: #007bff; transform: translateY(-2px); }\r\n   /* 4. DATA ALIGNMENT */\r\n   .data-row { display: flex; margin-bottom: 12px; font-size: 1.1rem; align-items: center; }\r\n   .data-row:last-child { margin-bottom: 0; }\r\n   .label { width: 180px; font-weight: 700; color: var(--secondary); opacity: 0.8; font-size: 0.9rem; text-transform: uppercase; }\r\n   .value { font-weight: 600; font-family: 'JetBrains Mono', monospace; color: var(--primary); }\r\n   /* 5. GRID SEDI */\r\n   .sedi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 25px; }\r\n   .sedi-grid .info-card { display: block; min-width: auto; }\r\n   /* 6. FOUNDER PROFILE */\r\n   .founder-profile { \r\n   display: flex; \r\n   align-items: center; \r\n   gap: 30px; \r\n   margin-top: 40px; \r\n   padding: 30px; \r\n   background: rgba(0,123,255,0.03); \r\n   border-radius: 20px;\r\n   }\r\n   .founder-image {\r\n   width: 130px; height: 130px;\r\n   border-radius: 50%; object-fit: cover;\r\n   border: 3px solid #007bff;\r\n   box-shadow: 0 10px 30px rgba(0,123,255,0.2);\r\n   }\r\n   .founder-info h3 { margin: 0; font-size: 1.5rem; font-weight: 800; }\r\n   .founder-info p { margin: 5px 0 0; color: var(--secondary); font-style: italic; }\r\n   /* HERO SECTION - 2026 EDITION */\r\n   .hero-societa {\r\n   position: relative;\r\n   width: 100%;\r\n   height: 500px;\r\n   background: url('/images/hero/320.jpg') center/cover no-repeat;\r\n   display: flex;\r\n   align-items: center;\r\n   justify-content: center;\r\n   color: white;\r\n   overflow: hidden;\r\n   }\r\n   .hero-overlay {\r\n   position: absolute;\r\n   top: 0; left: 0; width: 100%; height: 100%;\r\n   /* Abbiamo abbassato l'opacità da 0.8 a 0.3 e da 0.4 a 0.1 */\r\n   background: linear-gradient(135deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.1) 100%); \r\n   z-index: 1;\r\n   }\r\n   .hero-content { position: relative; z-index: 2; text-align: center; }\r\n   .hero-content h1 { font-size: 5rem; font-weight: 900; margin: 0; letter-spacing: 4px; }\r\n   @media (max-width: 768px) {\r\n   .hero-content h1 { font-size: 3rem; }\r\n   .sedi-grid { grid-template-columns: 1fr; }\r\n   .info-card { min-width: 100%; }\r\n   .founder-profile { flex-direction: column; text-align: center; }\r\n   }\r\n\u003c/style\u003e\r\n\u003csection class=\"hero-societa\"\u003e\r\n   \u003cdiv class=\"hero-overlay\"\u003e\u003c/div\u003e\r\n   \u003cdiv class=\"hero-content\"\u003e\r\n      \u003ch1\u003eBUILDING 2026\u003c/h1\u003e\r\n      \u003cp style=\"font-size: 1.5rem; font-weight: 300; letter-spacing: 2px;\"\u003eHardware. Software. Agritech Revolution.\u003c/p\u003e","title":"Società"},{"content":"\rDisclaimer e Limitazione di Responsabilità\nNatura del Prodotto Questo prodotto viene venduto esclusivamente come \u0026ldquo;Kit di montaggio per scopi didattici, sperimentali e di prototipazione\u0026rdquo;. Non è un elettrodomestico finito destinato all\u0026rsquo;uso domestico generico da parte di personale non qualificato. L\u0026rsquo;assemblaggio, la configurazione e l\u0026rsquo;utilizzo richiedono una conoscenza di base dell\u0026rsquo;elettronica e dei rischi connessi.\nSicurezza Elettrica Il kit è progettato per essere alimentato esclusivamente in Bassa Tensione (SELV) tramite l\u0026rsquo;alimentatore certificato fornito (o raccomandato: Mean Well GST60A19-P1J). È severamente vietato collegare il circuito direttamente alla rete elettrica 220V o utilizzare alimentatori non a norma. L\u0026rsquo;utente si assume ogni responsabilità derivante dall\u0026rsquo;uso di alimentatori diversi da quelli specificati.\nLimitazione di Responsabilità In nessun caso il Progettista/Venditore potrà essere ritenuto responsabile per danni diretti, indiretti, incidentali o consequenziali (inclusi, ma non limitati a: danni per incendio, perdita di dati, malfunzionamento di altri apparati, o lesioni personali) derivanti da:\nErrato montaggio o saldatura dei componenti da parte dell\u0026rsquo;utente.\nModifiche al circuito originale o al firmware presente nel repository master.\nContatto accidentale tra i liquidi del sistema idroponico e le parti elettroniche.\nUtilizzo del kit in condizioni ambientali non idonee (umidità eccessiva, calore estremo).\nAvvertenze d\u0026rsquo;Uso Non lasciare il kit incustodito durante il funzionamento, specialmente durante le prime 48 ore di test.\nAssicurarsi che la parte elettronica sia fisicamente separata e protetta da possibili perdite d\u0026rsquo;acqua del sistema idroponico.\nIl kit non è un giocattolo e non è adatto all\u0026rsquo;uso da parte di minori senza la supervisione di un adulto esperto.\nAccettazione dei Termini L\u0026rsquo;apertura della confezione o l\u0026rsquo;inizio delle operazioni di montaggio costituiscono l\u0026rsquo;accettazione integrale dei presenti termini di responsabilità. ","permalink":"https://www.robotdazero.it/disclaimer/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003cp\u003eDisclaimer e Limitazione di Responsabilità\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cp\u003eNatura del Prodotto Questo prodotto viene venduto esclusivamente come \u0026ldquo;Kit di montaggio per scopi didattici, sperimentali e di prototipazione\u0026rdquo;. Non è un elettrodomestico finito destinato all\u0026rsquo;uso domestico generico da parte di personale non qualificato. L\u0026rsquo;assemblaggio, la configurazione e l\u0026rsquo;utilizzo richiedono una conoscenza di base dell\u0026rsquo;elettronica e dei rischi connessi.\u003c/p\u003e","title":"Disclaimer di Responsabilità"},{"content":"\rCiao! Siamo felici di vederti e vogliamo che la tua esperienza con Robotdazero sia eccellente! La nostra documentazione è il posto migliore per iniziare e trovare la maggior parte delle risposte. Ci impegniamo molto nel rendere i nostri documenti dettagliati e aggiornati in modo da fornire risposte rapide alle tue domande.\nNon hai ancora trovato quello che stai cercando? Siamo qui per aiutarti, inviaci una email e saremo lieti di risponderti in breve tempo: clicca sull\u0026rsquo;icona sottostante per copiare il nostro indirizzo email nella tua clipboard.\n🤖 info@robotdazero.it\r✅ Email copiata negli appunti!\r","permalink":"https://www.robotdazero.it/contatti/","summary":"\u003cstyle\u003e\r\n#top \u003e main \u003e article \u003e div \u003e footer \u003e div \u003e h3 {\r\n  font-size: 0 !important;\r\n}\r\n\u003c/style\u003e\r\n\u003ch2 id=\"ciao-siamo-felici-di-vederti-e-vogliamo-che-la-tua-esperienza-con-robotdazero-sia-eccellente\"\u003eCiao! Siamo felici di vederti e vogliamo che la tua esperienza con Robotdazero sia eccellente!\u003c/h2\u003e\n\u003cp\u003eLa nostra documentazione è il posto migliore per iniziare e trovare la maggior parte delle risposte. Ci impegniamo molto nel rendere i nostri documenti dettagliati e aggiornati in modo da fornire risposte rapide alle tue domande.\u003c/p\u003e\n\u003ch4 id=\"non-hai-ancora-trovato-quello-che-stai-cercando\"\u003eNon hai ancora trovato quello che stai cercando?\u003c/h4\u003e\n\u003cp\u003eSiamo qui per aiutarti, inviaci una email e saremo lieti di risponderti in breve tempo: clicca sull\u0026rsquo;icona sottostante per copiare il nostro indirizzo email nella tua clipboard.\u003c/p\u003e","title":"Contatti"},{"content":"\rCONTRATTO DI ASSISTENZA TECNICA E MONITORAGGIO REMOTO OGGETTO: Manutenzione e Supervisione del Sistema Mini SCADA (Hardware [ESP32-CORE] + Gateway [GL-OPENWRT]).\nOPERATIVITÀ DEL SISTEMA Indipendenza Locale: Il sistema è progettato per operare autonomamente. In caso di interruzione della connessione internet, la logica di controllo (attuatori/sensori) rimane attiva. Gateway di Accesso: Il controllo remoto è garantito da un tunnel cifrato WireGuard. L\u0026rsquo;accesso è riservato esclusivamente al tecnico titolare.\nSERVIZI INCLUSI (CANONE ANNUALE) Monitoraggio Heartbeat: Controllo automatico dello stato di \u0026ldquo;salute\u0026rdquo; della centralina ogni 60 secondi. Tele-Assistenza (OOB): Diagnostica remota e risoluzione bug software via VPN senza necessità di intervento fisico.\nAggiornamenti OTA (Over-The-Air): Miglioramento continuo delle logiche di controllo e patch di sicurezza del gateway.\nData Archiving: Backup dei log di produzione sul server centrale (Django) per la tracciabilità dei lotti.\nLIMITI DI RESPONSABILITÀ Danni Elettrici: Il sistema include isolamento galvanico. Tuttavia, danni derivanti da fulmini o sovratensioni catastrofiche sulla rete ENEL non sono coperti (si consiglia scaricatore a monte). Intervento Fisico: Se il guasto richiede la sostituzione fisica di un componente (es. sensore rotto meccanicamente), l\u0026rsquo;uscita del tecnico verrà fatturata a tariffa agevolata ([Inserire Prezzo]€ nel raggio di 30km).\nConnettività: La stabilità del monitoraggio remoto dipende dal provider internet del cliente (SIM/Fibra).\nPROPRIETÀ DEI DATI Il cliente è l\u0026rsquo;unico proprietario dei dati di produzione. In caso di recesso, verrà fornito un export (CSV/JSON) dello storico degli ultimi 12 mesi.\nRISERVATEZZA (NON-DISCLOSURE) Tutti i parametri di produzione e le ricette inserite nel sistema sono considerati segreto industriale e non verranno condivisi con terzi.\n","permalink":"https://www.robotdazero.it/contratto/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003ch2 id=\"contratto-di-assistenza-tecnica-e-monitoraggio-remoto\"\u003eCONTRATTO DI ASSISTENZA TECNICA E MONITORAGGIO REMOTO\u003c/h2\u003e\n\u003cp\u003eOGGETTO: Manutenzione e Supervisione del Sistema Mini SCADA (Hardware [ESP32-CORE] + Gateway [GL-OPENWRT]).\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003eOPERATIVITÀ DEL SISTEMA\nIndipendenza Locale: Il sistema è progettato per operare autonomamente. In caso di interruzione della connessione internet, la logica di controllo (attuatori/sensori) rimane attiva.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eGateway di Accesso: Il controllo remoto è garantito da un tunnel cifrato WireGuard. L\u0026rsquo;accesso è riservato esclusivamente al tecnico titolare.\u003c/p\u003e","title":"Cookie Policy"},{"content":"\rQuesta informativa è redatta e personalizzata per i visitatori del sito web www.robotdazero.it. Il presente documento annulla e sostituisce integralmente i documenti pubblicati in precedenza in tema di cookie.\nSpecifiche informative di sintesi sono progressivamente riportate o visualizzate nelle pagine del sito predisposte per particolari servizi a richiesta che prevedono form per la raccolta dei dati.\nLa informiamo inoltre che, per fornire un servizio completo il nostro sito può contenere link ad altri siti web, non gestiti da robotdazero.it. Robotdazero non è responsabile di errori, contenuti, cookies, pubblicazioni di contenuto morale illecito, pubblicità, banner o files non conformi alle disposizioni normative vigenti e del rispetto della normativa Privacy da parte di siti non gestiti dal Titolare.\nSoggetti interessati Utenti del sito web www.robotdazero.it.\nRobotdazero in qualità di Titolare del trattamento dei suoi dati personali ai sensi e per gli effetti del D.Lgs. 30 giugno 2003 n.196 (‘Codice in materia di protezione dei dati personali’), di seguito ‘Codice della Privacy’, e del Reg. UE 679/16 (di seguito GDPR) con la presente La informa che la citata normativa prevede la tutela delle persone e di altri soggetti rispetto al trattamento dei dati personali e che tale trattamento sarà improntato ai principi di correttezza, liceità e trasparenza e di tutela della Sua riservatezza e dei Suoi diritti.\nLe informazioni ed i dati personali da Lei forniti od altrimenti acquisti nell’ambito dell’utilizzo del sito saranno trattati in accordo alle disposizioni legislative della normativa sopra richiamata e degli obblighi di riservatezza ivi previsti.\nTipologia di dati trattati Dati di Navigazione Non vengono trattati:\ngli indirizzi IP o i nomi a dominio dei computer e di altri dispositivi utilizzati dagli utenti che si connettono al sito; gli indirizzi in notazione URI (Uniform Resource Identifier) delle risorse richieste ed eventuali indicazioni temporali delle stesse; parametri relativi al sistema operativo e all\u0026rsquo;ambiente informatico dell\u0026rsquo;utente; pagine di partenza e di arrivo; indice di Navigazione e comportamenti identificativi durante la visualizzazione delle pagine del sito. Dati personali forniti volontariamente dall\u0026rsquo;utente L\u0026rsquo;invio facoltativo, esplicito e volontario di posta elettronica agli indirizzi indicati su questo sito e la compilazione di form presenti sul medesimo comporta la successiva acquisizione dei dati personali del mittente (a mero titolo esemplificativo nome, cognome, indirizzo mail).\nSpecifiche informative di sintesi sono presenti nelle pagine che prevedono i form.\nFinalità del trattamento I Suoi dati raccolti durante la navigazione verranno trattati per le seguenti finalità:\nsvolgimento di operazioni strettamente connesse e strumentali alla gestione dei rapporti con gli utenti o dei visitatori del sito; Il trattamento dei dati per l’espletamento della finalità di cui al punto 1 è obbligatorio e l’eventuale non comunicazione, o comunicazione errata, di una delle informazioni può limitare e/o impedire l’utilizzo in pieno delle funzionalità e dei servizi presenti sul sito. Modalità di trattamento I dati personali sono trattati con strumenti manuali, elettronici e anche mediante cookies per il tempo strettamente necessario a conseguire gli scopi per cui sono stati raccolti. Ogni trattamento avviene nel rispetto delle modalità indicate nel D.lgs 196/2003 e nel GDPR con l’adozione delle misure adeguate ed idonee di sicurezza.\nComunicazione I suoi dati non vengono comunicati a terzi.\nDiffusione I suoi dati non saranno diffusi.\nTerze parti: I suoi dati possono essere raccolti mediante strumenti e servizi erogati da terze parti e conservati da loro. Le tipologie di cookie sotto riportate sono state impostate in modo da ridurre il potere identificativo dei cookie e sono state disabilitate anche le funzioni che permettono l’incrocio delle informazioni da parte della terza parte.\nCloudFlare https://www.cloudflare.com/security-policy/\nTitolare Il Titolare del trattamento dei dati, ai sensi della Legge, è Robotdazero.it, Viale Acradina -1, 96100 - Siracusa nella persona del suo legale rappresentante pro tempore.\nLei ha diritto di ottenere dal titolare al trattamento la cancellazione, la comunicazione, l’aggiornamento, la rettificazione, l’integrazione dei dati personali che La riguardano, nonché in generale può esercitare tutti i diritti previsti dall’art. 13 del GDPR fornito in copia di seguito.\nApplicazione della presente informativa Per dubbi riguardo la presente Informativa, contattate innanzitutto robotdazero inviando una e-mail a info@robotdazero.it.\nModifiche alla presente informativa Robotdazero si riserva il diritto di aggiornare la presente informativa per adeguarla al diritto sopravveniente, nonché tenendo in debita considerazione i suggerimenti trasmessi da dipendenti, clienti, collaboratori e utenti.\nIn caso di modifiche da parte di robotdazero, verrà visualizzata la parola \u0026lsquo;aggiornamento\u0026rsquo; accanto al collegamento Informativa sito web nella pagina principale di privacy nella pagina principale di www.robotdazero.it.\nIn caso di modifiche sostanziali all’ informativa robotdazero pubblicherà in maniera visibile tali modifiche.\nReg. UE 679/2016: Art. 13 – Informazioni da fornire qualora i dati personali siano raccolti presso l\u0026rsquo;interessato:\nIn caso di raccolta presso l\u0026rsquo;interessato di dati che lo riguardano, il titolare del trattamento fornisce all\u0026rsquo;interessato, nel momento in cui i dati personali sono ottenuti, le seguenti informazioni: l\u0026rsquo;identità̀ e i dati di contatto del titolare del trattamento e, ove applicabile, del suo rappresentante; i dati di contatto del responsabile della protezione dei dati, ove applicabile; le finalità̀ del trattamento cui sono destinati i dati personali nonché́ la base giuridica del trattamento; qualora il trattamento si basi sull\u0026rsquo;articolo 6, paragrafo 1, lettera f), i legittimi interessi perseguiti dal titolare del trattamento o da terzi; gli eventuali destinatari o le eventuali categorie di destinatari dei dati personali; ove applicabile, l\u0026rsquo;intenzione del titolare del trattamento di trasferire dati personali a un paese terzo o a un\u0026rsquo;organiz­ zazione internazionale e l\u0026rsquo;esistenza o l\u0026rsquo;assenza di una decisione di adeguatezza della Commissione o, nel caso dei trasferimenti di cui all\u0026rsquo;articolo 46 o 47, o all\u0026rsquo;articolo 49, secondo comma, il riferimento alle garanzie appropriate o opportune e i mezzi per ottenere una copia di tali dati o il luogo dove sono stati resi disponibili. In aggiunta alle informazioni di cui al paragrafo 1, il titolare del trattamento fornisce all\u0026rsquo;interessato le seguenti ulteriori informazioni necessarie per garantire un trattamento corretto e trasparente: periodo di conservazione dei dati personali oppure, se non è possibile, i criteri utilizzati per determinare tale periodo; l\u0026rsquo;esistenza del diritto dell\u0026rsquo;interessato di chiedere al titolare del trattamento l\u0026rsquo;accesso ai dati personali e la rettifica o la cancellazione degli stessi o la limitazione del trattamento che lo riguardano o di opporsi al loro trattamento, oltre al diritto alla portabilità̀ dei dati; qualora il trattamento sia basato sull\u0026rsquo;articolo 6, paragrafo 1, lettera a), oppure sull\u0026rsquo;articolo 9, paragrafo 2, lettera a), l\u0026rsquo;esistenza del diritto di revocare il consenso in qualsiasi momento senza pregiudicare la liceità̀ del trattamento basata sul consenso prestato prima della revoca; il diritto di proporre reclamo a un\u0026rsquo;autorità̀ di controllo; se la comunicazione di dati personali è un obbligo legale o contrattuale oppure un requisito necessario per la conclusione di un contratto, e se l\u0026rsquo;interessato ha l\u0026rsquo;obbligo di fornire i dati personali nonché́ le possibili conseguenze della mancata comunicazione di tali dati; l\u0026rsquo;esistenza di un processo decisionale automatizzato, compresa la profilazione di cui all\u0026rsquo;articolo 22, paragrafi 1 e 4, e, almeno in tali casi, informazioni significative sulla logica utilizzata, nonché́ l\u0026rsquo;importanza e le conseguenze previste di tale trattamento per l\u0026rsquo;interessato. Qualora il titolare del trattamento intenda trattare ulteriormente i dati personali per una finalità diversa da quella per cui essi sono stati raccolti, prima di tale ulteriore trattamento fornisce all\u0026rsquo;interessato informazioni in merito a tale diversa finalità e ogni ulteriore informazione pertinente di cui al paragrafo 2. I paragrafi 1, 2 e 3 non si applicano se e nella misura in cui l\u0026rsquo;interessato dispone già delle informazioni. COOKIES POLICY\n(Provvedimento del Garante dell’8 maggio 2014 pubblicato in G.U. n.126 il 3 giugno 2014 idi recepimento della direttiva 2002/58/CE)\nInformativa sito web e cookie Il presente documento è parte integrante dell’”informativa sito web e cookie” e viene redatto in questa modalità solo ed esclusivamente per permettere all’utente una migliore comprensione in merito all’utilizzo e alla disattivazione dei cookie. Si precisa che l’utente può manifestare le proprie opzioni sull’uso dei cookie presenti sul sito www.robotdazero.it (vedi elenco dettagliato nella parte sottostante “tipi di cookie”) anche attraverso le impostazioni del/i browser seguendo le istruzioni fornite qui di seguito.\nCOOKIE I cookie sono stringhe di testo di piccole dimensioni che i siti visitati dall\u0026rsquo;utente inviano al suo terminale (solitamente al browser), dove vengono memorizzati per essere poi ritrasmessi agli stessi siti alla successiva visita del medesimo utente. Oltre ai cookies sono soggetti al provvedimento del Garante anche altri strumenti analoghi (web beacon/web bug, clear GIF o altri) che consentono l’identificazione dell’utente o del terminale.\nNel corso della navigazione su un sito, l\u0026rsquo;utente può ricevere sul suo terminale anche cookie che vengono inviati da siti o da web server diversi (c.d. \u0026ldquo;terze parti\u0026rdquo;), sui quali possono risiedere alcuni elementi (quali, ad esempio, immagini, mappe, suoni, specifici link a pagine di altri domini) presenti sul sito che lo stesso sta visitando.\nI cookie, solitamente presenti nei browser degli utenti in numero molto elevato e a volte anche con caratteristiche di ampia persistenza temporale, sono usati per differenti finalità: esecuzione di autenticazioni informatiche, monitoraggio di sessioni, memorizzazione di informazioni su specifiche configurazioni riguardanti gli utenti che accedono al server, ecc. Ulteriori informazioni sui cookies sono reperibili su www.allaboutcookies.org.\nAl fine di giungere a una corretta regolamentazione di tali dispositivi, è necessario distinguerli posto che non vi sono delle caratteristiche tecniche che li differenziano gli uni dagli altri proprio sulla base delle finalità perseguite da chi li utilizza. In tale direzione si è mosso, peraltro, lo stesso legislatore, che, in attuazione delle disposizioni contenute nella direttiva 2009/136/CE, ha ricondotto l\u0026rsquo;obbligo di acquisire il consenso preventivo e informato degli utenti all\u0026rsquo;installazione di cookie utilizzati per finalità diverse da quelle meramente tecniche (cfr. art. 1, comma 5, lett. a), del D. Lgs. 28 maggio 2012, n. 69, che ha modificato l\u0026rsquo;art. 122 del Codice) e GDPR.\nMaggiori Informazioni sui cookie utilizzati dal sito www.robotdazero.it Quando si visita il presente sito, possono essere introdotti nel computer o in altro dispositivo “first party cookies” (generati ed utilizzati dal presente sito) ed anche “thirdy party cookies” (generati sul presente sito da terze parti). Si precisa che la disabilitazione di alcuni cookie potrebbe limitare la possibilità di utilizzare il sito e impedire di beneficiare in pieno delle funzionalità e dei servizi presenti. Per decidere quali accettare e quali rifiutare indichiamo qui di seguito una descrizione dei cookies utilizzati da www.robotdazero.it.\nTipi di cookie Cookie di navigazione: Sono cookie che garantiscono la normale navigazione e fruizione del sito web e che permettono il collegamento tra il server e il browser dell’utente. Questi cookie permettono al sito di funzionare correttamente e consentono di visualizzare i contenuti sul dispositivo utilizzato. Senza questi cookies alcune funzionalità del sito potrebbero non essere fornite. I cookie di navigazione sono cookie tecnici e sono necessari al funzionamento del sito.\nCookie Analitici: Sono cookies che raccolgono informazioni su come l’utente utilizza il sito web, come ad esempio quali pagine web vengono visitate più spesso. Il presente sito utilizza i cookies di terze parti “Google Analytcs”, un servizio di analisi statistica erogato e gestito da Google che consente di analizzare, in modo anonimo, come gli utenti visitano il sito. Le informazioni generate dal cookie sull\u0026rsquo;utilizzo del sito web da parte dell’utente (compreso l’indirizzo IP) vengono trasmesse, e depositato presso i server di Google.\n","permalink":"https://www.robotdazero.it/cookie/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003cp\u003eQuesta informativa è redatta e personalizzata per i visitatori del sito web \u003ca href=\"https://www.robotdazero.it\"\u003ewww.robotdazero.it\u003c/a\u003e. Il presente documento annulla e sostituisce integralmente i documenti pubblicati in precedenza in tema di cookie.\u003c/p\u003e\n\u003cp\u003eSpecifiche informative di sintesi sono progressivamente riportate o visualizzate nelle pagine del sito predisposte per particolari servizi a richiesta che prevedono form per la raccolta dei dati.\u003c/p\u003e","title":"Cookie Policy"},{"content":"","permalink":"https://www.robotdazero.it/iscriviti/","summary":"\u003cstyle\u003e\r\n  #top \u003e main \u003e article \u003e header \u003e h1, #top \u003e main \u003e article \u003e header \u003e div.post-meta, #top \u003e main \u003e article \u003e header \u003e div.breadcrumbs \u003e a {\r\n\r\n    visibility: hidden;\r\n  }","title":"Iscriviti"},{"content":"\rINFORMATIVA SULLA PRIVACY Ultimo aggiornamento: 7 Settembre 2024\nBenvenuto su Robotdazero.it (di seguito, \u0026ldquo;l\u0026rsquo;Applicazione\u0026rdquo; o \u0026ldquo;il Sito\u0026rdquo;). La tutela dei tuoi dati personali è una nostra priorità. Questa informativa descrive in modo trasparente e dettagliato come raccogliamo, utilizziamo, proteggiamo e condividiamo le informazioni che ci fornisci utilizzando la nostra piattaforma Kaspian e i servizi correlati.\nTitolare del Trattamento Il soggetto responsabile della raccolta e del trattamento dei tuoi dati personali (Titolare del Trattamento) è: Robotdazero.it Viale Akradina 1, 96100 – Siracusa (Italia) Indirizzo email di contatto: info@robotdazero.it\nTipologia di Dati Raccolti Durante l\u0026rsquo;utilizzo della nostra Applicazione, potremmo raccogliere le seguenti categorie di dati: Dati forniti volontariamente dall\u0026rsquo;Utente: Si tratta delle informazioni personali che decidi liberamente di fornirci (ad esempio, durante la registrazione, la compilazione di form di contatto o l\u0026rsquo;iscrizione ai servizi). Il mancato conferimento di dati indicati come \u0026ldquo;obbligatori\u0026rdquo; potrebbe comportare l\u0026rsquo;impossibilità di erogare il Servizio richiesto.\nDati di Utilizzo e Navigazione: I sistemi informatici preposti al funzionamento di questo Sito acquisiscono, nel corso del loro normale esercizio, alcuni dati la cui trasmissione è implicita nell\u0026rsquo;uso dei protocolli di comunicazione di Internet (es. indirizzi IP, log di sistema, orari delle richieste).\nLog di Sistema e Manutenzione: Per necessità legate al funzionamento ed alla manutenzione, questa Applicazione e gli eventuali servizi terzi utilizzati potrebbero raccogliere log di sistema, ossia file che registrano le interazioni e che possono contenere anche Dati Personali, quali l’indirizzo IP Utente.\nFinalità e Base Giuridica del Trattamento Trattiamo i tuoi dati esclusivamente in presenza di una base giuridica idonea e per le seguenti finalità: Erogazione del Servizio: Il trattamento è necessario all\u0026rsquo;esecuzione del contratto o di misure precontrattuali (es. gestione del tuo account Kaspian, fornitura delle soluzioni IoT).\nAdempimento di Obblighi Legali: Per rispettare norme nazionali o europee a cui il Titolare è soggetto (es. obblighi fiscali o amministrativi).\nSicurezza e Legittimo Interesse: Per garantire la sicurezza dell\u0026rsquo;Applicazione, prevenire frodi, difendere i diritti del Titolare in giudizio e per il perseguimento del legittimo interesse del Titolare o di terzi.\nModalità di Trattamento e Sicurezza dei Dati Il trattamento dei Dati Personali avviene mediante strumenti informatici e telematici, con logiche strettamente correlate alle finalità indicate e modalità idonee a garantirne la sicurezza e la riservatezza. Il Titolare adotta misure tecniche e organizzative adeguate per impedire l’accesso, la divulgazione, la modifica o la distruzione non autorizzata dei Dati.\nDestinatari dei Dati Oltre al Titolare, in alcuni casi, potrebbero avere accesso ai Dati:\nPersonale interno autorizzato: (es. personale amministrativo, commerciale, amministratori di sistema).\nSoggetti esterni (Responsabili del Trattamento): Fornitori di servizi tecnici terzi, hosting provider, società informatiche, agenzie di comunicazione nominati, se necessario, Responsabili del Trattamento da parte del Titolare. L’elenco aggiornato dei Responsabili potrà sempre essere richiesto al Titolare.\nTrasferimento dei Dati I Dati sono trattati presso le sedi operative del Titolare ed in ogni altro luogo in cui le parti coinvolte nel trattamento siano localizzate. Qualora i dati venissero trasferiti al di fuori dell\u0026rsquo;Unione Europea, il Titolare assicurerà che il trasferimento avvenga nel rispetto delle condizioni previste dalla normativa vigente.\nDiritti dell\u0026rsquo;Utente In conformità con le normative vigenti, hai il diritto in qualunque momento di:\nRevocare il consenso: Puoi revocare il consenso al trattamento dei tuoi Dati Personali precedentemente espresso.\nAccedere ai tuoi dati: Hai diritto ad ottenere informazioni sui Dati trattati dal Titolare e a riceverne una copia.\nVerificare e rettificare: Puoi verificare la correttezza dei tuoi Dati e richiederne l’aggiornamento o la correzione.\nOttenere la limitazione del trattamento: A determinate condizioni, puoi richiedere la limitazione del trattamento dei tuoi Dati.\nOttenere la cancellazione (Diritto all\u0026rsquo;oblio): Puoi richiedere la rimozione dei tuoi Dati da parte del Titolare.\nPortabilità dei dati: Hai diritto di ricevere i tuoi Dati in formato strutturato, di uso comune e leggibile da dispositivo automatico e, ove tecnicamente fattibile, di ottenerne il trasferimento senza ostacoli presso un altro titolare.\nOpporsi al trattamento: Puoi opporti al trattamento dei tuoi Dati quando esso avviene su una base giuridica diversa dal consenso.\nProporre reclamo: Hai il diritto di proporre reclamo all’autorità di controllo competente per la protezione dei dati personali o agire in sede giudiziale.\nEsercizio dei Diritti Per esercitare i tuoi diritti, puoi indirizzare una richiesta agli estremi di contatto del Titolare indicati in questo documento (info@robotdazero.it). Le richieste sono depositate a titolo gratuito e evase dal Titolare nel più breve tempo possibile, in ogni caso entro un mese.\nModifiche a questa Privacy Policy Il Titolare si riserva il diritto di apportare modifiche alla presente informativa in qualunque momento, dandone notizia su questa pagina. Ti preghiamo dunque di consultare regolarmente questa pagina, facendo riferimento alla data di ultima modifica indicata in alto.\n","permalink":"https://www.robotdazero.it/privacy/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003cp\u003eINFORMATIVA SULLA PRIVACY Ultimo aggiornamento: 7 Settembre 2024\u003c/p\u003e\n\u003cp\u003eBenvenuto su Robotdazero.it (di seguito, \u0026ldquo;l\u0026rsquo;Applicazione\u0026rdquo; o \u0026ldquo;il Sito\u0026rdquo;). La tutela dei tuoi dati personali è una nostra priorità. Questa informativa descrive in modo trasparente e dettagliato come raccogliamo, utilizziamo, proteggiamo e condividiamo le informazioni che ci fornisci utilizzando la nostra piattaforma Kaspian e i servizi correlati.\u003c/p\u003e","title":"Privacy"},{"content":"\rDisclaimer Legale L’accesso e l’utilizzo del sito web Robotdazero.it (di seguito \u0026ldquo;il Blog\u0026rdquo;) implicano l’accettazione totale e incondizionata dei presenti Termini di Servizio. Se non si accettano tali termini, l\u0026rsquo;utente è invitato a interrompere la navigazione e l\u0026rsquo;uso dei materiali contenuti.\nScopo del Blog e Natura delle Informazioni Robotdazero.it è un blog personale a scopo puramente informativo, hobbistico e didattico. I contenuti pubblicati — inclusi tutorial su sistemi IoT, automazione per idroponica, schemi elettrici, diagrammi e codice sorgente — rappresentano le esperienze personali dell’autore e non costituiscono in alcun modo consulenza professionale, ingegneristica o tecnica.\nEsclusione di Responsabilità (Disclaimer Tecnico) L’utente implementa i progetti descritti su Robotdazero.it a proprio rischio e pericolo. In particolare, si informa che:\nSicurezza Elettrica e Idraulica: La realizzazione di sistemi di idroponica computerizzata comporta l\u0026rsquo;interazione tra liquidi conduttivi ed elettricità. Tali operazioni possono causare cortocircuiti, incendi, allagamenti o scosse elettriche fatali se non eseguite con le dovute precauzioni e competenze.\nL\u0026rsquo;autore di Robotdazero.it non potrà essere ritenuto responsabile per alcun danno diretto o indiretto, inclusi (ma non limitati a) lesioni personali, danni a proprietà, perdita di dati o malfunzionamenti hardware derivanti dall\u0026rsquo;uso delle informazioni, del codice o degli schemi presenti su questo blog.\nGaranzia del Software: Tutto il codice fornito è rilasciato \u0026ldquo;così com\u0026rsquo;è\u0026rdquo;, senza alcuna garanzia di funzionamento, stabilità o sicurezza.\nProprietà Intellettuale e Licenze Tutti i contenuti originali (testi, fotografie e progetti) sono di proprietà di Robotdazero.it.\nUso Personale: È consentita la riproduzione dei progetti per uso privato, didattico e non commerciale.\nCodice Sorgente: Qualora il codice venga prelevato dai repository ufficiali del blog (ad esempio dal ramo master), l\u0026rsquo;utente è tenuto a rispettare le licenze allegate (es. MIT, GPL o Creative Commons) e a citare la fonte.\nAttribuzione: È vietata la copia integrale di articoli su altre piattaforme senza l\u0026rsquo;esplicito consenso scritto dell\u0026rsquo;autore.\nLink Esterni e Affiliazioni Il Blog può contenere link a siti terzi (fornitori di hardware, store online, documentazione esterna). L\u0026rsquo;autore non ha alcun controllo su tali siti e non si assume alcuna responsabilità per i loro contenuti, la loro sicurezza o le loro politiche commerciali.\nAggiornamenti dei Termini L\u0026rsquo;autore si riserva il diritto di modificare i presenti termini in qualsiasi momento per riflettere cambiamenti tecnologici o legislativi. La versione aggiornata sarà consultabile su questa pagina.\n","permalink":"https://www.robotdazero.it/termini/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003ch2 id=\"disclaimer-legale\"\u003eDisclaimer Legale\u003c/h2\u003e\n\u003cp\u003eL’accesso e l’utilizzo del sito web Robotdazero.it (di seguito \u0026ldquo;il Blog\u0026rdquo;) implicano l’accettazione totale e incondizionata dei presenti Termini di Servizio. Se non si accettano tali termini, l\u0026rsquo;utente è invitato a interrompere la navigazione e l\u0026rsquo;uso dei materiali contenuti.\u003c/p\u003e","title":"Termini di Servizio"},{"content":"\rSISTEMA MINI-SCADA: AUTOMAZIONE LOCALE E CONTROLLO REMOTO Progettato e Assistito a: [Tua Città / Provincia]\nCOSA FA PER TE Il sistema trasforma il tuo impianto manuale o semi-automatico in una Smart Factory. Legge i tuoi sensori (Temperatura, Pressione, Livello) e comanda i tuoi motori/pompe/resistenze con precisione millimetrica.\nI 3 PILASTRI DELLA TUA SICUREZZA AFFIDABILITÀ INDUSTRIALE: Centraline blindate con isolamento galvanico (EMC). Non si bloccano quando partono i motori, non bruciano l\u0026rsquo;elettronica.\nCONTROLLO TOTALE DA SMARTPHONE: Dashboard web moderna (Django) accessibile da qualsiasi dispositivo. Vedi i grafici di produzione in tempo reale da casa o dall\u0026rsquo;ufficio.\nASSISTENZA IMMEDIATA (VPN): Tunnel cifrato WireGuard attivo 24/7. Se hai un dubbio o serve una modifica, intervengo da remoto in 30 secondi. Niente costi di trasferta da Catania o Siracusa.\nPERCHÉ SCEGLIERE QUESTA SOLUZIONE? COSTO TRASPARENTE: Meno di 1.000€ per il kit base. Nessuna licenza software nascosta.\nINDIPENDENZA: Il sistema funziona anche se cade Internet. La tua produzione non si ferma mai.\nTRACCIABILITÀ: Generazione automatica di PDF per i log di produzione (HACCP / Certificazione Lotto).\nSCHEMI TECNICI (Per il tuo manutentore) Microcontrollore: ESP32 Dual Core (Logica Real-Time).\nGateway: Router OpenWrt Industrial-Grade.\nProtocolli: WireGuard VPN / HTTPS / MQTT.\nProtezione: Optoisolamento I/O e alimentazione Mean Well serie DIN.\nCONTATTI DIRETTI: Sebastiano Dimartina – Esperto IoT \u0026amp; Sistemi Embedded (35 anni di esperienza) Tel: 351-5133.273 Vial Akrafdina, 1 - 96100 Siracusa\n“Se non rispondo, sono in qualche quadro elettrico. Riprova o scrivi su WhatsApp.”\n","permalink":"https://www.robotdazero.it/volantino/","summary":"\u003cstyle\u003e\r\n/* Rimuove la sezione finale dell'articolo (CTA e box iscrizione) */\r\n.post-footer {\r\n    display: none !important;\r\n}\r\n/* Opzionale: aggiunge un po' di spazio dopo l'ultimo punto del disclaimer */\r\n.post-content {\r\n    margin-bottom: 50px;\r\n}\u003c/style\u003e\r\n\u003cp\u003eSISTEMA MINI-SCADA: AUTOMAZIONE LOCALE E CONTROLLO REMOTO\nProgettato e Assistito a: [Tua Città / Provincia]\u003c/p\u003e\n\u003cp\u003eCOSA FA PER TE\nIl sistema trasforma il tuo impianto manuale o semi-automatico in una Smart Factory. Legge i tuoi sensori (Temperatura, Pressione, Livello) e comanda i tuoi motori/pompe/resistenze con precisione millimetrica.\u003c/p\u003e","title":"Volantino"},{"content":"","permalink":"https://www.robotdazero.it/icons/","summary":"Lista completa delle icone PaperMod disponibili","title":"SVG Icon Gallery"}]