Волонтерское

МЕТЕОРОЛОГИЧЕСКОЕ ДВИЖЕНИЕ

Изучите технологии Интернета вещей и используйте для мониторинга погоды!

ПРИСОЕДИНИТЬСЯ ПРЯМО СЕЙЧАС

14 000 волонтеров

Присоединяйтесь к сообществу добровольных наблюдателей за погодой, чтобы научиться лучше понимать природу

5 наставников

Преподаватели и студенты университетов расскажут о современных технологиях и помогут создать первое цифровое устройство

1 ресурсный центр

Современная площадка для прототипирования и разработки устройств мониторинга атмосферы

Кто же такие метеоволонтеры?

Каждый из нас интересуется погодой, чтобы узнать температуру воздуха и возможность выпадения осадков. Эту информацию для нас добывают профессиональные метеорологи, измеряющие температуру на метеостанциях и вычисляющие прогноз погоды с помощью суперкомпьютеров.

Однако метеостанций крайне мало (одна на крупный город) и получить более точную информацию о локальной погоде можно с помощью метеорологов-добровольцев. Они используют цифровые датчики температуры и влажности воздуха, количества осадков и качества воздуха, подключенные к сети Интернет.

Метеоволонтер - это каждый из нас, кто освоил технологию Интернета вещей, сам изготовил датчик и регулярно проводит измерения параметров атмосферы.

Overview

Хочу стать метеоволонтером

Дистанционные занятия

по цифровой метеорологии

Установка Arduino IDE в операционной системе Windows
Шаг 1

Загрузите файл https://downloads.arduino.cc/arduino-1.8.5-windows.exe, который позволит автоматически установить Arduino IDE и необходимые драйверы с официального сайта .

Шаг 2

Запустите загруженный файл arduino-1.8.5-windows.exe двойным щелчком мыши.

Шаг 3

В появившемся окне "Arduino Setup: Installation Options" отметьте все пункты "галочками" и нажмите кнопку "Next".

Шаг 4

В появившемся окне "Arduino Setup: Installation Folder" название каталога установки можно оставить без изменений и просто нажать на кнопку "Install".

Шаг 5

После окончания процесса загрузки нажмите на кнопку "Close".


Начальная настройка
Шаг 1

Установите Python 2.7. Для этого загрузите файл python-2.7.14.msi со официального сайта https://www.python.org/downloads. Запустите загруженный файл двойным щелчком мыши и следуйте инструкциям. При установке выберите опцию "Install for all users".

Шаг 2

Установите Git. Для этого загрузите файл Git-2.16.1.4-32-bit.exe с официального сайта. Запустите загруженный файл двойным щелчком мыши и следуйте инструкциям.

Шаг 3

Запустите Git GUI, выберите пункт меню "Clone Existing Repository".

Шаг 4

В появившемся окне в поле "Source Location" укажите https://github.com/espressif/arduino-esp32.git , а в поле "Target Directory" укажите <Путь_к_каталогу_Arduino_IDE>/hardware/espressif/esp32. Нажмите на кнопку "Clone".

Шаг 5

Перейдите в каталог <Путь_к_каталогу_Arduino_IDE>/hardware/espressif/esp32/tools и запустите файл get.exe

Шаг 6

Запустите программу Arduino IDE двойным щелчком на значке , расположенном на Рабочем столе.

Шаг 7

Установите поддержку платы ESP8266. Для этого зайдите в пункт меню "File->Preferences" и в поле "Additional Board Manager URLs" введите строку:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Нажмите на кнопку "OK". Перейдите в пункт меню "Tools->Board->Board Manager...", выберите из списка плату "esp8266", укажите версию и нажмите на кнопку "Install". После завершения установки нажмите на кнопку "Close".

Шаг 8

Установите библиотеки, необходимые для работы с датчиками. Для этого зайдите в пункт меню "Sketch->Include Library->Manage Libraries...". В повившемся окне "Library Manager" выберите пункт OneWire и нажмите кнопку "Install", затем пункт DallasTemperature и нажмите кнопку "Install", затем пункт Adafruit BME280 Library и нажмите кнопку "Install", затем пункт PubSubClient и нажмите кнопку "Install", затем пункт WebSockets и нажмите кнопку "Install", затем пункт ArduinoJson и нажмите кнопку "Install". После завершения установки всех библиотек нажмите на кнопку "Close".


