mirror of
https://github.com/Adam-Ant/MQTT-nRF24-Bridge
synced 2024-12-20 07:34:35 +00:00
Add spiffs web data, and start of input processing
This commit is contained in:
parent
031833ca9f
commit
1a1001bca3
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -7,3 +7,6 @@
|
|||||||
[submodule "lib/RF24Mesh"]
|
[submodule "lib/RF24Mesh"]
|
||||||
path = lib/RF24Mesh
|
path = lib/RF24Mesh
|
||||||
url = git@github.com:nRF24/RF24Mesh.git
|
url = git@github.com:nRF24/RF24Mesh.git
|
||||||
|
[submodule "lib/ArduinoJson"]
|
||||||
|
path = lib/ArduinoJson
|
||||||
|
url = git@github.com:bblanchon/ArduinoJson.git
|
||||||
|
40
data/index.html
Normal file
40
data/index.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<title>ESP8266 Input Example</title>
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #E6E6FA;
|
||||||
|
font-family: Arial, Helvetica, Sans-Serif;
|
||||||
|
Color: blue;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
var counter = 1;
|
||||||
|
function addInput(tableName){
|
||||||
|
var newrow = document.createElement('tr');
|
||||||
|
newrow.innerHTML = "<td><input type='text' name='mqtt" + counter + "'></td><td><input type='text' name='node" + counter + "'></td>"
|
||||||
|
document.getElementById(tableName).appendChild(newrow);
|
||||||
|
counter++;
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<h1><br>ESP8266 Server - Getting input from a client</h1>
|
||||||
|
<form action='/submit' method='POST'>
|
||||||
|
<table id='dynamicInput'>
|
||||||
|
<tr>
|
||||||
|
<th>MQTT Address</th>
|
||||||
|
<th>Node ID</th>
|
||||||
|
</tr>
|
||||||
|
<tr><td><input type='text' name='mqtt0'></td><td><input type='text' name='node0'></td></tr>
|
||||||
|
</table>
|
||||||
|
<input type='submit' value='Enter'> <input type="button" value="Add another text input" onClick="addInput('dynamicInput');">
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
1
lib/ArduinoJson
Submodule
1
lib/ArduinoJson
Submodule
@ -0,0 +1 @@
|
|||||||
|
Subproject commit cf5396aaed6d16d1fb4e73b82ce6606938591043
|
45
src/main.ino
45
src/main.ino
@ -1,26 +1,14 @@
|
|||||||
/** RF24Mesh_Example_Master.ino by TMRh20
|
|
||||||
*
|
|
||||||
*
|
|
||||||
* This example sketch shows how to manually configure a node via RF24Mesh as a master node, which
|
|
||||||
* will receive all data from sensor nodes.
|
|
||||||
*
|
|
||||||
* The nodes can change physical or logical position in the network, and reconnect through different
|
|
||||||
* routing nodes as required. The master node manages the address assignments for the individual nodes
|
|
||||||
* in a manner similar to DHCP.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#include <ESP8266WiFi.h>
|
#include <ESP8266WiFi.h>
|
||||||
#include <WiFiClient.h>
|
#include <WiFiClient.h>
|
||||||
#include <ESP8266WebServer.h>
|
#include <ESP8266WebServer.h>
|
||||||
|
|
||||||
|
#include <ArduinoJson.h>
|
||||||
|
#include "FS.h"
|
||||||
|
|
||||||
#include "RF24Network.h"
|
#include "RF24Network.h"
|
||||||
#include "RF24.h"
|
#include "RF24.h"
|
||||||
#include "RF24Mesh.h"
|
#include "RF24Mesh.h"
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
//Include eeprom.h for AVR (Uno, Nano) etc. except ATTiny
|
|
||||||
#include <EEPROM.h>
|
|
||||||
|
|
||||||
const char* ssid = "XXXX";
|
const char* ssid = "XXXX";
|
||||||
const char* password = "XXXX";
|
const char* password = "XXXX";
|
||||||
@ -32,8 +20,6 @@ RF24Mesh mesh(radio,network);
|
|||||||
|
|
||||||
ESP8266WebServer http(80);
|
ESP8266WebServer http(80);
|
||||||
|
|
||||||
uint32_t displayTimer = 0;
|
|
||||||
|
|
||||||
String webpage = "";
|
String webpage = "";
|
||||||
|
|
||||||
|
|
||||||
@ -59,7 +45,7 @@ void setup() {
|
|||||||
Serial.println(WiFi.localIP());
|
Serial.println(WiFi.localIP());
|
||||||
|
|
||||||
// Setup the web server
|
// Setup the web server
|
||||||
http.on("/", [](){
|
http.on("/clients", [](){
|
||||||
webpage = "<h1>Connected Clients:</h1><br>";
|
webpage = "<h1>Connected Clients:</h1><br>";
|
||||||
for(int i=0; i<mesh.addrListTop; i++){
|
for(int i=0; i<mesh.addrListTop; i++){
|
||||||
webpage += "<b>NodeId: </b>";
|
webpage += "<b>NodeId: </b>";
|
||||||
@ -70,8 +56,18 @@ void setup() {
|
|||||||
http.send(200, "text/html", webpage);
|
http.send(200, "text/html", webpage);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
http.serveStatic("/", SPIFFS, "/index.html");
|
||||||
|
|
||||||
http.begin();
|
http.begin();
|
||||||
|
|
||||||
|
if (!SPIFFS.begin()) {
|
||||||
|
Serial.println("Failed to mount file system");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//TODO: Add SPiffs web site. JQuery to jsonify and post. Post JSON data, parse and validate, and store. Call load function to load it into arrays. MQTT message routing. Connected clients on wesbite, js to update
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -98,17 +94,4 @@ void loop() {
|
|||||||
default: network.read(header,0,0); Serial.println(header.type);break;
|
default: network.read(header,0,0); Serial.println(header.type);break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(millis() - displayTimer > 5000){
|
|
||||||
displayTimer = millis();
|
|
||||||
Serial.println(" ");
|
|
||||||
Serial.println(F("********Assigned Addresses********"));
|
|
||||||
for(int i=0; i<mesh.addrListTop; i++){
|
|
||||||
Serial.print("NodeID: ");
|
|
||||||
Serial.print(mesh.addrList[i].nodeID);
|
|
||||||
Serial.print(" RF24Network Address: 0");
|
|
||||||
Serial.println(mesh.addrList[i].address,OCT);
|
|
||||||
}
|
|
||||||
Serial.println(F("**********************************"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user