

Ein Netznetzwerk ist im Wesentlichen durch eine Typologie gekennzeichnet, in der alle Knoten in der Netzwerkinfrastruktur direkt zwischen ihnen, dynamisch, ohne hierarchisch zu berücksichtigen. Somit kooperieren die Knoten miteinander zusammen, um die Daten effizient zu richten. Diese mangelnde Abhängigkeit zwischen uns ermöglicht es jedem, an der Übertragung und dem Empfang von Informationen zwischen ihnen teilzunehmen. Mesh-Netzwerke können durch ihre Fähigkeit zur Selbstkonfiguration dynamisch organisiert werden, sodass die dynamische Verteilung der Informationsflüsse, insbesondere in Versagenssituationen in einem dieser Knoten.

Klon dieses Repository: $ git clone https://github.com/daeynasvistas/LoRa-Mesh/
Verwenden von Visualstudio Code (Platformio):
2.1. Sie können ESP32 Paste und Arduino Paste in separaten Projekten öffnen.
// Este node e servidor
// 0 = Servidor internet
// 1 = Vizinho de servidor internet
// 2 = Vizinho com um Vizinho de um servidor internet
byte isServer = getIsServer();
String nodeFunction[ 4 ] = { " SINK " , " ESTRADA " , " CAMINHO " , " SOLTEIRO " }; if (msgCount> 10 )
{
message = sendTable ();
sendMessage (message, 255 ); if (msgCount> 10 )
{
message = sendTable ();
sendMessage (message, 255 );String nodeFunction[ 4 ] = { " SINK " , " ESTRADA " , " CAMINHO " , " SOLTEIRO " }; // Posicionamento dos servidores na mesh
switch (incomingMsgHand) {
case 0 :
// statements
if (! arrayIncludeElement (myServers,sender,maxTableArrayServers)){
Serial. println ( " Encontrei um SINK! " +sender);
arrayAddElement (myServers,sender,maxTableArrayServers);
display. drawString ( 0 , 32 , " NOVO: " + String (sender));
}
destination = sender;
break ;
case 1 :
// statements
if (! arrayIncludeElement (myNeighbours,sender,maxTableArrayVizinhos)){
Serial. println ( " Encontrei AUTOESTRADA para SINK! " +sender);
arrayAddElement (myNeighbours,sender,maxTableArrayVizinhos);
display. drawString ( 0 , 32 , " NOVO: " + String (sender));
}
if (isServer!= 0 ){
destination = sender;
}
break ;
case 2 :
// statements
Serial. println ( " Encontrei CAMINHO para SINK! " );
break ;
default :
// statements
break ;
} } else {
// enviar para mais próximo do SINK
destination = myNeighbours[ 0 ];
sendMessage (message, destination);
}Um zu konfigurieren, müssen Sie main.cpp ändern und Sensoren einbeziehen, die Sie vorhersagen. ESP32 beinhaltet Pfund für BME und Arduino für DHT11
Das Projekt verwendet das #Include Pound <arduinojson.h>, um JSON zu erstellen, das in jedem Knoten gesendet wird.
void makeData (){
// add some values
array. add (MAC); // <- Lora MAC
array. add ( 1556969160 ); // <-- Timestamp
array. add (bme. readTemperature ());
array. add (bme. readHumidity ());
array. add (bme. readPressure () / 100 . 0F );
array. add ( 0 );
array. add ( 0 );
array. add ( 0 );
array. add ( 0 );
array. add ( 0 );
array. add ( 0 );
// serialize the array and send the result to Serial
// serialize the array and send the result to Serial
serializeJson (doc, Values);
serializeJson (doc, Serial);
Serial. println ( " " );
}32 als maximal im Nachbartisch .. oder einfach die Dinamic -Array ändern
byte const maxTableArrayVizinhos = 32 ; // quantidade de vizinhos pode ser aumentada conform memoria dispo
byte myNeighbours[maxTableArrayVizinhos] = {}; // address of vizinhos directos
byte const maxTableArrayServers = 4 ; // quantidade de servidores ao qual tenho acesso pode ser aumentada
byte myServers[maxTableArrayServers] = {}; // address dos servidores que encontrei Dies ist das Ergebnis mit seriell.print im Knotensenken, wo alle Sensoren aller Knoten kommen. Die Node Sink ist verantwortlich für das Senden von JSON ... nach Lora (Gateway), nach MQTT oder der Methode, die Sie bevorzugen










