JAVASCRIPT: Interazione Javascript e PHP

Interazione Javascript e PHP per realizzare applicazioni client-server e gestione database

Articolo dedicato a come far interagire Javascript e PHP nel mondo del web per poter scrivere delle applicazioni web che interagiscano lato client e server per la manipolazione di dati inseriti dall’utente tramite una pagina web(lato client), come ad esempio un form e un database (lato server) per immagazzinare il dato.

Vediamo il codice HTML che crea il form, tralascio parte del codice html per creare la pagina concentrando l’attensione al puro form.

...

<form id="primoform">
 <input type="text" name="nome">
 <input type="text" name="cognome">
</form>
<button onclick="inviadati()">INVIA</button>

<div id="risultato"></div>
...

<script>
function inviadati(){
    risposta = document.getElementById("risultato");
    form=document.querySelector('#primoform');
    formData = new FormData(form);

    xhttp = new XMLHttpRequest();
    xhttp.open('POST', "saluta.php", false);
    xhttp.onreadystatechange = function (){
       if(this.readyState == 4 && this.status == 200){
         risposta.innerHTML = this.responseText;
       }
    }
   xhttp.send(formData);

}
</script>

Tralasciando la parte del form, alla pressione del <button> invia andrà in esecuzione lo script JS inviadati(). Analizziamo la funzione inviadati(), come prima cosa prendiamo la posizione in cui mettere i risultati finali dell’elaborazione quindi il div con id = ‘risposta’.

l’istruzione successiva si occupa di selezionare il form da cui estrarre i dati nel caso specifico il form con id = ‘primoform’. Ora con questo riferimento istanziamo un nuovo oggetto che conterrà tutti i campi con i relativi valori del form, con l’istruzione new FormData().

Infine con l’oggetto XMLHttpRequest() inviamo tutto allo script PHP saluta.php descritto di seguito.

<?php
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];

echo "ciao ".$nome." ".$cognome." , benvenuto su questo sito";

?>

Il risultato di tutto questo sara’ la stampa a video, nello spezio definito dal div risultato, della frase “ciao nome cognome benvenuto su questo sito”

ESP32: ESP32S2mini V1.0

Questa piccola schedina di appena 3,5×2,5 cm ospita a bordo un microcontrollore ESP32 equipaggiato con 4 MB di flash per i firmware, un processore ESP32-S2FN4R2 con clock a 240Mhz, 2MB di SRAM ,un interfaccia WiFi a 2,4Ghz e BlueTooth e ben 27 GPIO settabili .

PIN OUT

Tutti i pin GPIO possono essere programmati come ADC, DAC, I2C, SPI, UART.

La programmazione può essere eseguita tramite linguaggi :

  • Arduino IDE
  • MicroPython
  • CircuitPython

Programmazione tramite Arduino IDE

La programmazione tramite ide Arduino e’ possibile caricando le librerie per la gestione schede (sulle impostazioni dell’ide) inserendo il link :

http://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json,https://dl.espressif.com/dl/package_esp32_index.json

Selezionando poi nel menu Strumenti->Scheda->ESP32 Arduino->ESP32S2 Dev Module

Collegando la scheda non vedremo accendersi nessun led e la porta non comparira’ nell’elenco del menu Strumenti->porta come se la scheda non venisse riconosciuta.

A questo punto e’ necessario premere, sulla scheda, contemporaneamente i tasti RESET e D per alcuni secondi, poi rilasciare il tasto RESET mantenendo premuto per alcuni secondi il tasto D, ora la porta USB verrà riconosciuta con il nome /dev/ttyACM0.

Adesso possiamo lanciare la compilazione e il caricamento del firmware. Alla fine del caricamento l’ide ci dara’ un errore di reset e ci invitera’ a eseguire un reset hardware della scheda, lanciando cosi il FW caricato. Questo errore e’ stato risolto sulle nuove versioni della scheda.

ATTENZIONE ! Purtroppo non e’ possibile usare la porta USB come uscita seriale, in quanto l’ESP32 quando e’ in modalita’ “running”, non gestisce la USB integrata, pertanto se abbiamo necessita di eseguire il debug o comunque usare delle comunicazioni seriali, dobbiamo attivare una UART convertendola in RS232 o RS485, tramite interfacce UART->RSxxx a 3,3V collegate a due GPIO o tramite translatori di livelli a delle interfaccie TTL->RSxxx

Alimentazione del Modulo

L’alimentazione del modulo può avvenire tramite la porta USB oppure tramite il piedino VBUS, l’alimentazione tramite VBUS deve essere compresa tra 3,3 e 6Vdc massimo.

Attenzione gli ingressi vanno sempre pilotati a 3,3 massimo altrimenti si rischia la “frittura” del chip

Letture ingressi analogici

La lettura analogia degli ingressi non e’ lineare da 0 a 3,3V ma si può raggiungere una buona linearità delle letture nell’intervallo 0.10 -2.50Vdc, pertanto per una lettura precisa di tensioni superiori a 2,5Vdc e’ consigliabile l’uso di un partitore di tensione con resistenze di precisione.

L’esp32-s2 ha i convertitori AD a 13 bit pertanto la lettura dei pin restituira’ valori da 0 a 8192