Git Product home page Git Product logo

farmbeatsforstudents's Introduction

https://github.com/microsoft/farmbeatsforstudents

FarmBeats for Students Grove Smart Agriculture Kit

Precision Agriculture Experiences for School and Home

This program combines an affordable hardware kit (based on the Raspberry Pi 4 B) with curriculum and activities designed to give students hands-on experience in applying precision agriculture techniques to food production.

To learn more please visit the FarmBeats website to download the kit instructions, curriculum, and activities for the classroom: https://aka.ms/farmbeatsforstudents

Contents

This project contains 2 code bases:

farmbeats-datastreamer

Python code that runs on the Raspberry Pi. Manages sensor collection, serial data communication, log file read/writes, and the reactive agent.

https://github.com/microsoft/farmbeatsforstudents/tree/main/farmbeats-datastreamer

farmbeats-image-builder

A tool used to produce a custom Raspberry Pi OS SD card image for the FarmBeats for Students Grove Smart Agriculture Kit.

https://github.com/microsoft/farmbeatsforstudents/tree/main/farmbeats-image-builder

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.

When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

farmbeatsforstudents's People

Contributors

damyka avatar microsoftopensource avatar vnattar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

farmbeatsforstudents's Issues

Data not logging

Hi there,

I am trying out FarmBeats to see if I can use it for a school project as a teacher. However, the data doesn't seem to be logging correctly. When I connect the Farmbeats RPI with the Excel Data Streamer I do get information in the 'Current Data' part of the 'Data In' tab.

'Historical Data' remains empty and the Live Sensor Dashboard also remains empty. When I try to start logging data and use the 'Prepare Log Data' I get an error message (see screenshots).

Farmbeats Error 1
Farmbeats Error 2

Could you help me figure out how to get this working?

Thanks in advance.

Script fails if the zip package is not installed

Running this on a clean install of Raspberry Pi OS (Buster) fails near the end of the installation process because zip isn't installed by default and the error message for this is not repeated at the end of the installation process making it slightly confusing that the expected output image file is missing. If the script could include a contingency to install missing dependencies this would be helpful.

No data locally in /home/pi/Documents/fbfs_log.csv

I am unable to see any data in /home/pi/Documents/fbfs_log.csv

but when I connect a computer I can see everything on the com port and in the excel spreadsheet. Just trying to read the data without the computer connected. Any way to read the serial data stream locally on the pi?

Raspberry Pi Main.py script won't run

I tried reinstalling with the install.sh file, reflashing the SD card but I can't get any data out from the Pi to Excel

>>> %Run main.py
SoilTemperatureSensor.setup: [Errno None] 
#############################################################################

Please use 'sudo sh -c "echo dtoverlay=w1-gpio,gpiopin=5 >> /boot/config.txt"' then reboot to enable the w1

#############################################################################
SunlightSensor.setup: Please check if the I2C device insert in I2C of Base Hat
Exception ignored in: <function grove_si114x.__del__ at 0xb5b40df8>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/seeed_si114x.py", line 186, in __del__
    self._WriteByte(SI114X_COMMAND, SI114X_RESET)
  File "/usr/local/lib/python3.7/dist-packages/seeed_si114x.py", line 306, in _WriteByte
    raise OSError("Please check if the I2C device insert in I2C of Base Hat")
OSError: Please check if the I2C device insert in I2C of Base Hat
SoilTemperatureSensor.setup: [Errno None] 
#############################################################################

Please use 'sudo sh -c "echo dtoverlay=w1-gpio,gpiopin=5 >> /boot/config.txt"' then reboot to enable the w1

#############################################################################
SoilTemperatureSensor.read: 'NoneType' object has no attribute 'read_temp'
SunlightSensor.setup: Please check if the I2C device insert in I2C of Base Hat
Exception ignored in: <function grove_si114x.__del__ at 0xb5b40df8>
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/seeed_si114x.py", line 186, in __del__
    self._WriteByte(SI114X_COMMAND, SI114X_RESET)
  File "/usr/local/lib/python3.7/dist-packages/seeed_si114x.py", line 306, in _WriteByte
    raise OSError("Please check if the I2C device insert in I2C of Base Hat")
OSError: Please check if the I2C device insert in I2C of Base Hat
SunlightSensor.read: 'NoneType' object has no attribute 'ReadVisible'
Fatal Python error: Cannot recover from stack overflow.

Thread 0xb509a460 (most recent call first):
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 483 in read
  File "/home/pi/farmbeats-datastreamer/data_streamer/DataStreamer.py", line 50 in read_data
  File "/home/pi/farmbeats-datastreamer/main.py", line 32 in read_incoming_serial
  File "/usr/lib/python3.7/threading.py", line 865 in run
  File "/usr/lib/python3.7/threading.py", line 917 in _bootstrap_inner
  File "/usr/lib/python3.7/threading.py", line 885 in _bootstrap

Current thread 0xb6ffaad0 (most recent call first):
  File "/usr/lib/python3.7/dbm/__init__.py", line 122 in whichdb
  File "/usr/lib/python3.7/dbm/__init__.py", line 78 in open
  File "/usr/lib/python3.7/shelve.py", line 227 in __init__
  File "/usr/lib/python3.7/shelve.py", line 243 in open
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 353 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  File "/home/pi/farmbeats-datastreamer/data/DataSettings.py", line 363 in save_settings
  ...

Backend terminated or disconnected. Use 'Stop/Restart' to restart. ```

Farmer kit problem

I have several problems with the installation of sensors on the raspberry, as it brings me error. But even if it does not give me error in the process of data streamer when I connect it to the pc on excell transmits only the time and ch1, moreover the data of ch1 are received as zeros

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.