32
APPENDIX Bash script #! /bin/bash while : do value=$(chmod 777 /home/srv/password.txt) value=$(/home/srv/password.txt) echo "$value" pkill -9 mosquitto mosquitto -d -c /etc/mosquitto/mosquitto.conf #value1=$(rm -rf /home/srv/password.txt) value1=$(> /home/srv/password.txt) echo "$value1" sleep 10 done login.php <html> <head> <link href="css/menu.css" rel="stylesheet"> <link href="css/login.css" rel="stylesheet"> <script src="js/jquery-1.11.1.min.js"></script> </head> <body> <h2><center>Login</center></h2> <form action="proses.php" method="post"> <div class="container"> <label><b>Username</b></label> <input type="text" placeholder="Enter Username" name="username" required> <label><b>Password</b></label> <input type="password" placeholder="Enter Password" name="password" required> <button type="submit">Login</button> </div> </form> <div> <button id="btn" onclick="window.location='signup.php';">sign up</button> </div> </body> </html> A

SETTING UP AN IOT MOSQUITTO SERVER AND BUILDING A USER ... · APPENDIX Bash script #! /bin/bash while : do value=$(chmod 777 /home/srv/password.txt) value=$(/home/srv/password.txt)

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

APPENDIX

Bash script

#! /bin/bashwhile :dovalue=$(chmod 777 /home/srv/password.txt)value=$(/home/srv/password.txt)echo "$value"pkill -9 mosquittomosquitto -d -c /etc/mosquitto/mosquitto.conf#value1=$(rm -rf /home/srv/password.txt)value1=$(> /home/srv/password.txt)echo "$value1"sleep 10done

login.php

<html><head> <link href="css/menu.css" rel="stylesheet"> <link href="css/login.css" rel="stylesheet"> <script src="js/jquery-1.11.1.min.js"></script> </head><body><h2><center>Login</center></h2>

<form action="proses.php" method="post"> <div class="container"> <label><b>Username</b></label> <input type="text" placeholder="Enter Username"name="username" required>

<label><b>Password</b></label> <input type="password" placeholder="Enter Password"name="password" required> <button type="submit">Login</button> </div></form> <div> <button id="btn" onclick="window.location='signup.php';">signup</button> </div>

</body></html>

A

user_signup.php

<html><head> <link href="css/menu.css" rel="stylesheet"> <link href="css/login.css" rel="stylesheet"> <script src="js/jquery-1.11.1.min.js"></script> </head><body><h2><center>SIGN UP</center></h2>

<form action="proses_signup.php" method="post"> <div class="container"> <label><b>Username</b></label> <input type="text" placeholder="Enter Username"name="username" required>

<label><b>Password</b></label> <input type="password" placeholder="Enter Password"name="password" required>

<input type="hidden" value="2" name="status" required> <button type="submit">sign up</button> </div></form>

<div> <button id="btn"onclick="window.location='login.php';">login</button> </div></body></html>

login_proses.php

<?phpsession_start();header("refresh:3;url=welcome.php");try

{$db = new

PDO("mysql:host=192.168.41.11;dbname=user","admin","admin",array(PDO::ATTR_PERSISTENT => TRUE));

$db->setAttribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );

$login = $db->prepare('SELECT username, password,status FROM tbluser WHERE username = :username AND password =:password AND status');

B

$login->execute(array(':username'=>$_POST['username'],':password'=>$_POST['password']));

$data = $login->fetch();

if($data[0]!= ''){

$_SESSION['username'] = $data[0];$_SESSION['status'] = $data[2];if($_SESSION['status'] == 1)

{header("Location: sukses.php");

}else if($_SESSION['status'] == 2)

{header("Location: sukses_user.php");

}

}else{

echo 'Maaf, username atau password salah. Silahkan cobalagi.';}

}catch (PDOException $ex)

{echo $ex->getMessage();

}?>

proses_signup.php

<?phptry{

$db = newPDO("mysql:host=192.168.41.11;dbname=user","admin","admin",array(PDO::ATTR_PERSISTENT => TRUE));

$db->setAttribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );

$signup = "INSERT INTO tbluser VALUES ('','".$_POST["username"]."','".$_POST["password"]."','".$_POST["status"]."',FLOOR(rand() * 1000000))";

//$signup = "INSERT INTO tbluser VALUES ('','".$_POST["username"]."','".$_POST["password"]."','".$_POST["status"]."',FLOOR(rand() * 90000 + 100000))";

