Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
trkall
/
T-Diagnostics
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Snippets
Members
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
6d3d0170
authored
3 years ago
by
Tref
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update with better structure
parent
f11975ed
master
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
147 additions
and
14 deletions
README.md
esp32MQTT.ino
noderedflowsconfig.json
README.md
View file @
6d3d0170
Java project requires Java11.
<br/>
ESP32 is built for WEMOS minikit.
This diff is collapsed.
Click to expand it.
esp32MQTT.ino
View file @
6d3d0170
...
...
@@ -4,10 +4,11 @@
#include <Arduino.h>
#define PORT 1883
#define LED 2
const
char
*
WIFI_SSID
=
"Telia-9E1E41"
;
const
char
*
WIFI_PASS
=
"XPC47UPGRT"
;
const
char
*
server
=
"192.168.1.188"
;
long
lastMsg
=
0
;
WiFiClient
client
;
PubSubClient
mqttClient
(
client
);
void
setup
()
{
...
...
@@ -18,29 +19,49 @@ void setup() {
{
delay
(
3000
);
}
pinMode
(
LED
,
OUTPUT
);
mqttClient
.
setServer
(
server
,
PORT
);
// put your setup code here, to run once:
delay
(
5000
);
while
(
1
){
if
(
mqttClient
.
connect
(
"ardu"
))
{
if
(
mqttClient
.
connect
(
"ardu"
))
{
break
;
}
else
{
delay
(
1000
);
}
}
mqttClient
.
setCallback
(
subscribeReceive
);
mqttClient
.
subscribe
(
"/master/app/server/diagnostics/browser/blockreading"
);
mqttClient
.
subscribe
(
"/master/app/server/diagnostics/browser/errorreading"
);
}
void
loop
()
{
// put your main code here, to run repeatedly:
while
(
Serial
.
available
())
{
String
s
=
Serial
.
readString
();
int
n
=
s
.
length
();
char
c
[
n
+
1
];
strcpy
(
c
,
s
.
c_str
());
switch
(
c
[
0
]){
case
'p'
:
mqttClient
.
publish
(
"/master/app/server/diagnostics/ecu/errorreading"
,
c
);
Serial
.
write
(
"done"
);
break
;
if
(
!
mqttClient
.
connected
())
{
reconnect
();
}
long
now
=
millis
();
if
(
now
-
lastMsg
>
2000
)
{
mqttClient
.
loop
();
lastMsg
=
now
;
}
}
void
reconnect
()
{
// Loop until we're reconnected
while
(
!
mqttClient
.
connected
())
{
// Attempt to connect
if
(
mqttClient
.
connect
(
"ardu"
))
{
mqttClient
.
subscribe
(
"/master/app/server/diagnostics/browser/blockreading"
);
mqttClient
.
subscribe
(
"/master/app/server/diagnostics/browser/errorreading"
);
}
else
{
delay
(
500
);
}
}
}
...
...
@@ -55,9 +76,118 @@ void MQTTdataParser(byte* payload, char str[], unsigned int length){
void
subscribeReceive
(
char
*
topic
,
byte
*
payload
,
unsigned
int
length
)
{
char
str
[
length
+
1
];
MQTTdataParser
(
payload
,
str
,
length
);
if
(
strcmp
(
topic
,
"/master/app/server/diagnostics/user/grpreading"
)){
long
value
=
strtol
(
str
,
NULL
,
10
);
//Serial.print(value);
//Serial.print(topic);
if
(
strcmp
(
topic
,
"/master/app/server/diagnostics/browser/blockreading"
)
==
0
){
grpReading
((
int
)
value
);
}
else
if
(
strcmp
(
topic
,
"/master/app/server/diagnostics/browser/errorreading"
)
==
0
){
value
=
strtol
(
"203"
,
NULL
,
10
);
errorReading
((
int
)
value
);
}
}
void
errorReading
(
int
block
){
int
i
=
0
;
Serial
.
write
(
block
);
while
(
!
Serial
.
available
())
{
i
++
;
if
(
i
==
9999999
)
return
;
}
delay
(
10000
);
int
buf
=
Serial
.
read
();
if
(
buf
==
'D'
){
char
c
[
256
];
i
=
0
;
while
(
Serial
.
available
())
{
c
[
i
]
=
Serial
.
read
();
i
++
;
}
//c[i-1] = '\0';
mqttClient
.
publish
(
"/master/app/server/diagnostics/ecu/errorreading"
,
c
);
digitalWrite
(
LED
,
HIGH
);
delay
(
500
);
digitalWrite
(
LED
,
LOW
);
delay
(
500
);
buf
=
Serial
.
read
();
}
}
void
grpReading
(
int
block
){
Serial
.
write
(
block
);
long
i
=
0
;
while
(
!
Serial
.
available
())
{
i
++
;
if
(
i
==
9999999
)
return
;
}
delay
(
10000
);
int
buf
=
Serial
.
read
();
if
(
buf
==
'G'
){
int
dat
[
12
]
=
{
0
};
char
h
[
5
];
int
i
=
0
;
int
flag1
=
0
;
int
k
=
0
;
//Serial.print("\n");
do
{
if
(
Serial
.
available
())
{
delay
(
5
);
buf
=
Serial
.
read
();
//Serial.write(buf);
if
(
buf
!=
';'
){
flag1
=
0
;
//dat[i] += (buf)*k;
h
[
k
]
=
buf
;
//Serial.write(dat[i]);
//Serial.print(" ");
k
++
;
}
else
if
(
!
flag1
&&
buf
==
';'
){
//Serial.print("\n");
dat
[
i
]
=
atoi
(
h
);
h
[
0
]
=
'\0'
;
h
[
1
]
=
'\0'
;
h
[
2
]
=
'\0'
;
h
[
3
]
=
'\0'
;
h
[
4
]
=
'\0'
;
i
++
;
flag1
=
1
;
k
=
0
;
}
else
if
(
flag1
&&
buf
==
';'
){
//Serial.print("\n");
//Serial.print("\n");
break
;
}
}
}
while
(
i
<
12
);
char
str
[
256
]
=
"
\0
"
;
char
temp
[
5
];
int
j
=
0
;
char
ix
=
i
+
'0'
;
//Serial.print(ix);
//Serial.print("\n");
for
(;
j
<
i
;
j
++
){
sprintf
(
temp
,
"%d;"
,
dat
[
j
]);
//itoa(dat[j], temp, 10);
strcat
(
str
,
temp
);
//strcat(str, ";");
}
mqttClient
.
publish
(
"/master/app/server/diagnostics/ecu/blockreading"
,
str
);
digitalWrite
(
LED
,
HIGH
);
delay
(
500
);
digitalWrite
(
LED
,
LOW
);
delay
(
500
);
buf
=
Serial
.
read
();
//Serial.write(str);
}
}
\ No newline at end of file
This diff is collapsed.
Click to expand it.
noderedflowsconfig.json
View file @
6d3d0170
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment