Day 13 – A long day and night

Today we worked on moving all the code to only one NodeMCU. Last night we realize that if we use the TX and RX pins and use the same tricker pin for all the ultrasonic sensor, we could fit everything on one NodeMCU. This meant changing the code all over again, but it solved a lot of the problems we where in encounter, with the two NodeMCU. This took a good chunk of the day to finish off.

When we wanted to test with NodeRed, we found at few mistakes, ui-controller not changing dashboard as they should, we found the mistake in the coding, change it, and everything was working again.

We startede filming the video, the clips whit out the machine were very easy to shoot, and the edit of the first clips went super fast, but we had a bit of trouble with the machine, and just when we were about to be done, we fried the NodeMCU that we were using. So we change over to another NodeMCU, but starting having trouble with the OLED, to the prototype apart again and then we found out that it was a broken cable. Now the everything was running, and we check the math from the code, and made a few adjustments to make it work better.

The rest of the group who was not working on the coding, worked on the report, the PRD, and the BOM. We also spent this reading though the prototyping planers. Around midtnight all this was done, we started filming clips og the NodeRed dashboard.

This is how the final prototype turned out, a last we got every thing to work, but I took a long time, and we finished of in the morning, and tired, but happy that know we are done with the prototype and now we only need to present it.

We made a rendering of how we wanted the finish product to look. The frame should out of white plastic, and the cambers should be transparent.

Sourdough: Making a starter and maintaining it

Day 1

Combine the following:

  • 80 grams of FLOUR 
  • 80 grams of WATER 

Flour and water is stirred together until there are no clumps. Set in a cool, shaded spot for 24 hours.

Day 2

On Day 2 you may or may not see bubbles on top of the starter.

The starter shouldn’t be fed today, but should be stirred to incorporate air into the mixture. Set in a cool, shaded spot for 24 hours.

Day 3

Check the starter for signs of activity – it should be bubbly! The starter has risen some overnight.

From day 3 you should start discarding some dough and give it a feeding twice a day. Leave about 3 tablespoons of the starter in the container and discard the rest.

In the morning (AM)

1. You will need the following:

  • 40 grams of STARTER 
  • 40 grams of FLOUR 
  • 40 grams of WATER 

2. Stir until well combined.

3. Let sit for 12 hours.

In the evening (PM)

1. Add the following to your starter:

  • 25 grams of FLOUR
  • 20 grams of WATER

2. Stir until well combined.

3. Let sit for 12 hours.

Day 4

On the morning of Day 4 the starter is very active. This is evident by all the bubbles on top and on the sides of the jar. It has almost doubled in size which is a very good sign!

Use the same schedule from Day 3, until you have a strong starter!

In the morning (AM)

1. You will need the following:

  • 40 grams of STARTER 
  • 40 grams of FLOUR 
  • 40 grams of WATER 

2. Stir until well combined.

3. Let sit for 12 hours.

In the evening (PM)

1. Add the following to your starter:

  • 25 grams of FLOUR
  • 20 grams of WATER

2. Stir until well combined.

3. Let sit for 12 hours.

Day 5 

You can see that the starter is nice a bubbly which means it’s active. The yeast still need to multiply in order to give the starter the boost it needs to rise bread.

In the morning (AM)

1. You will need the following:

  • 40 grams of STARTER 
  • 40 grams of FLOUR 
  • 40 grams of WATER 

2. Stir until well combined.

3. Let sit for 12 hours.

In the evening (PM)

1. Add the following to your starter:

  • 25 grams of FLOUR
  • 20 grams of WATER

2. Stir until well combined.

3. Let sit for 12 hours.

Day 6

The starter rose overnight and fell back down but it is still not strong enough. Keep going!

In the morning (AM)

1. You will need the following:

  • 40 grams of STARTER 
  • 40 grams of FLOUR 
  • 40 grams of WATER 

2. Stir until well combined.

3. Let sit for 12 hours.

In the evening (PM)

1. Add the following to the starter:

  • 25 grams of FLOUR
  • 20 grams of WATER

2. Stir until well combined

3. Let sit for 12 hours.

Day 7

In the morning (AM)

1. You need the following:

  • 40 grams of STARTER 
  • 40 grams of FLOUR 
  • 40 grams of WATER 

2. Stir until well combined.

3. Let sit for 4-5 hours, until doubled in size.

About 4 hours after the feeding you can do what is called a “Float Test” to see if the starter is ready for bread baking. You perform a “float test” by dropping a tablespoon of the starter into a jar of room temperature water. The starter floats on the top of the water which indicates that it is ready to bake!