if ($db->query($signup)) {

C

echo "<script type= 'text/javascript'>alert('NewRecord Inserted Successfully');</script>";

header("refresh:0;url=login.php");}else{echo "<script type= 'text/javascript'>alert('Data not

successfully Inserted.');</script>";header("refresh:0;url=signup.php");}

$db = null;}catch(PDOException $e){echo $e->getMessage();}

<?php$name = $_POST['username'];$pass = $_POST['password'];$fp = fopen("/home/srv/password.txt", "w");$savestring = "mosquitto_passwd -b /etc/mosquitto/passwd " . $name. " " . $pass . "n";fwrite($fp, $savestring);fclose($fp);?>

sukses.php

<?phpinclude 'check.php';header("refresh:5,url=welcome.php");

?><html> <head> <title>sukses</title>

<link href="css/login.css" rel="stylesheet"><script src="js/jquery-1.11.1.min.js"></script>

</head><body>

<div class="spinner"></div><div class="loginsukses"><div class="container">

<div id="lognotif"></div><center><h2><div class="panel-header">

Hello there!</div></h2><h2><div class="panel-content">

Congratulation, <?php echo$_SESSION['username'];?>! <br>

You are successfully logged in.<br>

D

:)</div></h2></center>

</div><br>

</body></html>

sukses_user.php

<?phpinclude 'check.php';header("refresh:5,url=welcome_user.php");

?><html> <head> <title>sukses</title>

<link href="css/login.css" rel="stylesheet"><script src="js/jquery-1.11.1.min.js"></script>

</head><body>

<div class="spinner"></div><div class="loginsukses"><div class="container">

<div id="lognotif"></div><center><h2><div class="panel-header">

Hello there!</div></h2><h2><div class="panel-content">

Congratulation, <?php echo$_SESSION['username'];?>! <br>

You are successfully logged in.<br>:)

</div></h2></center>

</div><br>

</body></html>

check.php

<?phpsession_start();if (!isset($_SESSION['username'])) {

echo "<meta content='0;URL=login.php' http-equiv='refresh' />"; }?>

E

welcome.php

<?phpinclude 'check.php';

?><html> <head> <title>Home</title>

<link href="css/style.css" rel="stylesheet"><link href="css/menu.css" rel="stylesheet">

<link href="css/home.css" rel="stylesheet" type="text/css"> <script src="js/Chart.bundle.js"></script>

</head><body>

<ul> <li>Home</li> <a href="form.php"><li>Input Data</li></a> <li>

Data <ul> <a href="database.php"><li>database

lookup</li></a> <a href="search.php"><li>search

database</li></a> <a href="clear_db.php"><li>clear

database</li></a> </ul>

</li> <a href="status.php"><li>status</li></a> <a href="logout.php"><li>Logout</li></a></ul>

<?phptry { $dbh = newPDO('mysql:host=192.168.41.11;dbname=user',"admin","admin",array(PDO::ATTR_PERSISTENT => TRUE)); $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $result = $dbh->query("SELECT tbluser.username,tbluser.channelfrom tbluser where tbluser.username = '" .$_SESSION['username'] ."' "); echo '<div class="scroll">'; echo '<table border=1>'; echo "<td>"."<b>HELLO ". " "."{$_SESSION['username']}".","."<b> Your Channel ID is "."</td>" ; while($row = $result->fetch()) { echo "<tr />"; echo "<td>$row[1]</td>";} echo '</table>';

F

$dbh = null;}catch (PDOException $e) { print "Koneksi atau query bermasalah: " . $e->getMessage() ."<br/>"; die();}?> </body></html>

form.php

<?php include 'check.php';?><html> <head> <link href="css/menu_form.css" rel="stylesheet"type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href="css/table.css" rel="stylesheet" type="text/css"> <script src="js/mqttws31.js"></script> </head> <body onload="init();"><!--<body>--><center><ul> <a href="welcome.php"><li>Home</li> <a href="form.php"><li>Input Data</li></a> <li> Data <ul> <a href="database.php"><li>database lookup</li></a> <a href="search.php"><li>search database</li></a> <a href="clear_db.php"><li>clear database</li></a> </ul> </li> <a href="status.php"><li>status</li></a> <a href="logout.php"><li>Logout</li></a><br></ul></center>

<div class="formsubcribe"><fieldset><form action="/mqtt2/subcribe.php" method="post" >

input here: <input type="text" name="subcribe"><br><input type="submit" value="subcribe">

</form> <form method="post" > input Topic: <input type="text" name="topic"><br> input messages : <input type="text" name="messages"><br> <input type="submit" value="publish"> </form> </fieldset></div>

G

