@alteriom/painlessmesh 1.9.18 → 1.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +82 -63
  3. package/examples/alteriom/README.md +4 -4
  4. package/examples/alteriom/alteriom_custom_package_template.hpp +320 -0
  5. package/examples/alteriom/alteriom_sensor_package.hpp +1 -1
  6. package/examples/alteriom/mppt_example/alteriom_mppt_example.ino +208 -0
  7. package/examples/bridge_failover/bridge_failover.ino +17 -0
  8. package/examples/sendToInternet/CMakeLists.txt +54 -0
  9. package/examples/sendToInternet/PC_NODE_README.md +517 -0
  10. package/examples/sendToInternet/README.md +39 -1
  11. package/examples/sendToInternet/build.sh +153 -0
  12. package/examples/sendToInternet/mock_server_test.ino +361 -0
  13. package/examples/sendToInternet/pc_mesh_node.cpp +361 -0
  14. package/library.json +4 -1
  15. package/library.properties +1 -1
  16. package/package.json +3 -3
  17. package/src/AlteriomPainlessMesh.h +5 -13
  18. package/src/arduino/wifi.hpp +306 -100
  19. package/src/connection.cpp +10 -0
  20. package/src/painlessMesh.h +1 -14
  21. package/src/painlessmesh/connection.hpp +11 -16
  22. package/src/painlessmesh/gateway.hpp +0 -1061
  23. package/src/painlessmesh/mesh.hpp +58 -86
  24. package/src/painlessmesh/message_queue.hpp +1 -2
  25. package/src/painlessmesh/metrics.hpp +2 -262
  26. package/src/painlessmesh/validation.hpp +0 -143
  27. package/docs/README.md +0 -132
  28. package/docs/alteriom/overview.md +0 -531
  29. package/docs/api/core-api.md +0 -607
  30. package/docs/api/shared-gateway.md +0 -1207
  31. package/docs/architecture/mesh-architecture.md +0 -399
  32. package/docs/architecture/plugin-system.md +0 -517
  33. package/docs/getting-started/arduino-manual-install.md +0 -313
  34. package/docs/getting-started/first-mesh.md +0 -410
  35. package/docs/getting-started/installation.md +0 -275
  36. package/docs/getting-started/quickstart.md +0 -158
  37. package/docs/troubleshooting/common-issues.md +0 -679
  38. package/docs/troubleshooting/debugging.md +0 -455
  39. package/docs/troubleshooting/external-device-connection.md +0 -283
  40. package/docs/troubleshooting/faq.md +0 -574
  41. package/docs/tutorials/basic-examples.md +0 -718
