- import java.io.IOException ;
- import java.util.Date ;
- import javax.servlet.http. * ;
- import java.sql.Connection ;
- import java.sql.DriverManager ;
- import java.sql.ResultSet ;
- import java.sql.Statement ;
- @SuppressWarnings ( "serial" )
- public class JelasticArduinoServlet extends HttpServlet {
- public void doGet ( HttpServletRequest req, HttpServletResponse resp )
- throws IOException {
- resp. setContentType ( "text / plain" ) ;
- // Retrieve the GET requests
- String SensorName = req. getParameter ( "sensor" ) ;
- String value = req. getParameter ( "value" ) ;
- // Create a new date from the server
- Date date = new Date ( ) ;
- // Create MySQL DB hosted on Jelastic
- String url = "jdbc: mysql: //mysql.arduinocloud.jelastic.servint.net: 3306 / sensor" ;
- // User your credential for connecting to the DB
- String user = "DBUSERNAME" ;
- String password = "DBPASSWORD" ;
- Connection con = null ;
- Statement st = null ;
- ResultSet rs = null ;
- boolean exists = false ;
- int id = 0 ;
- // Make the connection to the server
- try {
- con = drivermanager . getConnection ( url, user, password ) ;
- st = con. createStatement ( ) ;
- // Execute the sensor for the sensor id
- rs = st. executeQuery ( "SELECT id from sensor where name = '" + SensorName + "';" ) ;
- if ( rs. next ( ) ) {
- exists = true ;
- id = rs. getInt ( 1 ) ;
- }
- // If there is an ID
- if ( exists ) {
- st. executeUpdate ( "Insert into data (sensor, date, value) VALUES ('" + id + "', '" + date + "', '" + value + "');" ) ;
- }
- resp. getWriter ( ) . println ( "Sensor data updated!" ) ;
- con. close ( ) ;
- } catch ( Exception ex ) {
- resp. getWriter ( ) . println ( ex. toString ( ) ) ;
- }
- }
- }
- <% @ page contentType = "text / html; charset = UTF-8" language = "java" %>
- <% @ page import = "java.util.List" %>
- <% @ page import = "java.sql.Connection" %>
- <% @ page import = "java.sql.DriverManager" %>
- <% @ page import = "java.sql.ResultSet" %>
- <% @ page import = "java.sql.Statement" %>
- < html >
- < head >
- < link type = "text / css" rel = "stylesheet" href = "/stylesheets/main.css" />
- < script type = "text / javascript" src = " www.google.com/jsapi" > </ script >
- < script type = "text / javascript" >
- google. load ( "visualization" , "1" , { packages : [ "corechart" ] } ) ;
- google. setOnLoadCallback ( drawChart ) ;
- function drawChart ( ) {
- var data = new google. visualization . DataTable ( ) ;
- data. addColumn ( 'string' , 'Time' ) ;
- data. addColumn ( 'number' , '<% = request.getParameter ("sensor")%>' ) ;
- <%
- int counter = 1 ;
- String SensorName = request. getParameter ( "sensor" ) ;
- if ( SensorName == null ) {
- SensorName = "temp" ;
- }
- String url = "jdbc: mysql: //mysql.arduinocloud.jelastic.servint.net: 3306 / sensor" ;
- String user = "DBUSERNAME" ;
- String password = "DBPASSWORD" ;
- Connection con = null ;
- Statement st = null ;
- ResultSet rs = null ;
- boolean exists = false ;
- int id = 0 ;
- try {
- con = drivermanager . getConnection ( url, user, password ) ;
- st = con. createStatement ( ) ;
- rs = st. executeQuery ( "SELECT id from sensor where name = '" + SensorName + "';" ) ;
- if ( rs. next ( ) ) {
- exists = true ;
- id = rs. getInt ( 1 ) ;
- }
- if ( exists ) {
- rs = st. executeQuery ( "SELECT value from data where sensorid =" + id ) ;
- while ( rs. next ( ) ) {
- counter ++;
- }
- %>
- data. addRows ( <% = counter %> ) ;
- <%
- rs = st. executeQuery ( "SELECT date, value from data where sensorid =" + id ) ;
- counter = 0 ;
- while ( rs. next ( ) ) {
- %>
- data. setValue ( <% = counter %> , 0 , '<% = rs.getString (1)%>' ) ;
- data. setValue ( <% = counter %> , 1 , <% = rs. getString ( 2 ) %> ) ;
- <%
- counter ++;
- }
- }
- con. close ( ) ;
- } catch ( Exception ex ) { ex. printStackTrace ( ) ; }
- %>
- var chart = new google. visualization . LineChart ( document. GetElementById ( 'chart_div' ) ) ;
- chart. draw ( data, { width : 600 , height : 240 , title : 'My Arduino <% = SensorName%> Sensor Readings' } ) ;
- }
- </ script >
- </ head >
- < body >
- < p > </ p >
- < div id = "chart_div" > </ div >
- </ body >
- </ html >
body {
font-family: Verdana, Helvetica, sans-serif;
background-color: #FFFFFF;
}
- <? xml version = “1.0 ″ encoding =“ UTF-8 ″ ?>
- <web-app xmlns: xsi = “http://www.w3.org/2001/XMLSchema-instance” xmlns = “http://java.sun.com/xml/ns/javaee” xmlns: web = “http : //java.sun.com/xml/ns/javaee/web-app_2_5.xsd ” xsi: schemaLocation =“ http://java.sun.com/xml/ns/javaee http://java.sun.com /xml/ns/javaee/web-app_2_5.xsd ” id =“ WebApp_ID ” version =“ 2.5 ″ >
- <display-name > JelasticSensorArduino </ display-name >
- <servlet >
- <servlet-name > JelasticArduino </ servlet-name >
- <servlet-class > doukas.jelastic.arduino.JelasticArduinoServlet </ servlet-class >
- </ servlet >
- <servlet-mapping >
- <servlet-name > JelasticArduino </ servlet-name >
- <url-pattern > / jelasticarduino </ url-pattern >
- </ servlet-mapping >
- <welcome-file-list >
- <welcome-file > sensorgraph.jsp </ welcome-file >
- </ welcome-file-list >
- <servlet >
- <servlet-name > add </ servlet-name >
- <servlet-class > doukas.jelastic.arduino.JelasticArduinoServlet </ servlet-class >
- </ servlet >
- <servlet-mapping >
- <servlet-name > add </ servlet-name >
- <url-pattern > / add </ url-pattern >
- </ servlet-mapping >
- </ web-app >
- #include <SPI.h>
- #include <Ethernet.h>
- // Enter a MAC address for your controller below.
- byte mac [ ] = { 0x00 , 0xAA , 0xBB , 0xCC , 0xDE , 0x02 } ;
- char serverName [ ] = "sensorcloud.jelastic.servint.net" ;
- // Initialize the Ethernet client library
- Ethernet Client ;
- void setup ( ) {
- // start the serial library:
- Serial. begin ( 57600 ) ;
- // start the Ethernet connection:
- if ( ethernet. begin ( mac ) == 0 ) {
- Serial. println ( "Failed to configure Ethernet using DHCP" ) ;
- }
- }
- void loop ( ) {
- int temperature = analogRead ( 0 ) ;
- String s = String ( temperature , DEC ) ;
- if ( client. connect ( serverName , 80 ) ) {
- // Make a HTTP request:
- client. println ( "GET / add? sensor = temp & value =" + s + "HTTP / 1.0" ) ;
- client. println ( "Host: sensorcloud.jelastic.servint.net" ) ;
- client. println ( ) ;
- client. stop ( ) ;
- }
- delay ( 60000 ) ;
- }
Source: https://habr.com/ru/post/136583/
All Articles