<script type="text/javascript"> var broker = "103.243.177.130"; var port = 8083 var client = new Paho.MQTT.Client(broker, port, "websocket_"+ parseInt(Math.random() * 100, 10)); client.onConnectionLost = function (responseObject) { console.log("connection lost: " +responseObject.errorMessage); };

client.onMessageArrived = function (message) { console.log(message.destinationName, ' -- ',message.payloadString); }; var options = { userName: "admin", password: "admin", timeout: 3, onSuccess: function () { message = new Paho.MQTT.Message("<?php

$messages = $_POST["messages"]; echo$messages; ?>"); message.destinationName = "<?php $topic= $_POST["topic"];

echo $topic; ?>"; client.send(message); }, onFailure: function (message) { console.log("Connection failed: " +message.errorMessage); //function doFail(e){ // console.log(e); } }; function init() { client.connect(options); } </script></body></html>

form_user.php

H

<?php include 'check.php';?><html> <head> <link href="css/menu_form.css" rel="stylesheet"type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"/> <link href="css/table.css" rel="stylesheet" type="text/css"/> <script src="js/mqttws31.js"></script> </head> <body onload="init();"><center><ul> <a href="welcome_user.php"><li>Home</li> <a href="form_user.php"><li>Input Data</li></a> <li> Data <ul> <a href="search_user.php"><li>search database</li></a> </ul> </li> <a href="logout.php"><li>Logout</li></a></ul></center><br> <div class="formsubcribe">

<fieldset><form action="/mqtt2/subcribe_user.php" method="post" >

input here: <input type="text" name="subcribe"><br><input type="submit" value="subcribe">

</form> <form method="post" > input Topic: <input type="text" name="topic"><br> input messages : <input type="text" name="messages"><br> <input type="submit" value="publish"> </form>

</fieldset></div>

<script type="text/javascript"> var broker = "103.243.177.130"; var port = 8083 var client = new Paho.MQTT.Client(broker, port, "websocket_" +parseInt(Math.random() * 100, 10));

client.onConnectionLost = function (responseObject) { console.log("connection lost: " +responseObject.errorMessage); };

client.onMessageArrived = function (message) { console.log(message.destinationName, ' -- ',message.payloadString); };

var options = {

I

userName: "admin", password: "admin", timeout: 3, onSuccess: function () {message = new Paho.MQTT.Message("<?php $messages =$_POST["messages"];echo $messages;?>");message.destinationName = "<?php try {$dbh = newPDO('mysql:host=192.168.41.11;dbname=user',"admin","admin",array(PDO::ATTR_PERSISTENT => TRUE)); $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $result = $dbh->query("SELECT tbluser.username,tbluser.channel from tbluser wheretbluser.username = '" .$_SESSION['username'] ."' "); while($row = $result->fetch()){ echo "/";echo "$row[1]"; } $dbh = null;}catch (PDOException $e){print "Koneksi atau querybermasalah: " . $e->getMessage() . "<br/>";die();}$topic = $_POST["topic"];echo $topic;client.send(message); },onFailure: function (message) {console.log("Connection failed: " + message.errorMessage);} };function init() {client.connect(options); }</script></body></html>

SUBSCRIBE.PHP

<?php include 'check.php';?><html> <head> <title>Mosquitto Websockets</title> <link href="css/menu_form.css" rel="stylesheet"type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href="css/table.css" rel="stylesheet" type="text/css"> <script src="js/mqttws31.js" type="text/javascript"></script> <script src="js/jquery.min.js"type="text/javascript"></script>

<script type="text/javascript"> host = '103.243.177.130'; port = 8083; topic = "<?php $subcribe = $_POST['subcribe']; echo $subcribe;

?>"; var mqtt; var reconnectTimeout = 2000;

function MQTTconnect() {

J

mqtt = new Paho.MQTT.Client(host,port,"websocket_" +parseInt(Math.random() * 100, 10)); var options = { timeout: 3, onSuccess: onConnect, onFailure: function (message) { $('#status').val("Connection failed: " +message.errorMessage + "Retrying"); setTimeout(MQTTconnect, reconnectTimeout); } }; mqtt.onConnectionLost = onConnectionLost; mqtt.onMessageArrived = onMessageArrived; options.userName = "admin"; options.password = "admin"; console.log("Host="+ host + ", port=" + port + "username=" + "admin" + " password=" + "admin"); mqtt.connect(options); }

function onConnect() { $('#status').val('Connected to ' + host + ':' + port ); mqtt.subscribe(topic, {qos: 0}); $('#topic').val(topic); }

function onConnectionLost(response) { setTimeout(MQTTconnect, reconnectTimeout); $('#status').val("connection lost: " +responseObject.errorMessage + ". Reconnecting");

};

function onMessageArrived(message) {

var topic = message.destinationName; var payload = message.payloadString;

$('#ws').prepend('<li>' + topic + ' = ' + payload +'</li>'); };

$(document).ready(function() { MQTTconnect(); });

</script> </head> <body> <center><h1>Mosquitto Websockets</h1> <ul> <a href="welcome.php"><li>Home</li> <a href="form.php"><li>Input Data</li></a> <li>

K

Data <ul> <a href="database.php"><li>database lookup</li></a> <a href="search.php"><li>search database</li></a> <a href="clear_db.php"><li>clear database</li></a> </ul> </li> <a href="status.php"><li>status</li></a> <a href="logout.php"><li>Logout</li></a></ul></center> <div> <div> Subscribed to <input type='text' id='topic'disabled /> Status: <input type='text' id='status' size="80"disabled /> </div> <div class="scroll"> <table border=1> <td><ul1 id='ws' style="font-family: 'Courier New',Courier, monospace;"></ul></td> </table> </div> </div>

</body></html>

SUBCRIBE_USER.PHP

<?php include 'check.php';?><html> <head> <title>Mosquitto Websockets</title> <link href="css/menu.css" rel="stylesheet" type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href="css/table.css" rel="stylesheet" type="text/css"> <script src="js/mqttws31.js" type="text/javascript"></script> <script src="js/jquery.min.js"type="text/javascript"></script>

<script type="text/javascript"> host = '103.243.177.130'; port = 8083; topic = "<?php try { $dbh = newPDO('mysql:host=192.168.41.11;dbname=user',"admin","admin",array(PDO::ATTR_PERSISTENT => TRUE)); $dbh->setAttribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);

L

$result = $dbh->query("SELECTtbluser.username,tbluser.channel from tbluser wheretbluser.username = '" .$_SESSION['username'] ."' "); while($row = $result->fetch()) { echo "/"; echo "$row[1]"; }

$dbh = null; } catch (PDOException $e) { print "Koneksi atau query bermasalah:" . $e->getMessage() . "<br/>"; die(); } $subcribe = $_POST['subcribe']; echo $subcribe;

?>";

var mqtt; var reconnectTimeout = 2000;

function MQTTconnect() {mqtt = new Paho.MQTT.Client(host,port,"websocket_" +

parseInt(Math.random() * 100, 10)); var options = { timeout: 3, onSuccess: onConnect, onFailure: function (message) { $('#status').val("Connection failed: " +message.errorMessage + "Retrying"); setTimeout(MQTTconnect, reconnectTimeout); } };

mqtt.onConnectionLost = onConnectionLost; mqtt.onMessageArrived = onMessageArrived; options.userName = "admin"; options.password = "admin"; console.log("Host="+ host + ", port=" + port + "username=" + "admin" + " password=" + "admin"); mqtt.connect(options); }

function onConnect() { $('#status').val('Connected to ' + host + ':' + port); mqtt.subscribe(topic, {qos: 0}); $('#topic').val(topic); }

M

function onConnectionLost(response) { setTimeout(MQTTconnect, reconnectTimeout); $('#status').val("connection lost: " +responseObject.errorMessage + ". Reconnecting");

};

function onMessageArrived(message) {

var topic = message.destinationName; var payload = message.payloadString;

$('#ws').prepend('<li>' + topic + ' = ' + payload +'</li>'); };

$(document).ready(function() { MQTTconnect(); });

</script> </head> <body> <center><h1>Mosquitto Websockets</h1> <ul> <a href="welcome_user.php"><li>Home</li> <a href="form_user.php"><li>Input Data</li></a> <li> Data <ul> <a href="search_user.php"><li>search database</li></a> </ul> </li> <a href="logout.php"><li>Logout</li></a></ul></center> <div> <div> Subscribed to <input type='text' id='topic'disabled /> Status: <input type='text' id='status' size="80"disabled /> </div> <div class="scroll"> <table border=1> <td><ul1 id='ws' style="font-family: 'Courier New',Courier, monospace;"></ul></td> </table> </div> </div>

</body></html>

search.php

N

<?php include 'check.php';?><html><head><title>Search</title><link href="css/menu.css" rel="stylesheet" type="text/css"><link href="css/style.css" rel="stylesheet" type="text/css"></head><body><ul> <a href="welcome.php"><li>Home</li><a href="form.php"><li>Input Data</li></a><li>Data<ul><a href="database.php"><li>database lookup</li></a><a href="search.php"><li>search database</li></a><a href="clear_db.php"><li>clear database</li></a></ul></li><a href="status.php"><li>status</li></a><a href="logout.php"><li>Logout</li></a></ul><div class="search"><form method="POST" action="answer.php"><table><tr><div class="input"><td>Search Topic ID</td><td><input type="text" name="topic"></td></tr><td colspan="2" align="center"><br><div class="buttonsearch"><input type="submit" value="Simpan"></div></td></div></table></form></div></div></div><br></body></html>

search_user.php

<?php include 'check.php';?><html><head><title>Search</title><link href="css/menu.css" rel="stylesheet" type="text/css"><link href="css/style.css" rel="stylesheet" type="text/css"></head><body><ul><a href="welcome_user.php"><li>Home</li><a href="form_user.php"><li>Input Data</li></a><li>Data<ul><a href="search_user.php"><li>search database</li></a></ul></li><a href="logout.php"><li>Logout</li></a></ul><div class="search"><form method="POST" action="answer_user.php"><table><tr><div class="input"><td>Search Topic ID</td><td><input type="text" value="<?phptry{$dbh=newPDO('mysql:host=192.168.41.11;dbname=user',"admin","admin",array(PDO::ATTR_PERSISTENT => TRUE));$dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);$result = $dbh->query("SELECT tbluser.username,tbluser.channelfrom tbluser where tbluser.username = '" .$_SESSION['username']."'");while($row = $result->fetch()){echo "/"; echo "$row[1]";

O

echo "/";}$dbh = null;}catch (PDOException $e){print "Koneksi atau query bermasalah: " . $e->getMessage() ."<br/>";die();} ?>" " name="topic"></td></tr><td colspan="2" align="center"><br><div class="buttonsearch"><input type="submit" value="Simpan" ></div></td></div></table></form></div><div class="panel-footer"></div></div><br></body></html>

answer.php

<?phpinclude 'check.php';

?>

<html> <head> <title>Home</title> <meta name="author" content=""> <link href="css/menu.css" rel="stylesheet" type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href="css/table.css" rel="stylesheet" type="text/css"> <script src="js/jquery-1.11.1.min.js"></script> </head><ul><a href="welcome.php"><li>Home</li><a href="form.php"><li>Input Data</li></a><li>Data<ul><a href="database.php"><li>database lookup</li></a><a href="search.php"><li>search database</li></a><a href="clear_db.php"><li>clear database</li></a></ul></li><a href="status.php"><li>status</li></a><a href="logout.php"><li>Logout</li></a></ul></html><?php

$topic = $_POST['topic'];try

{$db = new PDO('mysql:host=192.168.41.11;dbname=mqtt', "mqtt","qwerty", array(PDO::ATTR_PERSISTENT => TRUE));$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );$result = $db->prepare("SELECT * FROM messages WHERE topic like '%$topic%' order by timestamp desc limit 5000");$result->execute();if($result!='')

{echo "<div class=scroll>";echo '<table border=1>';

echo "<td>"."<b>date"."</td>"; echo "<td>"."<b>topic"."</td>" ; echo "<td>"."<b>qos"."</td>" ; echo "<td>"."<b>messages"."</td>" ;

P

echo "</div>";while($row = $result->fetch()){

echo "<tr />"; echo "<td>$row[0]</td>" ; echo "<td>$row[1]</td>";

echo "<td>$row[2]</td>";echo "<td>$row[3]</td>";

}}}catch (PDOException $ex){echo $ex->getMessage();}?>

answer_user.php

<?phpinclude 'check.php';

?>

<html> <head> <title>Home</title> <meta name="author" content=""> <link href="css/menu.css" rel="stylesheet" type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href="css/table.css" rel="stylesheet" type="text/css"> <script src="js/jquery-1.11.1.min.js"></script> </head><ul><a href="welcome.php"><li>Home</li><a href="form.php"><li>Input Data</li></a><li>Data<ul><a href="database.php"><li>database lookup</li></a><a href="search.php"><li>search database</li></a><a href="clear_db.php"><li>clear database</li></a></ul></li><a href="status.php"><li>status</li></a><a href="logout.php"><li>Logout</li></a></ul></html><?php

$topic = $_POST['topic'];try

{$db = new PDO('mysql:host=192.168.41.11;dbname=mqtt', "mqtt","qwerty", array(PDO::ATTR_PERSISTENT => TRUE));$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );$result = $db->prepare("SELECT * FROM messages WHERE topic like '%$topic%' order by timestamp desc limit 5000");$result->execute();if($result!='')

{echo "<div class=scroll>";echo '<table border=1>';

echo "<td>"."<b>date"."</td>"; echo "<td>"."<b>topic"."</td>" ; echo "<td>"."<b>qos"."</td>" ; echo "<td>"."<b>messages"."</td>" ;

Q

echo "</div>";while($row = $result->fetch()){

echo "<tr />"; echo "<td>$row[0]</td>" ; echo "<td>$row[1]</td>";

echo "<td>$row[2]</td>";echo "<td>$row[3]</td>";

}}}catch (PDOException $ex){echo $ex->getMessage();}?>

