Programming for the Internet of Things Project

بواسطة: Coursera

Overview

In this Capstone course, you will design a microcontroller-based embedded system. As an option, you can also build and test a system. The focus of your project will be to design the system so that it can be built on a low-cost budget for a real-world application. To complete this project you'll need to use all the skills you've learned in the course (programming microcontrollers, system design, interfacing, etc.). The project will include some core requirements, but leave room for your creativity in how you approach the project. In the end, you will produce a unique final project, suitable for showcasing to future potential employers.

Note that for the three required assignments you do NOT need to purchase software and hardware to complete this course. There is an optional fourth assignment for students who wish to build and demonstrate their system using an Arduino or Raspberry Pi. Please also note that this course does not include discussion forums.

Upon completing this course, you will be able to:
1. Write a requirements specification document
2. Create a system-level design
3. Explore design options
4. Create a test plan

Syllabus

  • Get Started
    • This section will answer questions you might have about the project assignment, the grading rubric, and what you can expect in the upcoming weeks together.
  • Capstone Design, Part 1
    • This module will assist you in selecting an idea for your Capstone project. There are many variables to consider in this decision so it's important to know the parameters and how they impact your choice. Your decision will then drive the content of the very first step in your Capstone project -- preparing a requirements specification.
  • Capstone Design, Part 2
    • With the requirements specification out of the way, it's time to turn your attention to the system-level design of your project. This module will walk you through the constraints your project will need to satisfy. You'll also be informed about how to consider alternatives to your design.
  • Capstone Design, Part 3
    • Naturally testing is a key component of any technical design. This module will walk you through the important aspects of a test plan for your design.
  • Capstone Design, Part 4 (OPTIONAL)
    • In this final module, you will have the option of actually building out and then demonstrating your final project. This module is optional because it requires you to have the necessary equipment.
  • Specialization Wrap-Up
    • Let's wrap up our time together as we have traveled through the specialization.

Taught by

Ian Harris

Programming for the Internet of Things Project
الذهاب الي الدورة

Programming for the Internet of Things Project

