Getting Started =============== Datas are stored locally and can be sent to an influxdb database an visualized into grafana. These tools don't cover `influxdb `_ and `grafana `_ installation, see dedicated websites for tutorial on how to do this. Preparation ----------- * Prepare a raspberry pi with a `RASPBIAN LITE image `_ and an arduino board. * Make sure the pi and arduino are turned-off * Insert the ardas shield in the arduino board * Connect the arduino board to the raspberry pi with a USB cable (no external power cable for the arduino board) * Power up the raspberry pi and wait for the raspberry pi to boot * Log on the raspberry pi (using ssh) .. warning:: Make sure you don't have a random cron task activated For visualization(optional) --------------------------- Log on you influxdb server and create a new database:: create database DATABASE_NAME Create a user for this database and grant him permissions on this database:: create user USERNAME with password 'MYPASSWORD' grant all on "DATABASE_NAME" to "USERNAME" Add the database as data source on grafana. Install Git ----------- :: sudo apt install git Download the code ----------------- To deploy ardas-tools including ardas:: rm -rf * .git .gitignore && git init && git remote add origin https://github.com/UMONS-GFA/ardas-tools.git && git pull origin master Install the required packages ----------------------------- :: ./raspbian_upgrade.sh Initialization and setup ------------------------ * For production To initiate stable branch of ardas:: bash init_ardas.sh To update stable branch:: bash update_ardas.sh These scripts can take quite a long time to retrieve the python dependencies, espacially when using a rapsberry pi one. See the :ref:`options` option for an alternative... * For developers To initiate development branch of ardas :: bash init_ardas.sh --dev To update development branch :: bash update_ardas.sh --dev Follow the instructions to set the approriate sensors and acquisition settings. Configure the PYTHONPATH ------------------------ :: nano ~/.bashrc add at the end:: export PYTHONPATH=/home/pi/ardas Refresh your profile:: source ~/.bashrc Generate the sensors -------------------- You can use the *uncalibrated_sensors_generator.py* script to generate 4 uncalibrated sensors:: python3 /home/pi/ardas/ardas/uncalibrated_sensors_generator.py Configure the ardas ------------------- * Set the default arduino config, default netid will be 255:: bash reset_arduino_EEPROM.sh * Upload the sketch in the arduino:: bash upgrade_sketch.sh Define your settings -------------------- Make a copy of the *settings_example.py* and name it *settings.py*:: cp /home/pi/ardas/ardas/settings_example.py /home/pi/ardas/ardas/settings.py Configure this file for your needs. Add a cron task --------------- :: crontab -e and add:: PYTHONPATH=/home/pi/ardas # m h dom mon dow command @reboot /usr/bin/python3 /home/pi/ardas/ardas/raspardas.py > /home/pi/ardas/cronlog.log 2>&1 & Start logging ------------- To reboot the raspberry.py and start logging:: bash reboot.sh Don't forget to type a message to explain in which circumstances (and eventually by whom) the system is rebooted. It show in the logs when the system will restart. .. _options: Options ------- * Update code without automatically rebooting(only for update_ardas script):: --noreboot * Prevent creating a new virtual environment and installing all dependencies Installing dependencies could be slow on a raspberry pi, espacially a . If you plan to install several identical loggers, it could be advisable to create a disk image with the right dependencies installed in the virtual environment. The following option could then be used to prevent the system from creating a new virtual environment and retrieving dependencies:: --nopip Debug ----- If there is a communication problem with the Arduino, you can try to debug with picocom:: apt install picocom Make sure the python cron task is not running:: ps -aux | grep python3 Launch picocom:: picocom -b 57600 /dev/ttyACM0 Use Ctr+a then Ctrl+c to enable echo. To quit, use Ctrl+x Call the ardas with his netid:: -255 Set naïve data mode:: #ND You can now change the default config with ZR command:: #ZR station netId integrationPeriod nbInst sensor1 sensor2 sensor3 sensor4 code Ex: #ZR 1111 222 3333 4 0001 0002 0003 0004 31 Set raspardas data mode:: #RD Change your settings accordingly