@@ -1,158 +0,0 @@
1
- # Quick Start Guide
2
-
3
- Get your first painlessMesh network running in just a few minutes! This guide will walk you through creating a simple mesh network with two ESP8266 or ESP32 devices.
4
-
5
- ## What You'll Need
6
-
7
- - 2 or more ESP8266 or ESP32 development boards
8
- - Arduino IDE or PlatformIO
9
- - USB cables for programming
10
-
11
- ## Step 1: Install painlessMesh
12
-
13
- ### Arduino IDE
14
- 1. Open Arduino IDE
15
- 2. Go to **Sketch → Include Library → Manage Libraries**
16
- 3. Search for "painlessMesh"
17
- 4. Install the latest version by "Coopdis"
18
-
19
- ### PlatformIO
20
- Add to your `platformio.ini`:
21
- ```ini
22
- lib_deps =
23
- painlessMesh
24
- ```
25
-
26
- ## Step 2: Basic Mesh Example
27
-
28
- Copy this code to your Arduino IDE or create a new PlatformIO project:
29
-
30
- ```cpp
31
- #include "painlessMesh.h"
32
-
33
- #define MESH_PREFIX "MyMeshNetwork"
34
- #define MESH_PASSWORD "somethingSneaky"
35
- #define MESH_PORT 5555
36
-
37
- Scheduler userScheduler; // to control your personal task
38
- painlessMesh mesh;
39
-
40
- // User stub
41
- void sendMessage(); // Prototype so PlatformIO doesn't complain
42
-
43
- Task taskSendMessage(TASK_SECOND * 1, TASK_FOREVER, &sendMessage);
44
-
45
- void sendMessage() {
46
- String msg = "Hello from node ";
47
- msg += mesh.getNodeId();
48
- mesh.sendBroadcast(msg);
49
- taskSendMessage.setInterval(random(TASK_SECOND * 1, TASK_SECOND * 5));
50
- }
51
-
52
- // Needed for painless library
53
- void receivedCallback(uint32_t from, String &msg) {
54
- Serial.printf("startHere: Received from %u msg=%s\n", from, msg.c_str());
55
- }
56
-
57
- void newConnectionCallback(uint32_t nodeId) {
58
- Serial.printf("--> startHere: New Connection, nodeId = %u\n", nodeId);
59
- }
60
-
61
- void changedConnectionCallback() {
62
- Serial.printf("Changed connections\n");
63
- }
64
-
65
- void nodeTimeAdjustedCallback(int32_t offset) {
66
- Serial.printf("Adjusted time %u. Offset = %d\n", mesh.getNodeTime(),offset);
67
- }
68
-
69
- void setup() {
70
- Serial.begin(115200);
71
-
72
- // Set debug messages before init()
73
- mesh.setDebugMsgTypes(ERROR | STARTUP);
74
-
75
- // Initialize mesh
76
- mesh.init(MESH_PREFIX, MESH_PASSWORD, &userScheduler, MESH_PORT);
77
- mesh.onReceive(&receivedCallback);
78
- mesh.onNewConnection(&newConnectionCallback);
79
- mesh.onChangedConnections(&changedConnectionCallback);
80
- mesh.onNodeTimeAdjusted(&nodeTimeAdjustedCallback);
81
-
82
- // Add task to scheduler
83
- userScheduler.addTask(taskSendMessage);
84
- taskSendMessage.enable();
85
- }
86
-
87
- void loop() {
88
- // it will run the user scheduler as well
89
- mesh.update();
90
- }
91
- ```
92
-
93
- ## Step 3: Upload and Test
94
-
95
- 1. **Upload the code** to your first ESP8266/ESP32 device
96
- 2. **Open Serial Monitor** (115200 baud) to see debug messages
97
- 3. **Upload the same code** to your second device
98
- 4. Watch them automatically discover each other and start exchanging messages!
99
-
100
- ## What You Should See
101
-
102
- In the Serial Monitor, you'll see output like:
103
- ```
104
- startHere: New Connection, nodeId = 123456789
105
- startHere: Received from 123456789 msg=Hello from node 123456789
106
- Changed connections
107
- Adjusted time 1234567. Offset = 12
108
- ```
109
-
110
- ## Key Concepts
111
-
112
- - **Mesh Network**: All nodes automatically discover and connect to each other
113
- - **Broadcasting**: Messages sent to all nodes in the network
114
- - **Node ID**: Each device gets a unique identifier
115
- - **Time Sync**: All nodes automatically synchronize their clocks
116
- - **Self-Healing**: If nodes disconnect, the mesh automatically reorganizes
117
-
118
- ## Next Steps
119
-
120
- Now that you have a basic mesh working:
121
-
122
- 1. **Add more nodes** - Upload the same code to additional devices
123
- 2. **Try different message types** - See [Custom Packages Tutorial](../tutorials/custom-packages.md)
124
- 3. **Add sensors** - Check out the [Sensor Networks Tutorial](../tutorials/sensor-networks.md)
125
- 4. **Explore Alteriom features** - Learn about [Alteriom Extensions](../alteriom/overview.md)
126
-
127
- ## Troubleshooting
128
-
129
- **Nodes not connecting?**
130
- - Make sure MESH_PREFIX and MESH_PASSWORD are identical on all devices
131
- - Check that devices are within WiFi range
132
- - Verify MESH_PORT is the same on all devices
133
-
134
- **Serial output not showing?**
135
- - Check baud rate is set to 115200
136
- - Ensure USB cable supports data transfer
137
- - Try pressing the reset button after upload
138
-
139
- For more help, see our [Troubleshooting Guide](../troubleshooting/common-issues.md).
140
-
141
- ## Configuration Options
142
-
143
- You can customize your mesh network by changing these parameters:
144
-
145
- ```cpp
146
- // Network credentials
147
- #define MESH_PREFIX "YourNetworkName" // Network name (SSID)
148
- #define MESH_PASSWORD "YourPassword" // Network password
149
- #define MESH_PORT 5555 // TCP port for mesh communication
150
-
151
- // Debug levels - combine with | operator
152
- mesh.setDebugMsgTypes(ERROR | STARTUP | CONNECTION);
153
-
154
- // Available debug types:
155
- // ERROR, STARTUP, CONNECTION, SYNC, COMMUNICATION, GENERAL, MSG_TYPES, REMOTE
156
- ```
157
-
158
- Ready to dive deeper? Check out our [Installation Guide](installation.md) for more advanced setup options!