Skip to content

Commit 4550909

Browse files
committed
First working sketch
2 parents 28600e7 + c3222ee commit 4550909

File tree

5 files changed

+598
-2
lines changed

5 files changed

+598
-2
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
push.bat
2-
pull.bat
2+
pull.bat
3+
.DS_Store

Open_IOT_Basic/Open_IOT_Basic.ino renamed to Arduino/Open_IOT_Basic/Open_IOT_Basic.ino

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
// Open IOT
2-
// Control/interface with you Electric Scooter
2+
// Control/interface with your Electric Scooter
3+
// Standalone version, does not require a backend
4+
// https://github.com/joeybab3/Open-IOT
35

46
void setup() {
57
// put your setup code here, to run once:

Arduino/Open_IOT_Okai/Actions.ino

Lines changed: 258 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,258 @@
1+
void ping()
2+
{
3+
server.send(200, "text/html", "OK");
4+
}
5+
6+
void power()
7+
{
8+
if(isRunning)
9+
{
10+
turnOff();
11+
}
12+
else
13+
{
14+
turnOn();
15+
}
16+
}
17+
18+
void headlight()
19+
{
20+
if(headlightStatus)
21+
{
22+
disableHeadlight();
23+
}
24+
else
25+
{
26+
enableHeadlight();
27+
}
28+
}
29+
30+
void flash()
31+
{
32+
if(flashStatus)
33+
{
34+
disableFlash();
35+
}
36+
else
37+
{
38+
enableFlash();
39+
}
40+
}
41+
42+
void setUnitSystem()
43+
{
44+
if(isMetric)
45+
{
46+
setMi();
47+
}
48+
else
49+
{
50+
setKm();
51+
}
52+
}
53+
54+
void toggleBit4()
55+
{
56+
if(isBit4)
57+
{
58+
disableMysteryBit4();
59+
}
60+
else
61+
{
62+
enableMysteryBit4();
63+
}
64+
}
65+
66+
void toggleBit7()
67+
{
68+
if(isBit7)
69+
{
70+
disableMysteryBit7();
71+
}
72+
else
73+
{
74+
enableMysteryBit7();
75+
}
76+
}
77+
78+
void toggleBit8()
79+
{
80+
if(isBit8)
81+
{
82+
disableMysteryBit8();
83+
}
84+
else
85+
{
86+
enableMysteryBit8();
87+
}
88+
}
89+
90+
void turnOff()
91+
{
92+
isRunning = false;
93+
okaiPacket[3] = okaiPacket[3] & B11111110;
94+
reCalculateCommand();
95+
sendCommand();
96+
delay(1000);
97+
sendCommand();
98+
goHome();
99+
}
100+
101+
void turnOn()
102+
{
103+
isRunning = true;
104+
okaiPacket[3] = okaiPacket[3] | B00000001;
105+
reCalculateCommand();
106+
sendCommand();
107+
delay(1000);
108+
sendCommand();
109+
goHome();
110+
}
111+
112+
void enableFlash()
113+
{
114+
flashStatus = true;
115+
okaiPacket[3] = okaiPacket[3] | B00000010;
116+
reCalculateCommand();
117+
sendCommand();
118+
goHome();
119+
}
120+
121+
void disableFlash()
122+
{
123+
flashStatus = false;
124+
okaiPacket[3] = okaiPacket[3] & B11111101;
125+
reCalculateCommand();
126+
sendCommand();
127+
goHome();
128+
}
129+
130+
void enableHeadlight()
131+
{
132+
headlightStatus = true;
133+
okaiPacket[3] = okaiPacket[3] | B00000100;
134+
reCalculateCommand();
135+
sendCommand();
136+
goHome();
137+
}
138+
139+
void disableHeadlight()
140+
{
141+
headlightStatus = false;
142+
okaiPacket[3] = okaiPacket[3] & B11111011;
143+
reCalculateCommand();
144+
sendCommand();
145+
goHome();
146+
}
147+
148+
void enableMysteryBit4()
149+
{
150+
isBit4 = true;
151+
okaiPacket[3] = okaiPacket[3] | B00001000;
152+
reCalculateCommand();
153+
sendCommand();
154+
goHome();
155+
}
156+
157+
void disableMysteryBit4()
158+
{
159+
isBit4 = false;
160+
okaiPacket[3] = okaiPacket[3] & B11110111;
161+
reCalculateCommand();
162+
sendCommand();
163+
goHome();
164+
}
165+
166+
void setKm()
167+
{
168+
isMetric = true;
169+
okaiPacket[3] = okaiPacket[3] | B00010000;
170+
reCalculateCommand();
171+
sendCommand();
172+
goHome();
173+
}
174+
175+
void setMi()
176+
{
177+
isMetric = false;
178+
okaiPacket[3] = okaiPacket[3] & B11101111;
179+
reCalculateCommand();
180+
sendCommand();
181+
goHome();
182+
}
183+
184+
void enableFastAcceleration()
185+
{
186+
okaiPacket[3] = okaiPacket[3] | B00100000;
187+
reCalculateCommand();
188+
sendCommand();
189+
//server.send(200, "text/html", goHome());
190+
}
191+
192+
void disableFastAcceleration()
193+
{
194+
okaiPacket[3] = okaiPacket[3] & B11011111;
195+
reCalculateCommand();
196+
sendCommand();
197+
//server.send(200, "text/html", goHome());
198+
}
199+
200+
void enableMysteryBit7()
201+
{
202+
isBit7 = true;
203+
okaiPacket[3] = okaiPacket[3] | B01000000;
204+
reCalculateCommand();
205+
sendCommand();
206+
goHome();
207+
}
208+
209+
void disableMysteryBit7()
210+
{
211+
isBit7 = false;
212+
okaiPacket[3] = okaiPacket[3] & B10111111;
213+
reCalculateCommand();
214+
sendCommand();
215+
goHome();
216+
}
217+
218+
void enableMysteryBit8()
219+
{
220+
isBit8 = true;
221+
okaiPacket[3] = okaiPacket[3] | B10000000;
222+
reCalculateCommand();
223+
sendCommand();
224+
goHome();
225+
}
226+
227+
void disableMysteryBit8()
228+
{
229+
isBit8 = false;
230+
okaiPacket[3] = okaiPacket[3] & B01111111;
231+
reCalculateCommand();
232+
sendCommand();
233+
goHome();
234+
}
235+
236+
void setDefaultConfig()
237+
{
238+
okaiPacket[4] = okaiMaxSpeed;
239+
okaiPacket[3] = okaiDefaultConfig;
240+
reCalculateCommand();
241+
goHome();
242+
isRunning = true;
243+
headlightStatus = false;
244+
flashStatus = false;
245+
isMetric = false;
246+
isBit4 = false;
247+
isBit7 = true;
248+
isBit8 = true;
249+
}
250+
251+
void reboot()
252+
{
253+
turnOff();
254+
delay(500);
255+
turnOn();
256+
delay(500);
257+
server.send(200, "text/html", SendHTML());
258+
}

0 commit comments

Comments
 (0)