ฝฝตัวอย่างในโค้ด พากรับ ไม่รุ้จักค่า temp2 ที่ lin 92
1. #include <U8x8lib.h>
2. #include <LoRa.h>
3. String receivedText;
4. String receivedRssi;
5. #define Phase_N 35 // for Phase test
6. //#define led_A 15
7. //#define led_B 16
8. //#define led_C 17
9. #define SCK 5
10. #define MISO 19
11. #define MOSI 27
12. #define SS 18
13. #define RST 14
14. #define DI0 26
15. #define BAND 433E6
16. #define PABOOST true
17. U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(15,4,16);
18. int Value_N = 0;
19. int counter = 0;
20. float x1, A, B, C, temp, temp1, temp2;
21. void setup() {
22. //pinMode(15,OUTPUT);//light phase A
23. //pinMode(16,OUTPUT);//light phase B
24. //pinMode(17,OUTPUT);//light phase c
25. pinMode(25,OUTPUT); //Send success, LED will bright 1 second
26. pinMode(25,INPUT); //Send success, LED will bright 1 second
27. Serial.begin(115200);
28. delay(1000);
29. u8x8.begin();
30. u8x8.setFont(u8x8_font_chroma48medium8_r);
31. u8x8.drawString(0, 1, "LoRa Receiver");
32. SPI.begin(5, 19, 27, 18);
33. LoRa.setPins(SS, RST, DI0);
34. LoRa.setTxPower(17);
35. LoRa.setSpreadingFactor(12);
36. LoRa.setCodingRate4(5);
37. LoRa.setSignalBandwidth(125E3);
38. LoRa.setPreambleLength(8);
39. if (!LoRa.begin(BAND,PABOOST))
40. {
41. u8x8.drawString(0, 1, "LoRa Receiver");
42. while (1);
43. }
44. }
45. void loop() {
46. Value_N = analogRead(Phase_N);
47. int packetSize = LoRa.parsePacket();
48. if (packetSize ) {
49. String incoming = "";
50. while (LoRa.available())
51. {
52. incoming += (char)LoRa.read();
53. }
54. receivedText = incoming;
55. Serial.print("RSSI: ");
56. Serial.println(LoRa.packetRssi());
57. u8x8.drawString(0, 3, "RSSI: ");
58. receivedRssi = LoRa.packetRssi();
59. char currentrs[64];
60. receivedRssi.toCharArray(currentrs, 64);
61. u8x8.drawString(6, 3, currentrs);
62. char currentid [4];
63. char currentid1[4];
64. char currentid2[4];
65. char currentid3[4];
66. u8x8.drawString(0, 4,"Phase_A: ");////A
67. u8x8.drawString(0, 5,"Phase_B: ");////B
68. u8x8.drawString(0, 6,"Phase_C: ");////C
69. receivedText.toCharArray(currentid,64);
70. u8x8.drawString(9,4,currentid);//////////A
71. u8x8.drawString(9,5,currentid1);//////////A
72. u8x8.drawString(9,5,currentid2);//////////////////////////////////////////B
73. u8x8.drawString(9,6,currentid3);//C
74. Serial.print(receivedText);
75. delay (100);
76. ////////////////////////////////////////////////////////////N
77. Serial.print("Phase_N:");
78. u8x8.drawString(0, 7, "Phase_N: ");
79. Serial.println(Value_N);
80. String txt = String(Value_N);
81. char currentid4[5];
82. txt.toCharArray(currentid4, 64);
83. u8x8.drawString(9, 7, currentid4);
84. x1 = txt.toFloat();
85. Serial.print("x1: ");
86. Serial.print (x1);
87.
88. /////////////////////////////////////A
89. temp = atof(currentid);//char to float
90. temp1 = atof(currentid1); // char to float
91. temp2 = atof(currentid2);
92. A=x1-temp;
93. B=x1-temp1;
94. C=x1-temp2;//???????????????????????????????????
95.
96. Serial.println("A: ");
97. Serial.print(A);
98. Serial.println("B: ");
99. Serial.print(B);
100. Serial.println("C: ");
101. Serial.print(C);
102. /////////////////////////////////////////////////////////////////
103. digitalWrite(25, HIGH); // turn the LED on (HIGH is the voltage level)
104. delay(1000); // wait for a second
105. digitalWrite(25, LOW); // turn the LED off by making the voltage LOW
106. delay(1000); // wait for a second
107. }
108. }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ฝั่งตัวส่ง---------------------------------------
1. #include <U8x8lib.h>
2. #include <LoRa.h>
3. #include <SPI.h>
4. String receivedText;
5. String receivedRssi;
6. #define Phase_A 36
7. #define Phase_B 37
8. #define Phase_C 38
9. #define SCK 5 // GPIO5 -- SX127x's SCK
10. #define MISO 19 // GPIO19 -- SX127x's MISO
11. #define MOSI 27 // GPIO27 -- SX127x's MOSI
12. #define SS 18
13. #define RST 14
14. #define DI0 26
15. #define BAND 433E6
16. #define PABOOST true
17. U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(15,4,16);
18. int Value_A = 0;
19. //float Value_B = 0;
20. int Value_B = 0;
21. long Value_C = 0;
22. //int Value_C = 0;
23. int counter = 0;
24. float x;
25. void setup() {
26. pinMode(25,OUTPUT); //Send success, LED will bright 1 second
27. Serial.begin(115200);
28. delay(1000);
29. u8x8.begin();
30. u8x8.setFont(u8x8_font_chroma48medium8_r);
31. Serial.println("LoRa Sender");
32. u8x8.drawString(0, 1, "LoRa Sender");
33. SPI.begin(5,19,27,18);
34. LoRa.setPins(SS,RST,DI0);
35. LoRa.setTxPower(17);
36. LoRa.setSpreadingFactor(12);
37. LoRa.setCodingRate4(5);
38. LoRa.setSignalBandwidth(125E3);
39. LoRa.setPreambleLength(8);
40. if (!LoRa.begin(BAND,PABOOST))
41. {
42. Serial.println("Starting LoRa failed!");
43. u8x8.drawString(0, 1, "Starting LoRa failed!");
44. while (1);
45. }
46. Serial.println("LoRa Initial OK!");
47. }
48. void loop() {
49. Value_A = analogRead(Phase_A);
50. Value_B = analogRead(Phase_B);
51. Value_C = analogRead(Phase_C);
52. Serial.print("Sending packet: ");
53. u8x8.drawString(0, 4, "PacketID");
54. Serial.println(counter);
55. String txt = String(counter);
56. char currentid[5];
57. txt.toCharArray(currentid, 64);
58. u8x8.drawString(9, 4, currentid);
59. /////////////////////////////////AAAAAAAA
60. Serial.print(" Phase_A: ");
61. u8x8.drawString(0, 5, "Phase_A:");
62. Serial.println(Value_A);
63. String txt1 = String(Value_A);
64. char currentid1[5];
65. txt1.toCharArray(currentid1, 64);
66. u8x8.drawString(9, 5, currentid1);
67. //////////////////////////////////////BB
68. Serial.print(" Phase_B: ");
69. u8x8.drawString(0, 6, "Phase_B:");
70. Serial.println(Value_B);
71. String txt2 = String(Value_B);
72. char currentid2[5];
73. txt2.toCharArray(currentid2, 64);
74. u8x8.drawString(9, 6, currentid2);
75. ///////////////////////////////////CC
76. Serial.print(" Phase_C: ");
77. u8x8.drawString(0, 7, "Phase_C:");
78. Serial.println(Value_C);
79. String txt3 = String(Value_C);
80. char currentid3[5];
81. txt3.toCharArray(currentid3, 64);
82. u8x8.drawString(9, 7, currentid3);
83. //////////////////////////////////
84. LoRa.beginPacket();
85. LoRa.println(Value_A);
86. LoRa.println(Value_B);
87. LoRa.println(Value_C);
88. LoRa.endPacket();
89. delay(100);
90. counter++;
91. digitalWrite(25, HIGH); // turn the LED on (HIGH is the voltage level)
92. delay(1000); // wait for a second
93. digitalWrite(25, LOW); // turn the LED off by making the voltage LOW
94. delay(1000); // wait for a second
95. }