element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Upcycle IoT Design Challenge
  • Challenges & Projects
  • Design Challenges
  • Upcycle IoT Design Challenge
  • More
  • Cancel
Upcycle IoT Design Challenge
Blog Blog #8: Monitoring Recycling Factory, IoT and Employees Health on Android App Google Play Store
  • Blog
  • Forum
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Upcycle IoT Design Challenge to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: abhishek2018
  • Date Created: 9 Feb 2024 10:58 PM Date Created
  • Views 530 views
  • Likes 2 likes
  • Comments 2 comments
  • Android 4.4
  • Android 5.1
  • Hedgehog
  • emulator
  • API Level 22
  • API Level 31
  • UpsideDownCake
  • Google Play Store
  • Android 14.0
  • android studio
  • KitKat
  • Lollipop
  • Upcycle IoT Design Challenge
  • Android 12
  • Jelly Bean
  • tablet
  • Curiosity Nano Evaluation Kit
Related
Recommended

Blog #8: Monitoring Recycling Factory, IoT and Employees Health on Android App Google Play Store

abhishek2018
abhishek2018
9 Feb 2024

I have developed Android App 'E14 Upcycle IoT Demo' which is also uploaded on my Google Play Store. 

Google PlayStore Name : 

Applet is also uploaded on e14 :  e14upcycleiotdemo_apk, e14upcycleiotdemo_app.zip

Android Applet Name :  E14 Upcycle IoT Demo

Software Used :  Android Studio Hedgehog | 2023.1.1 Patch 2, on Linux(64-bit).

Andriod Versions Supported 

Minimum : Android 4.4, KitKat

Latest : Android 14.0, UpsideDownCake

API Level    Min : 19  and Latest : 34

Language  :  Java, XML

Gradle : 8.2

Description of Applet : This applet is for DEMO purposes only, designed as a part of the contest 'Upcycle IoT Design Challenge' held by element14.com.Using this app, the owner, and senior management can view complete factory status, activities, all major/minor updates on its 'Factory Dashboard', which includes Electrical Room MCCB voltages, current & power readings; Inventory; Scrap; Recycle Room 1; Recycle Room 2; Recycle Room 3; DG,Solar,Wind; R and D ; Inventory R and D ; Training; Logistics; Account; Business Room; Alliancesand Blacklist.

The owner and senior management can also login and monitor 32 employees which include security guards, maintenance engineer, technician, engineer, helper, workers, etc. Not only this, they can remotely switch ON/OFF airpurifers when the factory air quality index falls below normal values. It is a must as the recycling makes companies employees expose to toxic, and the owner do not want its employees to get affected by this recycling process.

You can enjoy turning on/off button of airpurifier and from dashbaord-business room.

username is user

password is 1234

This applet lacks security features, cryptography not implemented in this app. 

1. Android Studio App Development

Screenshots and Videos from Android Studio

{gallery}Android Studio App Development

image

IMAGE TITLE: THEN IMAGE DESCRIPTION

image

IMAGE TITLE: THEN IMAGE DESCRIPTION

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image


2. Code Snippets 

Following are not pseduo codes, but working codes with few lines omitted as elementary for any grad. Code is known and it can be known by reverse engineering,

1)

//Created by Mr. Abhishek Bansal
//Company: New Era Consultancy Services

 public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {
    private DrawerLayout drawerLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
         setSupportActionBar(toolbar);
         
         
         Override
    public void onBackPressed() {
        if (drawerLayout.isDrawerOpen(GravityCompat.START)) {
            drawerLayout.closeDrawer(GravityCompat.START);
        } else {
            super.onBackPressed();
        }

2)

//Created by Mr. Abhishek Bansal
//Company: New Era Consultancy Services


public class NotificationReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent nextActivity = new Intent(context, NotificationActivity.class);
        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, nextActivity, 0);
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context, "")
                .setSmallIcon(R.drawable.notification)
                .setContentTitle("Reminder")
                             .setAutoCancel(true)
                .setDefaults(NotificationCompat.DEFAULT_ALL)
                .setPriority(NotificationCompat.PRIORITY_HIGH)
                .setContentIntent(pendingIntent);
        NotificationManagerCompat notificationManagerCompat = NotificationManagerCompat.from(context);


        if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
             
            return;
        }
        notificationManagerCompat.notify(2024, builder.build());

