Делаем датчик дождя с оповещением по e-mail с помощью Arduino

В этом уроке мы используем датчик дождя для определения интенсивности дождя и cгенерируем аналоговый переменный сигнал от 0 до 1024. Который также cгенерирует цифровой выход в соответствии с его заданным значением.

Когда датчик дождя обнаруживает дождь, он отправляет аналоговый сигнал на Arduino Uno Board. Arduino Uno отслеживает изменения, происходящие на датчике дождя. Когда значение датчика дождя выходит за пределы определенного уровня, наш Arduino Uno посылает некоторые команды нашему модулю GSM и модуль GSM посылает sms по нужному номеру телефона.

Шаг 1: Установка всего программного обеспечения

Шаг 1: Установка всего программного обеспечения

Установка Arduino IDE: вы можете загрузить последнюю версию Arduino IDE по этой ссылке - https://www.arduino.cc/en/Main/Software.

Шаг 2: Используемые компоненты

Шаг 2: Используемые компоненты

Для этого проекта нам понадобятся некоторые компоненты:

  1. Сенсор/датчик дождя
  2. GSM-модуль (sim 900)
  3. Arduino Uno
  4. Набор проводов/перемычек

Сенсор/датчик дождя

Модуль датчика дождя - простой инструмент для обнаружения дождя. Он может использоваться в качестве переключателя, когда капля дождя падает на сенсор, а также для измерения интенсивности осадков. Модульные функции, дождевая доска и плата управления, которые являются отдельными для большего удобства, индикатор питания и регулируемая чувствительность, потенциометр.

Аналоговый выход используется для обнаружения капель в количестве осадков. При подключении к источнику питания 5В светодиодный индикатор включается, когда на индукционной плате не происходит падения дождя, выход DO высокий. При снижении количества воды, выход DO низкий, индикатор переключателя включается. Удалите капли воды, при восстановлении в исходное состояние выйдет на высокий уровень.

GSM-модуль (sim 900)

Это совместимый с GSM/GPRS четырехдиапазонный сотовый телефон, который работает на частоте 850/900/1800/1900 МГц и который может использоваться не только для доступа в Интернет, но и для устного общения (при условии, что он подключен к микрофону и небольшому громкоговорителю) и СМС.

Внешне это выглядит как небольшая упаковка (2,4 см x 2,4 см x 0,3 см) с L-образными контактами с четырех сторон, так что они могут паяться как сбоку, так и снизу. Внутренний модуль управляется процессором AMR926EJ-S, который контролирует телефонную связь, передачу данных (через встроенный стек TCP/IP) и (через UART и последовательный интерфейс TTL) связь со схемой, сопряженной с самим телефоном.

Процессор также отвечает за SIM-карту (3 или 1,8 В), которую необходимо подключить к внешней стенке модуля. Кроме того, устройство GSM900 объединяет аналоговый интерфейс, аналого-цифровой преобразователь, RTC, шину SPI, I²C и модуль PWM. Секция радиосвязи является фазой GSM 2/2 + и является классом 4 (2 Вт) на частоте 850/900 МГц или классом 1 (1 Вт) на частоте 1800/1900 МГц.

Последовательный интерфейс TTL отвечает не только за передачу всех данных относительно уже полученных SMS и тех, которые входят во время сеансов TCP/IP в GPRS (скорость передачи данных определяется классом GPRS 10: максимум 85,6 кбит/с ), Но также и получение команд схемы (в нашем случае, исходящих от PIC, управляющих дистанционным управлением), которые могут быть либо стандартом AT, либо AT-усиленным типом SIMCom. Модуль снабжен непрерывным питанием (от 3,4 до 4,5 В) и поглощает максимум 0,8 А во время передачи.

Arduino Uno

Arduino / Genuino Uno - это плата микроконтроллера, основанная на ATmega328P (техническое описание). Он имеет 14 цифровых входов / выходов (из которых 6 могут использоваться как выходы PWM), 6 аналоговых входов, кварцевый кристалл 16 МГц, USB-соединение, разъем питания, заголовок ICSP и кнопку сброса.

