Мы программируем на языке Arduino (язык, созданный на основе языка C++).

Одной из основных задач было написать прошивку для бортового компьютера на базе Arduino UNO. Связать работу датчиков и сохранение данных. Настройить получение координат и связь со спутниками GPS и даже сделать из нашего бортового компьютера небольшой телефон, научить его отправлять данные по СМС.

Мы сторонники открытого кода и размещаем прошивку в свободном доступе для скачивания:

    iskra2-v1

Текущая версия прошивки основного бортового компьютера:

Прошивка бортового компьютера

Версия 1 прошивки бортового компьютера метеозонда Iskra2:

/*
* **************************************
* **************************************
Программное обеспечение метеорологического зонада Iskra 2
школьной лаборатории информатики
МБОУ «Школа №7» город Богородск
* **************************************
* **************************************
*/

/**************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);

}