Basic code for the node to test input output functionality works. Two LEDs had to change pins as they were input only. PWM on ESP32 for LEDs is different than with the Arduino boards, that was interesting to learn about. Temperature sensor works, and analog input is 12 bit, so from 0 to 4095. Schematic is started. Next step is to complete the schematic, then board layout, and get the proper board outline with mounting holes into the design.
Determined the pins and wired them to the ESP32. Checked the recommended schematic for the temperature sensor, added a 0.1uF cap. There will be 4x white LEDs (2 individually controlled), and 1x red, blue, green, yellow. The purpose of each of these will be determined later when writing the code that connects with MQTT. The white LEDs illuminate an orange Nalgene quite nicely. Found a tone library for the speaker that works with the ESP32. Why use a breadboard for this and not jump right away to circuit board layout? Have run in to situations with the ESP32 where some pins behave differently than originally thought (for example, some pins are output only). Just verifying this works, then can make a pcb. Next step is to write the test code, then schematic capture and board layout. Yay, electronics!
There is a key piece of functionality for the user that is missing from the current AR mode of Terrapulse. That is, the user has to be able to drag and drop something onto the marker – and have an effect, like an animation or something. Eventually this would be used to display more information. Anyway, turns out that implementing this feature is not as straightforward. Spent most of the time searching for Aframe modules that would enable this. There’s one that kind of works, but needs some improvements. This will have to be looked at again tomorrow. Next step is to revisit this and try it again.
There’s now a program that will listen for all the messages sent to the MQTT broker and log it to a csv file. This is useful to store the data. Right now, the parameters that are saved are simply the date, time since the epoch, topic, payload, qos and retain. It was interesting to see the retained messages on the server be instantly sent when the logger program subscribed to the topics. There is currently one uncertainty with the code, the logger opens and closes the file each time it is being written. Will this become a bottleneck when there will be plenty of messages and a queue forming? It will be interesting to test. For a prototype, it works. The next step was to write the intelligence program. That was simple, and it is complete too. The next step following that is to find the real sensors electronics for the device.