int lightPin= 0; //номер входа, к которому подключен фоторезистор
void setup()
{
}
void loop()
{
int light = analogRead(lightPin);
}
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup(void)
{
/* Initialise the sensor */
if(!bmp.begin())
{
/* There was a problem detecting the BMP085 ... check your connections */
Serial.print("Ooops, no BMP085 detected ... Check your wiring or I2C ADDR!");
while(1);
}
}
void loop(void)
{
sensors_event_t event;
bmp.getEvent(&event;);
if (event.pressure)
{
float pressure = event.pressure;
float temperature;
bmp.getTemperature(&temperature;);
float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA;
float altitude = bmp.pressureToAltitude(seaLevelPressure, event.pressure);
}
}
/* В примере показано использование LCD экрана 1602. */
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Параметры: Адрес устройства, размер экрана
void setup()
{
lcd.init();
// Инициализация lcd
lcd.backlight();
// Включаем подсветку
// Курсор находится в начале 1 строки
lcd.print("Hello");
// Выводим текст
lcd.setCursor(0, 1);
// Устанавливаем курсор в начало 2 строки
lcd.print("World!");
// Выводим текст
}
void loop()
{ }
// Подробнее: http://xrobot.by/modules/lcd_4_4#ixzz3vQXoFKOj
#include <SoftwareSerial.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Параметры: Адрес устройства, размер экрана
#define rxPin 2
#define txPin 3
SoftwareSerial btSerial(rxPin, txPin);
bool isDisplayingMode = true;
void setup()
{
lcd.init();
lcd.backlight();
// define pin modes for tx, rx pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
btSerial.begin(38400);
Serial.begin(38400);
Serial.println("Serial started");
lcd.print(" Waiting");
lcd.setCursor(0, 1);
lcd.print(" for connection");
btSerial.println("AT");
while (!btSerial.available());
while (btSerial.available() > 0)
char c = btSerial.read();
btSerial.println("AT+INIT");
while (!btSerial.available());
while (btSerial.available() > 0)
char c = btSerial.read();
btSerial.println("AT+INQ");
while (!btSerial.available());
while (btSerial.available() > 0)
char c = btSerial.read();
btSerial.println("AT+LINK=2014,5,191146");
while (!btSerial.available());
while (btSerial.available() > 0)
char c = btSerial.read();
}
void loop()
{
int i = 0;
char someChar[32] = {0};
// when characters arrive over the serial port...
bool availible = Serial.available();
if(availible) {
do{
someChar[i++] = Serial.read();
//As data trickles in from your serial port you are grabbing as much as you can,
//but then when it runs out (as it will after a few bytes because the processor
//is much faster than a 9600 baud device) you exit loop, which then restarts,
//and resets i to zero, and someChar to an empty array.So please be sure to keep this delay
delay(3);
}while (Serial.available() > 0);
lcd.clear();
Serial.println(i);
btSerial.println(someChar);
Serial.println(someChar);
}
lcd.setCursor(0, 0);
while(btSerial.available())
{
if (isDisplayingMode)
{
lcd.clear();
isDisplayingMode = false;
}
char c = (char)btSerial.read();
Serial.print(c);
if (c != 13 && c != 10)
lcd.print(c);
if (c == '\n')
lcd.setCursor(0, 1);
}
}
#include <SoftwareSerial.h>
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
int lightSensorPin = 0;
#define rxPin 2
#define txPin 3
SoftwareSerial btSerial(rxPin, txPin);
struct SensorData
{
float Pressure;
float Temperature;
float Altitude;
float Lightness;
void DisplaySensorData()
{
Serial.print("Light: ");
Serial.print(this->Lightness, 2);
Serial.println("%");
Serial.print("Altitude: ");
Serial.print(this->Altitude);
Serial.println(" m");
Serial.print("Temperature: ");
Serial.print(this->Temperature);
Serial.println(" C");
/* Display atmospheric pressue in hPa */
Serial.print("Pressure: ");
Serial.print(this->Pressure);
Serial.println(" hPa");
Serial.println("");
}
void DisplaySensorDataInTwoRows()
{
Serial.print("Temp: "); Serial.print(this->Temperature); Serial.println(" C");
Serial.print("Pr: "); Serial.print(this->Pressure); Serial.println(" Pa");
delay(1000);
Serial.print("Alt: "); Serial.print(this->Altitude); Serial.println(" m");
Serial.print("Light: "); Serial.print(this->Lightness); Serial.println(" %");
delay(1000);
}
void SendDataToRemote()
{
btSerial.print("Temp: "); btSerial.print(this->Temperature); btSerial.print(" C\n");
btSerial.print("Pr: "); btSerial.print(this->Pressure); btSerial.print(" hPa\n");
delay(5000);
btSerial.print("Alt: "); btSerial.print(this->Altitude); btSerial.print(" m\n");
btSerial.print("Light: "); btSerial.print(this->Lightness); btSerial.print(" % \n");
delay(5000);
}
};
void displaySensorDetails(void)
{
sensor_t sensor;
bmp.getSensor(&sensor;);
Serial.println("------------------------------------");
Serial.print ("Sensor: "); Serial.println(sensor.name);
Serial.print ("Driver Ver: "); Serial.println(sensor.version);
Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id);
Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" hPa");
Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" hPa");
Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" hPa");
Serial.println("------------------------------------");
Serial.println("");
delay(500);
}
void setup(void)
{
// define pin modes for tx, rx pins:
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
btSerial.begin(38400);
Serial.begin(9600);
Serial.println("Pressure Sensor Test"); Serial.println("");
/* Initialise the sensor */
if(!bmp.begin())
{
/* There was a problem detecting the BMP085 ... check your connections */
Serial.print("Ooops, no BMP085 detected ... Check your wiring or I2C ADDR!");
while(1);
}
/* Display some basic information on this sensor */
displaySensorDetails();
}
int counter = 0;
void loop(void)
{
/* Get a new sensor event */
sensors_event_t event;
bmp.getEvent(&event;);
SensorData data;
/* Display the results (barometric pressure is measure in hPa) */
if (event.pressure)
{
data.Pressure = event.pressure;
float temperature;
bmp.getTemperature(&temperature;);
data.Temperature = temperature;
/* Then convert the atmospheric pressure, and SLP to altitude */
/* Update this next line with the current SLP for better results */
float seaLevelPressure = SENSORS_PRESSURE_SEALEVELHPA;
float altitude = bmp.pressureToAltitude(seaLevelPressure, event.pressure);
data.Altitude = altitude;
int lightValue = analogRead(lightSensorPin);
float lightValueInPercent = 1.0 * lightValue / 1024 * 100;
data.Lightness = lightValueInPercent;
//data.DisplaySensorDataInTwoRows();
}
else
{
Serial.println("Sensor error");
}
Serial.println("");
data.SendDataToRemote();
}
Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.
Комментарии (11)