Fun projects (aka "I'm bored…")

Table of Contents

1. Reference To publish this:

(x-hugh-org-publish-fun-projects)

2. Reference Best place to buy used books https://www.betterworldbooks.com/

3. Reference Motors vs steppers vs servos

4. Reference How to program an Arduino Nano with an Uno

5. Reference Using the TP4056 for solar battery charging

6. Reference Re-using vape pen batteries

7. Reference Wiring, cabling, and stuff

8. Reference Working with Molex connectors

9. Doing Fun project: OMG Sonic tomography for trees

9.1. Rough plan:

Start with two nails on opposite side of tree. Hammer one; detect wave in the other; figure out time of flight between the two.

9.1.1. Step 0: Count time between button pushes

  • Press button; start timer
  • Press button again; stop timer
  • Print time between those two events.
  • Interrupts for both.
  • Step 0b: two buttons.

9.1.2. Step 1: count time between hammer and received wave

  • Hammer to ground
  • Nail to +3v
  • esp32 3v <-> pull-up resistor <-> ground 🔨--- esp32 GPIO <-----------------–—+

    long piece of wood

    esp32 other GPIO <------------–—> nail

10. Doing Solar lamp as power supply for ESP32

11. NEXT Fun project: Arduino "radar" ultrasonic display

12. NEXT Fun project: Ikea Air Sensor – use the pico for this!

13. NEXT Winogradsky column

14. NEXT Food computer

15. NEXT Thunderboard Sense

16. NEXT Finish up Russet

17. NEXT Finish Geiger counter!

18. NEXT Magnetic field surveying

19. Homebrew seismometer

Went with Raspberry shake in the end

19.2. Seismometer with MPU6050

20. ESP32 trailcam

21. Lolin32 3D printed case

22. Infragram: monitoring plant health via near-infrared light

23. CCS811: VOC + eCO2 sensor

  • https://www.sparkfun.com/news/2369

    One measurement that causes a lot of confusion is "Equivalent CO2." The CCS811 will report equivalent CO2 in parts-per-million, but that number can be a little bit deceptive. It's important to recognize that the CCS811 cannot measure CO2 and that the "equivalent CO2" being reported by the CCS811 has nothing to do with actual CO2 present in the area. So why the heck is it called "CO2 Equivalent Units" and why would anyone need it? The answer comes down to the use of indoor air quality sensors — like the CCS811 — in HVAC control.

    Building ventilation, it turns out, is all about occupancy. The more people present in a space, the more CO2 they're exhaling, and the more ventilation is required. Now, it's certainly possible to design and operate an HVAC system around the design occupancy of a building or room, in other words the number of people expected to use a space. But this means that you may be wasting energy at times when the building isn't actually occupied. To solve this problem, many HVAC systems will monitor the concentration of CO2 in a given area in order to calculate the amount of air exchange needed in a scheme called "demand-controlled ventilation."

    Makers of indoor air quality sensors that don't detect CO2 (in an attempt to market their devices for demand-controlled ventilation systems) have correlated rising CO2 levels in certain environments to rising VOC levels. It's important to recognize that this is a correlation of the change in levels and not a correlation of the levels themselves: High VOC concentrations are not analogous to high CO2 concentrations. But it can be said that if the VOC concentration of a given space begins to slowly climb above baseline, it probably corresponds to room occupancy and an increase in CO2 (because humans exhale both CO2 and VOCs). Therefore, the manufacturers of these devices report the "CO2 Equivalent Units" with respect to this correlation so that their devices might fit more easily into an existing demand-controlled ventilation scheme.

  • Library: https://github.com/maarten-pennings/CCS811

24. Balloons around the world

25. Floaters and buoys

26. Underwater glider - hackaday project winner for 2017!

27. Vancouver maker spaces & resources

28. Muon hunter kit

29. More particle detectors

30. Photo Upsampling

31. High-Resolution 3D Human Digitization from A Single Image.

32. OpenDataCam

33. Bird banding

34. openbot.org - smartphone + arduino robot

35. Open source water bottle floater & GPS tracker

36. Raspberry Pi Seismometer

37. https://github.com/plant99/felicette

38. Anthotype printing

39. NDVI with Arduino

40. https://publiclab.org/

41. Measuring wind speed with microphone noise 🤯

42. TinyML book

43. Long-lived Arduino data logger on batteries

44. Lightning detector

45. Nerdfeeder

46. CoSMO stream flow data

  • see CoSMoSpring2022newsletter.pdf in this directory

47. Solar charger night light – good reference for other projects