If the starter does not float don’t worry – keep up the daily schedule until it passes the test. It might need an extra day or two depending on the temperature of your house!

Day 10: Thursday – The sprit to finish the product

At the beginning of the 3 week period, we made our own deadline to finish the product today. The thought behind this was, that if we finished the product by day 10, we would have 4 days to make the video, the report, finish the BOM and the PRD. Today we got at big step closer to finishing the product, but it is not build yet.

Connectivty

One of the reasons, we did not finish the product today, was that we wanted to run all of components from an Arduino Mega and store the code on this. To get the Arduino Mega connected to MQTT, we wanted to establish serial communication between the Arduino and the NodeMCU, we spend a lot of time on this, but we could not get it to work. Then we tried using the NodeMCU as a WIFI-Shield, for the Arduino, but this would not work either. Our back-up solution was to have multiple NodeMCUs and run all the code from here, but this added a few new problems, like the fact that one motor has to run, then the pump and then the other motor, because of our power supply.

The Frame

The process of building the frame

We had already made a drawing of the frame, but today we realised that the frame we made, is not strong enough to carry the load of everything, so we needed to find a new design to be sure that it would not break. The GIF above shows the process of designing the new frame. The end result is where we are today. Tomorrow we need to make a few different changes to make the frame stronger and more balanced.

The frame now

Kickstarter movie

To get inspiration for the movie, we looked at different movies on kickstarter, and movies made in this course previous year. To show off our product we decided to start out the video with a clip of a sourdough user coming home from vacation to a moldy sourdough, after these the “CEO” will start talking, the shot will change between the “CEO” and shots of the product. After this the “developer” vil start talking about the product, and shots of the assembling process and coding will be shown.

The “CEO” is going to be played by Ruben, the user is played by Emilie and the developer is going to be played by Aksel. Daniel knows most about filming, therefore he will be in charge of the filming.

Day 8: Tuesday – A long way to go

Today we took a few more steeps in the right direction, but everything is taking a longer time than we anticipated, and we still have a lot to do. Our goals was to finish the sourdough machine by day 10, but it is starting to feel a bit unrealistic. Currently it looks like we will have the product ready by day 11, and perhaps we can use the weekend to film, and write the report, so that we will finish everything on time.

One of the goals for today was to collect the Arduino code to one file which is functional with all the components. Another goals was to test the motor set-up and start measuring the amount that get dispensed, for this we needed to build a prototype chassis.

The arduino, nodeMCU and all the components, WIP

Today Aksel has focused on wiring all components and code together, except for NodeRED just currently; that will probably be tomorrow.

The first challenge has been getting it organized in a way that allows us to easily spread it out again on the test bench. Therefore I chose to link up 4 breadboards and keep the arduino on the side. We can then just split the breadboard up if that is needed.

Thereafter I looked at every arduino code file and made each task into a function so it is all callable. Currently are we going to have the following code functions:

  • Amount(“containerName”), returns and float with the distance from the container lid.
  • Flour(degrees, speed), to be changed to accept mL, but might vary from flour to flour. The speed is to change the intensity of the movement.
  • Water(mL), to be changed to reflect a measured flowrate.
  • Mixing(degrees, speed), to be further incorporated into a mixing function taking into account the amount of sourdough.
The current breadboard setup with: arduino uno, nodeMCU, 2 stepper motors, 2 easy drivers, peristaltic pump, 3 ultrasound sensors, 12-5v voltage regulater, N-channel MOSFET, , barrelplug and a lot of wires.

The next steps are writing the functions controlling the various modes. So that includes baking mode travel mode and keep it kicking. Also the display code needs to be finished and incorporated in the main code.
Sebastian is currently writing the display code which will make it possible to display any string easily.
The biggest challenge however is going to be establishing a logical way of establishing serial communication between the nodeMCU and the arduino as the nodeMCU acts as the wifi hookup.

OLED

Sebastian and Emilie worked on the OLED-screen, which is a quite unreliable little thing. Even though we bought a new OLED with high resolution and color, it caused us trouble, as it turns out that the display Adafruit sells has one extra pin broken out. A pin that our cheap Chinese knock-off seemed to miss: the CS pin (Chip Select pin). We will ask if instrument group can help us to solder it so it works, but at the moment we plan on just using the OLED we used with the locker.

We figured out how to load images to it, flip between displays and change the font and position. It is important that the display provides easy interaction with the user and is in line with our vision.

