Полетит? Полетит!
Если кто не знал, то в объединении доп.образования «программирование на Arduino» мы делаем проект метеозонда. Подробнее можно посмотреть тут: http://space.losev-it.ru/
Так вот, хорошие новости!
Практически завершена работа над прошивкой основного бортового компьютера метеозонда.
Конечно, пришлось заменить более точный датчик температуры DS менее точным DHT22, но работы подходят к концу!
1. Подключен GPS модуль
2. Подключен датчик BMP180
3. Подключен модуль SD карт
4. Подключен датчик температуры
В планах:
1. Добавить в скетч GSM модуль и научить его отправлять SMS с координатами
2. Подключить аккумулятор к Arduino.
3. Спаять, собрать, настроить
4. Протестировать.
Скетч прошивки:
/**************DHT*****************/
#include «DHT.h»
#define DHTPIN 7//пин подключения датчика
#define DHTTYPE DHT11 // DHT 11
//#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
/********BMP180**********************/
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
/**************ds*****************
#include <OneWire.h>
#include <DallasTemperature.h>// библиотека для работы с датчиком DS18B20
#define ONE_WIRE_BUS 13// сигнальный провод датчика
OneWire oneWire(ONE_WIRE_BUS);// создаём объект для работы с библиотекой OneWire
DallasTemperature sensor(&oneWire);// создадим объект для работы с библиотекой DallasTemperature
/*******************************SD********************/
#include <SPI.h>
#include <SD.h>
File myFile;
Sd2Card card;
void setup() {
Serial.begin(9600);
/***********DHT**************/
dht.begin();
/*****************SD********************/
Serial.print(«Initializing SD card...»);
if (!SD.begin(4)) {
Serial.println(«initialization failed!»);
}
Serial.println(«initialization done.»);
/***********bmp***********************/
bmp.begin();
delay(2000);
/********************ds*************
sensor.begin(); // начинаем работу с датчиком
sensor.setResolution(12); // устанавливаем разрешение датчика от 9 до 12 бит
/**************************************/
}
void loop() {
/************DHT*****************/
float h = dht.readHumidity();//считываем влажность
float t = dht.readTemperature();//считываем температуру
Serial.print(F(«Humidity: „));
Serial.println(h);
Serial.print(F(“Temp_outside: „));
Serial.print(t);
Serial.println(F(“°C „));
/************************************bmp************************/
Serial.print(“Temperature = „);
Serial.print(bmp.readTemperature());
Serial.println(“ *C»);
Serial.print(«Pressure = „);
Serial.print(bmp.readPressure() / 133.3); //получаем в паскалях, выводим в мм рт. столб@
Serial.println(“ mm Hg»);
Serial.print(«Altitude = „);
Serial.print(bmp.readAltitude());
Serial.println(“ meters»);
Serial.println();
delay(1000);
/*******************************ds********************
float temperature;// переменная для хранения температуры
sensor.requestTemperatures(); // отправляем запрос на измерение температуры
temperature = sensor.getTempCByIndex(0); // считываем данные из регистра датчика
Serial.print(«Temp C: „);// выводим температуру в Serial-порт
Serial.println(temperature);
delay(1000);
/*****************SD**************************/
myFile = SD.open(“data2.txt», FILE_WRITE);
myFile.print(«temp_ins: „);
myFile.println(bmp.readTemperature());
myFile.print(“alt: „);
myFile.println(bmp.readAltitude());
myFile.print(“Pres: „);
myFile.println(bmp.readPressure() / 133.3);
myFile.print(“temp_out: „);
myFile.println(t);
myFile.print(“humid: „);
myFile.println(h);
myFile.print(“___________________________»);
myFile.close();
delay(5000);
}