Select Page
Tech Log #030: Wiring the ESP32 test device

Tech Log #030: Wiring the ESP32 test device

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!

Tech Log #029: Drag & drop works

Tech Log #029: Drag & drop works

The drag & drop functionality now works! Check out the gif. By a count, about 8 methods were tried before reaching one that worked. Thought about the problem a bit differently, broke it down into tiny steps, and with a bit of tinkering, it works.
 
 
Dragging the square to the marker makes the marker change to green. Moving the marker to the square also makes it change to green.
 
One of the methods that was close to working but not quite was aframe-mouse-dragndrop. I made some changes, which are viewable in this git diff. Main change was line 76: .add(this.direction.clone().multiplyScalar((this.dist + this.range) * ((-1*zPos)-1) ));. The other big changes were thanks to bknill for the initial parented entities fix.
 
 
The next step is to clean up the code that works, and integrate it with the ‘full’ codebase. After that, continue with the device hardware. There are plenty of ways to make it even better, but for now the aim is to make a complete working prototype.
Tech Log #028: Stuck on Aframe drag & drop

Tech Log #028: Stuck on Aframe drag & drop

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.

Tech Log #027: Message logger

Tech Log #027: Message logger

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.

Tech Log #026: Hardware – software integration step 1

Tech Log #026: Hardware – software integration step 1

First step of integration between software (AR) and hardware is complete. Now, instead of the device simulator program, there’s an actual device. Using a microcontroller with Wifi connectivity for preliminary testing. The device connects to MQTT, sends sensor data (randomized for now), and subscribes to the relevant topics. For testing in the field, the device will connect to an access point (aka hotspot) from a phone to send the data.  Future versions will use a microcontroller with cellular connectivity in the field. The next steps for software are to write a python program that logs all messages on the MQTT broker to a csv file. The next steps for hardware are to find some sensors I have around and add some LEDs, a speaker, and make a board with it. Integration with the map will also need to be completed at some point in the future.