3)

//Created by Mr. Abhishek Bansal
//Company: New Era Consultancy Services

package com.neweraconsultancyservices_learnyourselfeasysolutions.e14upcycleiotdemo;


 getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new EcgFragment()).commit();
  getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new AwsCloudFragment()).commit();
   getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new OximeterFragment()).commit();
   getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, new RespiratoryFragment()).commit();
    public Result<LoggedInUser> login(String username, String password) {

        try {
 
            LoggedInUser fakeUser =
                    new LoggedInUser(
                            java.util.UUID.randomUUID().toString(),
                            );
            return new Result.Success<>(fakeUser);
        } catch (Exception e) {
            return new Result.Error(new IOException("Error logging in", e));
        }
    }

    public void logout() {
 
    }    private LoginRepository(LoginDataSource dataSource) {
        this.dataSource = dataSource;
    }

    public static LoginRepository getInstance(LoginDataSource dataSource) {
        if (instance == null) {
            instance = new LoginRepository(dataSource);
        }
        return instance;
        binding = ActivityLogin123Binding.inflate(getLayoutInflater());
        setContentView(binding.getRoot());

loginButton.setEnabled(loginFormState.isDataValid());
                if (loginFormState.getUsernameError() != null) {
                    usernameEditText.setError(getString(loginFormState.getUsernameError()));
                }
                if (loginFormState.getPasswordError() != null) {
                    passwordEditText.setError(getString(loginFormState.getPasswordError()));
                }

 passwordEditText.setOnEditorActionListener(new TextView.OnEditorActionListener()

loginResult = new MutableLiveData<>();
if (result instanceof Result.Success) {
            LoggedInUser data = ((Result.Success<LoggedInUser>) result).getData();
            loginResult.setValue(new LoginResult(new LoggedInUserView(data.getDisplayName())));
        } else {
            loginResult.setValue(new LoginResult(R.string.login_failed));


3.  Google Play Store 

image

image


4. Video Demos (Emulator and Practical)

In the videos, following demos are shown in order

  •  Installation
  • Icon
  • Login Authentication & Keypad Demo
  • Navigation Drawer Demo
  • Dashboard

Elect. Room

Microchip SAM E51 Controller

Scrap

Recycle Room 1

Recycle Room 2

Recycle Room 3

DG,Solar,Wind

R and D

Inventory

Training

Logistics

Account

Business Room

Alliances

Blacklist

  • ECG/EKG
  • Respiratory
  • Oximeter
  • All 32 Employees
  • Share
  • Doctor
  • AWS
  • Air Purifier

Air Purifier Engine 1 ON/OFF

Air Purifier Engine 2 ON/OFF

Air Purifier Engine 3 ON/OFF

Air Purifier Engine 4 ON/OFF

  • Reminder
  • Notification


5. Demo 1 Emulator 

Mobile Specifications

  • Android 12
  • API Level 31
  • Size = 6"
  • pixel Density = 440dpi 
  • armeabi-v7a
  • SnapDragon

Other Specifications

GL_OES_EGL_image
GL_OES_EGL_image_external
GL_OES_EGL_sync
GL_OES_vertex_half_float
GL_OES_framebuffer_object
GL_OES_rgb8_rgba8
GL_OES_compressed_ETC1_RGB8_texture
GL_AMD_compressed_ATC_texture
GL_KHR_texture_compression_astc_ldr
GL_KHR_texture_compression_astc_hdr
GL_OES_texture_compression_astc
GL_OES_texture_npot
GL_EXT_texture_filter_anisotropic
GL_EXT_texture_format_BGRA8888
GL_EXT_read_format_bgra
GL_OES_texture_3D
GL_EXT_color_buffer_float
GL_EXT_color_buffer_half_float
GL_QCOM_alpha_test
GL_OES_depth24
GL_OES_packed_depth_stencil
GL_OES_depth_texture
GL_OES_depth_texture_cube_map
GL_EXT_sRGB
GL_OES_texture_float
GL_OES_texture_float_linear
GL_OES_texture_half_float
GL_OES_texture_half_float_linear
GL_EXT_texture_type_2_10_10_10_REV
GL_EXT_texture_sRGB_decode
GL_EXT_texture_format_sRGB_override
GL_OES_element_index_uint
GL_EXT_copy_image
GL_EXT_geometry_shader
GL_EXT_tessellation_shader
GL_OES_texture_stencil8
GL_EXT_shader_io_blocks
GL_OES_shader_image_atomic
GL_OES_sample_variables
GL_EXT_texture_border_clamp
GL_EXT_EGL_image_external_wrap_modes
GL_EXT_multisampled_render_to_texture
GL_EXT_multisampled_render_to_texture2
GL_OES_shader_multisample_interpolation
GL_EXT_texture_cube_map_array
GL_EXT_draw_buffers_indexed
GL_EXT_gpu_shader5
GL_EXT_robustness
GL_EXT_texture_buffer
GL_EXT_shader_framebuffer_fetch
GL_ARM_shader_framebuffer_fetch_depth_stencil
GL_OES_texture_storage_multisample_2d_array
GL_OES_sample_shading
GL_OES_get_program_binary
GL_EXT_debug_label
GL_KHR_blend_equation_advanced
GL_KHR_blend_equation_advanced_coherent
GL_QCOM_tiled_rendering
GL_ANDROID_extension_pack_es31a
GL_EXT_primitive_bounding_box
GL_OES_standard_derivatives
GL_OES_vertex_array_object
GL_EXT_disjoint_timer_query
GL_KHR_debug
GL_EXT_YUV_target
GL_EXT_sRGB_write_control
GL_EXT_texture_norm16
GL_EXT_discard_framebuffer
GL_OES_surfaceless_context
GL_OVR_multiview
GL_OVR_multiview2
GL_EXT_texture_sRGB_R8
GL_KHR_no_error
GL_EXT_debug_marker
GL_OES_EGL_image_external_essl3
GL_OVR_multiview_multisampled_render_to_texture
GL_EXT_buffer_storage
GL_EXT_external_buffer
GL_EXT_blit_framebuffer_params
GL_EXT_clip_cull_distance
GL_EXT_protected_textures
GL_EXT_shader_non_constant_global_initializers
GL_QCOM_texture_foveated
GL_QCOM_texture_foveated_subsampled_layout
GL_QCOM_shader_framebuffer_fetch_noncoherent
GL_QCOM_shader_framebuffer_fetch_rate
GL_EXT_memory_object
GL_EXT_memory_object_fd
GL_EXT_EGL_image_array
GL_NV_shader_noperspective_interpolation
GL_KHR_robust_buffer_access_behavior
GL_EXT_EGL_image_storage
GL_EXT_blend_func_extended
GL_EXT_clip_control
GL_OES_texture_view
GL_EXT_fragment_invocation_density
GL_QCOM_validate_shader_binary
GL_QCOM_YUV_texture_gather

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image


6. Demo 2 Practical Demo on Real Mobile 

Android version 12

Installing from e14 file 

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image


image 

  • Sign in to reply
  • abhishek2018
    abhishek2018 over 1 year ago

    Gallery option was disabled

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • abhishek2018
    abhishek2018 over 1 year ago

    image

    image

    image

    image

    image

    image

    image

    image

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube