• Creating a mesh sensor network using Raspberry Pi and XBee radio modules

      Forcella, Michael (2017-05)
      A mesh network is a type of network topology in which one or more nodes are capable of relaying data within the network. The data is relayed by the router nodes, which send the messages via one or more 'hops' until it reaches its intended destination. Mesh networks can be applied in situations where the structure or shape of the network does not permit every node to be within range of its final destination. One such application is that of environmental sensing. When creating a large network of sensors, however, we are often limited by the cost of such sensors. This thesis presents a low-cost mesh network framework, to which any number of different sensors can be attached. The hardware configuration is detailed in such a way that anyone with a modest understanding of technology will be able to reproduce it. The software setup required by the user has also been minimized and clearly documented. Details specific to the user's setup can be entered into a configuration file and the majority of software scripts are scheduled to run automatically via Linux Cron jobs. I conclude by outlining several potential modifications to the framework, including further automation of the software setup, inclusion of additional hardware, and alternate methods for downloading data from the network.
    • A generative chatbot with natural language processing

      Liebman, David (2020-12)
      The goal in this thesis is to create a chatbot, a computer program that can respond verbally to a human in the course of simple day-to-day conversations. A deep learning neural network model called the Transformer is used to develop the chatbot. A full description of a Transformer is provided. The use of a few different Transformer-based Natural Language Processing models to develop the chatbot, including Generative Pre-Training 2 (GPT2), are shown. For comparison a Gated Recurrent Unit (GRU) based model is included. Each of these are explained below. The chatbot code is installed on a small device such as the Raspberry Pi with speech recognition and speech-to-text software. In this way a device that can carry out a verbal conversation with a human might be created. For the GRU-based model a Raspberry Pi 3B with 1GB RAM can be used. A Raspberry Pi 4B with 4GB of RAM is needed to run a chatbot with the GPT2.
    • Raspberry pi embedded operating system and runtime

      Perry, James J. (2016-05)
      This thesis explores the creation of a small footprint, high-performance Embedded Operating System (EOS) for the Raspberry Pi (RPi). Using a customization approach, the image is configures to include only required functions and omits nonessential functions. The result preserves available memory and storage for use during runtime of an embedded solution. As part of this process, the thesis leverages the resulting runtime environment to provide complex functions (i.e. inter process messaging and GPIO support) that run atomically (noninterruptible).