
Create demo Android app to fetch data from ODB adapter
- or -
Post a project like this668
£50/hr(approx. $68/hr)
- Posted:
- Proposals: 19
- Remote
- #4093079
- Awarded
♛ TOP Rated ♛ | Mobile App Development | Web Development | React Native | Flutter | ReactJS | NodeJS | AngularJS


#1Wordpress|Webflow|Shopify|Wix|CRM|PHP|Android|iOS|Bespoke|App|Zoho|Laravel|SEO|PPC|Social|React|Node|Flutter|React Native|Magento|PWA|Plugin|Chrome Extention


1550+ Projects (iOS | Android | Mac OS | Web | Win | BlockChain | IOT)

Full Stack Developer : PHP| React | Angular | Node.js | IONIC | React Native | Mobile App Development

354040660817350415911150194157238488597796857010457279433247490333212602821





Description
Experience Level: Expert
ELM adapter data collection app
this is a home hobby project, open source, I am using a Raspberry pi server, the project is quick and dirty
we will work live together online
it is a code sprint
I will test and prove the app myself, you may do the same if you can
The API is on Github and is public.
https://github.com/pires/obd-java-api
The endpoint is controlled by me
the code will be pushed to GitHub as we go
step 1 should take about 2 hours
step 2 should take maybe 4 hours
the UI is https://jsfiddle.net/rusty1642/hc34zx0r/5/
there will be a persistent state variable to record the app state
step 1
register with a server endpoint on button click, user enters username (u)and password (p)
registration url = https://brainbox/cgi/register.php
takes 2 param u=username p=password either GET or POST
returns JSON
{
"publicDomain":"newton.house",
"serverID":"fe138db692ff4bceb5aee6f62c9cfcd7",
"rsyncID":"Pu0eeRhR",
"timeRemaining":0,
"signedIn": 0,
"insideLAN":1,
"clientIP":"192.168.0.3",
"errors":"none"
}
save public domain name and rsyncID (auth token) to persistent storage
on success
show new UI panel to select bluetooth connection
set a new state flag
user will select ELM bluetooth connection on button click
on success
show new UI panel with status, see UI mock up
save bluetooth uuid or guid to persistent storage
set up Broadcast listener to monitor presence of the selected bluetooth device
step 2
app is running after registration and bluetooth selection, and listening for ELM bluetooth
on finding device
connect, ping every 5 seconds for engine on
on finding engine on
stop fast ping
start timer or use Thread.sleep(), collect sample data using Pires API.
save journey start data (milage, GPS position, app data, car data, time)
The sample data will be 5 data points at each poll of the adapter.
each datapoint is called with a class and .run() method.
on engine stop
collect end data (milage, GPS,time), parse into JSON string, send to server endpoint when a connection is available
make a POST request to
https://newton.house/cgi/glovebox/ep.php
with JSON data structure in the body
{
command: set-car-data,
rsyncid: xxxxxxx, // saved auth token
start:[ gps: nnn.nnn nnn.nnn, milage: nnnnnn, cartype:x ],
ending: [ gps: nnn.nnn nnn.nnn, milage: nnnnnn ],
data: [ {int,int,int,int,int},{int,int,int,int,int},{int,int,int,int,int} ... ]
}
rtns errors:none
there is a reset button
on click reset button
clear all persistent data,
reset state variable,
and show starting UI
this is a home hobby project, open source, I am using a Raspberry pi server, the project is quick and dirty
we will work live together online
it is a code sprint
I will test and prove the app myself, you may do the same if you can
The API is on Github and is public.
https://github.com/pires/obd-java-api
The endpoint is controlled by me
the code will be pushed to GitHub as we go
step 1 should take about 2 hours
step 2 should take maybe 4 hours
the UI is https://jsfiddle.net/rusty1642/hc34zx0r/5/
there will be a persistent state variable to record the app state
step 1
register with a server endpoint on button click, user enters username (u)and password (p)
registration url = https://brainbox/cgi/register.php
takes 2 param u=username p=password either GET or POST
returns JSON
{
"publicDomain":"newton.house",
"serverID":"fe138db692ff4bceb5aee6f62c9cfcd7",
"rsyncID":"Pu0eeRhR",
"timeRemaining":0,
"signedIn": 0,
"insideLAN":1,
"clientIP":"192.168.0.3",
"errors":"none"
}
save public domain name and rsyncID (auth token) to persistent storage
on success
show new UI panel to select bluetooth connection
set a new state flag
user will select ELM bluetooth connection on button click
on success
show new UI panel with status, see UI mock up
save bluetooth uuid or guid to persistent storage
set up Broadcast listener to monitor presence of the selected bluetooth device
step 2
app is running after registration and bluetooth selection, and listening for ELM bluetooth
on finding device
connect, ping every 5 seconds for engine on
on finding engine on
stop fast ping
start timer or use Thread.sleep(), collect sample data using Pires API.
save journey start data (milage, GPS position, app data, car data, time)
The sample data will be 5 data points at each poll of the adapter.
each datapoint is called with a class and .run() method.
on engine stop
collect end data (milage, GPS,time), parse into JSON string, send to server endpoint when a connection is available
make a POST request to
https://newton.house/cgi/glovebox/ep.php
with JSON data structure in the body
{
command: set-car-data,
rsyncid: xxxxxxx, // saved auth token
start:[ gps: nnn.nnn nnn.nnn, milage: nnnnnn, cartype:x ],
ending: [ gps: nnn.nnn nnn.nnn, milage: nnnnnn ],
data: [ {int,int,int,int,int},{int,int,int,int,int},{int,int,int,int,int} ... ]
}
rtns errors:none
there is a reset button
on click reset button
clear all persistent data,
reset state variable,
and show starting UI

Rupert N.
100% (10)Projects Completed
11
Freelancers worked with
7
Projects awarded
59%
Last project
3 Apr 2024
United Kingdom
New Proposal
Login to your account and send a proposal now to get this project.
Log inClarification Board Ask a Question
-
There are no clarification messages.
We collect cookies to enable the proper functioning and security of our website, and to enhance your experience. By clicking on 'Accept All Cookies', you consent to the use of these cookies. You can change your 'Cookies Settings' at any time. For more information, please read ourCookie Policy
Cookie Settings
Accept All Cookies