Testing the old OLED with a HappyDough™ logo

Closing in on a project

For today we had each prepared a concept for project 3 to share with the group. The projects that came up were a ‘keep your sour dough alive’ machine, two different types of instant ice cream makers, a weight with nutrition and recipe information, a wine cooler to keep track of your wine and the temperature, and a smart grill.

After each member had explained their idea, we had a group discussion about what would be most fitting to work on for project 3. The two concepts we saw most potential in were the sour dough machine and the ice cream maker. We discussed the two remaining ideas with Ali, to get guidance and a new angle on it. We learned that it was important to clarify the problem before creating a solution, as we risked solving a ‘self-made’ issue.

We also discussed the most challenging aspect of the two solutions. For the sour dough machine it is measuring the pH-value and dealing with the growing manner of the sour dough. As the machine should add flour and water every day or every other day, there need to be a way to discard excess sour duogh. The challenging aspect of the instant ice cream maker is how to cool the ice cream properly, to achieve a good quality with different types of ice cream.

The next step is to evaluate the two concepts up against each other, so we can make a reasoned decision about which concept we will work on in June.

Project 3 – FOOD

The subjekt “FOOD” was presented to the mechatronics team. Initially, the group had to adjust to the new topic and the divergent process should be launched. Loosely and firmly, the talk crossed the table with crazy ideas.

Aksel and Sebastian go on their way to Skylab Food and get in touch with Ruberto early. He is open, helpful and comes with some key points to the topic: It is important to find a new topic. A new way of doing things. In the world, there are many alternative ways of processing foodstuffs, which are considered either exclusive, industrial processes or consumed. New technologies need to find their way to the everyday kitchen. In Skylab FOOD, we were shown technologies to cook without heating and an ultrasonic device to evaporate liquid without heating. Common to the technologies is that they have no everyday use – and are therefore an example of what has a potential in the consumer market.

POWER to the Group

We decided to go on an excursion to get new inputs. In power, we asked the staff for new products and technologies within food. First we were shown new product releases, for example a m-hood that is on the table. Next, the group searched the other department’s stores, which offered:

Various coffee machines, blenders, ergonomics, visual design user-friendliness and more. Many products are conventional, as one expects them. Few new products dominate the market, just new models and new designs. In fact, the visit could help us find possible categories, but it is difficult to pinpoint the concrete input.

The project must be based on a user group and an existing problem field. This is the basis and must above all be applied. We returned to skylab and wrapped up the day, by assigning a hometask: Everyone will look into and present an idea that we can work on in the 3-week period.

The final reflections

The group work

Our group work progress has generally been working really well. At the early stage we experimented a lot, and tried connecting things outside of our exercises. However, one downfall we have had as a group has been, that we have not each individually changed between the tasks. This means that not everyone has tried to make a component inside nodeRED apart from the exercises. We had one time when the work practice was really good: Making the flow diagram, and deciding what the locker should do in different scenarios, made it very clear what tasks should be done. For the next project we will do the flow diagram earlier, define what tasks should be done, and make sure that everyone get to work on all parts of the project.

A new world of things connected to the internet

This project has opened up the world of IoT devices for us. Most interesting is how we could save memory on the nodeMCU, by making cloud computing do most of the tasks for us, by simply communicating with our NodeMCU via MQTT. The nodeRED layout was a very simple way to “program” specific tasks for us. Especially the dashboard functions was amazing to quickly prototype a functional UI, without much knowledge of html and css. Combining it with an MQTT server, made it super easy to send and receive messages (or commands) to the nodeMCU.

It is nice to experiment with making every-day things work on the internet. However as design engineers we must also remember to think about the Raison d’être of our inventions – otherwise they might be chindogu inventions.

The assembly of mechanics and electronics

The construction of the locker was through lots of trial and error. Corners are extremely fragile during assembly, and has costed the lives of a few boxes. We got a tip, that moisturizing the wood before assembly, would make the bendable corners less prone to break. The tip was given post-assembly of the final box, and is therefore something we can take with us to the next project, if bendable laser cut wood still is the thing we want to work with.

We wanted to lessen the resistance in the breadboard, so we could be sure everything would run smoothly, and so no cable would loosen itself during the setup post-assembly. We thought it would be a great idea to solder everything together on the day before delivery, with very little experience in soldering circuits. We got extra cable from the instrument group in building 414. Next time we will ask for something more specific than “cable”, so the instrument group won’t mock us and get a bad impression of Design and Innovation students. In the students workshop in 413 we got a few tips and tricks for creating powerbridges for parallel connections with jumper cables. We got hold of a perfboard which was very helpful on the soldering process.

