Assignments
I'm attending Fab Academy 2018 as a continuing student. My biggest aim, besides becoming a "certified" Fab Manager, is to use this process to improve some of my personal projects. The most important right now is GROUU: A new medium proposal for Open Agriculture, through which I’m developing my Ph.D. research. Last year I came up with the idea of turning my first version - A fully automated greenhouse lab (grouu.cc) - into a modular and distributed solution in which sensors and actuators are independent and able to connect as nodes. In most of the assignments, I will try to find and develop solutions for this GROUU iteration.
W1 - The Project
GROUU is an open source project aimed at creating a new medium for Open Agriculture; Inspired by Fab Academy, it will improve to best fit the idea of being able to be adopted and used by any scale or Agricultural context; That meant the shift from a fully automated Arduino based Greenhouse, to a modular Object Oriented Hardware Project.
W2 - A Very Basic GIT Tutorial
I designed this tutorial to work with my students and have them use Github Classroom. Since it is a “Very Basic GIT Tutorial” I decided to include it here, under a CC License. It is a very Visual and GUI based tutorial. Follow the steps here.
W3 - Diving into Fusion360
I had previous experience with CAD software (from AutoCAD, Alias, and Rhino), Parametric software (SolidWorks and OnShape). Fusion360 looked like the next challenge to embrace:
it is free for students and educators; it values previous CAD experience; CAM is integrated; It has a very interesting Sculpt mode, deriving directly from the discontinued tSplines plugin for Rhino.
W4 - Laser-Cut Glass Moulds Experiences
One of the most curious aspects of 2D cutting solid materials is the exercise of making it a 3d construction. I'm very interested in this idea of generating simple manufacturing tools trough digital fabrication. In this case, I've been exploring the use of laser cutting plywood for moulds.
W5 - Look, Mom, I made my own FabISP!
In 2017, … … Electronics production was a fight I took until the very end. We were producing our electronics on a semi-closed/proprietary CNC called Carvey. As an educational tool it carves wonders, and we managed to come up with a very simple workaround, which for simple boards like these, works very well.
W6 - 3d printing from Fusion360 to Cura - some experiences
This last year, and throughout my syncopate FabAcademy process I’ve been printing a lot. For practical reasons I also started 3d modelling and helping my students mostly on Fusion360. Besides being accessible for them it follows their previous CAD experience and includes a lot of handy modules such as CAM and this quick relation with slicers, in this case with CURA. …
W7 - Electronics Design
Forget sudoku or crosswords use board design! Ask your friends for schematics and design rules... Here is my introduction to it: link.
W8 - Computer-Controlled Machining
I’ve been working a lot with CNC controlled cutting, or Digital Carpentry if you want to call it like that in the last year. What started as a fun project back in my first Fab Academy attempt in 2017 soon became a precious educational resource for my Product Design teaching at ESELX. Read the story of Banco de Benfica here.
W9 - Embedded Programming
- Smart Tank Sensor Programming
W10 - Moulding and Casting
- done: Polystyrene Smart Tank (abandoned idea, didn’t get to the casting but I have a rich machining process)
- Can do a cover for components in the field (charger for example)
W11 - Input Devices
- Soil Probe (board designed and prototyped, code is ok and tested on dev board, still need the auto reset (for ftdi) on my board.
W12 - Output Devices
- not done (will do perystaltic, main pump and water router control)
W13 - Interface and Application Programming
- app side - not done for GROUU but have a couple of sketches that will do for the documentation.
W14 - Networking and Communications
- Wireless + MQTT (done need to write text)
W15 - Mechanical Design
- 3d printed fish tank feeder (done)
W16 - Machine Design
- 3d printed fish tank feeder (done)
W17 - Wildcard Week
W18 - Applications and Implications
W19 - Invention, Intellectual Property, and Income
About the project
Modular Open Agriculture
Enabling the implementation of Precision agriculture / Automation in any context or scale of production:
- from indoor hydroponics to traditional agriculture;
- from a balcony vase implementation to a large exploration;
- in an urban or rural context; These modules can be useful for all, used together, adapted, remixed, distributed...
Your collaboration is precious! No onboarding needed, just start designing and developing!
Modules V1 - ESP12 based version (under dev - design (boards, enclosures), firmware(arduino))
Types:
- core;
- s modules (wireless sensors);
- a modules (actuator modules);
Development Goals
- The way the module is powered is not yet fully defined: All should have batteries (3.3V _____ Amps), some should have only this as power source and be periodically charged (induction most probably), and others, can be connected to a power source (solar, network, wind...) for constant charging;
- A power source (ex: solar panel) can be a module on its own and an induction charger can be another module (tbd - to be designed);
- The following code:
const String Instalation = "myFarm"; //Where is it?
const String IDCODE = "1"; //number your probe
const String TYPE = "SoilProbe"; //choose type
const String Host = "Grouu" + Instalation + TYPE + IDCODE; //just change if it is not grouu and you're adapting the code for something else
const char * OTA_PASSWORD = "yourpasswordhere";
will allow you to set a hostname (Host) - These are the only parameters you should have to change before injecting the firmware on your board (we should work on an even simpler method);
- This hostname (
const String Host
):
- will be the name of the network the device generates each time it is not able to connect to any wireless network;
- Will identify the MQTT addresses being used by that type of device (expl:
HostName/Sensor/Moist1
);
- There shouldn't be a limit for the ammount of modules developed nor used. The scale and context should dictate these options.
- All Explorations, independently from the context or scale should be considered valid data generators;
Call for Collaboration
It is permanent, develop whatever you want whenever you want!
soilProbe
- The soil probe reads Soil Moisture and Soil Temperature;
- You can add as many as you want in order to measure these in as many points as you wish.
design
eagleCAD: Fusion 3D (plastic 3D print Enclosure):
code
Arduino IDE Firmware:
waterRouter
- The water router uses a standart 1 in 4 out electrovalves from a washing machine. You should also decrease the water pressure on the outputs for microirrigation.
- You can use this directly to the network or after a motor (be careful with the pressure in compatibility). You can add as many as you want in the system.
design
eagleCAD: Fusion 3D (plastic 3D print Enclosure):
code
Arduino IDE Firmware:
core
- Core is the local server. Right now is mostly a test hub were the data from the networked servers is received and processed.
- We are using Node-Red but all collaboration is welcomed!
design
Right now we are using a standard Raspberry case.
code
configure and install:
configuring Raspberry Pi zero W as server
-
configuring the Pi https://core-electronics.com.au/tutorials/raspberry-pi-zerow-headless-wifi-setup.html
-
Accessing through ssh on mac or linux terminal https://www.raspberrypi.org/documentation/remote-access/ssh/unix.md
-
upgrade Node-Red and Node.js
- open terminal;
- commands:
sudo apt-get update
sudo apt-get upgrade
bash <(curl -sL https:/raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
sudo systemctl enable nodered.service
-
Connect to Raspberry Pi Node-red console throught your browser be accessing
http://"raspipaddress":1880
-
Install Mosquitto MQTT broker
sudo apt-get install Mosquitto
some instructions on how to test here: https://www.instructables.com/id/Installing-MQTT-BrokerMosquitto-on-Raspberry-Pi/
- other useful links: Security: manage permissions on node-red tutorial - https://www.youtube.com/watch?v=GeN7g4bdHiM
Archived on this REPO You'll also find:
mainSoilProbe REV0 - Developed at the Habibi Works (Ioannina, Greece) CultiMake Workshop - P2PLab - Archived
design
eagleCAD:
- A provisional board (not working!!) is on /BOARDS/soilProbe/Archive;
- For this example a nodeMCU dev board was used and tested at the workshop (see Habibi.Works Workshop Journal) enclosure: A standard plastic box was used for demo purposes.
This board includes:
- 1 x 4 male header for DHT22 Temperature and Humidity Sensor
- 1 x 3 male header for DS18B20 (encapsulated version for Soil Temperature);
- 2 x 2 male header connections for Moisture 10k with Two probes;
- 1 led (no usage yet, mostly for debug purposes);
- 1 ftdi set headers;
- 1 voltage converter 12V - 3,3V;
- 1 x 2 screw headers to add solar panel + battery (maybe connect solar battery pack now).
code
Arduino IDE Firmware: /ARDUINO/habibiWorksJuly2018-WS/grouu-irr
GROUU greenhouse - Archived
design
SolidWorks files for the complete Structure (to be added) - also check constructive system (levosystems.com) Photos (soon) Other Diagrams (soon)
code
Arduino Yun code: /ARCHIVE/arduino/GROUU_GREENHOUSE_0/
Refs:
solarpower
https://www.aki.pt/electricidade/producao-energia-renovavel/solar-eolico-energia-propia/acessorios-de-energias-renovaveis/bateria/controladores/painelmanutencaobaterias-p10533.aspx#info https://www.aki.pt/electricidade/producao-energia-renovavel/solar-eolico-energia-propia/kits-solares/kitbombadeaguamicrosolar-p49581.aspx https://mauser.pt/catalog/product_info.php?products_id=82391
Main Probe
Multiple Analogs -
https://www.instructables.com/id/Multiple-Analog-Inputs-on-Only-One-Analoge-Pin/
ESP12 + DHT22 -
https://cityos.io/tutorial/2006/ESP12-and-DHT22
ESP12 + temp
https://iot-playground.com/blog/2-uncategorised/41-esp8266-ds18b20-temperature-sensor-arduino-ide
Voltage Regulator
http://www.ti.com/lit/ds/symlink/lm3480.pdf
use FTDI on ESP12
https://www.hackster.io/harshmangukiya/program-esp8266-esp-12e-with-arduino-using-ftdi-cable-2310c9
refs fabrication:
eagle to flatCAM
http://caram.cl/software/flatcam/board-cutout-with-flatcam/
#fabacademy