database.php

<?php include 'check.php';?><html> <head> <title>Home</title> <meta name="author" content=""> <link href="css/menu_form.css" rel="stylesheet"type="text/css"> <link href="css/style.css" rel="stylesheet" type="text/css"> <link href='http://fonts.googleapis.com/css?family=Roboto:500,300,700,400' rel='stylesheet' type='text/css'> <script src="js/jquery-1.11.1.min.js"></script> <script src="js/script.js"></script> </head> <body><center><ul> <a href="welcome.php"><li>Home</li> <a href="form.php"><li>Input Data</li></a> <li> Data <ul> <a href="database.php"><li>database lookup</li></a> <a href="search.php"><li>search database</li></a> <a href="clear_db.php"><li>clear database</li></a> </ul> </li> <a href="status.php"><li>status</li></a> <a href="logout.php"><li>Logout</li></a></ul></center>

<?phptry { $dbh = new PDO('mysql:host=192.168.41.11;dbname=mqtt',"mqtt", "qwerty", array(PDO::ATTR_PERSISTENT => TRUE)); $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

R

$total = $dbh->query('SELECT COUNT(*) FROM messages')->fetchColumn(); $limit = 20; $pages = ceil($total / $limit);$page = min($pages, filter_input(INPUT_GET, 'page',FILTER_VALIDATE_INT,array('options'=>array('default'=>1,'min_range' => 1,),))); $offset = ($page - 1) * $limit; $start = $offset + 1; $end = min(($offset + $limit), $total); $prevlink = ($page > 1) ? '<a href="?page=1" title="Firstpage">&laquo;</a> <a href="?page=' . ($page - 1) . '"title="Previous page">&lsaquo;</a>' : '<spanclass="disabled">&laquo;</span> <spanclass="disabled">&lsaquo;</span>';$nextlink = ($page < $pages) ? '<a href="?page=' . ($page + 1) .'" title="Next page">&rsaquo;</a> <a href="?page=' . $pages . '"title="Last page">&raquo;</a>' : '<spanclass="disabled">&rsaquo;</span> <spanclass="disabled">&raquo;</span>';echo '<div id="paging"><p>', $prevlink, ' Page ', $page, ' of ',$pages, ' pages, displaying ', $start, '-', $end, ' of ', $total,' results ', $nextlink, ' </p></div>';$stmt = $dbh->prepare('SELECT * FROM messages order by timestampdesc LIMIT :limit OFFSET :offset'); $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); if ($stmt->rowCount() > 0) {

$stmt->setFetchMode(PDO::FETCH_ASSOC); $iterator = new IteratorIterator($stmt); foreach ($iterator as $row) { echo '<table border=1>'; echo "<tr>"; echo "<td>"."<b>date"."</td>"; echo "<td>"."<b>topic"."</td>" ; echo "<td>"."<b>qos"."</td>" ; echo "<td>"."<b>messages"."</td>" ; echo "</tr>"; while($row = $iterator->fetch()) { echo "<tr>"; echo '<td>',$row['timestamp'],'</td>' ; echo '<td>',$row['topic'],'</td>'; echo '<td>',$row['qos'],'</td>'; echo '<td>',$row['message'],'</td>'; echo "</tr>";} echo '</table>'; }

S

} else {echo '<p>No results could be displayed.</p>';}} catch (Exception $e) {echo '<p>', $e->getMessage(), '</p>';}?>

