Upgrade to Pro — share decks privately, control downloads, hide ads and more …

"Designing an IoT System" for the Israel Ghana ...

"Designing an IoT System" for the Israel Ghana AgriTech Accelerator

Israel Ghana AgriTechAccel is an elite, virtual, 6 week program for post-pilot Ghanaian AgriTech startups. The program, managed by the Pears Program for Global Innovation in Israel alongside Innohub Ghana and the Israeli Embassy in Ghana, harnesses Israeli technology and product development expertise in order to support 4 of the most promising AgriTech startups in Ghana. The program involves classroom sessions, participant-led workshops and a full program of individualized mentor support in order to help participating startups refine their technologies.

In this talk, "Designing an IoT System" the following topics are covered:
- Introduction to IoT
- Deep Learning on the edge
- Prototyping and development process
- Possible architectures and design considerations

dafnamordechai

November 04, 2021
Tweet

More Decks by dafnamordechai

Other Decks in Technology

Transcript

  1. Hello! @Dafna_Mordechai ➢ Dafna Mordechai, BSc. in Computer Science, The

    Hebrew University of Jerusalem (2008) ➢ Senior RT Embedded Software Engineer ➢ LOVE technology, and LOVE sharing it with others
  2. AGENDA × Introduction to IoT × Deep Learning on the

    edge × Prototyping and development process × Possible architectures and design considerations
  3. IoT

  4. IoT - The Internet of THINGS The Internet of Things

    refers to connecting machines and other physical objects to the internet, usually in order to gather information from sensors and to control systems from a distance.
  5. IoT - The Internet of THINGS IoT Devices ▪ Sensors

    ▪ Actuators ▪ Monitoring ▪ Analytics ▪ Control Cloud Services
  6. Communication Protocols Cloud Services IoT Devices A Gateway Dedicated Cellular

    Connection Low-power, wide-area network (LPWAN), e.g. NB-IoT BLE Bluetooth Low Energy Cellular Connection or WiFi WiFi
  7. IoT Microcontrollers Adafruit Feather M0 Bluefruit LE Bluetooth Low Energy

    ESP32-DevKitC V4 WiFi, BT, BLE nRF9160 DK cellular IoT : LTE-M, NB-IoT, GPS and Bluetooth Low Energy Arduino MKR NB 1500 LTE's Cat M1/NB1
  8. Deep Neural Networks Two steps process: 1. Training 2. Inference

    Time Series Data Numerical Data Categorical Data Images Categorical Data Categorical Data Text
  9. Deep Learning Capabilities • Sound/speech recognition • Outliers detection •

    Recommendation systems • Image/video recognition • Classification problems • Image segmentation problems • Generating a description of a photo Consider adding a Data Scientist as part of your team as soon as you gather some significant amount of data.
  10. Deep Learning Development Process Define the problem you want to

    solve and find a suitable DL architecture. Training process: • Collect “real world” data. • Process and clean the data. • Train the network on most of the data (the training set), and set aside the left portion (test set). • Test your trained model against the test data. At this point, you shall be satisfied with the prediction for the test-set. If not, there is a need to analyze what has gone wrong. Was the model chosen well? Was the collected data reliable and well cleaned? Was there enough data? If a problem was found - correct what is needed and start the training process again. Inference: • Test the trained model “in the field” with new real-world data for additional validation. • Deploy the model to production. • Monitor for cases where the model was less accurate, and in some cases consider collecting new relevant data periodically to update the model.
  11. MCUs Supported by TensorFlow Lite https://www.tensorflow.org/lite/microcontrollers Adafruit EdgeBadge (link) Arduino

    Nano 33 BLE Sense (link) SparkFun Apollo3 Blue (link) STM32F746NG MCU (link) Circuit Playground Bluefruit BLE (link) Espressif ESP32-DevKitC (link) Himax WE-I Plus EVB Endpoint (link) synopsys DesignWare ARC EM (link) Wio Terminal: ATSAMD51 (link) Sony The Spresense(link)
  12. General Design Guidelines Start by defining the different devices that

    will be part of the IoT system, and how they interact. What are the differences between one client to the other? Can it be done using a device configuration? Designing, Prototyping, and the Development process: • Pricing (Do you need to pay a license for the IDE or royalties for the OS/bootloader etc.) • Ease of use of the SDK and IDE • Online documentation, active forums for you to consult, and available information online. • Available testing and debugging tools • Security of the entire system HW + SW, for all the devices in the system. • SW upgrade for the different devices. Is it needed? • Possible problems you can anticipate, and relevant troubleshooting • maintenance of the entire network (repairing vs. replacing when a device break) • GPS - is it needed as a sensor on the device or can this information be configured once on the device?
  13. Designing an IoT System - Hardware requirements • Physical conditions

    the edge-device shall withstand? (min/max temperature, rain, floods). • General Resources: the Microcontroller defines the compute power, memory, i/o pins and their types. Is there a need for additional/external storage if needed. Is there a need to add RT clock? • Cloud connectivity, and the estimated pricing implication (such as installing WiFi as a gateway or cellular payments per device and/or per required BW). • Sensors - optimize sensor’s sensitivity vs. its cost. • Device’s actuators. • Power consumption and estimating battery life. • Software upgrade options (if required, may demand additional physical memory). • Option to send logs to the cloud in case of failure / real-life bugs to the cloud.
  14. Designing an IoT System - Software requirements Edge Device Detect,

    Take action • Support all hardware abilities (Drivers etc.) • Define and implement the device routine - sampling sensors, business logic, and defining specific states and events that are relevant for the device-specific application. • Handle cloud connectivity, either by standard protocols (such as MQTT) or proprietary ones. • Handle cases such as no connectivity with the cloud or with other edge devices. • In relevant cases, where the user can configure the device, support the configuration process. • Support software compatibility abilities for future releases. Cloud and Mobile - Collect, Control, Calculate, Report • Note the difference between a physical device and a logical device. • User permissions for the IoT system (both for cloud and mobile devices) • How does a device register into the system? • What are the reports that we would like to generate? Comparisons? Algorithms? • Is remote control relevant for my system? For what devices? • Outliers or abnormalities detection.
  15. Edge Computation vs. Cloud Computation Edge Computation • The computation

    is simple and can be easily done on the device. • The data shall not be sent to the cloud due to privacy or security issues. • The data can not be sent to the cloud due to limited connectivity to the cloud or low bandwidth. • Real-time considerations require the calculation to be done locally and avoid the latency of sending the data to the cloud for the computation. Cloud Computation • The edge device doesn’t have resources for the required algorithm: ◦ There is not enough free memory on the device for the calculation. ◦ There is not enough compute power for the calculation, or it will take too much time to compute. • The calculation requires data that is not available on the device, such as: ◦ Raw data from multiple devices. ◦ Raw data that is no longer stored on the device. ◦ Data that was previously calculated.