So far we've been discussing about the system design, which sensors to use etc. I think now I'm able to see the big picture. So here's the grand plan for the development of EXPLOG.
First I need to buy all the sensors and modules from different stores and test them for their performance and possible constraints. Most of the sensors are available as breakout modules from many Chinese online stores. The rest can be bought from DigiKey or Mouser. If you own any sensors I have listed on one of the previous logs, and is willing to test them and share the results, that would really save me some time. Doing so will make you a contributor to this project and will be added to the team.
Once we finish testing the sensors and the prototyping, we then will have to design a custom SMT PCB as per our form factors.
The main interfaces will be the 1.8" TFT LCD and 7 button keypad though which the user can interact with the device. Programming can be done on the ESP-IDF framework as it better implements the plethora of hardware features available on ESP32. FreeRTOS tasks will be used for simultaneous operations. The task distribution will look like this,
- Task 1 (core 0) - will repeatedly read values from all sensors on the I2C bus and update the global sensor readings variables. The keypad controller will be read when there there's an interrupt occurs at the event of user interaction. A dedicated input will be used for interrupt.
- Task 2 (core 0) - will update the display with information from the sensors depending on the current user interaction.
- Task 3 (core 0) - will save the data read from sensors to a CSV file on the micro SD card.
- Task 4 (core 0) - will read the NMEA data from the GPS module and update the variables.
- Task 5 (core 0) - will handle the LoRa protocol.
- Task 6 (core 1) - will handle WiFi and Bluetooth.
I plan to design a utility software for EXPLOG that can fetch data from the device, visualize them in real-time and save it if required. I'm considering Processing platform for this.
A smartphone application can be used to connect to the EXPLOG via WiFi or Bluetooth and visualize data. Applications written in Processing can be exported to run on Android phones easily. Will have to see how far we can go with it.
A cloud platform dedicated for sharing data from EXPLOG devices all around the world sounds a pretty bold idea. Users will be able to save the data from their device to the cloud by connecting to the internet and share the data to the Open Data Pool. Others can use these data for climate studies and a whole lot of other applications. Cool!
The enclosure can be 3D printed on PLA material. The 3D models are designed in Fusion 360 and the source files will be made available to the public.
If this project gains enough attention from the open source community and other interested enthusiasts, I would be able to sell EXPLOG as product at marketplaces such as Tindie for a reasonable price.