status.php

<?php include 'check.php';?><html><head> <meta name="author" content=""> <title>Mosquitto Server Status</title> <link href="css/menu_form.css" rel="stylesheet"type="text/css"> <script src="js/jquery-1.11.1.min.js"></script> <script src="js/mqttws31.js" type="text/javascript"></script> <script type="text/javascript"> host = '103.243.177.130'; port = 8083; topic = "$SYS/broker/#"; var mqtt; var reconnectTimeout = 2000;

function MQTTconnect() {

mqtt = new Paho.MQTT.Client(host,port,"websocket_" +parseInt(Math.random() * 100, 10)); var options = { timeout: 3, onSuccess: onConnect, onFailure: function (message) { $('#status').val("Connection failed: " +message.errorMessage + "Retrying"); setTimeout(MQTTconnect, reconnectTimeout); } }; mqtt.onConnectionLost = onConnectionLost; mqtt.onMessageArrived = onMessageArrived; options.userName = "admin"; options.password = "admin"; console.log("Host="+ host + ", port=" + port + "username=" + "admin" + " password=" + "admin"); mqtt.connect(options); } function onConnect() { $('#status').val('Connected to ' + host + ':' + port); mqtt.subscribe(topic, {qos: 0}); $('#topic').val(topic); }

T

function onConnectionLost(response) { setTimeout(MQTTconnect, reconnectTimeout); $('#status').val("connection lost: " +responseObject.errorMessage + ". Reconnecting");

}; function onMessageArrived(message) { var topic = message.destinationName; var payload = message.payloadString; $('#ws').prepend('<li>' + topic + ' = ' + payload +'</li>');

$('#isi').prepend('<li>' + payload + '</li>'); }; $(document).ready(function() { MQTTconnect(); }); </script> </head> <body> <center><h1Mosquitto Server Status</h1> <ul> <a href="welcome.php"><li>Home</li> <a href="form.php"><li>Input Data</li></a> <li> Data <ul> <a href="database.php"><li>database lookup</li></a> <a href="search.php"><li>search database</li></a> <a href="clear_db.php"><li>clear database</li></a> </ul> </li> <a href="status.php"><li>status</li></a> <a href="logout.php"><li>Logout</li></a></ul></center><div> <center><div> <input type='text' id='status' size="80" disabled /> </div></center> <div class="scroll"> <table><tr><th>status name</th></tr><tr><center><td><ul1 id='ws' style="font-family: 'Courier New',Courier, monospace;"></ul1></td></center></tr></table></div></div></div></body></html>