بواسطة: Coursera

  • Coursera
  • مجانية
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • Arabic, French, Portuguese, Italian, German, Russian, English, Spanish, Thai, Indonesian, Kazakh, Hindi, Swedish, Korean, Greek, Chinese, Ukrainian, Japanese, Polish, Dutch, Turkish
8.1.2PHP Version298msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (190ms)
    • Application (107ms)
    • 1 x Booting (63.76%)
      190.10ms
      1 x Application (36%)
      107.32ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      7 statements were executed4.01ms
      • select * from `courses` where `slug_ar` = 'programming-for-the-internet-of-things-project' limit 1
        2.48ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. programming-for-the-internet-of-things-project
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-04-13 09:30:32' where `id` = 99
        520μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-04-13 09:30:32
        • 1. 99
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (13)
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `institutions` where `institutions`.`id` in (20) and `institutions`.`deleted_at` is null
        220μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (2) and `providers`.`deleted_at` is null
        190μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 99 limit 1
        240μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 99
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Institution
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        gkLTd01MG9Gpj9tInZayrFt8Dj3a3fiuqAIWo0Fq
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/progra...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-for-the-internet-of-things-project
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "priority" => array:1 [ 0 => "u=0, i" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "18.222.197.132" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "x-forwarded-for" => array:1 [ 0 => "18.222.197.132" ] "cf-ray" => array:1 [ 0 => "92f9f1fd4e8161a1-ORD" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""HeadlessChrome";v="129", "Not=A?Brand";v="8", "Chromium";v="129"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_PRIORITY" => "u=0, i" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "18.222.197.132" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_X_FORWARDED_FOR" => "18.222.197.132" "HTTP_CF_RAY" => "92f9f1fd4e8161a1-ORD" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "48104" "REMOTE_ADDR" => "172.69.7.93" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-for-the-internet-of-things-project" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1744536632.143 "REQUEST_TIME" => 1744536632 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Sun, 13 Apr 2025 09:30:32 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImgvNUt1VDZtanhEbmhabVVEOGlJdXc9PSIsInZhbHVlIjoiYnFVSmxCSmorb2JlUFRoZUh6dzRTR1pENFdjcyszRDRSMXpiTmFXeGZ2SjI3bDZHWGhiRlJDKzdOeUFqaEQ1ZCtyZUZVRnJNZ25EVUQxakxNSXpRbzFkMTJndm1TeVFPMEk3SVhwTVRxZWZhZTk0N3cvOE5EMmlnNkxZZDlHemQiLCJtYWMiOiI5YzBlNjgzZGI0ZGY0YWNmMTRiMzE4ZTVkNDkxODlkMjk0OGFiZDVjZjgzYmZjZDFjNmM3YzlmMzhmNGIzYWQxIiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 11:30:32 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6ImgvNUt1VDZtanhEbmhabVVEOGlJdXc9PSIsInZhbHVlIjoiYnFVSmxCSmorb2JlUFRoZUh6dzRTR1pENFdjcyszRDRSMXpiTmFXeGZ2SjI3bDZHWGhiRlJDKzdOeUFqaEQ1ZCtyZUZVR" 1 => "laravel_session=eyJpdiI6IlN0TlV6R01zK2JVUTAzSElGdWd3M2c9PSIsInZhbHVlIjoiczRtUHZZUXlNeHdselBVWURabStrdFpRMDhyZUNFbTFUcmozQnAvbjhoVVRzdDFPc2Z5OGJLekRlUnZ4SGt1TTJrSkVSdTZ4YjlmV2FkVk9nWm5TbGpZOUtPUWQvK0FXd05MMDVsMkxFdTJZeE05dUpJd1VCWi9PNGMxaS93cUciLCJtYWMiOiI1NDk1ZWY3NDI1NWQ2MjBmZjEwMDBhNzVlYThlYmQ3YjFiNTExOGI3ZTI3NzkxMDQ0YzU1MWUyNTJmM2MwMWRjIiwidGFnIjoiIn0%3D; expires=Sun, 13 Apr 2025 11:30:32 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlN0TlV6R01zK2JVUTAzSElGdWd3M2c9PSIsInZhbHVlIjoiczRtUHZZUXlNeHdselBVWURabStrdFpRMDhyZUNFbTFUcmozQnAvbjhoVVRzdDFPc2Z5OGJLekRlUnZ4SGt1TTJr" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6ImgvNUt1VDZtanhEbmhabVVEOGlJdXc9PSIsInZhbHVlIjoiYnFVSmxCSmorb2JlUFRoZUh6dzRTR1pENFdjcyszRDRSMXpiTmFXeGZ2SjI3bDZHWGhiRlJDKzdOeUFqaEQ1ZCtyZUZVRnJNZ25EVUQxakxNSXpRbzFkMTJndm1TeVFPMEk3SVhwTVRxZWZhZTk0N3cvOE5EMmlnNkxZZDlHemQiLCJtYWMiOiI5YzBlNjgzZGI0ZGY0YWNmMTRiMzE4ZTVkNDkxODlkMjk0OGFiZDVjZjgzYmZjZDFjNmM3YzlmMzhmNGIzYWQxIiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 11:30:32 GMT; path=/XSRF-TOKEN=eyJpdiI6ImgvNUt1VDZtanhEbmhabVVEOGlJdXc9PSIsInZhbHVlIjoiYnFVSmxCSmorb2JlUFRoZUh6dzRTR1pENFdjcyszRDRSMXpiTmFXeGZ2SjI3bDZHWGhiRlJDKzdOeUFqaEQ1ZCtyZUZVR" 1 => "laravel_session=eyJpdiI6IlN0TlV6R01zK2JVUTAzSElGdWd3M2c9PSIsInZhbHVlIjoiczRtUHZZUXlNeHdselBVWURabStrdFpRMDhyZUNFbTFUcmozQnAvbjhoVVRzdDFPc2Z5OGJLekRlUnZ4SGt1TTJrSkVSdTZ4YjlmV2FkVk9nWm5TbGpZOUtPUWQvK0FXd05MMDVsMkxFdTJZeE05dUpJd1VCWi9PNGMxaS93cUciLCJtYWMiOiI1NDk1ZWY3NDI1NWQ2MjBmZjEwMDBhNzVlYThlYmQ3YjFiNTExOGI3ZTI3NzkxMDQ0YzU1MWUyNTJmM2MwMWRjIiwidGFnIjoiIn0%3D; expires=Sun, 13-Apr-2025 11:30:32 GMT; path=/; httponlylaravel_session=eyJpdiI6IlN0TlV6R01zK2JVUTAzSElGdWd3M2c9PSIsInZhbHVlIjoiczRtUHZZUXlNeHdselBVWURabStrdFpRMDhyZUNFbTFUcmozQnAvbjhoVVRzdDFPc2Z5OGJLekRlUnZ4SGt1TTJr" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "gkLTd01MG9Gpj9tInZayrFt8Dj3a3fiuqAIWo0Fq" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/programming-for-the-internet-of-things-project" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]