Using JSSerial to send sensor data to a server running a PHP script via AJAX
One thing that we are missing in JSSerial is an easy way to save sensor data. This example leverages AJAX to send any serial data to a PHP script running on a webserver that simply logs this data.
Additionally, that saved data is pulled up from the server to drive the display of the page so it shows an example of how you can use data coming in via AJAX to drive serial.
int incomingByte = 0; // for incoming serial data
// Only continue of data is available
// Works in a call/response manner
if (Serial.available() > 0)
int r = analogRead(0); // Giving 0 to 1024 with my pot
int w = r/8; // Want 0 to 127
The main thing is that when you call serialread ith reads from the serial port. If it gets data, it makes an AJAX call.
The return of this AJAX call tells the script to update the value on the page and additionally sends data back to the Arduino via a JSSerial write method. Additionally when this happens it calls serialread again.
PHP which receives data from AJAX and sends data back
This script simply echos data coming in back. Of course it could write it to a text file or what not.
$incoming = $_GET['data'];