Difference between revisions of "Cheese making"

From Real Vegan Cheese
Jump to navigation Jump to search
(Replaced content with "In parallel with the synthetic biology work, we are experimenting with cheeses made from powdered purified casein, and using vegan oils to replace milkfat. This page docum...")
Line 3: Line 3:
= Electric cheese cave =
= Electric cheese cave =


Most hard cheeses that are the least bit interesting need to be aged at colder than room temperature and high humidity. We've built a wifi-enabled cheese cave out of modified wine chiller.
Most hard cheeses that are the least bit interesting need to be aged at colder than room temperature and high humidity. We've built [[Vegan cheese/Cheese cave|a wifi-enabled cheese cave out of modified wine chiller]].
 
The cheese cave is based around a "Haier 18-Bottle Thermal Electric Wine Tower" that we found for $40 on craigslist. This is an upright wine chiller that uses two large peltier modules with heatsinks and fans to chill the bottles.
 
== Arduino and sensor ==
 
The temperature and humidity are read every second using a [http://arduino.cc/en/Main/ArduinoBoardPro 3.3 volt Arduino Pro] and a [https://www.sparkfun.com/products/8257 SHT15 sensor breakout board from Sparkfun].
 
The arduino is powered by 3.3v coming from the wifi router and communicates with the router using TTL serial.
 
The sensor communicates with the Arduino using 2-wire.
 
== Wifi router ==
 
A Linksys/Cisco WRT160NL router was flashed with [https://openwrt.org/ OpenWRT] version 12.09 Attitude Adjustment. OpenWRT was configured to use an external usb flash drive as its root partition ([http://wiki.openwrt.org/doc/howto/extroot extroot]). Avahi was installed and the hostname set to ''cheese'', such that any mDNS compatible operating systems are able to access the router through the domain name ''cheese.local''.
 
A simple web server was written in lua to read the temperature and humidity from the Arduino and display it on a web page such that the status of the cheese cave can be monitored by accessing http://cheese.local in a web browser.
 
== Physical modifications ==
 
The wine shelves were cut to make them flatter and a sushi mats was places on each shelf.
 
Wires were run into the chiller by un-mounting the bottom peltier module, cutting a small amount of insulation away, running the wire through and re-mounting the peltier module. One 110 vac power cord was run for the humidifier and a communications cord was run for the temperature/humidity sensor.
 
== ToDo ==
 
*Allow changing humidity set-point from the web app
*Allow changing temperature set-point from the web app
*Write step-by-step guide for replicating the electric cheese cave
 
== OpenWRT configuration ==
 
The following assumes some knowledge of networks and *nix command line.
 
Go to [http://wiki.openwrt.org/toh/start the OpenWRT table of hardware] and find the wiki page for your router. It will tell you how to flash it with OpenWRT. You should use a wifi router that has the following minimum specs:
 
*Atheros chipset
*32 MB ram
*4 MB flash
*USB
*Supported by OpenWRT
 
After flashing, telnet into the router using:
 
telnet 192.168.1.1
 
Set the root password:
 
passwd
 
Now exit the telnet session and log in with ssh instead:
 
ssh root@192.168.1.1
 
=== Wifi setup ===
 
We'll set up the router to connect to your existing wifi access point as a client (you could also connect it using wired ethernet if you prefer, which should not require any configuration, provided your router has a wan port).
 
Edit the "config wifi-iface" section in /etc/config/wireless (using vi) too look like this:
 
  config wifi-iface
      option device  radio0
      option ifname  wlan0
      option network  wifi
      option mode    sta
      option ssid    myaccesspoint
      option encryption none
 
Replacing myaccesspoint with your wifi access point name. If the access point is password protected you will have to [http://wiki.openwrt.org/doc/uci/wireless#wifi.networks specify the encryption method and password].
 
In the same file, remove the following line:
 
      option disabled 1
 
Now edit /etc/config/network, adding the following section to the end of the file:
 
  config interface 'wifi'
        option ifname 'wlan0'
        option proto 'dhcp'
 
If you're planning on using the router on a network that uses 192.168.1.x IP addresses, then you should change the line "option ipaddr '192.168.1.1'" to e.g:
 
option ipaddr '192.168.2.1'
 
If you change this, then you'll have to use this new ip addr connecting to your node with ssh in the future.
 
Now reboot the router. When it finishes booting, ssh back into it and check if the internet is working:
 
ping sudomesh.org
 
=== USB extroot ===
 
Now you can set up extroot to use a flash drive as your root partition. Take a usb flash drive, and plug it into a normal linux system (e.g. debian). It should show up as e.g. /dev/sdb (you can check using dmesg). First unmount it in case it's mounted:
 
sudo umount /dev/sdb1
 
Now change the flash disk partition type to linux:
 
sudo fdisk /dev/sdb
 
At the fdisk menu, hit:
  t <enter>
  83 <enter>
  w <enter>
  ctrl+c
 
Format the flash drive as ext4:
 
sudo mkfs.ext4 /dev/sdb1
 
Now plug the usb flash drive into your router and ssh into the router. The rest of the commands in this section take place on your router.
 
Install the required packages for extroot:
 
opkg update
opkg install blkid block-mount kmod-fs-ext4 kmod-lib-crc16kmod-nls-base kmod-scsi-core kmod-usb-core kmod-usb ohci kmod-usb-storage libblkid libuuid swap-utils
 
Change the section "config mount" in /etc/config/fstab to look like this:
 
  config mount
        option target  /
        option device  /dev/sda1
        option fstype  ext4
        option options  rw,sync
        option enabled  1
        option enabled_fsck 0
 
Now mount the usb drive and copy the filesystem:
 
mkdir /tmp/mnt
mount /dev/sda1 /tmp/mnt
cd /
cp -a bin etc lib rom root sbin usr var www /tmp/mnt/
cd /tmp/mnt
mkdir dev mnt overlay proc sys tmp
sync
cd /
umount /tmp/mnt
 
If the following command gives any output after rebooting, then you are now using extroot:
 
mount | grep sda1
 
=== Avahi (mDNS) ===
 
To set up mDNS, first install avahi-daemon:
 
opkg update
opkg install avahi-daemon
 
Make it work without d-bus by adding this line to the [server] section of /etc/avahi/avahi-daemon.conf:
 
enable-dbus=no
 
Make it auto-start on boot:
 
/etc/init.d/avahi-daemon enable
 
Change your hostname to something relevant by editing the hostname option in /etc/config/system (maybe set it to cheese so you can use cheese.local to access the cheese cave).
 
Start avahi:
 
/etc/init.d/avahi-daemon start
 
== Wiring notes ==
 
Communications cables between sensor, router and arduino take place over old [http://en.wikipedia.org/wiki/PS/2_port PS/2 cables] that have been cut and soldered onto the different devices. These cables are shielded, easy to get for free, and the plugs make it easy to disconnect and reconnect components.
 
From router:
 
*RX: Brown
*TX: Orange
*3.3v: Green
*GND: Ground (shield)

Revision as of 19:06, 4 April 2014

In parallel with the synthetic biology work, we are experimenting with cheeses made from powdered purified casein, and using vegan oils to replace milkfat. This page documents our cheese-making efforts.

Electric cheese cave

Most hard cheeses that are the least bit interesting need to be aged at colder than room temperature and high humidity. We've built a wifi-enabled cheese cave out of modified wine chiller.