Работа с Arduino IDE
Шаг 1

Подключите необходимые датчики к плате и подключите плату к компьютеру с помощью USB-кабеля. Например, подключите датчик DS18B20 к плате Node MCU 1.0 или Node32S (контакт DATA к D4, контакт VCC к 3V, контакт GND к GND).

Шаг 2

Зайдите в пункт меню "Tools->Board" и укажите название вашей платы (Node MCU 1.0, Node32S или иное). Затем укажите USB-порт, к которому подключена плата. Для этого зайдите в пункт меню "Tools->Port" и выберите порт из списка.

Шаг 3

Откоройте нужный вам скетч, например, выберите пункт меню "File->Examples->DallasTemperature->Single".

Шаг 4

Для компиляции и загрузки программы в плату нажмите на кнопку со стрелкой (строка под меню, вторая слева).

Шаг 5

Для просмотра потока передаваемых через USB-порт данных запустите "Serial Monitor", нажав на кнопку с изображением увеличительного стекла (крайняя справа).

Установка Arduino IDE в операционной системе Linux

Запустите терминал нажатием клавиш <Ctrl+Alt+T>

Шаг 1

Перейдите в домашний каталог:

cd ~

Шаг 2

Скачайте архив c Arduino IDE размером около 100 Мбайт с официального сайта (в примере рассматривается 32 битная версия программы! Если нужна 64 битная версия, то в строке ниже в имене файла нужно поменять 32 на 64):

wget -O arduino-ide.tar.xz http://downloads.arduino.cc/arduino-1.8.5-linux32.tar.xz

Шаг 3

Распакуйте архив командой:

tar -xJf arduino-ide.tar.xz

Шаг 4

Удалите файл архива:

rm arduino-ide.tar.xz

Шаг 5

В текущем каталоге должен появиться подкаталог arduino-1.8.5. Перейдите в на него командой:

cd arduino-1.8.5

Шаг 6

Запустите скрипт, который создаст значок запуска Arduino IDE на Рабочем столе:

./install.sh

Шаг 7

Для получения доступа Arduino IDE к USB-портам необходимо выполнить команду:

sudo usermod -aG dialout $USER

затем следует завершить сеанс и войти в систему заново. Только после этого изменения вступят в силу.


Начальная настройка
Шаг 1

Запустите программу Arduino IDE двойным щелчком на значке , расположенном на Рабочем столе.

Шаг 2

Установите поддержку платы ESP8266. Для этого зайдите в пункт меню "File->Preferences" и в поле "Additional Board Manager URLs" введите строку:
http://arduino.esp8266.com/stable/package_esp8266com_index.json
Нажмите на кнопку "OK". Перейдите в пункт меню "Tools->Board->Board Manager...", выберите из списка плату "eps8266", укажите версию и нажмите на кнопку "Install". После завершения установки нажмите на кнопку "Close".

Шаг 3

Установите библиотеки, необходимые для работы с датчиками. Для этого зайдите в пункт меню "Sketch->Include Library->Manage Libraries...". В повившемся окне "Library Manager" выберите пункт OneWire и нажмите кнопку "Install", затем пункт DallasTemperature и нажмите кнопку "Install", затем пункт Adafruit BME280 Library и нажмите кнопку "Install", затем пункт PubSubClient и нажмите кнопку "Install", затем пункт WebSockets и нажмите кнопку "Install", затем пункт ArduinoJson и нажмите кнопку "Install". После завершения установки всех библиотек нажмите на кнопку "Close".

Шаг 4

Завершите работу Arduini IDE, выбрав пункт меню "File->Quit".

Шаг 5

Для поддержки платы ESP32 необходимо выполнить несколько команд. Запустите терминал нажатием клавиш <Ctrl+Alt+T>. Установите пакеты Pip, Git и pySerial командами:

sudo apt-get install -y python-pip git-core
sudo pip install pyserial

Шаг 6

Затем следует установить поддержку платы ESP32 последовательно выполнив команды:

mkdir -p ~/Arduino/hardware/espressif
cd ~/Arduino/hardware/espressif
git clone https://github.com/espressif/arduino-esp32.git esp32
cd ./esp32/tools/
python get.py

