Компьютеризированный кошачий туалет.

Mastino
Offline
Зарегистрирован: 03.12.2011

Некоторые говорят что это восьмое чудо мира.., но давайте будем реалистичны это только компьютеризированный кошачий туалет, который отсылает вам сообщение в твиттер когда кот сделает свое дело. Мы называем это MEGATRON. После получения сообщения бросая все бежите и чистите туалет, этим самым вы избежите плохого запаха в комнате. Если вы находитесь в другом районе или городе, получая сообщение, Немедленно звоните своим друзьям или родителям чтобы они решили проблему. Дополнительно я заинсталировал программу MetroTwit, она дает звуковой сигнал когда появляется новый твитт.

 

Hardware:

Arduino UNO

Ethernet shield

MQ-4 Gas Sensor

9DC adapter


#define SENSITIVITY 5 // 1 max, 20 min
#define SENSTIME 5000 // 5sec is a good time
const int SensorPin = A3; //Sensor pin.. with my ethernet shield pins A0-A2 are always HIGH(don`t know why), so I took A3.
char msg1[] = "Cat toilet is online!";  // Message after start
char msg2[] = "WARNING WARNING MEGATRON!"; //Warning message
char*msg;

#include <SPI.h>
#include <Ethernet.h>
#include <Twitter.h>            // http://playground.arduino.cc/Code/TwitterLibrary
#include <SignalFilter.h>       // http://jeroendoggen.github.com/Arduino-signal-filtering-library/
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192,192,1,4 };                                            //IP
Twitter twitter("1133881105-X3pMth1pGFFs4m133881105-X3pMth1pGFFs4mj5yt6FIZ");  //get a token at http://arduino-tweet.appspot.com/
SignalFilter Filter;
int sensorValue; 
int value_1;
int value_2;
int value_read = false;
unsigned long read_value_time;
unsigned long lastsend;
unsigned long debugtime;


void setup()
{
Filter.begin();
Filter.setFilter('b');
Filter.setOrder(1);
Serial.begin(57600); 
Serial.println("WARM UP");  
delay(60000);    // warm up time for sensor 
msg = msg1;
sendtotwitter(); // send message to twitter
}

void loop()
{
readValue();
//debug();  //if you want to see sensor value
}


void readValue()
{
sensorValue = Filter.run(analogRead(SensorPin));
if(millis() - read_value_time > SENSTIME)   
{
read_value_time = millis();
if(value_read == false)
{
value_1 = sensorValue;
value_read = true;
}
else
{
value_2 = sensorValue;
value_read = false;
}
}
if(value_1 > value_2)
{
  if(value_1 - value_2 >= SENSITIVITY)
  alarm();
}
else if(value_1 < value_2)
{
  if(value_2 - value_1 >= SENSITIVITY)
  alarm();
}
}


void alarm()  // here you can add alarm activities, in my case it is only sending message to twitter
{
if(millis() > lastsend)  // Please avoid sending more than 1 request per minute not to overload the server! My time is 200sec.
{
msg = msg2; // which one message we will send to twitter
sendtotwitter();   // Send
}
}

void sendtotwitter()
{
  Ethernet.begin(mac, ip);
  Serial.println("connecting ...");
  if (twitter.post(msg)) {
    int status = twitter.wait();
    if (status == 200) {
      Serial.println("OK.");
    } else {
      Serial.print("failed : code ");
      Serial.println(status);
    }
  } else {
    Serial.println("connection failed.");
  }  
  lastsend = millis() + 200000;
}

void debug()
{
 if(millis() - debugtime > 1000)
 {
   debugtime = millis();
   Serial.print("value_1 "); Serial.print(value_1);Serial.print("  value_2 "); Serial.print(value_2);Serial.print("  sensorValue "); Serial.println(sensorValue);
 }
}
   
   
  

 

JollyBiber
JollyBiber аватар
Offline
Зарегистрирован: 08.05.2012

А почему не PoE?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Всё понимаю, но зачем бежать к туалету, если кот в него наделал. У нас никогда проблем с запахом нет, у нас кошка почище многих людей будет. Я телике дебильная реклама, теперь еще и здесь.

Mastino
Offline
Зарегистрирован: 03.12.2011

kisoft пишет:

Всё понимаю, но зачем бежать к туалету, если кот в него наделал. У нас никогда проблем с запахом нет, у нас кошка почище многих людей будет. Я телике дебильная реклама, теперь еще и здесь.

Уважаемый если вам что-то не нравиться то: www.youtube.com/watch?v=chnkVzluvqk#t=03m33s

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Детский сад

Mastino
Offline
Зарегистрирован: 03.12.2011

kisoft пишет:
Детский сад

Если бы я сделал нло локатор который оповещал бы наступление вражеских кораблей, вы бы тоже сказали что детский сад? Скорее всего нет.. Компьютеризированный кошачий туалет не мение важное приспособление.. Думаю вам нужно более серьезно заняться решением глобальных проблем, чтобы адекватно оценивать такие грандиозные проекты.

 

Zapek@n
Offline
Зарегистрирован: 16.02.2012

Да ладно, отличный проект, состоящий из нескольких интересных подзадач - работа с ардуино, отправка сообщений по сети. Просто не надо его воспринимать слишком серьезно.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Mastino, скажите датчик MQ4 реагирует именно на запах ? Если так то какова его чувствительность ?

Araris
Araris аватар
Offline
Зарегистрирован: 09.11.2012

nestandart пишет:

Mastino, скажите датчик MQ4 реагирует именно на запах ? Если так то какова его чувствительность ?

Да-да, очень интересно ! У меня MQ4 в человеческом туалете на запах практически не реагирует, хотя находится в 15-ти сантиметрах от унитаза.

Mastino
Offline
Зарегистрирован: 03.12.2011

Во-первых вам нужен хороший кот срун :)   в спокойном состоянии значение 40-43, a кода кот наделает то значение на короткое время поднимаются до 50-60. Этого хватает чтоб определит, когда кот наделал. Чувствительность на датчики откручена до максимума.

nestandart
nestandart аватар
Offline
Зарегистрирован: 15.06.2011

Ложных срабатываний нет ? Сигаретный дым , различные освежители и т.д. ?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012
Mastino
Offline
Зарегистрирован: 03.12.2011

nestandart пишет:

Ложных срабатываний нет ? Сигаретный дым , различные освежители и т.д. ?

Ложных срабатываний нет, когда датчик находится в коробке. А так он мало чувствительный. Если дуешь газом из зажигалки он чувствует этот газ на расстоянии 5-7cm. Фигня этот датчик.. но для моего проекта идеально подходит.