Infotex Мир Хобби
Hard&Soft => Радиолюбителю => Цифровые виды радиосвязи => Тема начата: rv1cj от 12 Ноября 2015, 14:00:40
-
Привет, есть желание сваять погодную станцию. Очередную :happy:
Хотелось бы температура, влажность, давление, направление и скорость ветра.
Температура/влажность на DHT22
Давление BMP085 (или аналог)
Ветер есть промышленный датчик. Выход раздельный для направления и скорости.
Возьмешься?
-
Игорь я так понял тебе нужно типа SmallMeteo только самоделку с поддержкой датчика ветра ???
Могу попробовать замутить на ардуине, только под руками пока ни датчиков ни платы LAN под ардуину нема.
-
Датчик я тебе отправлю.
Надо софт для ардуины написать что бы снимала показания с датчиков.
А вот в каком виде выдавать наружу :!
Может подкинешь идею?
-
Я отправлю Arduino UNO и плату Ethernet
Датчик ветра, влажность/температура
С датчиком давления пока думаю
-
Так а выход то какой у датчика ветра? Направление и сила ветра по разным портам?
Вывод в WEB думаю сделать как в SmallMeteo но нужно пробовать будет :po:
-
Так а выход то какой у датчика ветра? Направление и сила ветра по разным портам?
Вывод в WEB думаю сделать как в SmallMeteo но нужно пробовать будет :po:
Выходы разные. Скорость скажностью импульса измеряется. Направление похоже в двоичном коде.
Сам увидишь на осциле. Пробовал производителя запросить. Включили дурня.
-
Данные по датчику ветра
Velocity section: Smooth-running cup anemometer with maintenance free optical scanning of rotor movement
- Measuring range: 0.35...80 m/s (metres per second)
- Resolution: 0.11 m/s
- Linearity: 0...10 m/s: ±0.5 m/s
10...80 m/s: ±5% of measured value
Direction section: Vane consisting of polyurethane with counterweight. Optically scanned code
disk and digital transmitter (UART)
- Measuring range: 0...360° continuously
- Resolution: 8 bit (1.41°)
- Accuracy: ±3° in relation to the wind direction
-
Ну присылай :-) попробую сделать :po:
-
Купил Ethernet shield W5100, датчик влажность/температура DHT-22, датчик давления GY-68.
Плата UNO уже была. Так что на этой неделе отправлю.
-
Приехала сегодня посылка от Игоря RV1CJ :-)
Анбоксинг в фотках ;)
(http://infotex58.ru/infot/aprs/rv1cj/rv1cj_1.jpg)
(http://infotex58.ru/infot/aprs/rv1cj/rv1cj_2.jpg)
Ардуинка и остальной обвес )) Спасибо за платы TNC модема!!!
(http://infotex58.ru/infot/aprs/rv1cj/rv1cj_3.jpg)
При перевозки одно ухо всё таки отлетело ???
(http://infotex58.ru/infot/aprs/rv1cj/rv1cj_4.jpg)
Я так понял что на клей садится отлично :-)
Вообщем будем разбираться с этим хозяйством :D
-
Вообщем пока начал с "лёгкого" :-)
Web сервер работает с датчиков вывод инфы идёт, температуру снимаю с DHT22 . Остаётся анемометр....
Вывод наверное сделаю как у Павла Тюменцева в SmallMeteo.
Ну а дальше bash скрипт подпилим в OpenWRT :D
-
На данный момент вывод температуры с двух датчиков, влажность, и давление в форматах hPa и mmHg.
Вывод данных делал как в SmallMeteo в формате tiny.
IP адрес и порт подключения правим на свои значения, мои настройки 192.168.0.58:8086.
MAC адрес можно в принципе не менять если шилд подключен к роутеру :D
Текущий вариант кода:
// Метеостанция для RV1CJ, вывод инфы в формате SmallMeteo tiny.htm xDD
// 1#26.60 Температура с датчика DHT22 в C
// 2#26.80 Температура с датчика BMP085 в C
// 3#15 Влажность с датчика DHT22 в %
// 4#997 Давление с датчика BMP085 в hPa
// 5#748 Давление с датчика BMP085 в mmHg
// Ver 0.1
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // DHT 22
DHT dht(8, DHTTYPE);
// MAC придумываем от балды xDD
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF };
// IP адрес, назначаемый Ethernet shield:
byte ip[] = { 192, 168, 0, 58 };
// адрес шлюза:
byte gateway[] = { 192, 168, 0, 1 };
// маска:
byte subnet[] = { 255, 255, 255, 0 };
// Порт
EthernetServer server(8086);
void setup() {
Serial.begin(9600);
Serial.println("start");
// инициализация Ethernet shield
Ethernet.begin(mac, ip);
// запуск сервера
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
delay(1000);
dps.init();
}
void loop ()
{
EthernetClient client = server.available();
if (client) {
// an http request ends with a blank line
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (c == '\n' && currentLineIsBlank) {
// send a standard http response header
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("1#"); client.print(t); client.println(" </BR>");
client.print("2#"); client.print(Temperature085 * 0.1); client.println(" </BR>");
client.print("3#"); client.print(h , 0); client.println(" </BR>");
client.print("4#"); client.print(Pressure085 * .01, 0); client.println(" </BR>");
client.print("5#"); client.print(Pressure085 / 133.3, 0); client.println(" </BR>");
break;
}
if (c == '\n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != '\r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
}
}
Подключение датчиков:
DHT22
VCC--->5v
OUT--->D8
GND--->GND
BMP085
VCC--->3.3v
SDA--->A4
SCL--->A5
GND--->GND
Ethernet Shield W5100
Втыкаем бутербродом в Ардуину :-)
-
Вариант два! Ардуина сама коннектится на APRS сервак и кидает погодную инфу, роутер с APRX уже не нужен :D
Подключение датчиков как в предыдущем посте.
// APRS погодная станция v 0.1 made in RA4FHE xDDD
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
Ethernet.begin(mac, ip);
Serial.begin(9600);
delay(1000);
dps.init();
Serial.println("connecting...");
if (client.connect(server, 14580)) { // Ломимся на сервер xDD рекомендованный порт подключения 14580
Serial.println("connected");
} else {
Serial.println("connection failed");
}
}
void loop() {
if (client.connected()) {
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.1 filter m/15"); // Логинемся на сервер
delay (250);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72EW"); // Поехали кидать инфу на сервак
client.print(" Tmp1="); client.print(t, 1); client.print("C");
client.print(" Tmp2="); client.print(Temperature085 * 0.1, 1); client.print("C");
client.print(" Hum="); client.print(h, 0); client.print("%");
client.print(" Press="); client.print(Pressure085 / 133.3, 0); client.print("mmHg");
client.println(" **Experimental Arduino Meteo**"); // Небольшой комментарий...
delay(120000); // Данные кидаем каждые 2 минуты
}
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
while (true);
}
}
Ну и пару скринов...
(http://infotex58.ru/infot/aprs/arduino_wx_aprs.jpg)
Размеры с пачку сигарет :-)
(http://infotex58.ru/infot/aprs/ftm400_testwx.jpg)
В дальнейшем строку с данными приведу к стандарту WX APRS а пока играюсь с железом :Y:
-
Почистил код :Y:
// APRS погодная станция v 0.21 made in RA4FHE xDDD
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
Ethernet.begin(mac, ip);
delay(1000);
dps.init();
}
void loop() {
tcp();
delay(600000); //Кидаем инфу каждые 10мин
}
void tcp() {
client.connect(server, 14580);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.21 filter m/1"); // Логинемся на сервер
delay (250);
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72EW"); // Поехали кидать инфу на сервак
client.print(" Tmp1="); client.print(t, 1); client.print("C");
client.print(" Tmp2="); client.print(Temperature085 * 0.1, 1); client.print("C");
client.print(" Hum="); client.print(h, 0); client.print("%");
client.print(" Press="); client.print(Pressure085 / 133.3, 0); client.print("mmHg");
client.println(" **Experimental Arduino Meteo**"); // Небольшой комментарий...
}
-
Игорь с направлением ветра пока полная Ж.... входной формат данный на встроенный контроллер в коде Грея, выходной пока не понятен /:( По сути нужен точный протокол выходных данных, от чего "плясать"!!!! Со скоростью ветра проще.... В разработке....
-
Здравствуйте! собрал работает только в эфир не кидает!
и еще вопрос как пины на дуино поменять а4 и а5 сделать а3 и а2?
прикрутил лсд чтоб информативней было а у него а4 и а5
-
Сигналы SCL SDA с датчика можно только подключить к A4 A5 :-) В доке чётко прописано https://www.arduino.cc/en/Reference/Wire
Да и в эфир не кидает а кидает инфу на Российский APRS сервер ;)
-
я увидел фото 400 как пакет прошел?
у меня стоит igate+digi не пойму как заставить его брать инфу WX с сервера и кидать в эфир
-
А ну тут всё просто на моём основном гейте настроена ретрансляция пакетов IS to RF, то есть метеостанция кинула пакет на сервер, гейт услышал пакет в инете и ретранслировал в эфир :-)
-
IS to RF какие настройки указаны?
и еще в коде что-то не увидел где указывается что именно WX и ни что другое
-
Ну смотря на чём у Вас гейт построен, например у меня на базе роутера :-)
Формирование значка WX элементарно client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72EW"); выделил цветом
-
а я думал ошибка в координатах W /:(
есть такие настройки! третий день /:( не кидает в эфир
-
А Вы путь сделайте WIDE1-1 :xexe: у Вас настроено WIDE2-1
У меня например сделано так
<source>
source APRSIS
relay-type third-party
viscous-delay 5
via-path WIDE1-1
filter r/53.1284/45.0304/312
</source>
Фильтр настроен на радиус 312 км от моего гейта.
-
А и кстати Вы хоть пароль APRSIS тут свой прописали? client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.21 filter m/1");
А хотя вижу на сервере RA6LFJ‑2 :$
-
не кидает.... :102:
-
МММ засада я просто с WX3IN1Mini дел не имел в руках не крутил.... а я так понял эта железка вообще никакие пакеты не хочет кидать из инета в эфир???
-
сообщение кидает! а минус один вместо пароля или пароль и -1
-
Кстати после
client.println(" **Experimental Arduino Meteo**"); // Небольшой комментарий...
delay(1000);
client.stop();
Так стабильней будет работать. То есть кинет пакет и через секунду отвалится от сервера, и цикл повторится.
-
сообщение кидает! а минус один вместо пароля или пароль и -1
просто пароль
-
Спасибо! буду копать дальше...
-
Да и в настройках основного гейта фильтр хоть укажите :94: хотяб m/100 может быть и в этом причина!
-
ок!
-
Спасибо! все работает! :$ :99:
-
Отлично! :$
-
Добавил дисплей LCD1602 I2C :94:
Подключение дисплея:
Arduino LCD
VCC 5v------->VCC
GND----->GND
SDA----->A4
SCL----->A5
Собственно дисплей подключен параллельно датчику давления :-) I2C хорошая шина :xexe:
Адрес дисплея установить 0x21!!! Запаять перемычки A1, A2
Библиотеку LiquidCrystal_I2C.h качаем с помощью менеджера ардуины или ставим "руками"
Код:
// APRS погодная станция v0.22 made in RA4FHE xDDD Версия с LCD 1602 I2C
//http://infotex58.ru
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x21,16,2); // Адрес дисплея 0x21 !!!!!
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
lcd.init();
lcd.backlight();// Включаем подсветку дисплея
lcd.setCursor(0, 0); lcd.print("APRS Meteo Penza");
lcd.setCursor(0, 1); lcd.print("RA4FHE-2 2016");
Ethernet.begin(mac, ip);
delay(2000);
dps.init();
}
void loop() {
tcp();
delay(600000); //Кидаем инфу каждые 10мин
}
void tcp() {
client.connect(server, 14580);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.22 filter m/1"); // Логинемся на сервер
delay (250);
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72EW"); // Поехали кидать инфу на сервак
client.print(" Tmp1="); client.print(t, 1); client.print("C");
client.print(" Tmp2="); client.print(Temperature085 * 0.1, 1); client.print("C");
client.print(" Hum="); client.print(h, 0); client.print("%");
client.print(" Press="); client.print(Pressure085 / 133.3, 0); client.print("mmHg");
client.println(" **Experimental Arduino Meteo**"); // Небольшой комментарий...
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T1="); lcd.print(t, 0); lcd.print("C"); lcd.print(" T2="); lcd.print(Temperature085 * 0.1, 0); lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("H="); lcd.print(h, 0); lcd.print("%"); lcd.print(" P="); lcd.print(Pressure085 / 133.3, 0); lcd.print("mmHg");
delay(1000);
client.stop();
}
Скрины так себе освещение не в дугу :D
-
Я так и подключал только датчик убирал из схемы
-
Я так и подключал только датчик убирал из схемы
А барометр где висит?
-
этот датчик и был барометр.
дисплей подключать параллельно датчику давления я не рискнул
-
Я проверил работает :D Квадратная шина и рассчитана на параллельное подключение устройств
-
я и спрашивал за пины дуины А4 и А5
-
Вы не уточнили что дисплей у Вас I2C ???
-
вопрос! small meteo кидает сразу на сервер или через open wrt на сервер
-
вопрос! small meteo кидает сразу на сервер или через open wrt на сервер
Через роутер с установленным APRX
-
Добавил "Статус сообщение" :-)
Код:
// APRS погодная станция v0.22a made in RA4FHE xDDD Версия с LCD 1602 I2C
//http://infotex58.ru
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x21,16,2); // Адрес дисплея 0x21 !!!!!
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
lcd.init();
lcd.backlight();// Включаем подсветку дисплея
lcd.setCursor(0, 0); lcd.print("APRS Meteo Penza");
lcd.setCursor(0, 1); lcd.print("RA4FHE-2 2016");
Ethernet.begin(mac, ip);
delay(2000);
dps.init();
}
void loop() {
tcp();
delay(600000); //Кидаем инфу каждые 10мин
}
void tcp() {
client.connect(server, 14580);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.22a filter m/1"); // Логинемся на сервер
delay (250);
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72Ei"); // Поехали кидать инфу на сервак
client.print(" Tmp1="); client.print(t, 1); client.print("C");
client.print(" Tmp2="); client.print(Temperature085 * 0.1, 1); client.print("C");
client.print(" Hum="); client.print(h, 0); client.print("%");
client.print(" Press="); client.print(Pressure085 / 133.3, 0); client.println("mmHg");
client.println("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:> Arduino Meteo http://infotex58.ru"); // Статус сообщение
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("T1="); lcd.print(t, 0); lcd.print("C"); lcd.print(" T2="); lcd.print(Temperature085 * 0.1, 0); lcd.print("C");
lcd.setCursor(0, 1);
lcd.print("H="); lcd.print(h, 0); lcd.print("%"); lcd.print(" P="); lcd.print(Pressure085 / 133.3, 0); lcd.print("mmHg");
delay(1000);
client.stop();
}
-
Протестил с модулем ENC28J60 :-)
В коде заменить
#include <Ethernet.h>
На
#include <UIPEthernet.h>
Подключение:
Eth --->Arduino
CS ---> D10
SI ---> D11
SO ---> D12
SCK ---> D13
GND ---> GND
VCC ---> 3.3V
RESET ---> RESET
-
Ещё вариант :-) выходной формат данных по спецификации APRS WX
Код:
// APRS погодная станция v0.23 made in RA4FHE. Выходной формат данных в APRS WX
//http://infotex58.ru
#include <SPI.h>
#include <Ethernet.h>
#include <Wire.h>
#include <BMP085.h>
#include <DHT.h>
BMP085 dps = BMP085();
long Temperature085 = 0, Pressure085 = 0;
#define DHTTYPE DHT22 // Тип датчика DHT 22
DHT dht(8, DHTTYPE);
byte mac[] = { 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF }; // MAC адрес от балды
IPAddress ip(192, 168, 0, 14); // Локальный адрес
IPAddress server(194, 186, 45, 251); // IP сервера http://aprs.cqham.ru/
EthernetClient client;
void setup() {
Serial.begin(9600);
Ethernet.begin(mac, ip);
delay(1000);
dps.init();
}
void loop() {
tcp();
delay(600000); //Кидаем инфу каждые 10мин
}
void tcp() {
client.connect(server, 14580);
delay(250);
client.println("user RA4FHE-2 pass -1 vers Arduino_WX 0.23 filter m/1"); // Логинемся на сервер
delay (250);
float h = dht.readHumidity();
float t = dht.readTemperature();
dps.getTemperature(&Temperature085);
dps.getPressure(&Pressure085);
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72E_"); // Поехали кидать инфу на сервак
client.print(".../...g...");
if ((t * 1.8) + 32 >= 0)
{
client.print("t0"); client.print((t * 1.8) + 32 , 0);
}
else
{
client.print("t"); client.print((t * 1.8) + 32 , 0);
}
client.print("r...p...P...h"); client.print(h, 0);
if (Pressure085 / 10 >= 10000)
{
client.print("b"); client.print(Pressure085 / 10);
}
else
{
client.print("b0"); client.print(Pressure085 / 10);
}
client.println(" Test Meteo");
client.println("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:> Arduino Meteo http://infotex58.ru"); // Статус сообщение
delay(1000);
client.stop();
}
(http://infotex58.ru/infot/aprs/wx_data_help.png)
Спецификация
(http://infotex58.ru/infot/aprs/ra4fhe-2_wx.png)
Отображение на карте
-
Продолжаю разбираться с датчиком корабельного анемометра 879.3c фирмы Deif :-)
(http://infotex58.ru/infot/aprs/879.3c.jpg)
Внешний вид
(http://infotex58.ru/infot/aprs/879.3c.png)
Подключение к корабельному оборудованию, протокол NMEA0183, но это не облегчает задачи /:( неизвестен протокол с датчика...
ЗЫ:На современных судах юзают NMEA2000, CAN-bus, RS-485
(http://infotex58.ru/infot/aprs/ra4fhe-2_wind.png)
Погодные данные о ветре передаются тремя параметрами!!! Если один отсутствует на aprs.fi не будет информации о ветре, правда на трансивере отображение есть. То есть нельзя передавать курс без силы ветра и наоборот :-)
-
Ещё вариант :-) выходной формат данных по спецификации APRS WX
Спасибо! так более информативно!
-
Спасибо! так более информативно!
https://aprs.link/app/aprs/stations/weather-RA6LFJ-2
http://aprs.fi/weather/a/RA6LFJ-2?range=day
Погода в "картинках" :-)
-
как правильно разместить dht22?
-
интересно.... почему на aprs.fi три параметра темп.влажн.давление а в эфир отправляет все...
-
как правильно разместить dht22?
rv1cj кидал фотки как у него размещён данный датчик
интересно.... почему на aprs.fi три параметра темп.влажн.давление а в эфир отправляет все...
В эфир отправляется всё но не используемые параметры забиваются точками .../...g...t036r...p...P...h95b10052
-
Новостей нет?
-
Новостей нет?
Нее Игорь пока в ступоре, очень мало инфы по DEIF /:(
-
согласен. Я писал на DEIF так они ответили что без блока подпалубного ничего не получится. Я думаю они не сами это делали а покупали на стороне.
-
Меня в ступор вводит в описании UART /:( может на какой то не стандартной скорости гонит данные но на какой :3:
-
там нет UART все аналоговое
-
там нет UART все аналоговое
Выходные сигналы все цифровые с этой железки ;)
-
направление может быть, а скорость ШИМ
-
направление может быть, а скорость ШИМ
Если ШИМ то меняется только скваженость между импульсами а тут тупо цифровые посылки и все разные.
-
Приветствую Алексей!
Собрал метео по Вашей схеме. Есть вопрос вот по этим строчкам:
delay(1000);
client.stop();
У Вас без них Arduino "не отваливалась" самопроизвольно от T2RUSSIA?
У меня часа через 2...4 происходит "дисконнект". Автоматом потом не логинится. Приходится нажимать кнопку RESET на шильде W5100.
-
У меня часа через 2...4 происходит "дисконнект". Автоматом потом не логинится. Приходится нажимать кнопку RESET на шильде W5100.
Да всё верно, поэтому и добавил.
Я конечно не понял этого глюка поэтому пошёл по пути наименьшего сопротивления :-)
У коллеги с Ростова до сих пор работает без проблем http://aprs.fi/weather/a/RA6LFJ-2
-
Спасибо! :gentleman:
-
Спасибо! :gentleman:
Кстати с модулем ENC28J60 тож самое, долго сессию не держит.
Мож какой буфер у него переполняется? Вообщем забил на это и сделал проще :-)
-
Что-то беда какая-то. :(
засунул датчики в распределительную коробку, подпаял витой парой.
Проверил тестовыми программами - данные ардуино получает. пингую w5100 - ОК.
На t2russia не коннектится (позывной и пароль исправил в скетче на свои).
Есть мысли?
PS Отключил пока в программе BMP180. Как только "ремлю" строку dps.init (ну и соответственно дальше, относящееся к BMP180), все оживает, коннектится и передается. /:( Будем на следующих выходных "ковыряться".
-
Ну что же вы хотите датчик работает по шине I2C. Длина проводов тут сильно ограниченна. Данный датчик размещайте возле ардуины! Датчик DHT22 можно подключить метров за 6, он работает по шине 1-Wire.
-
Меня смутило, что в тестовой проге BMP180 отрабатывает "на УРА".
Ну что же вы хотите датчик работает по шине I2C. Длина проводов тут сильно ограниченна...
Спасибо за советы еще раз
-
BMP180 смело размещайте возле ардуины с него только давление берётся.
Аналогично сделано в SmallMeteo http://elephant.embedders.org/SMALLMETEONEW/smallmeteonew.html
-
Да уже термопистолетом присандалил. Коробка метра 3 от окна, длина FTP около 5 м.
Что скажете за BME280 (вроде как по Wire можно подлючить)?
-
Николай я не пойму зачем вы этот датчик на улицу хотите вытащить ???
BME280 тоже по "квадратной" шине работает а также по SPI интерфейсу https://learn.adafruit.com/adafruit-bme280-humidity-barometric-pressure-temperature-sensor-breakout/wiring-and-test
-
Приветствую!
Вот результаты и выводы "ковыряния" в понедельник вечером...
1. Строку dps.init(), как мне кажется, лучше написать в таком виде dps.init(MODE_STANDARD, 16900, true).
Взято в общем-то из стандартного примера по тестированию bmp085. Собственно интересен второй параметр: он явно указывает датчику на какой высоте он находится.
2. Долго не мог понять, почему происходит сбой датчика давления, при переходе на внешний источник питания. Оказался виноват китайский преобразователь ~220/+5 В. В общем отрезал от него разъем и подсоединил на БП, от которого запитан APRS Gate. Все нормализовалось. (надеюсь :102:)
3. Датчик BMP180 вынул из уличной коробки и подсоединил рядом с ардуиной. Правда вот теперь терзают сомнения... а может дай питание от нормального БП, он бы и заработал на длине 6 м от ардуины? Но теперь остается только догадываться. Но есть и плюс: вывел в строке комментария внутреннюю температуру около платы ардуины.
-
Николай а у вас вроде WX3in1 Mini стоит на погоду вы ещё одну погодную станцию хотите запустить?
-
Не, он у меня просто как гейт работает. К нему можно подсоединить погодные станции (разъем RS232 есть и прошивка позволяет). Но уж больно дорого они стоят. Можно видимо и с ардуины на него подать данные... но что-то не осилю сам.
-
Понял, да буржуйские погодки дорогие, а с ардуинки можно я думаю сформировать необходимые данные в порт, над только знать что формировать :D
-
На официальном сайте микросата пишут, что поддерживает следующие "погодки"
LaCrosse/Technoline WS-2300,
LaCrosse/Technoline WS-2350,
Peet Bros Ultimeter 100,
Peet Bros Ultimeter 800,
Peet Bros Ultimeter 2000,
Peet Bros Ultimeter 2100,
Davis Vantage Pro (with RS232 datalogger),
Davis Vantage Pro2 (with RS232 datalogger),
Davis Vantage Pro Plus (with RS232 datalogger),
Davis Vantage Pro2 Plus (with RS232 datalogger)
Но спецификацию не дают
-
Оставьте как сейчас :-) Нормально получилось http://aprs.fi/#!call=a%2FRW4HIF-13
А датчик влажности тож чудит я смотрю ))) Сотню сыплет, у меня аналогично на SmallMeteo.
-
У нас часа 2...3 назад шел мокрый снег, насыпало сантиметров 10, с крыши сосульки висят. Возможно это как-то повлияло.
-
А ну тогда понятно :-) но всё равно этот датчик не внушает мне доверия ))
-
Есть на примете что-то более "путное"?
-
Ага http://www.chipdip.ru/catalog-show/humidity-sensors/ только цены космические
-
Заказал датчик BH1750, судя по спецификации APRS Meteo можно отдавать данные о освещённости :po:
Датчик работает по "квадратной шине" ;) I2C
Покупал тут http://www.ebay.com/itm/311431379611
-
Подключил "бошку" DEIF к логическому анализатору :-) пробую подобрать протокол....
-
Подключал датчик освещённости, к сожалению данные выводятся только на aprs.fi в виде графика и больше нигде не фигурируют ??? Единицы измерения W/m2.
-
Забабахал микро APRS погодную станцию на модуле ESP8266 :D Размеры чуть больше флешки не считая датчика DHT22.
На выходных залью проект :-)
-
Собственно вот что получилось :-) Все ножки ESP8266 подтягиваем к 3.3v через резисторы 4.7-10к. Питание модуля 3.3в я применил LM1117-3.3, схему не вижу смысла рисовать, подключение штатное ))) датчик вешаем на GPIO2 . Скетч в аттаче.
(http://infotex58.ru/infot/esp/micro_aprswx.jpg)
(http://infotex58.ru/infot/esp/micro_aprswx_1.jpg)
(http://infotex58.ru/infot/esp/micro_aprswx_2.jpg)
-
Добавил барометр BMP085
Подключение:
DHT22 ----> GPIO1
BMP085 SDA --->GPIO0, SDA ---->GPIO2
Питание датчиков 3.3v
-
Сделай по-нашему в мм/ртут.столба Бар-ы это для не для нас..
-
Сделай по-нашему в мм/ртут.столба Бар-ы это для не для нас..
Буржуйский стандарт :D
-
Добавил вывод температурного сенсора BMP085 и высотомер :-)
-
Алексей, можно как-то сделать самостоятельную корректировку показаний атм.давления? Ну чтоб к данным полученным с датчика автоматом прибавлялось своё корректирующие значение и отправлялось в апрс сеть. Типа получили 997,2 mbar прибавилась моё значение 10,2mbar и отправилось.
Спасибо.
-
Находите в коде строчку p = p / 10;
и добавляем корректировку p = (p / 10) + значение поправки;
-
Чёто видимо у мну не так.... :-[ Строчку такую сделал, но показание баро не поменялись :3: вот так ввёл p = (p / 10) + 18;
-
Чёто видимо у мну не так.... :-[ Строчку такую сделал, но показание баро не поменялись :3: вот так ввёл p = (p / 10) + 18;
Странно... RAW пакеты что говорят? Может мало прибавили?
-
Парсер данных SmallMeteo в сеть APRS. ESP8266 получает данные со SmallMeteo, парсит, и формирует данные для отсылки на сервер APRS. Для модуля ESP нужно только питание остальное он сделает сам :-)
(http://infotex58.ru/infot/sm_to_aprs.jpg)
Большое спасибо Михаилу aka TurangaLeela за парсинг данных :$
-
Чёто видимо у мну не так.... :-[ Строчку такую сделал, но показание баро не поменялись :3: вот так ввёл p = (p / 10) + 18;
Странно... RAW пакеты что говорят? Может мало прибавили?
Всё норм, наблюдаю, дествительно надо мониторить raw. на карте aprs.fi слоупок
-
Всё норм
Позывной если не секрет можно в ЛС :-)
-
Всё норм
Позывной если не секрет можно в ЛС :-)
RZ3DHN... Великий и ужасный :xexe:
-
RZ3DHN... Великий и ужасный :xexe:
Ага понял :Y:
-
Сынульке понравился анемометр :-)
(http://infotex58.ru/infot/ra4fhe_n.jpg)
-
Вобщем, тоже наваял метео для апрс )) Ардуина + QAPRS + BMP180 + DHT22 и Баофенг. Инфо и скеч на гитхабе - https://github.com/Toni43/QAPRS-Meteo
-
Спасибо Антон!!! Забрал в коллекцию ;)
-
Проверил работу с датчиком BMP280 китайцы позиционируют данный датчик как замену BMP085 , BMP180
Библиотеку и скетч приложил.
Подключаем на хардварный I2C, SCL GPIO_5 SDA_GPIO_4 (D1, D2) и подтягиваем эти сигналы к VCC 3.3V через резисторы 4,7-5,1кОм. Сигнал CSB датчика вешаем на VCC 3.3V
Работа проверенна на NodeMCU V0.9
-
Можешь скетч подпилить под станцию WXT-520
http://www.vaisala.com/Vaisala%20Documents/User%20Guides%20and%20Quick%20Ref%20Guides/M210906RU-C.pdf
описание строки на стр. 70
это пример, скопировал из Putty
0TX,Start-up
0R0,Dn=060D,Dm=086D,Dx=138D,Sn=0.0M,Sm=0.2M,Sx=0.4M,Ta=25.0C,Ua=26.0P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=060D,Dm=086D,Dx=138D,Sn=0.0M,Sm=0.2M,Sx=0.4M,Ta=25.0C,Ua=26.1P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=204D,Dm=312D,Dx=047D,Sn=0.7M,Sm=1.2M,Sx=2.1M,Ta=25.0C,Ua=26.1P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=204D,Dm=312D,Dx=047D,Sn=0.7M,Sm=1.2M,Sx=2.1M,Ta=25.0C,Ua=26.2P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=215D,Dm=302D,Dx=134D,Sn=0.3M,Sm=0.7M,Sx=1.4M,Ta=25.0C,Ua=26.5P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=215D,Dm=302D,Dx=134D,Sn=0.3M,Sm=0.7M,Sx=1.4M,Ta=25.0C,Ua=26.8P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=185D,Dm=254D,Dx=280D,Sn=0.0M,Sm=0.3M,Sx=1.2M,Ta=25.0C,Ua=29.8P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=185D,Dm=254D,Dx=280D,Sn=0.0M,Sm=0.3M,Sx=1.2M,Ta=25.0C,Ua=30.3P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=190D,Dm=215D,Dx=237D,Sn=0.5M,Sm=0.9M,Sx=1.2M,Ta=25.0C,Ua=32.7P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=190D,Dm=215D,Dx=237D,Sn=0.5M,Sm=0.9M,Sx=1.2M,Ta=25.0C,Ua=32.8P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
0R0,Dn=252D,Dm=299D,Dx=334D,Sn=0.1M,Sm=0.3M,Sx=0.6M,Ta=25.0C,Ua=32.7P,Pa=1021.1H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
строку
0TX,Start-up
игнорируем, отображается при включении
протокол RS232
8N1
скорость как тебе удобнее от 1200 до 115200
Еденицы измерения могу менять, как тебе удобнее.
-
Привет Игорь. Возможность есть на чём проверить, ардуина и остальные железки у меня :-)
-
едуть из поднебесной
-
едуть из поднебесной
отлично :$
-
пробовал запрограммировать по запросу. Не получается, нет ответа. Может что не так делаю /:(
-
пробовал запрограммировать по запросу. Не получается, нет ответа. Может что не так делаю /:(
Делаем проще, если пришли данные в порт тогда обрабатываем и кидаем в APRS, интервал то выдачи данных в порт можно регулировать :-)
-
Привет, подключил станцию к старому компу с 98 виндой. Все работает по запросу.
на команду
0R0<cr><lf>
выдает строку
0R0,Dn=060D,Dm=086D,Dx=138D,Sn=0.0M,Sm=0.2M,Sx=0.4M,Ta=25.0C,Ua=26.0P,Pa=1021.2H,Rc=0.00M,Rd=0s,Ri=0.0M,Id=RV1CJ
А пробовал до этого на 7
-
В праздники делать нечего будет займусь кодом, мож железо к тебе приедет будет на чём потестить :-)
-
Игорь настрой параметры вывода так.
Sm мили/ч
Sx мили/ч
Pa бар
Ta F
Rc дюймы
Ri дюйм/ч
Rp дюйм/ч
Скинь потом вывод в порт.
-
0R0,Dn=125D,Dm=180D,Dx=249D,Sn=0.1S,Sm=0.8S,Sx=2.3S,Ta=74.1F,Ua=28.9P,Pa=1.0171B,Rc=0.001I,Rd=0s,Ri=0.00I,Id=RV1CJ
0R0,Dn=111D,Dm=124D,Dx=141D,Sn=1.3S,Sm=2.1S,Sx=2.8S,Ta=74.1F,Ua=31.3P,Pa=1.0170B,Rc=0.000I,Rd=10s,Ri=0.07I,Id=RV1CJ
Это настройки текущие
(http://s019.radikal.ru/i605/1612/6c/cfea4237b106.jpg)
(http://s019.radikal.ru/i621/1612/31/9669c21de004.jpg)
(http://s020.radikal.ru/i703/1612/89/2047c8523c5f.jpg)
-
У тебя дома как тепло :D
Данные забрал.
-
Парсер данных SmallMeteo в сеть APRS. ESP8266 получает данные со SmallMeteo, парсит, и формирует данные для отсылки на сервер APRS. Для модуля ESP нужно только питание остальное он сделает сам :-)
(http://infotex58.ru/infot/sm_to_aprs.jpg)
Большое спасибо Михаилу aka TurangaLeela за парсинг данных :$
У меня есть WEMOS D1 -скомпилировалось, а что сделать, чтобы себя прописать?
-
Получилось! Погоду правда берёт от тебя ))) а как бы на самом модуле датчики прикрутить???
С наступающим новым годом!
Здоровья и чтобы сынуля радовал и к нашему делу приобщался!!!
-
Получилось! Погоду правда берёт от тебя ))) а как бы на самом модуле датчики прикрутить???
С наступающим новым годом!
Здоровья и чтобы сынуля радовал и к нашему делу приобщался!!!
В этой теме есть несколько вариантов ESP8266 + датчики, читайте всё тему)). С новогодними праздниками!
-
Победил, сделал на WeMos D1, bmp-280 у меня дохлый пришёл, переделал под DS18B20, распиновка нужна другая иначе не работало )))
Доступно на aprs.fi (ra6ecc), теперь вот народный мониторинг добавить туда жеж
-
Роман видно Вас :$ на народный мониторинг я не делал нужды такой не было.
-
на народный мониторинг я не делал нужды такой не было.
Так хотелось бы двойного назначения так сказать, приехали датчики AM2320, температура + влажность, такой не юзали?
Хочу добавить, условия одни и те же, посмотреть разность температур да и влажность можно в aprs закидывать или не???
на народный мониторинг сам пока не одолел, заодно хочу и в свою базу закидывать тем же методом
В программировании на С не айс, сложно однако
-
привет, пытаюсь скомпилить прошивку для погодной станции. Версия 1, температура и влажность, компилится без проблем. Версии 2 и 3 с датчиком давления ругаются.
(https://b.radikal.ru/b17/1801/85/b51051b690aa.jpg)
-
Ура! :94: Скомпилировал. Переустановил библиотеку Adafruit_BMP085 /:( Завтра буду пробовать шить модуль.
Станцию планирую поставить в наш охотничий дом, что бы знать к чему готовиться в плане морозов. :98:
-
Сегодня увидим? Кстати сейчас есть поинтересней датчик SI7021 https://www.silabs.com/documents/public/data-sheets/Si7021-A20.pdf
В обзорах пишут что корректно влажность меряет ;)
-
Проблема с влажностью известна - питание. Ставишь по питанию резистор и все работает, только питать надо 5 В.
Этот датчик не пойдет, температуру меряет от -10, у нас в деревне до -30 бывает, а мне температура важна, как одеваться на охоту :104:
Я прикупил 2301, буду с ним пробовать.
-
Он от -40 но при этом слегка падает точность, на график в мануале глянь стр.9
-
Удалено
-
Прошил модуль ESP, датчики не подключал. Модуль моргает синим светодиодом с переодичностью 9-10 сек. На роутере вижу что приконнектился. А дальше все, на сайте APRS.FI не вижу отметки. Или пока датчики не подключу не будет работать? И не могу подключиться по СОМ порту.
-
Собрал метеостанцию для установки в охотничьем домике.
Отображение высоты убрал.
Работать будет через GSM модем. С помощью знакомых подключил корпоративный тариф, 80 руб. в месяц.
Модуль ESP8266 и стабилизатор 3.3.В отделены перегородкой от модуля давления, что бы уменьшить погрешность измерения температуры внутри помещения.
Но все равно завышает на 2.5-3 градуса, сказывается нагрев микросхемы на самом модуле давления.
(https://a.radikal.ru/a37/1801/48/b8319497927b.jpg)
(https://b.radikal.ru/b40/1801/49/12829c21cc49.jpg)
(https://b.radikal.ru/b15/1801/80/06187141a19a.jpg)
(https://a.radikal.ru/a41/1801/38/4376cc04f44e.jpg)
(https://b.radikal.ru/b19/1801/4f/7689451a43bc.jpg)
-
Руки не из Ж :D очень приятно что проект повторяют!
PS:Игорь в воскресенье еду в Москву заценю работу APRS на 144.800MHz :mp3:
-
Парсер данных SmallMeteo в сеть APRS. ESP8266 получает данные со SmallMeteo, парсит, и формирует данные для отсылки на сервер APRS. Для модуля ESP нужно только питание остальное он сделает сам :-)
(http://infotex58.ru/infot/sm_to_aprs.jpg)
Большое спасибо Михаилу aka TurangaLeela за парсинг данных :$
Добрый день! Подскажите сам ход программы. я что-то туплю... данные с сайта берем, конектимся к апрс кидаем данные, ждем пол часа (держим связь с сервером апрс) затем опять читаем данные с сайта и кидаем в эфир? при этом с Т2 russia разрыва нет?
-
Данные кидает и отключается, смысла нет держать соединение.
-
Надо попробовать например с http://api.openweathermap.org брать и кидать в арпс. Брать и отображать на lcd и serial получилось. В апрс пока нет....
-
Добрый день! вопрос по коду...
client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72E_"); // Поехали кидать инфу на сервак
client.print(".../...g...");
if ((t * 1.8) + 32 >= 0)
{
client.print("t0"); client.print((t * 1.8) + 32 , 0);
}
else
{
client.print("t"); client.print((t * 1.8) + 32 , 0);
}
client.print("r...p...P...h"); client.print(h, 0);
if (Pressure085 / 10 >= 10000)
{
client.print("b"); client.print(Pressure085 / 10);
}
else
{
client.print("b0"); client.print(Pressure085 / 10);
}
почему делим строку: client.print(".../...g..."); client.print("r...p...P...h");? или для чего... и еще в этой строке ((t * 1.8) + 32 , 0); что за функция?
-
Добрый день! вопрос по коду... client.print("RA4FHE-2>APRS,TCPIP*,qAC,T2RUSSIA:=5312.66N/04500.72E_"); // Поехали кидать инфу на сервак
client.print(".../...g...");
if ((t * 1.8) + 32 >= 0)
{
client.print("t0"); client.print((t * 1.8) + 32 , 0);
}
else
{
client.print("t"); client.print((t * 1.8) + 32 , 0);
}
client.print("r...p...P...h"); client.print(h, 0);
if (Pressure085 / 10 >= 10000)
{
client.print("b"); client.print(Pressure085 / 10);
}
else
{
client.print("b0"); client.print(Pressure085 / 10);
}
почему делим строку: client.print(".../...g..."); client.print("r...p...P...h");? или для чего... и еще в этой строке ((t * 1.8) + 32 , 0); что за функция?
client.print(".../...g..."); client.print("r...p...P...h") Сделал согласно требованием спецификации APRS
((t * 1.8) + 32 , 0); Перевод температуры фаренгейта в цельсия
-
Ясно! Спасибо! буду пробовать...
-
Ясно! Спасибо! буду пробовать...
Тут всё описано ;) http://www.aprs.org/doc/APRS101.PDF