Шаг 7

Перейдите в каталог установки библиотеки Adafruit_BME280_Library:

cd ~/Arduino/libraries/Adafruit_BME280_Library

Скачайте файл Adafruit_Sensor.h, выполнив команду:

wget https://raw.githubusercontent.com/adafruit/Adafruit_Sensor/master/Adafruit_Sensor.h

Шаг 8

Закройте терминал, выполниив команду:

exit


Работа с Arduino IDE
Шаг 1

Подключите необходимые датчики к плате и подключите плату к компьютеру с помощью USB-кабеля. Например, подключите датчик BME280 к плате Node MCU 1.0 (контакт SCL к D1, контакт SDA к D2, контакт VIN к 3V, контакт GND к GND).

Шаг 2

Зайдите в пункт меню "Tools->Board" и укажите название вашей платы (Node MCU 1.0). Затем укажите USB-порт, к которому подключена плата. Для этого зайдите в пункт меню "Tools->Port" и выберите порт из списка.

Шаг 3

Откоройте нужный вам скетч, например, выберите пункт меню "File->Examples->Adafruit BME280 Library->bme280test".

Шаг 4

Для компиляции и загрузки программы в плату нажмите на кнопку со стрелкой (строка под меню, вторая слева).

Шаг 5

Для просмотра потока передаваемых через USB-порт данных запустите "Serial Monitor", нажав на кнопку с изображением увеличительного стекла (крайняя справа).

#include <OneWire.h>
#include <DallasTemperature.h>
#include <WebSocketsClient.h>
#include <Meteonet.h>

////////////////////////////////////////////
// Датчик DS18B20 -> ESP8266 (NodeMCU v1.0)
////////////////////////////////////////////
// DATA -> 0 (D3)
// VCC  -> 3V
// GND  -> GND


// Глобальные переменные
OneWire           oneWire(0);
DallasTemperature sensors(&oneWire);
unsigned long     rem;
unsigned long     prev = 0;
unsigned long     period = 30;
String            user  = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
String            group = "da39a3ee5e6b4b0d3255bfef95601890afd80709";
Meteonet          meteonet(user, group);
WebSocketsClient  wsClient;


// Создаем функцию для обработки ответа от сервера
void wsClientEvent(WStype_t type, uint8_t * payload, size_t length) {
    switch(type) {
        case WStype_DISCONNECTED:
            Serial.printf("[WSc] Disconnected!\n");
            break;
        case WStype_CONNECTED: {
            Serial.printf("[WSc] Connected to url: %s\n", payload);
            wsClient.sendTXT("Connected");
            }
            break;
        case WStype_TEXT:
            // Serial.printf("[WSc] get text: %s\n", payload);
            break;
    }
}



void setup() {
    // Инициализируем UART соединение на скорости 115200 бод
    Serial.begin(115200);
    delay(500);
    Serial.println();
    // Подключаем сеть Метеонет
    meteonet.begin();
    delay(500);
    // Подключаемся к серверу
    wsClient.begin("95.213.251.199", 1612, "/");
    wsClient.onEvent(wsClientEvent);
    wsClient.setReconnectInterval(1000);
    delay(500);
}


void loop() {
    // Определяем число секунд со времени предыдущего измерения
    rem = meteonet.getTimestamp() % period;
    // Если число секунд меньше предыдущего значения времени,
    // то значит, прошло времени больше периода и нужно отправлять данные
    if(rem < prev) {
        // Измеряем температуру
        sensors.requestTemperatures();
        // Берем данные с первого датчика и переводим значение в Кельвины
        double T = sensors.getTempCByIndex(0)+273.15;
        Serial.println(T);
        // Отправляем данные в сеть Метеонет
        wsClient.sendTXT(meteonet.getPayload("air", "temperature", T, "K").c_str());
    }
    prev = rem;
    wsClient.loop();
}


Наставники

из ведущих российских образовательных учреждений

Ресурсные центры

Современные ресурсные центры оборудованы 3D-принтерами, фрезерными станками, компьютерами и программным обеспечением для разработки цифровых устройств мониторинга атмосферы

Интернет вещей в метеорологии

sponsors
sponsors
sponsors
sponsors