aboutsummaryrefslogtreecommitdiff
path: root/libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino')
-rw-r--r--libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino121
1 files changed, 121 insertions, 0 deletions
diff --git a/libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino b/libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino
new file mode 100644
index 0000000..2149737
--- /dev/null
+++ b/libraries/Bridge/examples/TemperatureWebPanel/TemperatureWebPanel.ino
@@ -0,0 +1,121 @@
+/*
+ Temperature web interface
+
+ This example shows how to serve data from an analog input
+ via the Arduino Yún's built-in webserver using the Bridge library.
+
+ The circuit:
+ * TMP36 temperature sensor on analog pin A1
+ * SD card attached to SD card slot of the Arduino Yún
+
+ Prepare your SD card with an empty folder in the SD root
+ named "arduino" and a subfolder of that named "www".
+ This will ensure that the Yún will create a link
+ to the SD to the "/mnt/sd" path.
+
+ In this sketch folder is a basic webpage and a copy of zepto.js, a
+ minimized version of jQuery. When you upload your sketch, these files
+ will be placed in the /arduino/www/TemperatureWebPanel folder on your SD card.
+
+ You can then go to http://arduino.local/sd/TemperatureWebPanel
+ to see the output of this sketch.
+
+ You can remove the SD card while the Linux and the
+ sketch are running but be careful not to remove it while
+ the system is writing to it.
+
+ created 6 July 2013
+ by Tom Igoe
+
+
+ This example code is in the public domain.
+
+ */
+#include <Bridge.h>
+#include <YunServer.h>
+#include <YunClient.h>
+
+// Listen on default port 5555, the webserver on the Yun
+// will forward there all the HTTP requests for us.
+YunServer server;
+String startString;
+long hits = 0;
+
+void setup() {
+ Serial.begin(9600);
+
+ // Bridge startup
+ pinMode(13,OUTPUT);
+ digitalWrite(13, LOW);
+ Bridge.begin();
+ digitalWrite(13, HIGH);
+
+ // using A0 and A2 as vcc and gnd for the TMP36 sensor:
+ pinMode(A0, OUTPUT);
+ pinMode(A2, OUTPUT);
+ digitalWrite(A0, HIGH);
+ digitalWrite(A2, LOW);
+
+ // Listen for incoming connection only from localhost
+ // (no one from the external network could connect)
+ server.listenOnLocalhost();
+ server.begin();
+
+ // get the time that this sketch started:
+ Process startTime;
+ startTime.runShellCommand("date");
+ while(startTime.available()) {
+ char c = startTime.read();
+ startString += c;
+ }
+}
+
+void loop() {
+ // Get clients coming from server
+ YunClient client = server.accept();
+
+ // There is a new client?
+ if (client) {
+ // read the command
+ String command = client.readString();
+ command.trim(); //kill whitespace
+ Serial.println(command);
+ // is "temperature" command?
+ if (command == "temperature") {
+
+ // get the time from the server:
+ Process time;
+ time.runShellCommand("date");
+ String timeString = "";
+ while(time.available()) {
+ char c = time.read();
+ timeString += c;
+ }
+ Serial.println(timeString);
+ int sensorValue = analogRead(A1);
+ // convert the reading to millivolts:
+ float voltage = sensorValue * (5000/ 1024);
+ // convert the millivolts to temperature celsius:
+ float temperature = (voltage - 500)/10;
+ // print the temperature:
+ client.print("Current time on the Yún: ");
+ client.println(timeString);
+ client.print("<br>Current temperature: ");
+ client.print(temperature);
+ client.print(" degrees C");
+ client.print("<br>This sketch has been running since ");
+ client.print(startString);
+ client.print("<br>Hits so far: ");
+ client.print(hits);
+ }
+
+ // Close connection and free resources.
+ client.stop();
+ hits++;
+ }
+
+ delay(50); // Poll every 50ms
+}
+
+
+