We were quite excited when we learned that no components was burned in our soldering adventure. With great momentum, we were ready to assemble it. But before we would hide the electronics inside the safe, we had to make sure that it all worked. We had a strange experience with the nodeMCU, that suddenly did not want to connect to our wifi. We re-uploaded the code, and tried to reset it, but nothing worked. We then tried to upload the code on another NodeMCU, and it worked flawlessly. We desoldered the NodeMCU and replaced it with the one that worked. The new NodeMCU now did not want to connect to the wifi. So we tried changing the code, but nothing worked.

The point of no return

At one point we wanted to see if it worked, and plugged in the 12 volt adapter to the nodeMCU. A loud pop went into the room, and we sat back in silence looking at each other. The LEDs had stopped emitting light. It was dead. So we found a third NodeMCU and soldered it onto the board, after cutting loose the old one. And suddenly the wifi was working. So the moral of the story is, sometimes things just don’t work, and if we get stuck, we should try to disassemble everything and try to replace the cables and components.

Project 2: IoT Safe, final overview

  1. Introduction
  2. Electric circuit
  3. Dashboard and Node-RED
  4. Buzzer + OLED
  5. The locker

The goal of this projet has been to create a single IoT safe that can be unlocked via a web-browser. We have achieved this by using a node MCU, Node-RED hosted on IBM cloud, using CloudMQQT as our broker and various other hardware components.

The Node-MCU, acts as the hardware controller. It’s code defines its functions but it is at no point in control over the safe, the Node-RED is in charge of what the safe does. This makes it easy to adapt the hardware part of this project to a completely different IoT safe experience.

All Node-MCU functions are triggered via strings over the broker, from Node-RED: Ie. we can play specific buzzer sounds by sending either “success” or “failure”.

The project can be seen as a proof of concept, as it only accounts for one safe. It would require a database to have multiple safes running over one flow. Ideally one could have multiple safes running over one Node-MCU or one central server handling it. Another possibility is just accepting the higher safe costs and each safe running on its own cloud instance, own Node-MCU and so forth.

2. Electric circuit

The electric circuit and components can be analysed via the schematic seen below.

Power Supply:
Our Node-MCU is powered form 12 volt direct current outputted by an adapter. It transforms 220 voltage alternating current from a standard house power plug. This way the locker can be be powered from any outlet. Same adapter delivers power to the solenoid motor inside the electronic lock.

The powered Node-MCU delivers 3 volts direct current to the OLED and the buzzer is powered by the digital output pin D0.

3. Dashboard

The Dashboard, or UI (user interface), is an important facette of the product. It’s the digital front end and it must guide the user. The UI consists of 3 elements.

A presentation element welcomes the user and displays the locker’s status (Available / Occupied). This is connected to the OLED that will also display OLED.

An ‘Unlock’ element asks for passcode. In case the user has already registered with a passcode he/she must enter the code and the closet will automatically unlock. Entering a passcode without registering will display the messages: “Please sign up to use the locker” and if it is in use and the passcode is incorrect: “Wrong password, thief”.

Lastly: The register element. This is where you type your email and passcode. Registering will send the user an email with instructions on how to use the locker along with a link to the UI and the registered password (in case you forget).

The confirmation mail looks as such:

4. Buzzer & OLED

OLED screen

The OLED is located behind a acrylic plate, to give the locker a nicer finish and make the screen look better. The acrylic plate makes the screen more appenrent and it lights up more.

The buzzer is located behind the airholes made to let sounds pass through.

The hole in the buzzer is locate behinde one of the holes, this make the sound go though better. The rest of the holes if for the look of the locker.

5. The locker

We are signing in with e-mail and password, and the locker opens as it should, playing the right tone
An incorrect password played the FAIL-melody.
The correct password opened the locker playing the SUCCESS-melody.
The final Locker

The final locker will open when the user signs up, and it opens again when the user types in their password. The lock is mounted on the wall in Skylab and is fully functional.

The start of the project – week 1

Today we started project nr. 2. in the course Mechatronics Engineering Design.

To start our work as a group we discussed our ambitions and what we want to learn during the project. Then we started planning the project, which functions we want to have, what materials, and what components we wanted to include.

Until the next time, everyone will make a few design drafts and a look into the IBM cloud services.

IMG_3763