Jump to content

eozen81

Members
  • Posts

    311
  • Joined

  • Last visited

  • Days Won

    1

Reputation Activity

  1. Like
    eozen81 reacted to Chiumanfu in WIFI Temperature Monitor with Email Alerts   
    Added a fan relay and a single fan for testing. I will find a way to mount the fan more securely soon. Only 10 lines of code including declarations. The trigger temperature is hardcoded for now with variables fanTempHi and fanTempLo. The fan turns on at 23.5C and turns off at 22.85C. This gives a good amount of hysteresis so the fan in not toggling on and off around a single trigger point.
     

     

    // Aquarium Temp Monitor by Chiu Fang // Include Libraries#include <OneWire.h>                                             // For DS18B20 Temperature Sensor#include <DallasTemperature.h>                                   // For DS18B20 Temperature Sensor#include <LiquidCrystalFast.h>                                   // For LCD Display#include <SPI.h>                                                 // For CC3000 WIFI#include <SFE_CC3000.h>                                          // For CC3000 WIFI#include <SFE_CC3000_Client.h>                                   // For CC3000 WIFI// #include <avr/wdt.h> // Set constantsconst byte temperaturePin = A3;                                  // DS18B20 temp sensor pinconst byte fanRelayPin = A2;LiquidCrystalFast lcd (3, 4, 5, 6, 7, 8, 9);                     // rs,rw,en1,d4,d5,d6,d7 Init LCDOneWire oneWire(temperaturePin);                                 // Init DS18B20 One WireDallasTemperature sensors(&oneWire);                             // Init Dallas Temp libraryDeviceAddress temp = { 0x28, 0x2A, 0xC1, 0xD2, 0x05, 0x00, 0x00, 0xBB };     // DS18B20 ID#//DeviceAddress temp = { 0x28, 0x50, 0x07, 0xD3, 0x05, 0x00, 0x00, 0xDD }; const float calibration = 0.6;                                   // Adjust for DS18B20 accuracy errorconst float fanTempHi = 23.5;const float fanTempLo = 22.85; // CC3000 Setup#define CC3000_INT      2                                        // Needs to be an interrupt pin (D2/D3)#define CC3000_EN       A0                                       // Can be any digital pin#define CC3000_CS       10                                       // Preferred is pin 10 on Uno#define IP_ADDR_LEN     4                                        // Length of IP address in byteschar ap_ssid[] = "YOURwifiSSID";                                    // SSID of networkchar ap_password[] = "YOURwifiPASSWORD";                                // Password of networkunsigned int ap_security = WLAN_SEC_WPA2;                        // Security of networkunsigned int timeout = 30000;                                    // Timeout in MillisecondsSFE_CC3000 wifi = SFE_CC3000(CC3000_INT, CC3000_EN, CC3000_CS);SFE_CC3000_Client client = SFE_CC3000_Client(wifi); // Grovestream setupchar gsDomain[] = "grovestreams.com";                            // GroveStreams DomainString gsApiKey = "xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";        // Grovestreams API KeyString gsComponentID = "Arduino";                                // Grovestreams Component IDconst unsigned long gsUpdateFrequency = 900000;                  // GroveStreams update frequency 15minunsigned long gsLastSuccessfulUploadTime = 0;                    // Timer for interval data streamsunsigned long gsConnectAttemptTime = 0;                          // Timer for reconnectsint gsFailedCounter = 0;                                         // Counter for failed connects // Declare Variablesfloat tempValue;                                                 // Temperature Variablefloat maxTemp = 25;                                              // Max Temperature Holderfloat minTemp = 25;                                              // Min Temperature Holderint i;                                                           // Scratchpad void setup () {  Serial.begin(115200);                                          // For debug  lcd.begin(20, 4);                                              // Config LCD  sensors.begin();                                               // Init DS18B20 sensors  sensors.setResolution(temp, 12);                               // Set DS18B20 resolution  sensors.requestTemperatures();                                 // Read temp from DS18B20 sensors  tempValue = sensors.getTempC(temp) + calibration;              // Apply calibration value  minTemp = tempValue;                                           // Preset min marker  maxTemp = tempValue;                                           // Preset max marker  digitalWrite(fanRelayPin, HIGH);  pinMode(fanRelayPin, OUTPUT);} void loop () {// Get temperature from DS18B20  sensors.requestTemperatures();                                 // Read temp from DS18B20 sensors  tempValue = sensors.getTempC(temp) + calibration;              // Apply calibration value  if (tempValue < minTemp && tempValue > -100) {                 // Check for Min temp    minTemp = tempValue;  }  if (tempValue > maxTemp) {                                     // Check for Max temp    maxTemp = tempValue;  }  lcd.setCursor(0, 0);                                           // Display info on LCD screen  lcd.print(F("Temp:     "));  lcd.setCursor(5, 0);  lcd.print(tempValue, 3);  lcd.setCursor(0, 1);  lcd.print(F("Max :     "));  lcd.setCursor(5, 1);  lcd.print(maxTemp, 3);  lcd.setCursor(0, 2);  lcd.print(F("Min :     "));  lcd.setCursor(5, 2);  lcd.print(minTemp, 3);  // Control fan relay  if (tempValue >= fanTempHi){    digitalWrite(fanRelayPin, LOW); // turn fan on if tank temperature is high  } else if (tempValue <= fanTempLo){    digitalWrite(fanRelayPin, HIGH); // turn fan off if tank temperature drops  } // Create strings from floats for Grovestream string  char temp1[7] = {0};                                           // Initialize buffer to nulls  dtostrf(tempValue, 7, 3, temp1);                               // Convert float to string  String tempValueS(temp1);                                      // Save string  tempValueS.trim();                                             // Trim white space // Start sending data  if(millis() - gsLastSuccessfulUploadTime > gsUpdateFrequency) { // 15 minutes    Serial.println(F("Starting Upload"));    gsConnectAttemptTime = millis();                             // Set the interval timer    Serial.println(F("Wifi Connecting"));    wifiConnect();                                                 // Connect WIFI    Serial.println(F("Client Connecting"));    if (client.connect(gsDomain, 80)) {                          // Connect to grovestream server      Serial.println(F("Client Connect Successful"));      String url = "PUT /api/feed?compId=" + gsComponentID;      // Construct the string      url += "&api_key=" + gsApiKey;      url += "&t=" + tempValueS;      url += " HTTP/1.1";      client.println(url);                                       //Send the string      Serial.println(url);                                       // Print the string for debug      client.println("Host: " + String(gsDomain));      client.println(F("Connection: close"));      client.println(F("Content-Type: application/json"));      client.println();      gsLastSuccessfulUploadTime = gsConnectAttemptTime;      delay(10000);      Serial.println(F("Reading Response"));      while(client.available()) {                                    // Send host response to serial monitor        char c = client.read();        Serial.print(c);      }      Serial.println(F("Closing Client"));      client.close();                                              // Stop client      Serial.println(F("Flushing Buffer"));      client.flush();      Serial.println(F("Wifi Disconnecting"));      wifi.disconnect();      lcd.setCursor(0, 3);      lcd.print(F("WIFI SENT "));    } else {      Serial.println(F("Client Connect Failed - Closing Socket"));      client.close();                                              // Stop client      client.flush();      wifi.disconnect();      gsFailedCounter++;      lcd.setCursor(0, 3);      lcd.print(F("WIFI FAIL "));    }  }    if (gsFailedCounter > 2 ) {    Serial.println(F("Connection Retries Exceeded - Retrying in 15 minutes"));    gsLastSuccessfulUploadTime = gsConnectAttemptTime;    gsFailedCounter = 0;    delay(10);    software_Reset();  }    lcd.setCursor(14, 3);                                          // Display countdown to next update  lcd.print(F("      "));  lcd.setCursor(14, 3);  lcd.print(millis() - gsLastSuccessfulUploadTime);        // Debug info  Serial.print(F("Ram:"));  Serial.print(freeRam());  Serial.print(F(","));  Serial.print(F("Millis:"));  Serial.print(millis());  Serial.println(F(","));} void wifiConnect() {                                             // WIFI Connect routine  ConnectionInfo connection_info;  if ( wifi.init() ) {                                           // Initialize CC3000 SPI    Serial.println(F("CC3000 initialization complete"));  } else {    Serial.println(F("Something went wrong during CC3000 init!"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO CC"));  }  Serial.print(F("Connecting to SSID: "));                       // Connect using DHCP  Serial.println(ap_ssid);  if(!wifi.connect(ap_ssid, ap_security, ap_password, timeout)) {    Serial.println(F("Error: Could not connect to AP"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO AP"));  }  if ( !wifi.getConnectionInfo(connection_info) ) {              // Gather connection details    Serial.println(F("Error: Could not obtain connection details"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO RX"));  } else {    Serial.print(F("IP Address: "));    for (i = 0; i < IP_ADDR_LEN; i++) {      Serial.print(connection_info.ip_address[i]);      if ( i < IP_ADDR_LEN - 1 ) {        Serial.print(".");      }    }    Serial.println();    lcd.setCursor(0, 3);    lcd.print(F("WIFI CONN "));  }} int freeRam() {                                                  // RAM monitor routine  extern int __heap_start, *__brkval;   int v;   return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); } void software_Reset()// Restarts program from beginning but // does not reset the peripherals and registers{  asm volatile ("  jmp 0");  } 
  2. Like
    eozen81 reacted to Chiumanfu in WIFI Temperature Monitor with Email Alerts   
    There is a lot of talk on the forum about cooling our shrimp tanks now that summer is coming fast. I thought you guys might be interested in a project I've been working on.   Here is a DIY temperature monitor with WIFI connectivity, graphing and email alerts. I needed this for one of my shrimp tanks as it is only 10 gallons and located in a not so well insulated garage. I have a min/max thermometer in the garage and I recorded 7C in the winter and 24C in the summer. I have a 100W Aqueon Pro in the tank now and I'm not sure if it will be adequate during the winter. I feel more confident with this watching the temp to make sure that things don't get out of hand without me noticing.   I used an Arduino Nano and a waterproof DS18B20 sensor. Wifi connectivity is through the SparkFun CC3000 breakout board. The display is a generic 20x4 LCD. I had to use a switching regulator because the onboard Arduino regulator does not have enough guts to power the CC3000. Eventually I will build a permanent PCB and box for this but for now it lives in a pretty sheltered spot on the shelf beside the tank so I'm not in a rush. The LCD displays current temp, max temp, min temp, WIFI status and time(mS) until next Grovestreams update.   I used a service called Grovestreams for data acquisition and alerting. This platform is really powerful and I've been using it for other "InternetOfThings" projects for a while now. It is totally free under a certain threshold. This project should never exceed that threshold unless you have more that 20 running all at once. Here is a shot of the data visualization, which for this project is simply a line graph. You can create dashboards and all sorts of different charts, graphs and gauges with Grovestreams.   Fritzing diagram   Parts List Arduino Nano V3.0 - Clone from eBay $7. Make sure it has the 328P processor and FT232RL USB chip.   CC3000 Wifi Breakout Board - Clone from eBay $25. The genuine Sparkfun unit is $35. If you have wired ethernet close by, you can just use a W5100 shield and save more than half this cost.    DS18B20 Waterproof sensor - eBay $2. Beware that the colour code of the wires may not be the same. Mine was Red=VCC Yellow=GND Green=SIG.   20x4 LCD Display - eBay $7. Any display that is HD44780 compatible will work (almost all are). You can use other sizes with code alterations.   Switching Regulator - eBay $2. These are overkill for what we need but I have a pile of them in my junk box so I used it. Any power supply capable of 5V @ 1A will work fine. Check your junk box for old wall adapters and electronics power adapters.   Arduino Code // Aquarium Temp Monitor by Chiu Fang // Include Libraries#include <OneWire.h>                                             // For DS18B20 Temperature Sensor#include <DallasTemperature.h>                                   // For DS18B20 Temperature Sensor#include <LiquidCrystalFast.h>                                   // For LCD Display#include <SPI.h>                                                 // For CC3000 WIFI#include <SFE_CC3000.h>                                          // For CC3000 WIFI#include <SFE_CC3000_Client.h>                                   // For CC3000 WIFI// #include <avr/wdt.h> // Set constantsconst byte temperaturePin = A3;                                  // DS18B20 temp sensor pinLiquidCrystalFast lcd (3, 4, 5, 6, 7, 8, 9);                     // rs,rw,en1,d4,d5,d6,d7 Init LCDOneWire oneWire(temperaturePin);                                 // Init DS18B20 One WireDallasTemperature sensors(&oneWire);                             // Init Dallas Temp libraryDeviceAddress temp = { 0x28, 0x2A, 0xC1, 0xD2, 0x05, 0x00, 0x00, 0xBB };     // DS18B20 ID#//DeviceAddress temp = { 0x28, 0x50, 0x07, 0xD3, 0x05, 0x00, 0x00, 0xDD }; const float calibration = 0.6;                                   // Adjust for DS18B20 accuracy error // CC3000 Setup#define CC3000_INT      2                                        // Needs to be an interrupt pin (D2/D3)#define CC3000_EN       A0                                       // Can be any digital pin#define CC3000_CS       10                                       // Preferred is pin 10 on Uno#define IP_ADDR_LEN     4                                        // Length of IP address in byteschar ap_ssid[] = "YOURwifiSSID";                                    // SSID of networkchar ap_password[] = "YOURwifiPASSWORD";                                // Password of networkunsigned int ap_security = WLAN_SEC_WPA2;                        // Security of networkunsigned int timeout = 30000;                                    // Timeout in MillisecondsSFE_CC3000 wifi = SFE_CC3000(CC3000_INT, CC3000_EN, CC3000_CS);SFE_CC3000_Client client = SFE_CC3000_Client(wifi); // Grovestream setupchar gsDomain[] = "grovestreams.com";                            // GroveStreams DomainString gsApiKey = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";        // Grovestreams API KeyString gsComponentID = "Arduino";                                // Grovestreams Component IDconst unsigned long gsUpdateFrequency = 900000;                  // GroveStreams update frequency 15minunsigned long gsLastSuccessfulUploadTime = 0;                    // Timer for interval data streamsunsigned long gsConnectAttemptTime = 0;                          // Timer for reconnectsint gsFailedCounter = 0;                                         // Counter for failed connects // Declare Variablesfloat tempValue;                                                 // Temperature Variablefloat maxTemp = 25;                                              // Max Temperature Holderfloat minTemp = 25;                                              // Min Temperature Holderint i;                                                           // Scratchpad void setup () {  Serial.begin(115200);                                          // For debug  lcd.begin(20, 4);                                              // Config LCD  sensors.begin();                                               // Init DS18B20 sensors  sensors.setResolution(temp, 12);                               // Set DS18B20 resolution  sensors.requestTemperatures();                                 // Read temp from DS18B20 sensors  tempValue = sensors.getTempC(temp) + calibration;              // Apply calibration value  minTemp = tempValue;                                           // Preset min marker  maxTemp = tempValue;                                           // Preset max marker} void loop () {// Get temperature from DS18B20  sensors.requestTemperatures();                                 // Read temp from DS18B20 sensors  tempValue = sensors.getTempC(temp) + calibration;              // Apply calibration value  if (tempValue < minTemp && tempValue > -100) {                 // Check for Min temp    minTemp = tempValue;  }  if (tempValue > maxTemp) {                                     // Check for Max temp    maxTemp = tempValue;  }  lcd.setCursor(0, 0);                                           // Display info on LCD screen  lcd.print(F("Temp:     "));  lcd.setCursor(5, 0);  lcd.print(tempValue, 3);  lcd.setCursor(0, 1);  lcd.print(F("Max :     "));  lcd.setCursor(5, 1);  lcd.print(maxTemp, 3);  lcd.setCursor(0, 2);  lcd.print(F("Min :     "));  lcd.setCursor(5, 2);  lcd.print(minTemp, 3); // Create strings from floats for Grovestream string  char temp1[7] = {0};                                           // Initialize buffer to nulls  dtostrf(tempValue, 7, 3, temp1);                               // Convert float to string  String tempValueS(temp1);                                      // Save string  tempValueS.trim();                                             // Trim white space // Start sending data  if(millis() - gsLastSuccessfulUploadTime > gsUpdateFrequency) { // 15 minutes    Serial.println(F("Starting Upload"));    gsConnectAttemptTime = millis();                             // Set the interval timer    Serial.println(F("Wifi Connecting"));    wifiConnect();                                                 // Connect WIFI    Serial.println(F("Client Connecting"));    if (client.connect(gsDomain, 80)) {                          // Connect to grovestream server      Serial.println(F("Client Connect Successful"));      String url = "PUT /api/feed?compId=" + gsComponentID;      // Construct the string      url += "&api_key=" + gsApiKey;      url += "&t=" + tempValueS;      url += " HTTP/1.1";      client.println(url);                                       //Send the string      Serial.println(url);                                       // Print the string for debug      client.println("Host: " + String(gsDomain));      client.println(F("Connection: close"));      client.println(F("Content-Type: application/json"));      client.println();      gsLastSuccessfulUploadTime = gsConnectAttemptTime;      delay(10000);      Serial.println(F("Reading Response"));      while(client.available()) {                                    // Send host response to serial monitor        char c = client.read();        Serial.print(c);      }      Serial.println(F("Closing Client"));      client.close();                                              // Stop client      Serial.println(F("Flushing Buffer"));      client.flush();      Serial.println(F("Wifi Disconnecting"));      wifi.disconnect();      lcd.setCursor(0, 3);      lcd.print(F("WIFI SENT "));    } else {      Serial.println(F("Client Connect Failed - Closing Socket"));      client.close();                                              // Stop client      client.flush();      wifi.disconnect();      gsFailedCounter++;      lcd.setCursor(0, 3);      lcd.print(F("WIFI FAIL "));    }  }    if (gsFailedCounter > 2 ) {    Serial.println(F("Connection Retries Exceeded - Retrying in 15 minutes"));    gsLastSuccessfulUploadTime = gsConnectAttemptTime;    gsFailedCounter = 0;    delay(10);    software_Reset();  }    lcd.setCursor(14, 3);                                          // Display countdown to next update  lcd.print(F("      "));  lcd.setCursor(14, 3);  lcd.print(millis() - gsLastSuccessfulUploadTime);        // Debug info  Serial.print(F("Ram:"));  Serial.print(freeRam());  Serial.print(F(","));  Serial.print(F("Millis:"));  Serial.print(millis());  Serial.println(F(","));} void wifiConnect() {                                             // WIFI Connect routine  ConnectionInfo connection_info;  if ( wifi.init() ) {                                           // Initialize CC3000 SPI    Serial.println(F("CC3000 initialization complete"));  } else {    Serial.println(F("Something went wrong during CC3000 init!"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO CC"));  }  Serial.print(F("Connecting to SSID: "));                       // Connect using DHCP  Serial.println(ap_ssid);  if(!wifi.connect(ap_ssid, ap_security, ap_password, timeout)) {    Serial.println(F("Error: Could not connect to AP"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO AP"));  }  if ( !wifi.getConnectionInfo(connection_info) ) {              // Gather connection details    Serial.println(F("Error: Could not obtain connection details"));    lcd.setCursor(0, 3);    lcd.print(F("WIFI NO RX"));  } else {    Serial.print(F("IP Address: "));    for (i = 0; i < IP_ADDR_LEN; i++) {      Serial.print(connection_info.ip_address[i]);      if ( i < IP_ADDR_LEN - 1 ) {        Serial.print(".");      }    }    Serial.println();    lcd.setCursor(0, 3);    lcd.print(F("WIFI CONN "));  }} int freeRam() {                                                  // RAM monitor routine  extern int __heap_start, *__brkval;   int v;   return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval); } void software_Reset()// Restarts program from beginning but // does not reset the peripherals and registers{  asm volatile ("  jmp 0");  }    Grovestreams Configuration Grovestreams is actually quite simple to configure considering the flexibility and power of the platform. I will not dive into all the nitty gritty details here but I will show you the config screens for the temp sensor and alarms. To start you have to sign up for Grovestreams and get your API Key. Enter it into the code where shown.   Create a component called "Arduino". Add a new stream and configure it as shown.   You can now start up the Arduino and you'll see new data after refreshing the screen in 15 minute intervals.   Now let create an alarm event that sends you an email when the temp drifts high or low. Create a new Event. Type is "Condition Event". Configure as shown. This tells Grovestreams to email you when the temp is above 24C or below 20C.   But what if your internet goes down. Let's create another alert that sends you an email when Grovestreams doesn't hear anything from the Arduino for more than 2 hours. Create a new Event. Type is "Latency Event". Configure as shown.  
    Here's an interesting graph comparing Aqueon Pro 100 to the Eheim Jager 100. I would have preferred to use the Aqueon as it is shorter and fits the tank better but the Eheim does a way better job of regulating temp.   If you want to build an over-glorified thermometer for yourself and need help, don't hesitate to message me.    If you want to see the exact temperature of my shrimp tank right now. If you see gaps or no data, it's because my wife likes to turn off the WIFI router when no one is using the internet. The CC3000 module doesn't handle losing connectivity very well. As soon as I can run an ethernet cable to the garage, I'm going to swap the CC3000 for a W5100 wired ethernet module.  
    If you want to see how far you can really take it. Look at my Aquaponics setup. And more recent
  3. Like
    eozen81 reacted to Cappie49 in Post Your Shrimp Pics   
    Hope these guys dont turn black




  4. Like
    eozen81 reacted to mayphly in Post Your Shrimp Pics   
    Here's ome of my aura tibee just hanging out. I should have some for sale pretty soon. They've been breeding non stop.




  5. Like
    eozen81 reacted to phreeflow in Sulawesi Dream (Cardinal and Poso Snails)   
    Great pics...very artistic and I love the filter design
    Sent from my iPhone using Tapatalk
  6. Like
    eozen81 got a reaction from igoritto in Sulawesi Dream (Cardinal and Poso Snails)   
    Hi huys,
     
    I am from istanbul, Turkey and wanted to introduce my Sulawesi Tank in which I have got my Cardinal shrimps and poso rabbit snails. I have been getting babies from my cardinals. It's been approx 4 months after setting up this tank and I had bought 10 Cardinal babies at first. I believe 6 or 7 of them survived and after 2 months I saw my first Cardinal babies. And I can see that my babies are growing up without no issue (fingers crossed).
     
    At the first weeks I had welcomed them, they were so hiding behind rocks and wood but after they got berried and babies hatched they got more and more courageous and showed up and I also removed some rocks from my tank to make sure they don't get used to hiding. I also see lots of time my cardinals on my poso snails which I believe Poso snails is something relief for cardinals. That's why I recommend everyone to have also poso snails if they wanna keep cardinals. 
     
    My water is 350 microsiemens, pH 7.5 and temp 27 C. I have been using Sulawesi Mineral 7.5 for my RO water. %10 Water Change weekly. As the numbers of my cardinals are getting higher I started to prepare a new tank which is 75 liters (cycling now)

    45 liters tank
    HMF Filter with air pump and heater behind
     
    Here are pics and videos

    Regards
    Emre
     
     










  7. Like
    eozen81 got a reaction from Edwardnah in Sulawesi Dream (Cardinal and Poso Snails)   
    Hi huys,
     
    I am from istanbul, Turkey and wanted to introduce my Sulawesi Tank in which I have got my Cardinal shrimps and poso rabbit snails. I have been getting babies from my cardinals. It's been approx 4 months after setting up this tank and I had bought 10 Cardinal babies at first. I believe 6 or 7 of them survived and after 2 months I saw my first Cardinal babies. And I can see that my babies are growing up without no issue (fingers crossed).
     
    At the first weeks I had welcomed them, they were so hiding behind rocks and wood but after they got berried and babies hatched they got more and more courageous and showed up and I also removed some rocks from my tank to make sure they don't get used to hiding. I also see lots of time my cardinals on my poso snails which I believe Poso snails is something relief for cardinals. That's why I recommend everyone to have also poso snails if they wanna keep cardinals. 
     
    My water is 350 microsiemens, pH 7.5 and temp 27 C. I have been using Sulawesi Mineral 7.5 for my RO water. %10 Water Change weekly. As the numbers of my cardinals are getting higher I started to prepare a new tank which is 75 liters (cycling now)

    45 liters tank
    HMF Filter with air pump and heater behind
     
    Here are pics and videos

    Regards
    Emre
     
     










  8. Like
    eozen81 reacted to Ch3fb0yrdee in Tibee Rack   
    Hey mate,
     
    Here's what the lamp lights I got from Japan looks like. This isn't the final home for these lights, but as I had time to setup the hangbar for another fixture, I figured I'd clamp them on and show you.
     

     
    It's pretty sexy. Color is that gunmetal silver, it's pretty slick. I'm planning on swapping out the bulbs with the Philips Hue and have complete control over the lighting. 
  9. Like
    eozen81 reacted to Hunter in Sulawesi Dream (Cardinal and Poso Snails)   
    Very nice Setup!
    What do you feed them?
    I am just trying to get an idea of variety that people use.
    I use SL-Aqua - Snowflake Food
     
    Thank you.
  10. Like
    eozen81 got a reaction from Edwardnah in Sulawesi Dream (Cardinal and Poso Snails)   
    Thank you guys. Yes, Their feet are always on job  I believe that is the most spesific feature seperating them from other type of shrimps. Below video is not mine but I just wanted to share it here so that you can have the real pleasure of feeding Cardinal   I don't know how this guy did this but my cardinals are not so social as in this video 
     

  11. Like
    eozen81 got a reaction from sewoeno in Taiwan Shrimp Tank (84 Liters)   
    28th day of pregnancy of my Blue Shadow Mosura. Close up video 
     

  12. Like
    eozen81 got a reaction from Edwardnah in Taiwan Shrimp Tank (84 Liters)   
    Hi guys,

    Cheers from Istanbul/Turkey

    After I got successful about my Cardinal tank (you can see the journal link from my signature) I decided to take my chances with Taiwan Bee shrimps. It was long research period that I spent to make sure building the tank with the best conditions as much as possible I could.

    Size: 70x35x32h (84 liters)
    Filter System:
    - HMF Filter
    - Sunsun Hw 603 B Mini Cannister Filter
    - Undergravel Filter (PoweredWith Air Pump)
    Lighting: Daylight, blue and white LED
    Water chemistry: RO water + GH+ Mineral
    Substrate: ADA Amazonia Normal type (1 package aka 9 liters)
    Others: Mangrove, Mini Java Fern, Indian almond and some other seasonal leaves, Borneo Wild Bee Ball

    1st days setup: 05/10/2014
    pH 5.3 
    TDS: 220 microsiemens
    GH: 6-7
    kH: 1
    Temp: 21.5 C
     
    - Since I had used HMF Filter (because it makes maximum bio area) I had to use high density sponge to make sure shrimplets will not pass through the sponge. Here below you can see the sponge I used:
     


    - For the substrate:
    Bottom 0: I had used Borneo Wild Minerax and Enlive at the bottom
    Bottom 1:Undergravel filter
    Bottom 2: A thin mosquito net to make sure shrimplets will not go to the bottom
    Bottom 3: Sera Siporax Bio Ring
    Bottom 4: ADA Amazonia Normal


    The tank is now only 2 days old and in cycling period. I want it to cycle around 6-8 weeks but not sure If I should do water changes on a weekly basis to make sure ammonia to down or put a guppy into it and no water changes for 2 months or something, what do you propose?
     
     
    The other set up pictures are below. I will keep you guys posted about the progress.
     
    Regards
    Emre














  13. Like
    eozen81 got a reaction from Steve R. in Taiwan Shrimp Tank (84 Liters)   
    28th day of pregnancy of my Blue Shadow Mosura. Close up video 
     

  14. Like
    eozen81 reacted to Shrimple minded in Taiwan Shrimp Tank (84 Liters)   
    Awesome momma Eozen.  What exactly is she chowing on in the video?..........snail shells?  
  15. Like
    eozen81 reacted to DETAquarium in Taiwan Shrimp Tank (84 Liters)   
    Perfect! Can't wait to see the shrimplets. Did you breed Mosura with anything specific?
  16. Like
    eozen81 reacted to DETAquarium in What happens when I breed a panda shrimp and bkk one strike   
    The best part of keeping and breeding Taiwan Bees are the offspring you receive. They will be all TBs, but honestly you never know what your going to get. I have never purchased Wine Reds, and only kept Pandas, BKK, Shadow Pandas, and Blue Bolts, now I have 5 Wine Reds.
  17. Like
    eozen81 reacted to mayphly in Mayphly's Pinto Journal   
    Here's a quick update on my pinto project
     

     
     
    Her offspring looking all sexy and stuff!!!
     

     
  18. Like
    eozen81 reacted to maylee in GOOD suction cups?   
    I have to credit this to hmoob thor on youtube. I remember watching his video on using magnet clips instead of the suction cups
     

     
    That might be one option perhaps?
     
     
    edit - I just searched for this product on amazon and at $9, it's more expensive than I thought. Hmmm. Back to the drawing board
  19. Like
    eozen81 reacted to dukydaf in Hello from Germany   
    Danke schön!
     
     I am active on other english forums which are also centered on a N American population. I like how friendly and helpful people are. Also, the fact that you are open minded helps discover new ideas.
    Hope I can give the community something after I learn my part.
     
    Thank you again for the warm welcome.
  20. Like
    eozen81 reacted to dukydaf in Hello from Germany   
    I am a graduate biology student, mainly focusing on microbiology. Currently doing a master degree. I have been maintaing aquarium on and off since 7 years old . My main interest are planted aquarium, however nowadays "you can't have one without the other, "shrimps and plants .
     
    Onward to aquariums... On a student bugdet and with rental aparments, I only have a 30L (7.5g) nano cube, high light, co2 and EI enriched. The aquarium is now more than 1 month old.  I have 8 Boraras brigittae  and 3 Ottos. Shrimp wise I am only a beginner so I stared with Sakura RCS, after which came painted red RCS and Blue tigers.
     

     
    Looking forward to learn more stuff from your experience.
     
    Regards,
    Mike
  21. Like
    eozen81 reacted to mayphly in Differences between German and Taiwan Pintos   
    Someone posted this on fb today and I thought I'd share it here. If your into pinto shrimp you'll definitely want to check this out. Also, watch Astrid Weber's shrimp video towards the bottom of the article.
     
    http://shrimpstate.com/classification-of-pinto/
  22. Like
    eozen81 reacted to Shrimple minded in Shrimple shrimping   
    Update time........checking my calendar, the cycle completed in 22 days.  I've performed several 50+% water changes to flush nitrates, and one 90% water change 5 days ago in preparation for new-arrival shrimp (as well as a 50% water change last night).  Controsoil is keeping pH steady between 6.2 and 6.3 (currently 6.25).  
     
    I've had a bout of the green fruit-looking flies, which I battled with 4 pristella tetras.  I've since battened up the hatches on my glass cover, and redirected my eheim outflow for more surface agitation.  As mentioned in a previous post, I've also tried "trapping" the flies with apple-cider vinegar, but so far this has yielded zero results.  I'm pretty sure the flies are no longer an issue, but I'm still open to anyone's ideas if they have a good way to knock them out.
     
    I also have some new friends that I believe are nematodes, which I'm hoping aren't an issue, as discussed previously.  I don't have a good way to shoot macro video currently, but once I do I plan to post something so I can have verification.  They don't have pointy heads, and generally just float in the current, occasionally swimming with a "figure-8" movement.  Their numbers dropped significantly when the tetras were in the tank, but once the fish were removed I seem to notice a few more.  The several massive water changes also dropped their numbers but didn't remove them altogether.  I'd also love to hear anyone's input on this topic, please.
     
    Now on to the fun part.    Tonight I received some mischlings/bluebolts/shadowpandas from Shrimpscales, who was awesome to do business with, and has great shrimp.  All were drip acclimated over 3 hours, and seem to love the new digs.  None are lethargic, all are milling about, seem to be eating from pretty much everywhere.  The coloration of these shrimp are beyond my expectations.......I was mentally prepared for "shipping stressed" shrimp, these are nothing of the sort.  Great variety of coloration and patternization on the mischlings, and the TBs are just fantastic.  Pictures below:
     

     

     

     

  23. Like
    eozen81 reacted to Ch3fb0yrdee in Post Your Shrimp Pics   
    Such beautiful Blue Bolts... Loving the Mosura Blue Bolts!
  24. Like
    eozen81 got a reaction from Amyers22 in Post Your Shrimp Pics   
    These is my Cardinal mama with the eggs
     

  25. Like
    eozen81 reacted to mayphly in Mayphly's New Shrimp Rack   
    I picked up a few things today. I went with 3/4 ply. I think I'm going to paint them and throw a coat of wbpu. I also picked up some pvc and fittings for the air system. I just threw the lights up to see what they'll look like. They have 2 settings for high light and low light. If I just hang them on "S" hooks they sit 7" above the tanks. They'll be easy to adjust with a bit of chain. I'm going to drape black visqueen behind the rack. I think the tanks will pop out more. I know it doesn't look like much now but here's a few pics anywho.[emoji1][emoji1][emoji1]
    Sent from my iPhone using Tapatalk
×
×
  • Create New...