Шаг 3: Описание проекта

Шаг 3: Описание проекта

В этом проекте мы используем Датчик/сенсор дождя (Raindrop Sensor) для обнаружения интенсивности дождя (Raindrop Intensity) и сгенерируем некоторые аналоговые значения. Когда датчик дождя обнаруживает интенсивность капли дождя, Arduino UNO посылает команду на модуль GSM, затем модуль GSM отправляет почту на указанный идентификатор электронной почты.

Соединение нашей схемы приведено выше. Есть две принципиальные схемы: одна для сенсора дождя с Arduino, а другая для Arduino с модулем GSM.

Шаг 4: Код для проекта

Вы можете скачать исходный код этого проекта ниже.

/*
RAIN DROP DETECTOR WITH GSM( USING SIM-900 MINI , RAINDROP SENSOR & ARDUINO UNO);

     Here We Are Using Raindrop Sensor To Detect Raindrop Intensity And Generate An Analog Varying Signal From 0 To 1024.
     It Also Generates A Digital Output According To Its Preset Value.
     When The Raindrop Sensor Detects Rain Then It's Going To Send An Analog Signal To Arduino Uno Board.Arduino Uno Monitoring The Change Happening On Raindrop Sensor.
     When The Value Of Raindrop Sensor Going Beyond A Certain Level Our Arduino Uno Sends Some At Command To Our GSM Module And GSM Module Send An SMS To The Given Phone No.


  The circuit:
   * GSM MODULE(SIM-900 MINI) 5VT(TX) CONNECTED TO PIN 9(RX FOR SOFTWARE SERIAL)
   * GSM MODULE(SIM-900 MINI) 5VR(RX) CONNECTED TO PIN 10(TX FOR SOFTWARE SERIAL)
   * RAINDROP SENSOR DO TO PIN 11
   * RAINDROP SENSOR AO TO PIN A0
   * CONNECT VCC OF RAINDROP TO 5V OF ARDUINO UNO
   * CONNECT VCC OF GSM TO 5V OF ARDUINO UNO.

 created 8 NOV 2016
 by SOUMYA RANJAN PANDA

 For any help contact info@deligence.com

 */
#include <SoftwareSerial.h>

SoftwareSerial mySerial(9, 10);  //(RX,TX)
int d=0;
void setup() {
  mySerial.begin(9600);    
  Serial.begin(9600);    
  pinMode(11,INPUT);            //FOR DIGITAL INPUT
  pinMode(A0,INPUT);            //FOR ANALOG INPUT
  delay(50);
}
void loop() {
   
	int sensorReading = analogRead(A0); //READ RAINDROP SENSOR VALUE
 
  
    	if(sensorReading<500)             //WHEN SENSOR DETACT RAIN IT'S ANALOG VALUE REDUCE
    	{            
        Serial.println("Raining");
        SendMessage();                  //SENDING SMS SIGNAL TO GSM MODULE
        while(analogRead(A0)<800);      //HOLDING STATE UNTIL RAIN STOP
      }
      
            else if((sensorReading>500)&&(sensorReading<800))   // IT IS FOR RAINWARNING 
           { 
              Serial.println("Rain Warnigitng");
           }
 
              else if(sensorReading>800)          //WHEN RAIN STOP
              {
                  Serial.println("NotRaining");
                  
              }

  delay(1000); 
}


/***************************FOR GSM SIM-900 MINI********************************/


void SendMessage()                    //SENDING SMS SIGNAL
{
  mySerial.println("AT+CMGF=1");    //SELECTING SMS Text Mode
  delay(1000); 
  mySerial.println("AT+CMGS=\"+91XXXXXXXXXX\"\r");   //PROVIDE YOUR MOBILE NUMBER
  
  delay(1000);
  mySerial.println("HELLO SIR, I AM YOUR HOUSE .IT'S RAINING OUTSIDE :)");
  delay(100);
  mySerial.println((char)26);
  delay(1000);
}

Шаг 5: Видео проекта

Полное описание проекта приведено выше в видео.

Ардуино+