Цифровой компас HMC5883L в сигнализации

soznik
Offline
Зарегистрирован: 20.09.2015

Доброго времени суток уважаемые форумчане.

Собрал датчик для сигнализации на открытие балконной двери.

состав: 1. Цифровой компас HMC5883L

             2. ESP8226-01


#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_HMC5883_U.h>

/* Assign a unique ID to this sensor at the same time */
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
float x = 0;
float y = 0;
float z = 0;
float oldx = 0;
float oldy = 0;
float oldz = 0;
 int out = 0;
 unsigned long tim ;
   unsigned long loopTime; // время таймера 



void setup ()
{
  Serial.begin(9600);
  Wire.begin(0, 2);       //  i2c bus sda,scl
  Serial.println("HMC5883 Magnetometer Test"); Serial.println("");
  
  /* включаем сенсор */
  if(!mag.begin())
  {
    /* There was a problem detecting the HMC5883 ... check your connections */
    Serial.println("Ooops, no HMC5883 detected ... Check your wiring!");
    while(1);
  }
  
  
  pinMode(3, OUTPUT);// GRIO (03) вывод на LED
  //pinMode(8, OUTPUT);
}

void loop()
{
  /* считываем координаты */ 
  sensors_event_t event; 
  mag.getEvent(&event);
 

  float x = event.magnetic.x;
  float y = event.magnetic.y;
  float z = event.magnetic.z;
  Serial.print("x: ");
Serial.print( x );
Serial.print(" y: ");
Serial.print( y );
Serial.print(" z: ");
Serial.println( z );
if (y-oldy>0.8 || y-oldy<-0.8 || z-oldz>0.8 || z-oldz<-0.8)
{out = 1;} // если изменение по координатам y & z 
           // за 0,5 сек больше чем 0,8° включаем сигнал.

if (out == 1 )
{digitalWrite(3, HIGH);  }
 
else
{digitalWrite(3, LOW);}
oldy = y ;
oldz = z ;
out = 0;
delay(500);  // задержка для изменения координат


 
}

Скетч собран на основе примера из библиотеки HMC5883

Оснсвной блок планирую организовать на модулях 

ESP8226-(12)   И  SIM-900  , питание солнечная батарея и аккумулятор.

Остался вопрос как связать 2 WI-FI модуля без домашней сети ( что-бы отвязатся от внешнего воздейсвия).

Буду благодарен любой подсказке.

 

 

duinor
Offline
Зарегистрирован: 16.01.2016

soznik пишет:

Остался вопрос как связать 2 WI-FI модуля без домашней сети ( что-бы отвязатся от внешнего воздейсвия).

Буду благодарен любой подсказке.

Один WiFi в режиме АР, а второй в режиме клиента с настройками подключения к первому

Соответственно на первом WiFi нужно запустить скрипт минисервера

soznik
Offline
Зарегистрирован: 20.09.2015

Занимаюсь ардуиной не давно. Мне бы ссылку на примерчик.