

Jaringan mesh pada dasarnya ditandai oleh tipologi di mana semua node dalam infrastruktur jaringan berkomunikasi langsung di antara mereka, secara dinamis, tanpa memperhitungkan secara hierarkis. Dengan demikian, node bekerja sama satu sama lain, untuk mengalahkan data secara efisien. Kurangnya ketergantungan antara kami memungkinkan masing -masing untuk berpartisipasi dalam transmisi dan penerimaan informasi di antara mereka. Jaringan mesh dapat diatur secara dinamis melalui kemampuan mereka untuk konfigurasi diri, memungkinkan distribusi dinamis aliran informasi, terutama dalam situasi kegagalan dalam salah satu simpul ini.

Klon Repositori ini: $ git clone https://github.com/daeynasvistas/LoRa-Mesh/
Menggunakan VisualStudio Code (PlatformIO):
2.1. Anda dapat membuka pasta ESP32 dan pasta Arduino di proyek terpisah.
// 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);
}Untuk mengonfigurasi Anda harus mengubah Main.cpp dan menyertakan sensor yang Anda prediksi. ESP32 termasuk pound untuk BME dan Arduino untuk DHT11
Proyek ini menggunakan #include pound <arduinojson.h> untuk membangun json yang dikirim di setiap node, itu termasuk atau mengubahnya yang Anda inginkan.
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 sebagai maksimal di tabel tetangga .. atau cukup ubah array dinamic
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 Ini adalah hasil dengan Serial.Print di Node Wastafel, di mana semua sensor dari semua node datang. Node wastafel bertanggung jawab untuk mengirim json ... oleh lora (gateway), oleh mqtt atau metode yang Anda sukai