clear_database.php

<?php include 'check.php';header("refresh:3,url=welcome.php");?><html><head><meta name="author" content=""><link href="css/style.css" rel="stylesheet"></script><title>clear database</title></head>

U

<body><?php$servername = "192.168.41.11";$username = "mqtt";$password = "qwerty";$dbname = "mqtt";try {$db = new PDO('mysql:host=192.168.1.4;dbname=mqtt', "mqtt","qwerty", array(PDO::ATTR_PERSISTENT => TRUE));$db->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );$result = $db->prepare ("DELETE FROM messages");$result->execute();if($result!=''){echo 'database empty';}}catch (PDOException $ex){echo $ex->getMessage();}?></body></html>

logout.php

<?phpsession_start();session_unset();session_destroy();header('Location: login.php');?>

test11.py

broker = "192.168.41.11"broker_port = 8883 hostname = "192.168.41.11"db = "mqtt" user = "mqtt" passwd = "qwerty" F_UNIQUE = 0

import paho.mqtt.client as mqttimport MySQLdbimport timeimport datetime

S_UNIQUE = F_UNIQUE

def log_message(msg): with con: cur = con.cursor() cur.execute("INSERT INTO messages (topic , qos, message)VALUES (%s, %s, %s)", (msg.topic, msg.qos, msg.payload)) def on_connect(client, userdata, flags, rc): client.subscribe("#")