Good overview of calculating power requirements for solar charging a battery: https://hackaday.io/project/185217-diy-solar-bottle-lamp

48. Focus stacking!

49. Use arduino uno as FTDI for ESP32 Cam

50. Magnetometer surveying

51. Lollybot – good for web dev, maybe

52. Web development

53. Hydrogen line astronomy

54. Otto - simple, 3D printed arduino-based robot

55. Solar-powered, waterproof ESP32 camera

56. Bat ultrasonic tracking

  • Echo Meter Touch
  • Hooks up to smartphone, Ids calls like Merlin does for birds
  • apparently at Coquitlam library – but looked on [2022-08-22 Mon] and could not find any mention. They do have a tech centre with telescopes, binos, 3d printers, etc – so maybe just not up on their website?
    • Emailed Coquitlam Library to ask.

57. Car logger ODB2

58. Kmonad

59. Fun project: automatic rebooter for weather station, router

60. Fun project: Sign up as pull reviewer for $$$

61. Fun project: Go through opendata.aws

  • Also: aws.amazon.com/earth

62. Fun project: OpenCTD: open source ocean-going probes

63. Fun project: AI for detecting algal blooms

64. Fun project: Homebrew ocean floater with satellite modem

65. Fun project: Soaking pasta to cook it

66. Fun project: Arduino water quality monitoring station

67. Fun project: Lisp for microcontrollers!

68. Fun project: Join Queensborough biodiersity project on iNaturalist

69. ML - Open source LLMs are eating our lunch

70. Fun project: Set up DD-WRT on DIR-615 routers

71. Fun project: Write a python firefox extension

72. Fun project: Import Environment Canada wind data to Grafana

73. Fun project: Generate charts like this for weather

74. Fun project: Take a look at spotify data

  • Have a look in Downloads: …or just re-download

75. Fun project: Anecdata – citizen science platform

76. Fun project: NASA Javascript framework for maps, globes

77. Fun project: Arduino + Quaternions

78. Fun project: Python webdev projects, some react-like

79. Fun project: Sentinel timelapse

80. Fun project: DIY air purifier

81. Fun project: Emacs client for iNaturalist

82. Fun project: Shazam from CLI

  • https://github.com/loiccoyle/shazam-cli
  • "To use these scripts you'll need your own API key. It can be obtained from rapidapi you'll need a RapidAPI account and subscribe to the Shazam API (there is a free a plan). "
    • RapidAPI looks like fun on its own…

83. Fun project: Infinigen: procedurally generated worlds, Python+Blender

84. Fun project: Cloud chamber!

85. Fun project: vterm for Emacs

86. Fun project: Trees & strain gauges!

Enhancing TreeMMoSys with a high-precision strain gauge to measure the wind-induced response of trees down to the ground: https://doi.org/10.1016/j.ohx.2022.e00379

https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0245631

87. Fun project: bat detector!

88. Fun project: Play with Open-Meteo APIs: climate change, weather forecasts

89. Fun project: citizen weather reporting

90. Fun project: https://newscrewdriver.com/2023/08/23/solar-monitor-battery-charging-failure/

91. Fun project: Wyze v3 hacks project

92. Fun project: DIY magnetometer kit

93. Fun project: Citizen science: soil evaluation

94. Fun project: Efficient/tiny ML: online course

95. Fun project: Write an interpreter in golang

96. Fun project: Planktoscope

97. Fun project: Tote – simple servo-based 4-legged robot

98. Fun project: Cheap Yellow Display – ESP32 w/display & more

99. Fun project: Simplest quadruped robot

100. Fun project: Solargraphy: long-term pinhole camera of the sun

101. Fun project: Scientific American Book of Projects for the Amateur Scientist

102. Fun project: Emacs & LLMs

103. Fun project: Personal mp3/ogg player

104. Fun project: Bucket ponds – aquariums without much work (allegedly)

At a local fish store I bought some of their "aquarium soil" or whatever it's called – it's really rocks but very find. I got charcoal black color for no particular reason. I also bought 3 small freshwater plants with roots that would go into that substrate.