V

def on_message(client, userdata, msg): global S_UNIQUE log_message(msg)

mainloop = 1while mainloop == 1: client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message

dc = 1 while dc == 1: try: con = MySQLdb.connect(hostname,user,passwd,db) client.username_pw_set(username="admin",password="admin") client.connect(broker, broker_port) dc = 0 except: time.sleep(60) while dc == 0: try: dc = client.loop() except: dc = 1

print("Restarting.")

menu.css

body { font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica,Arial, sans-serif; padding: 20px 50px 150px; font-size: 13px; text-align: center; background-image: url("background.jpg"); background-size: cover; background-repeat: no-repeat; /*background: #E3CAA1;*/}

ul { text-align: left; display: inline; margin: 0; padding: 15px 4px 17px 0; list-style: none; -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);}

W

ul li { font: bold 12px/18px sans-serif; display: inline-block; margin-right: -4px; position: relative; padding: 15px 20px; background: #fff; cursor: pointer; -webkit-transition: all 0.2s; -moz-transition: all 0.2s; -ms-transition: all 0.2s; -o-transition: all 0.2s; transition: all 0.2s;}ul li:hover { background: #555; color: #fff;}ul li ul { padding: 0; position: absolute; top: 48px; left: 0; width: 150px; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; display: none; opacity: 0; visibility: hidden; -webkit-transiton: opacity 0.2s; -moz-transition: opacity 0.2s; -ms-transition: opacity 0.2s; -o-transition: opacity 0.2s; -transition: opacity 0.2s;}ul li ul li { background: #555; display: block; color: #fff; text-shadow: 0 -1px 0 #000;}ul li ul li:hover { background: #666; }ul li:hover ul { display: block; opacity: 1; visibility: visible;}

menu_form.css

X

body { font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica,Arial, sans-serif; padding: 20px 50px 150px; font-size: 13px; background-image: url("background.jpg"); background-repeat: no-repeat; background-size: cover;}

ul { text-align: left; display: inline; margin: 0; padding: 15px 4px 17px 0; list-style: none; -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15); box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);}ul li { font: bold 12px/18px sans-serif; display: inline-block; margin-right: -4px; position: relative; padding: 15px 20px; background: #fff; cursor: pointer; -webkit-transition: all 0.2s; -moz-transition: all 0.2s; -ms-transition: all 0.2s; -o-transition: all 0.2s; transition: all 0.2s;}ul li:hover { background: #555; color: #fff;}ul li ul { padding: 0; position: absolute; top: 48px; left: 0; width: 150px; -webkit-box-shadow: none; -moz-box-shadow: none; box-shadow: none; display: none; opacity: 0; visibility: hidden; -webkit-transiton: opacity 0.2s; -moz-transition: opacity 0.2s; -ms-transition: opacity 0.2s; -o-transition: opacity 0.2s;

Y

-transition: opacity 0.2s;}ul li ul li { background: #555; display: block; color: #fff; text-shadow: 0 -1px 0 #000;}ul li ul li:hover { background: #666; }ul li:hover ul { display: block; opacity: 1; visibility: visible;}

table{ width: 100%; border-collapse: collapse;}

tr:nth-of-type(odd) { background: #eee;

}th {

background: #333; color: white; font-weight: bold; }

td, th { padding: 6px; border: 1px solid #ccc; text-align: center; }

.scroll{width: auto;height: 900px;border: 1px black dotted;overflow-y: scroll;overflow-x: auto;}

login.css

body { font-family: 'Lucida Grande', 'Helvetica Neue', Helvetica,Arial, sans-serif; padding: 20px 50px 150px; font-size: 13px; text-align: center;

Z

background-image: url("background.jpg"); background-repeat: no-repeat; background-size: cover;}

form { border: 3px solid #f1f1f1;}

input[type=text], input[type=password] { width: 100%; padding: 12px 20px; margin: 8px 0; display: inline-block; border: 1px solid #ccc; box-sizing: border-box;}

button { background-color: #4CAF50; color: white; padding: 14px 20px; margin: 8px 0; border: none; cursor: pointer; width: 100%;}

button:hover { opacity: 0.8;}

.btn { width: auto; padding: 10px 18px; background-color: #f44336;}

.container { padding: 16px;}

span.psw { float: right; padding-top: 16px;}

.spinner { width: 40px; height: 40px; background-color: #0083ff;

margin: 100px auto; -webkit-animation: sk-rotateplane 1.2s infinite ease-in-out;

AA

animation: sk-rotateplane 1.2s infinite ease-in-out;}

@-webkit-keyframes sk-rotateplane { 0% { -webkit-transform: perspective(120px) } 50% { -webkit-transform: perspective(120px) rotateY(180deg) } 100% { -webkit-transform: perspective(120px) rotateY(180deg)rotateX(180deg) }}

@keyframes sk-rotateplane { 0% { transform: perspective(120px) rotateX(0deg) rotateY(0deg); -webkit-transform: perspective(120px) rotateX(0deg)rotateY(0deg) } 50% { transform: perspective(120px) rotateX(-180.1deg)rotateY(0deg); -webkit-transform: perspective(120px) rotateX(-180.1deg)rotateY(0deg) } 100% { transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); -webkit-transform: perspective(120px) rotateX(-180deg)rotateY(-179.9deg); }}

table.css

table{ width: 100%; border-collapse: collapse;}

tr:nth-of-type(odd) { background: #eee;

}th {

background: #333; color: white; font-weight: bold; }

td, th { padding: 6px; border: 1px solid #ccc; text-align: center; }

.scroll{

AB

width: auto;height: 900px;border: 1px black dotted;overflow-y: scroll;overflow-x: auto;}

AC

AD

AE

AF