I went to a local fishing pond where I had been getting my water samples - the samples were always very diverse so I thought it would be a good location. I brought home several jugs of water (it's a 20L square tank that my neighbor gave me, but with the substrate in the bottom I figure I only needed perhaps 15L to get near the top). I also scooped a little mud from the edge of the pone (under the water) – I figured there would be beneficial bacteria in there and perhaps snails and other stuff. I found a small "log" floating near the edge of the pone that I floated across the top of my setup, providing a nice area for life to grow on.

And I brought a few small floating plants that were in the pond, including some roots. The first of these that I brought home were too short, and the bubbling from the air pump sprayed water on top of them as they floated, which kills them, so I went back a couple weeks later and got some that had grown taller (which you can see coming out the top of the tank in my photo). Finally, I bought a couple small rocks from the fish store just to make things look pretty.

To set things up, I spread just a little of the mud across the bottom of the tank, then covered that with perhaps 4" inches of the aqua soil (rock substrate). I placed the rocks, then the rooted plants, and filled the tank with water. I floated the tiny log, and also floated the floating water lettuce and a bit of duckweek. I put an air bubbler down about 1/3 of the way into the tank, using a suction holder to hold the air tubing against the side.

I already have plant lights as I grow chilis, so I placed the tank under those lights (which are on a timer, on 14 hours a day). After the water cleared, I saw I had a couple shrimp, and also 2 tiny fish that must have been in the water/mud from the fishing pond. One of the fish died last year, but the second lived almost 2 years before recently disappearing.

Every once in a while I go back to the fishing pond to get new water, and empty perhaps 50% of the tank and refill with the new sample and maybe a new floating lettuce plant. I did check the pH of the pond water, which fortunately was 8.0, the same as our tap water here, so I'm able to let some tap water sit out for a day to dechlorinate, then put it directly into the tank without stressing or affecting the natural life. As the water in the tank evaporates, I just replenish it with this tap water.

Depending on the pH of whatever pond water you use or your tap water you may need to adjust the pH of your tap water before adding it to the tank (pH Up or pH Down chemicals are very inexpensive and a small container will last a very long time. I have a pH meter, but you can use strips which are quite inexpensive, and probably accurate enough for this type of project. Hopefully I covered everything, let me know if you have questions.

Tap water in many places has additives (chlorine, fluoride, etc.) inimical to microorganisms.

Yes, I need to dechlorinate my water by leaving it open to air for 24+ hours, no other additives here. I've had a healthy environment for about 2 years now, so I'm lucky I don't have other chemicals to deal with.

I would start very simple, and just do your best to keep things stabilized. And yes, play around for sure – the nice thing is that it's mostly free and you aren't putting any expensive fish/life inside. Note that at one point a year ago the smails were going out of control, so I put in a few Assassin Snails and that cleaned things up.

The smaller the tank the harder it can be to keep things stable, and the quicker things can go south. So that's why I would keep it super simple to start, let it go for a while so that you're confident it can remain stable, then add a little more here and there. Also with only a 4L tank be mindful of water temperature (e.g. room temperature), it's much easier for temperature to swing with less water.

My tank is in an enclosed add-on porch. When nobody is in the room it equalizes with the outdoor temperature (around 85-90F daily) but when my office employees are in there during the week the air conditioning is on. The swings from hot to cold doesn't seem to harm my tank.

#+endquote

105. Fun project: How to make jungle music

106. Fun project: Add EU radiation data to Grafana

107. Fun project: UV imaging!

108. Fun project: locally-run LLMs with Bash

109. Fun project: TinyML

110. Fun project: Llama GPT on Pi4

111. Fun project: Lithium battery series on Hackaday.com

112. Fun project: 3d printed radio controller

113. Fun project: Spotify favourites -> genre playlists

114. Fun project: Continuous rotation servo reference

115. Fun project: Jellyfin media server

116. Fun project: Hacking a bluetooth speaker

117. Fun project: Build An Audio AI App Course

118. Fun project: UTC clock

119. Fun project: Bonsai trees

120. Fun project: http://avtanski.net/projects/

  • Neat stuff!

121. Fun project: tic-tac magnetometer

122. Fun project: Measuring atmosheric co2 with SCD40/41 sensor

123. Fun project: Migrating bird sounds at night

124. Fun project: Microscope photography

125. Fun project: One-servo walking robot

126. Fun project: Mothbox!

127. Fun project: Make a lisp

128. Fun project: Vancouver water levels

129. Fun project: Atari punk console

130. Fun project: auto bed levelling

131. Fun project: Tardigrades!

132. Fun project: 3d view for microscope

133. DONE Microscopy

134. DONE Weather vane + Arduino

135. SetAside ESP32 remote control for Spotify

136. DONE Fun project: Scrape pollen counts from this API

  • https://www.pollen.com/forecast/historic/pollen/98225
  • Request:

    {
      "GET": {
        "scheme": "https",
        "host": "www.pollen.com",
        "filename": "/api/forecast/historic/pollen/98225/30",
        "remote": {
          "Address": "52.23.90.186:443"
        }
      }
    }
    
  • Response:

    {
      "Type": "pollen",
      "ForecastDate": "2023-05-22T00:00:00-04:00",
      "Location": {
        "ZIP": "98225",
        "City": "BELLINGHAM",
        "State": "WA",
        "periods": [
          {
            "Period": "2023-04-23T05:30:32",
            "Index": 1.7
          },
          {
            "Period": "2023-04-24T05:30:32",
            "Index": 4.2
          },
          {
            "Period": "2023-04-25T05:30:33",
            "Index": 8.8
          },
          {
            "Period": "2023-04-26T05:30:32",
            "Index": 8.1
          },
          {
            "Period": "2023-04-27T05:30:32",
            "Index": 8.5
          },
          {
            "Period": "2023-04-28T05:30:32",
            "Index": 8.6
          },
          {
            "Period": "2023-04-29T05:30:33",
            "Index": 9.7
          },
          {
            "Period": "2023-04-30T05:30:33",
            "Index": 7.9
          },
          {
            "Period": "2023-05-01T05:30:32",
            "Index": 7.8
          },
          {
            "Period": "2023-05-02T05:30:32",
            "Index": 8.4
          },
          {
            "Period": "2023-05-03T05:30:32",
            "Index": 7.4
          },
          {
            "Period": "2023-05-04T05:30:32",
            "Index": 7.8
          },
          {
            "Period": "2023-05-05T05:30:32",
            "Index": 1.9
          },
          {
            "Period": "2023-05-06T05:30:33",
            "Index": 4.7
          },
          {
            "Period": "2023-05-07T05:30:32",
            "Index": 6.4
          },
          {
            "Period": "2023-05-08T05:30:33",
            "Index": 7.6
          },
          {
            "Period": "2023-05-09T05:30:32",
            "Index": 7.7
          },
          {
            "Period": "2023-05-10T05:30:32",
            "Index": 8.1
          },
          {
            "Period": "2023-05-11T05:30:32",
            "Index": 9
          },
          {
            "Period": "2023-05-12T05:30:32",
            "Index": 8.9
          },
          {
            "Period": "2023-05-13T05:30:32",
            "Index": 9.1
          },
          {
            "Period": "2023-05-14T05:30:32",
            "Index": 9.2
          },
          {
            "Period": "2023-05-15T05:30:32",
            "Index": 9.2
          },
          {
            "Period": "2023-05-16T05:30:32",
            "Index": 7.7
          },
          {
            "Period": "2023-05-17T05:30:32",
            "Index": 7.9
          },
          {
            "Period": "2023-05-18T05:30:32",
            "Index": 8.5
          },
          {
            "Period": "2023-05-19T05:30:31",
            "Index": 8.5
          },
          {
            "Period": "2023-05-20T05:30:32",
            "Index": 8.6
          },
          {
            "Period": "2023-05-21T05:30:32",
            "Index": 9
          },
          {
            "Period": "2023-05-22T05:30:33",
            "Index": 5.7
          }
        ],
        "DisplayLocation": "Bellingham, WA"
      }
    }
    

137. DONE GPS plotter

https://makersportal.com/blog/portable-gps-tracker-with-arduino

  • good example of what can be done w/the gps agent I got from dad

138. DONE Anemometer for weather station

138.1. [2021-03-05 Fri]

  • Did first pass at software
  • Had to use Arduino IDE to compile – compilation errors when compiling
    • arduino-wx-transmitter worked – suspect the Makefile I'm including there (that is, the upstream Arduino-Makefile) is diff from the one I'm including in the anemometer code.
    • Just for the record:
      • working with Arduino-IDE: /home/aardvark/dev/arduino/anemometer/sketchjan02a
      • Not working, fiddle with Makefile: /home/aardvark/dev/arduino-anemometer
    • Got it working!
      • 3 magnets taped in place
      • sensor in right place
      • interrupt handling for detection
      • rpm, interval time
    • Orientation of magnets & sensor will be important – these things need to go close. Poss there will be collisions if not careful. Will need to think about adjustable placement for sensor + repeatable placement for magnets
    • Next steps:
      • Collect & send to InfluxDB
      • Think about placement of sensor – some kind of arm that can be moved into place? Something on a screw?
      • Record orientation – marks on magnets, pictures, record placement of sensor

138.2. Whoah, been a while…

139. DONE Soil moisture probes

140. DONE Birdhouse camera

141. Fun project: Octoprint on an Android phone

142. Fun project: Lab power supply

143. Fun project: EFF RayCatchr

Author: Saint Aardvark

Created: 2025-03-24 Mon 06:39

Validate