Простейшая DIY интернет-метеостанция за 5$


Сегодня будем делать простейшую интернет-метеостанцию. Никаких выносных датчиков, никаких дисплеев — просто измеряет температуру-влажность-давление и отправляет в интернет, на сайты narodmon.ru и www.wunderground.com. Как говорится, добавь и свою могучую кучку в гору мировой бигдаты!!!


Нам понадобится платка Wemos D1 Mini (клоник за 2$), платка с датчиком BME280 (2.55$), какой-нибудь корпус и wi-fi-роутер с интернетом.

Схема простая до безобразия.

Главное выполнить всё на пайке, а не на штырьках, а то от дребезга контактов у BME280 иногда сносит крышу и он начинает выдавать полный бред, пока ему питание не передернешь.

Вот так выглядит функционально полностью рабочий полуфабрикат метеостанции.


Далее нужно упаковать это в корпус и повесить за окно. Если есть возможность разместить метеостанцию на западной стороне — никаких проблем. Но у меня такой возможности нет и примерно 4ч в день метеостанция будет на солнце, поэтому я пока еще в раздумьях — как-бы снизить погрешность без громоздкой жалюзийной защиты датчика? Если знаете хорошие варианты — предлагайте в каментах. Питается вся конструкция от USB-порта wifi-роутера — это позволяет, при необходимости, удаленно перезагрузить метеостанцию вместе с роутером.

Теперь по софту — будем использовать Arduino IDE. Там всё стандартно — устанавливаем, в меню выбираем: Инструменты->Плата->Lolin (Wemos) D1 R2 & mini, при необходимости, устанавливаем библиотеку Adafruit BME280 library и оукей. C китайскими платами на BME280 есть один нюанс — они могут быть с разным адресом. Обычно это 0x76 или 0x77, хотя бывают и более экзотичные варианты. В общем, если датчик вдруг не работает, то ищем на компе файл Adafruit_BME280.h, в нем ищем строчку #define BME280_ADDRESS (0x76) и в ней меняем 0x76 на 0x77, ну или наоборот.

Скетч для Ардуинки
#include <ESP8266WiFi.h>
#include <Adafruit_BME280.h>
#include <PubSubClient.h>

Adafruit_BME280 bme; // I2C

// Replace with your network details
const char* ssid = «WIFINET»;
const char* password = «пароль_вайфай»;
float h, t, tF, p, pb, pin, dp, dpF;
char temperatureString[6];
char temperatureFString[6];
char dpString[6];
char dpFString[6];
char humidityString[6];
char pressureString[7];
char pressureInString[6];
#define SRV «narodmon.ru»
#define MAC «хх:dd:c2: хх:a3: хх» //МАК-адрес метеостанции
#define PASS «ххххх» // пароль для mqtt постинга на narodmon
#define USERNAME «yyyyyyyyy» // логин на narodmon
#define TOPIC «yyyyyyyy/BME280/»

#define SRV2 «weatherstation.wunderground.com»
#define StationID «ZZZZZZZ» // ID станции на сайте wunderground.com
#define PASS2 «xxxxx» // Key станции на сайте wunderground.com

//MQTT Narodmon
char server[] = SRV;
char authMethod[] = USERNAME;
char token[] = PASS;
char clientId[] = MAC;
char conntopic[] = TOPIC «status»;

//HTTP GET WUnderground
char server2[] = SRV2;
char authMethod2[] = StationID;
char token2[] = PASS2;
char webpage[] = «GET /weatherstation/updateweatherstation.php?»;

WiFiClient nmClient;
WiFiClient wuClient;
PubSubClient clientMQ(server, 1883, nmClient);
// only runs once on boot
void setup() {
// Initializing serial port for debugging purposes
Serial.begin(115200);
delay(10);

// Connecting to WiFi network
Serial.println();
Serial.print(«Connecting to „);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(“.»);
}
Serial.println("");
Serial.println(«WiFi connected»);

// Printing the ESP IP address
Serial.println(WiFi.localIP());
Serial.println(F(«BME280 start»));

if (!bme.begin()) {
Serial.println(«Could not find a valid BME280 sensor, check wiring!»);
while (1);
}
}

// runs over and over again
void loop() {

getWeather();
doPublishNM(«humidity», String(h, 2));
doPublishNM(«temperature», String(t, 2));
doPublishNM(«pressure», String(p, 2));
doPublishWU(temperatureFString, pressureInString, humidityString, dpFString);
delay(600000);
}

void getWeather() {

h = 0;
float valh;
for (int i=0; i<30; i++) {
delay (random(50,500));

valh = bme.readHumidity();
Serial.print(valh);
Serial.print("\n");
h = h+valh;
}
h=h/30;
Serial.print("\n");
t = 0;
float valt;
for (int i=0; i<30; i++) {
delay (random(50,500));
valt = bme.readTemperature();
Serial.print(valt);
Serial.print("\n");
t = t+valt;
}
t=t/30;
tF=(t*1.8)+32;
Serial.print(tF);
p = 0;
float valp;
for (int i=0; i<30; i++) {
delay (random(50,500));
valp = bme.readPressure();
Serial.print(valp);
Serial.print("\n");
p = p+valp;
}
p=p/30/100.0F;
dp = t-((1-(h/100))/0.05);
dpF = (dp*1.8)+32;
pb = p/pow(2.718281828, -0.029*9.81*150/(8.31*(t+273.15))); // приводим абсолютное давление к уровню Балтийского моря (высота 150м)
pin = p*0.0296133971008484;
dtostrf(t, 5, 2, temperatureString);
dtostrf(tF, 4, 2, temperatureFString);
dtostrf(h, 5, 2, humidityString);
dtostrf(p, 6, 2, pressureString);
dtostrf(pin, 4, 2, pressureInString);
dtostrf(dpF, 5, 2, dpFString);

}

// MQTT публикация Narodmon.ru
void doPublishNM(String id, String value) {
// если не подключен, то подключаемся. Висит пока не подключится!!!
if (!!!clientMQ.connected()) {
Serial.print(«Reconnecting client to „); Serial.println(server);
while (!!!clientMQ.connect(clientId, authMethod, token, conntopic,0,0,“online»)) {
Serial.print(".");
delay(500);
}
Serial.print(«connected with: „); Serial.print(clientId); Serial.print(authMethod); Serial.print(token);
Serial.println();
}

String topic = TOPIC;
String payload = value;
// String topic += id;
topic.concat(id);
Serial.print(“Publishing on: „); Serial.println(topic);
Serial.print(“Publishing payload: „); Serial.println(payload);
if (clientMQ.publish(topic.c_str(), (char*) payload.c_str())) {
Serial.println(“Publish ok»);
} else {
Serial.println(«Publish failed»);
}
}

// HTTP GET публикация WUnderground
void doPublishWU(String temperatureFString, String pressureInString, String humidityString, String dpFString) {

if (wuClient.connect(server2, 80)) {
Serial.print(F("… Connected to server: "));
Serial.print(server2);
char c = wuClient.read();
Serial.print(F(", Server response: "));
Serial.write©;
Serial.println(F(""));
Serial.println(F("… Sending DATA "));
Serial.println(F(""));
wuClient.print(webpage);
Serial.print(webpage);
wuClient.print(«ID=»);
Serial.print(«ID=»);
wuClient.print(authMethod2);
Serial.print(authMethod2);
wuClient.print("&PASSWORD=");
Serial.print("&PASSWORD=");
wuClient.print(token2);
Serial.print(token2);
wuClient.print("&dateutc=");
Serial.print("&dateutc=");
wuClient.print(«now»);
Serial.print(«now»);
wuClient.print("&tempf=");
Serial.print("&tempf=");
wuClient.print(temperatureFString);
Serial.print(temperatureFString);
wuClient.print("&baromin=");
Serial.print("&baromin=");
wuClient.print(pressureInString);
Serial.print(pressureInString);
wuClient.print("&humidity=");
Serial.print("&humidity=");
wuClient.print(humidityString);
Serial.print(humidityString);

wuClient.print("&dewptf=");
Serial.print("&dewptf=");
wuClient.print(dpFString);
Serial.print(dpFString);
wuClient.print("&softwaretype=Arduino%20UNO%20version1&action=updateraw");
Serial.print("&softwaretype=Arduino%20UNO%20version1&action=updateraw");

//Finishing the communication

wuClient.println("/ HTTP/1.1\r\nHost: host:port\r\nConnection: close\r\n\r\n");
Serial.println(F("… Server Response:"));

while(wuClient.connected()) {
while (wuClient.available()) {
char c = wuClient.read();
Serial.print©;
}
}
wuClient.flush();
wuClient.stop();
}
else {
Serial.println(F(«Connection failed»));
char c = wuClient.read();
Serial.write©;
wuClient.flush();
wuClient.stop();}

}

Да, вот такой скетч — кривенький, но простой и рабочий. Раз в 10 минут делает по 30 отсчетов, усредняет и отправляет показания по протоколу MQTT на narodmon.ru и по протоколу HTTP на wunderground.com. Хотел еще добавить постинг на openweathermap.org, но ниасилил — в конце концов я же не настоящий сварщик и погроммист из меня примерно такой же, как балерина.

Само собой, предварительно нужно зарегистрироваться на обоих сайтах, а также получить на narodmon.ru пароль для MQTT (в справке по API) и зарегистрировать погодную станцию на wunderground.com, чтобы получить ID и Key.

На этом, пожалуй, всё. Думаю, тут всё просто и каждый, при желании, сможет модифицировать этот полуфабрикат под себя — добавить датчик освещенности или дождя, например. Можно подумать над deep sleep и автономным питанием на 4хАА или 5хАА и т.п…
Планирую купить +113 Добавить в избранное +84 +166
+
avatar
  • DrBOBAH
  • 09 апреля 2019, 18:19
+4
Для обычного люда все очень сложно. Если чуток разбираешься то…
BME + Sonnof Basic? прошитый 1MSmart и вуаля. Температура, влажность, Давление на смартфоне и тп.
Еще и с возможностью регилировки (управления внешними устройствами)

+
avatar
  • Egorys
  • 10 апреля 2019, 16:39
0
Подскажите, если я правильно понял, то у них именно термостат платный?
+
avatar
  • DrBOBAH
  • 10 апреля 2019, 16:46
0
Читайте внимательно поддержку у них бесплатно все кроме их продукции
+
avatar
  • Egorys
  • 11 апреля 2019, 10:35
0
Спасибо.
+
avatar
0
у них платная прошивка термостат которая отображает данные с двух датчиков…
а в бесплатной прошивке sonoff basic выбирается один датчик
+
avatar
  • Egorys
  • 11 апреля 2019, 16:17
0
К сожалению не прокатило, в новых ревизия плат Basic установлен esp8285, и GPIO14 больше не используется. Вместо этого вы можете использовать GPIO2, помеченный как IO2 на плате. В программе нет возможности изменить GPIO14 на GPIO2.
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 16:34
0
+
avatar
  • Egorys
  • 11 апреля 2019, 18:29
0
Ещё раз спасибо. Я как-то больше прошивку Tasmota изучал, а эта нравилась, но читать и разбираться просто не было времени. Для пробы установил Basic, посмотрел, и почему-то решил, что прошивка на термостат платная. Сегодня было время, распаял и вывел GPIO14, теперь все работает.
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 19:00
0
я не совсем понял зачем Вам 14тый. у меня последние байсики пришли на 85. Так же зажал кнопку. подал питание и прошил. Скриншот выше как раз на 85том.
+
avatar
  • Egorys
  • 11 апреля 2019, 19:15
0
Я так понимаю, что у вас датчик BME280, как вы его подключили? Вносили изменения в прошивку?
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 19:47
0
Нет в прошивке и так все есть. Подключение у Вас на скрине.
+
avatar
  • Egorys
  • 11 апреля 2019, 19:49
0
Так в новых ревизия плат GPIO14 не выведен. С прошивкой проблем нет, а датчик подключить ни как.
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 19:53
0
Давайте фото платы сравню
+
avatar
  • Egorys
  • 11 апреля 2019, 20:04
0
Такие.
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 21:52
0
я наверно ошибся. Просто много датчиков пришло. Думал что на 85 подключал. ан нет на 66. а 14 порт отдельно не куда не выведен?
+
avatar
  • DrBOBAH
  • 11 апреля 2019, 22:12
0
я наверно ошибся. Просто много датчиков пришло. Думал что на 85 подключал. ан нет на 66. а 14 порт отдельно не куда не выведен?

есть же в проге перераспределение
+
avatar
  • Egorys
  • 12 апреля 2019, 06:42
0
У меня почему-то такого нет. Сейчас обновил приложение до последней версии, все равно не появилось. 14 порт выводил на прямую от esp.
+
avatar
  • DrBOBAH
  • 12 апреля 2019, 11:24
0
в меню — информация. проверьте прошивку (три полоски на главном меню)
+
avatar
  • megagad
  • 09 апреля 2019, 18:20
0
а можно в скетч прикрутить HTU21D?
+
avatar
  • ybxtuj
  • 09 апреля 2019, 19:17
0
попробуй такой
скл 1
сда 2

Дополнительная информация
#include <Wire.h>
#include «HTU21D.h»
HTU21D _HTU21_Instance;
extern «C» {
#include «user_interface.h»;
}
unsigned long _HTU21_StartTime = 0UL;
float _HTU21_HOut = 0.00;
float _HTU21_TOut = 0.00;
void setup()
{
_HTU21_Instance.begin();
}
void loop()
{

//Плата:1
if( (_HTU21_StartTime ==0) || ( _isTimer(_HTU21_StartTime, 60000 ))) {
_HTU21_StartTime = millis();
_HTU21_HOut = _HTU21_Instance.readHumidity();
_HTU21_TOut = _HTU21_Instance.readTemperature();
}

}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}
+
avatar
+3
Зачем этот огород из millis, когда для ESP8266 давно изобрели TickerSchedule — использует RTC ticker и имеет защиту от переполнения счетчика, которого у millis нету. Зачем вообще использовать millis если есть прекрасный ticker из кробки.

Зачем подключаете SDK функции через external C? Вы ведь ни одну SDK функцию в теле не вызываете. Тупо место на флешке занимаете.

Зачем esle после return? Если условие выполнится до esle не дойдет:) Имхо в таком случае лучше два if использовать тк глубокие ветвления занимают больше флеша.

If (bla-bla) return;
If (bla-bla) return;
+
avatar
  • mr_om
  • 09 апреля 2019, 21:45
0
А под esp32 самый годный Тикер посоветуете?
На ес8266 мне RBD_Timer.h очень нравился и работал исправно, но вот код переписывается под есп32 и готов к новому )
+
avatar
+2
у esp32 как в прочем и esp8266 есть ticker и коробки:

— для esp32 тут
— для esp8266 тут

но для esp8266 есть нюансы
Library for calling functions repeatedly with a certain period. Two examples included.

It is currently not recommended to do blocking IO operations (network, serial, file) from Ticker callback functions. Instead, set a flag inside the ticker callback and check for that flag inside the loop function.
вот вам пример мигания без delay() и millis()

#include <ESP8266WiFi.h>
#include <Ticker.h>  //Ticker Library
 
Ticker blinker;
 
#define LED 2  //On board LED
 
//=======================================================================
void changeState()
{
  digitalWrite(LED, !(digitalRead(LED)));  //Invert Current State of LED  
}
//=======================================================================
//                               Setup
//=======================================================================
void setup()
{
    Serial.begin(115200);
    Serial.println("");
 
    pinMode(LED,OUTPUT);
 
    //Initialize Ticker every 0.5s
    blinker.attach(0.5, changeState); //Use <strong>attach_ms</strong> if you need time in ms
}
//=======================================================================
//                MAIN LOOP
//=======================================================================
void loop()
{
}
+
avatar
0
я только начинаю, сделал метеостанция с парсингом каждые 20 мин + комнатный датчик. Так вот этот комнатный научил тоже какждые 20 мин апдейтится, но это редко. получается если создать

void changeState()
чтение данные с дачтика

а потом void setup
выводТ.attach(0.5, чтение данные с дачтика)
+
avatar
0
вот так

#include <ESP8266WiFi.h>
#include <Ticker.h>  //Ticker Library
 
Ticker updateSensor;
 
void readSensor()
{
  //здесь код который читает данные
}


void setup()
{
    Serial.begin(115200);
    Serial.println("");
 
    //initialize Ticker every 5min=300sec
    updateSensor.attach(300, readSensor); //use "attach_ms" if you need time in ms
}

void loop()
{
  //остальной код
}

в теле функции которая вызывается ticker — в нашем случае readSensor() нельзя делать операции с network(wifi), serial и file!!!
+
avatar
0
Ошибочка. — ticker на esp8266 работает не от rtc, а от timer1. На timer0 висит wifi.
+
avatar
  • Gelmer
  • 09 апреля 2019, 18:30
+2
На народный мониторинг можно отправлять и без MQTT. Гораздо проще. У меня метеостанция уже работает второй год. Температура и влажность на DHT21. Давление BMP280. Освещенность на BH1750 и качество воздуха MQ135. Дополнительно работает есть бот telegram. Правда сейчас его отключил. Стало сыпаться много запросов и валить метеостанцию. Сейчас хочу заменить датчики на BME280.
+
avatar
  • m13ale
  • 09 апреля 2019, 20:47
0
Конечно можно проще, но тут был чисто академический интерес — в качестве примера сделать постинг данных тремя разными способами — MQTT, HTTP и HTTP JSON.
+
avatar
  • Gelmer
  • 09 апреля 2019, 18:38
+12
Корпус сделал из пластиковых поддончиков от цветочных горшков. От стены отдалил полипропиленовой трубой.
На солнце конечно температуру занижает завышает. Вот думаю добавить вентилятор, перед измерением воздух прогнать.
+
avatar
  • oleg235
  • 09 апреля 2019, 18:43
+2
На солнце конечно температуру занижает.
А ничего, что на солнце её вообще нет смысла мерить?
+
avatar
  • Gelmer
  • 09 апреля 2019, 18:58
0
Солнце попадает в короткий промежуток времени вечером.
+
avatar
  • Evlampy
  • 09 апреля 2019, 19:03
+39
Конечно нет. Астрофизики уже всё измерили за нас.
+
avatar
  • RomaL
  • 09 апреля 2019, 19:09
+5
Солнце нагревает стену дома, теплый воздух, восходящий от стены и меряет датчик. Вентилятор тут погоды не сделает.
+
avatar
  • Gelmer
  • 09 апреля 2019, 19:39
+3
Когда датчик висел на стене, так и было. Отодвинул дальше датчик и стало гораздо лучше.
+
avatar
  • miklsh
  • 10 апреля 2019, 00:06
+5
В идеале, если есть доступ на противоположную сторону дома, пара датчиков и берем меньшую температуру, в любом случае на одной из сторон солнца не будет, profit!
+
avatar
  • char
  • 09 апреля 2019, 22:06
+1
Вот это грамотно, за отвод от стены дома — респект и плюс.
+
avatar
  • Jet
  • 10 апреля 2019, 00:15
+2
Подобной конструкции делал датчик, на солнце максимум температура на 2 градуса выше если ветра нет вообще. Но у меня сама конструкция снизу штанги, и во всех тарелочках кроме самого верхнего широкое отверстие по центру, датчик висит по центру этого отверстия и на расстоянии от самой верхнй тарелки, при попадании солнца получеется эффект конвекции, горячий воздух из под верхней тарелки расширяется и выходит вытягивая холодный снизу, это в теории, на практике разницу температур выше описал, сравниваю со вторым датчиком с дюралевой штанге, вот она уже честно на солнце нагревается. Собственно эти все конструкции всё равно стоят не по госту и такая погрешность не особо огорчает, по крайней мере для оценки что надеть выходя из дома хватает с головой
+
avatar
  • bm_s
  • 10 апреля 2019, 08:10
-1
что за колхоз? Можно купить распаячную коробку. У меня так.
+
avatar
  • AndyBig
  • 10 апреля 2019, 14:35
0
Вот с коробочкой и будет колхоз, показывающий температуру внутри этой коробочки.
+
avatar
  • bm_s
  • 10 апреля 2019, 14:41
+1
Колхоз это способ исполнения (это если вы не в курсе). Температуры в коробке равна уличной.
+
avatar
  • AndyBig
  • 10 апреля 2019, 15:55
+4
Колхоз это способ исполнения
Датчик температуры в коробке — это и есть колхоз по исполнению датчика температуры :)
Температуры в коробке равна уличной
Это если коробка с поверхностью, отражающей 100% падающего на нее излучения :) Я о таких поверхностях пока не слышал.
+
avatar
  • bm_s
  • 10 апреля 2019, 16:25
+1
Скучаете?
+
avatar
0
и какие тогда варианты?
кроме
пластиковых поддончиков от цветочных горшков
+
avatar
  • AndyBig
  • 13 апреля 2019, 20:17
0
Какие хотите. Напечатать на 3D-принтер, сделать самому из подручного, купить готовое, спереть со станции метеонаблюдений.
+
avatar
  • Rokko
  • 09 апреля 2019, 18:41
+7
Вот если честно не хрена не понятно. Повесить это за окно и что? Куда смотреть? На чем? Такое ощущение что тебе все с набитым ртом рассказывали.
+
avatar
  • Gelmer
  • 09 апреля 2019, 18:57
+5
Смотреть на сайте народный мониторинг. Или на виджете в телефоне.
+
avatar
  • rexen
  • 09 апреля 2019, 19:41
+11
Подправил вам минус. Хотя вы несколько эмоционально отреагировали. Но я считаю, что претензия обоснована. Я-то хоть и несколько шарю в теме IoT, но сам до конца статьи ожидал дисплейчика с прогнозом.

Это «мониторинговая» станция — она собирает локальные показатели (температура, давление, влажность, скорость ветра...) и отправляет их в интернет на сервисы, которые собирают такую инфу по всему миру и на основе их уже делают свой прогноз.

Это станция альтруиста, а не эгоиста :)
+
avatar
  • non7top
  • 09 апреля 2019, 23:42
0
Изначльно хотел написать что-то в том же духе, полез читать что такое метеостанция, просветился и не стал ничего писать.
+
avatar
+1
чел даже поленился ссылку на второй чип дать
+
avatar
0
не забудьте добавить delay(2) в главный цикл. подробности тут — elchupanibrei.livejournal.com/47610.html
+
avatar
  • m13ale
  • 09 апреля 2019, 20:44
+1
Любопытно… Впрочем, в данном проекте не очень актуально — тут потребление не критично.
+
avatar
+2
Даже от 220в экономия почти 2 раза. За год на сникерс точно накапает.
+
avatar
  • Vadim2S
  • 09 апреля 2019, 19:24
0
А то же самое, но с 3G? Надо знать погоду на даче и вообще — есть ли там свет.
+
avatar
  • Gelmer
  • 09 апреля 2019, 19:37
0
Тоже без проблем. Выше я скриншот кидал, там датчик который подписан Акбаш это на даче. Через 3G.
+
avatar
  • mike888
  • 09 апреля 2019, 20:06
0
Два года уже работает на даче без проблем gsm.meteolk.ru/index.php Собирал сам, тема в радиокоте radiokot.ru/circuit/digital/home/214/. Просто жаба задушила покупать готовую, да и там несложно сделать
Себестоимость где то 1000р
Вывод как на сайт автора, так и и народмонитор, оттуда на смартфон
Основная проблема найти тариф подходящий от опсоса работающего на даче. Там не нужно гигов инета за сотни рублей
+
avatar
  • m13ale
  • 09 апреля 2019, 19:37
0
Сдается мне, и проще и дешевле будет поставить на даче 4G/Wi-Fi роутер c возможностью подключения внешних антенн, вроде Huawei 825FT, за 800р. Заодно и вайфайчик на даче организуется…
+
avatar
  • Gelmer
  • 09 апреля 2019, 19:42
+1
Я поставил именно модуль 3G так как он ещё управляет котлом и другими устройствами. Управление через смс надёжнее. Интернет там ловится нестабильно. Да и зачем нужен на даче Вай-фай если никого там нет. Симка стоит от МТС с тарифом для устройств, оплата 50 с чем то рублей в месяц.
+
avatar
0
если Yota ловит — у них есть от 30
+
avatar
  • mr_om
  • 09 апреля 2019, 21:51
0
А где они по 800 руб, подскажите?
+
avatar
  • m13ale
  • 09 апреля 2019, 22:00
+1
Ну эт надо брендированный операторский роутер по акции купить и разлочить…
+
avatar
  • mr_om
  • 11 апреля 2019, 14:24
0
то есть у вас нет ссылки на такое?
+
avatar
  • Dimon_
  • 09 апреля 2019, 19:50
+2
Надо знать погоду на даче и вообще — есть ли там свет.
В чём проблема-то?
На авито wi-Fi роутер, который перешивается в openwrt/ddwrt — я купил за 200 руб, но бывает всяко. За 500 точно найдёте. Или микротик какой маленький.
Ему в USB — свисток с симкой того провайдера, который вам удобен.
Всё. На даче интернет.
Сливайте оттуда себе на мобильник погоду/фотки/охранку/видеокамеры/ардуиновские проекты. Какие проблемы-то?..
+
avatar
  • Vadim2S
  • 09 апреля 2019, 21:02
0
Проблема в том, что, при отсутствии нас на даче, не хочется оставлять электричество для питания роутера включенным. Для питания же такого устройства — можно найти пожарозащищенные варианты, например, поместить в распределительный шкаф.
+
avatar
  • Dimon_
  • 09 апреля 2019, 21:19
+1
Поверьте, аппетит придёт во время еды. Даже при отсутствии вас на даче (зимой), имея интернет, вы захотите иметь видеопоток с камеры или фотки на FTP при срабатывании детектора движения/шлейфа.
+
avatar
  • non7top
  • 09 апреля 2019, 23:45
0
Роутер тоже в шкаф влезет. Вот насчет того как в этот шкаф влезут радиоволны есть некоторые сомнения.
+
avatar
  • AndyBig
  • 10 апреля 2019, 14:48
0
Девайс, измеряющий температуру и давление каждые 5 минут и отправляющий усредненные по всем измерениям данные каждый час через GSM-модем, может работать вообще от никелевого аккумулятора (точнее, трех последовательно соединенных) с небольшой солнечной панелькой :) Причем, в сутки он будет «съедать» всего около 80 мА*ч, так что солнечная панель справится даже в пасмурный день :) Я как раз сейчас работаю над шабашкой — полевой метеостанцией, работающей именно так :)
+
avatar
  • Vadim2S
  • 10 апреля 2019, 15:12
0
Подозреваю, что лучше будет 1 18650 LiFePo и можно даже не получать 5В, на 3,3 работать. К сожалению — профильных знаний нет, а экспериментировать — нет времени.
+
avatar
  • AndyBig
  • 10 апреля 2019, 15:57
0
Литию еще зарядку надо, а на никель можно солнечную панель подключить просто через ключ, отключающий ее по достижению порогового напряжения :) Ну и никель дешевле, чем литий-феррум :)
+
avatar
+1
И никель нормально работает при отрицательных температурах. Липоли в минус превращаются в тыкву.
+
avatar
  • AndyBig
  • 10 апреля 2019, 18:18
0
Да вроде LiFePo в морозы более-менее живут :) Тем более, что большой токоотдачи от них не требуется в такой задаче :)
+
avatar
  • Vadim2S
  • 11 апреля 2019, 09:26
0
К сожалению у никеля с солнечной зарядкой в полный рост будет эффект памяти. Самые неудачные условия для него. особенно в пасмурную погоду.
+
avatar
  • AndyBig
  • 11 апреля 2019, 12:28
0
Да, условия не идеальные, но и эффект памяти уже давно научились минимизировать, и аккумы можно поменять раз в пару лет :)
+
avatar
  • AndyBig
  • 12 апреля 2019, 00:17
0
Кстати, заказчик говорит, что никель-металлгидрид нормально работает у них в таких условиях годами :)
+
avatar
  • Vadim2S
  • 12 апреля 2019, 10:39
0
Меня смущает, что китайские светильники в огород с этими самыми солнечными панелями и никелем — долго не живут. Пару-тройку лет. Хотя тоже не мало, если так подумать. Напишите, что получится когда доделаете! А то всё что я видал — стационарное.
+
avatar
  • AndyBig
  • 12 апреля 2019, 11:35
+1
Мой заказчик уже давно работает с импортными станциями, в которых как раз применены NiMh с солнечной панелью, говорит — работают по нескольку лет без проблем :) Солнечная панель подключается к аккумулятору через диод при напряжении на нем меньше 3.5 вольт и отключается (коротится мосфетом) при напряжении батареи больше 4.1 вольта, если не ошибаюсь.
В спящем режиме вся станция потребляет около 60 мкА (причем половину из них жрет спящий OLED-дисплей из-за упрощенной схемы его подключения на модуле и еще 25 мкА из оставшегося жрет менеджер питания и зарядки), в этом режиме идет только подсчет импульсов с анемометра и дождемера. Раз в несколько минут просыпается и производит замеры с кучи остальных датчиков — это около 200 миллисекунд с потреблением до 20-100 мА. И раз в 0.5-6 часов просыпается, обрабатывает накопленные данные и отправляет результаты через GSM-модем на сервер :) Тут время и потребление уже зависят от качества связи, но это от 30 сек до 2 минут при среднем потреблении около 100-200 мА.
Получается среднее потребление от 3 до 20 мА*ч, в зависимости от периода отправки результатов. Так что небольшая солнечная панель вполне способна компенсировать это даже в короткий пасмурный день :)
+
avatar
0
история-про-орла-с-GPS-ошейником.JPEG
+
avatar
  • AndyBig
  • 13 апреля 2019, 20:45
+1
Не в курсе.
Но есть практический результат :) В 3 часа ночи оставил «станцию» питаться от батареи (NiMH, 3S1P, 1500 мА*ч) с подключенной солнечной панелью. Каждые 3 минуты она просыпалась и делала измерения, а каждые 30 минут она обрабатывала все накопленное, включала GSM-модем и отправляла обработанный результат на сервер. При этом солнечная панель стояла вертикально на восток и за двойным стеклопакетом окна :) И вот уже к 9 утра солнечная панель компенсировала аккуму все ночные потери. А утро (как и весь день) было пасмурным и дождливым :)
+
avatar
  • ABATAPA
  • 09 апреля 2019, 19:34
+5
Теперь любой градусник будет гордо зваться метеостанцией?
+
avatar
  • Jet
  • 10 апреля 2019, 00:16
+1
когда градусник перестаёт быть метеостанцией?
+
avatar
+4
Реквестирую мануал для чайников.
Хочу начать изучать ардуинку. Но все начало — давайте помигаем светодиодиком, а следующий шаг — нарисованная сова.
Очень хочу сделать метеостанцию внутреннюю и наружную. Внутреннюю с влажностью, СО2 и температурой. Наружный с давлением и температурой. Естественно с отображением. По возможности на андроиде, винде, на худой конец в браузере.
+
avatar
  • rexen
  • 09 апреля 2019, 19:49
+4
Хабр, Изиэлектроникс, Радиокот, Паяльник и кучка менее известных — вам в помощь. Муська — не портал самоделок, хотя их тут много. Желаемое вами вполне гуглится. Делают на Малинке, ESP8266, АтМегах и прочем.
Хотите изучать Ардуинку — есть соответствующие сайты.
+
avatar
0
а что дешевле?

аурдинка слишком попсовая

просто мне надо 3 датчика (дом — CO), улица — температура влажность, серверная — температура, влажность, понадёжнее
+
avatar
  • Dimon_
  • 09 апреля 2019, 20:08
+9
Хочу начать изучать ардуинку.
Я, хотя и являюсь активным популяризатором ардуин (мои обзоры иллюстрируют), но, в принципе, согласен с предыдущим комментатором. Хотя и не в такой резкой форме. Уроков про ардуину действительно не найдёт только ленивый.

Ну, и, изучать «умозрительно» — не дело. Купите и положите её перед собой на стол, откройте IDE — когда начнётся практика, тогда начнётся и изучение. И, да, не ожидайте, когда кто-то вам напишет «давай я начну тебя учить». Это не потому, что все такие «буки» жадные, это потому, что невозможно учить чему-либо «вообще», да ещё и на условиях энтузиазма.
Почувствуйте разницу. На какой вопрос вам охотнее ответят:
«Научите меня писать скетчи для часов на ардуине» или «Научите, как текущее системное время в скетче поделить на четыре цифры (десятки и единицы часов, десятки и единицы минут)».
Или, допустим, на какой из этих двух:
«Хочу научиться работать с датчиком DS18B20» или «Почему я опрашиваю DS18B20, а получаю температуру +85 градусов?».

Это я к тому, что люди охотнее помогают тем, кто сам ищет, инициатива должна исходить от вас…
Ну а на заданный вопрос ответы обязательно найдутся, будьте уверены.
Так что смелее — и вперёд, всё у вас получится.
+
avatar
0
Поясню что имею в виду: ардуин превеликое множество. Датчиков тоже много разных. Вот куплю я их, а они несовместимы. А если совместимы, то я забыл макетку, еще месяц ждать, а купил макетку — нет программатора. Плюнул и убрал все на полку — и начал ненавидеть, так как деньги без толка потратил.
Поэтому и прошу помощи — с чего начать: минимальный комплект и тд и тп.
Печатать платы пока не готов. Поэтому пока хочу собрать все на коленке на проводах.
Уроки про ардуинку — как я уже говорил выше: давайте помигаем светодиодом (ну вот совсем не интересно), потом давайте сделаем красивую гирлянду (ага, еще интереснее), а потом — собираем робота…
Меняем подход — гуглим «метеостанция на ардуине». cxem.net/arduino/arduino79.php — о как клево, но там опять начинается. Схема проста и понятна, но «Создаем web-сервер, присваиваем ip и порт обращения 10001»…
+
avatar
+1
Вот куплю я их, а они несовместимы.
такого понятия нет тут
есть контроллер и есть внешняя периферия
они общаются по разным шинам, которые в контроллер уже встроены или же протокол реализуется программно
для этого есть готовые библиотеки под контроллеры разные

единственное это когда датчик работает от 5в, а у тебя контроллер, который не толерантный к 5в и это может попортить ему выводы
но это редко когда бывает

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

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

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

Схема проста и понятна, но «Создаем web-сервер, присваиваем ip и порт обращения 10001»
для понимания этой фразы как бы подразумевается, что бы знаком уже, как реализуется любой сервер с точки зрения программирования, что такое потоки, что такое порт сервера, как работает хттп

вот там в каментах есть забавный камент
Не понятно что за ардуино плата использовалась. И как подключена. На роутере/модеме по идее должен быть организован DynDNS. Иначе как обратиться к плате через интернет. А про это ни слова.
когда человек задает такие вопросы, то ему как бы крайне не рекомендуется заниматься программированием
программирование связанное с сетями подразумевает, что ты уже знаеш весь стек протоколов и как там что работает
+
avatar
+1
когда человек задает такие вопросы, то ему как бы крайне не рекомендуется заниматься программированием
программирование связанное с сетями подразумевает, что ты уже знаеш весь стек протоколов и как там что работает
Ну вот вы сами обратили внимание на то, что сообщество крайне закрытое и высокомерное. Если ты что-то где-то не понимаешь — не зачем лезть.
Сначала научись подымать сервера, изучи архитектуру сетей, а потом бери в руки паяльник.
+
avatar
  • rexen
  • 09 апреля 2019, 21:52
0
Я не верю, что нет готовых проектов. «Купи это — воткни туда, залей вот этот скетч и всё».
Это если нужен результат в виде устройства.

А если нужно научиться, то и нужно начинать с азов, постепенно наращивая сложность и спрашивая непонятное. Ардуинщиков полно. А на буржуйских сайтах — ещё больше.

«Кто хочет — ищет способы».
Just do it!
+
avatar
  • vasyna
  • 09 апреля 2019, 22:14
+1
Я не верю, что нет готовых проектов. «Купи это — воткни туда, залей вот этот скетч и всё».
Их тысячи! Если не больше.
+
avatar
+1
вопрос не в процессе и не в количестве учителей, точнее ардуинщиков. вопрос — в КАЧЕСТВЕ этих учителей. у меня в политехе был обалденный препод по паскалю и асму. а вот сишник — ну такой себе. в итоге си я так толком и не проникся. жаль микроконтроллеров нам тогда не читали.
+
avatar
+2
Ну вот вы сами обратили внимание на то, что сообщество крайне закрытое
а нет никакого сообщества
это все равно что школьник придет в быдловуз, а ему там скажут, что как ты собрался изучать интегралы, если ты еще не знаеш отрицательных чисел
а школьник скажет, что вот сообщество-то оказывается закрытое и чсвешное

ну вот возьмем твой линк
cxem.net/arduino/arduino79.php
из него кусок кода
client.println(«HTTP/1.1 200 OK»);
client.println(«Content-Type: text/html»);
client.println();

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

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

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

в данном скетче как раз показан пример работы сырых сокетов и обертка самая примитивнейшая для хттп, т.к. хттп сильно жрет ресурсы (в виду своей текстовости), а 8 битный контроллер с парой кб озу очень не любит тексты
поэтому тут по сути нет вебсервера как такового

в есп8266 уже есть реализация, что облегчает написание кода и обработку запросов ури

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

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

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

нельзя просто так взять и начать писать код, как это в дешевых фильмах про хакиров
поэтому у них и зарплаты такие высокие, но когда ты неделю посидиш по 8 часов в напряжении, то ощутиш весь ад
+
avatar
  • virgil
  • 10 апреля 2019, 00:01
+1
Ардуино наоборот ориентирован на школы\детские сады. Если у вас нет особых знаний вы всегда можете найти похожий проект и повторить его.
Купить полный комплект модулей вы не сможете — на основе этих контроллеров делают что угодно: от эмуляторов клавиатуры(или миди клавиатуры) до 3д принтеров\квадрокоптеров.
Если вы хотите что-то сделать своими руками — обдумайте и закупайтесь, недостающие делали можно докупить на месте за 2-3 цены.
Ардуино не лучшая среда разработки, атмеги не самые лучшие камни. Но тут самый низкий порог входа и сами контроллеры копеечные, а датчики одинаковые — для ардуины/esp/stm и в вашей стиралке/телевизоре такие же стоят.
+
avatar
0
посоветуйте пожалуйста комплекты для датчиков

а) точный уличный датчик температуры/влажности в любом корпусе
с батарейкой (или с проводом USB) и Wi-Fi (можно под народмон)

б) надёжный датчик температуры (влажности — тоже можно)
в серверной, с мониторингом/алертингом, т.е. чтобы стандартный интерфес (USB) к ПК был

что проще, дешевле, какие нужны компоненты?
с чего начать

программирование/протоколы/
устройство памяти/стека/регистров знаю

контроллеры — любые достаточные, лишь бы дешевле
+
avatar
  • Serko
  • 19 апреля 2019, 11:34
0
Дешевле всего контроллеры ESP-01, но к ним надо немного прямых рук для настройки их прошивки, более дорогие модели ESP8266 прошиваются проще, потому что в них конвертор usb уже встроен.
По точности датчиков — сложный вопрос, влажность меряют DHT-11/DHT-22, но на их точность есть нарекания.
Температура — ds18b20 самые простые.
Если делать автономный беспроводной датчик, то копать надо глубже, энергосбережение в ESP я плохо знаю. И на том же ESP-01 это потребует буквально прямых рук — чтобы припаяться к не выведенному выводу.
Преимущество ESP — это модули с встроенным WiFi. Ардуино при примерно той же цене не имеет средств общения, он требует добавления средств связи. А на есп можно как сделать простейший сервер, заходя браузером на который можно смотреть показания, так можно и наладить отсылку данных на какой-нибудь сборщик данных в инете (thingspeak), где будет хранится история показаний.
+
avatar
  • vasyna
  • 09 апреля 2019, 22:01
0
А если совместимы, то я забыл макетку, еще месяц ждать, а купил макетку — нет программатора
Если руки растут из места ниже поясницы, то без разницы золотые они или нет.
хема проста и понятна, но «Создаем web-сервер
Без знания самого языка будет в тройне сложно. ВТорое — учиться надо уметь самому! Третье — браться сразу «датчики, роботы, не совместимо» — надо браться за то что «совместимо» до вас с наглядными примерами. А потом из вот этих вот кубиков у вас будут формироваться блоки знаний, которыми можно оперировать.
Но «ардуино за 3 минуты» не стоит ни ждать, ни… это просто не возможно.
+
avatar
  • vietus
  • 09 апреля 2019, 22:14
+2
Иди на алексгивер. У него разные проекты есть и простые и сложные, с текстами и видео, все расжевано. Идеально для новичка.
+
avatar
0
алексгивер
alexgyver.ru/meteoclock/

о, круто, я не знал что Atmega328 стоят меньше 3 долларов!
+
avatar
+2
давайте помигаем светодиодом (ну вот совсем не интересно),
ты помигал одни светодиодом
а теперь помигай двумя так, чтобы один мигал раз в секунду
второй вспыхивал на 300мс с паузой в 600мс
а третий плавно загорался и гас
и все это ОДНОВРЕМЕННО

и тут ты внезапно начнеш понимать, что мигание светодиодом это просто
а вот мигание светодиодами с заданными параметрами — это откроет для тебя море новой инфы, включая построение скелета программы (не путать с алгоритмом)

сразу скажу, что инфы мало об этом, но я ее знаю и даже не поленился и нашел для тебя точный линк
robotosha.ru/arduino/multi-tasking-arduino.html
habr.com/ru/post/413779/
www.youtube.com/watch?v=tt_EUA7aQNk

этот камент уже дал тебе столько инфы, что месяц будеш изучать
+
avatar
  • il86md
  • 10 апреля 2019, 00:16
0
Многозадачность это самое главное как мне кажется
+
avatar
0
не только
нужно еще успеть обработать входящие сигналы и уложиться в длительность тика таймера, так же не выйти за рамки озу
+
avatar
  • AndyBig
  • 10 апреля 2019, 16:06
0
На самом деле настоящая многозадачность в микроконтроллерах редко требуется, в большинстве случаев все вполне укладывается в линейное выполнение и прерывания.
+
avatar
0
Само мигание у меня было в ВУЗе на лабах по микроконтроллерам

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

лабы были по субботам всю зиму (полгода)
2 пары

я обычно приходил из ночного клуба
час спал,
потом что-то делал, но обучение не шло

потом он мне сказал «что ты мучаешься,
напиши какое-нибудь слово и я от тебя отстану»

короче, помигал на зачёт
контроллеры были из серии intel 8080
или типа того
+
avatar
-1
ну и смысл был ходить в этот быдловуз, если ты время в клубах просирал?
я вот ни туда, ни туда не ходил
дома изучал все сам и прокачался
+
avatar
0
до 80 уровня?
+
avatar
-1
ну да
когда учился на всяких курсах и в пту, то был круче всех
+
avatar
0
Так я и сейчас круче. Работаю на двух работах, ни на одной ничего не делаю,
т.к. всё настроено и автоматизировано.
Проблемы если и возникают, то только от тупости пользователей.
+
avatar
-1
зачем ходить на работы, если все работает? можно же дома сидеть
+
avatar
0
поговорите об этом с моими работодателями,
обоими
срочно
+
avatar
0
о чем с ними говорить и почему ты это сам не можеш сделать?
+
avatar
0
ВУЗ был одним из лучших в моём регионе.
В клубах я развлекался, т.к. был молод,
в том возрасте такой вид досуга хорошо заходил.

В ВУЗе действительно научили тому,
что можно было бы впихнуть в интенсивные двухмесячные курсы.

Но это в любом вузе так, за редким исключением
(но и там тоже курсы, просто шестимесячные).
+
avatar
  • imlekha
  • 10 апреля 2019, 12:17
0
Оставлю это тут. Думаю, что хоть один проект от AlexGyver тебе понравится
www.youtube.com/watch?v=4Ue2BuqXlMA
+
avatar
+4
минус ардуины, в частности, в том, что нет толковых наставников. большинство из тех кто пытается учить — программирование и вообще-то не изучали, а ардуину изучали сами, через интернет. из того что я увидел, пытаясь через ардуину рулить дисплеем — ох это делали не программисты. или программисты, но какие-то матёрые. то есть толкового описания примитивной либы для LCD — нет, и работает она не всегда ожидаемо, создается впечатление что размер какого-то внутреннего буфера не привязан к размеру дисплея, и оно глотает символы, приходится костыли какие-то мастырить, средств отладки — считай никаких, короче начинать с нуля в ардуину — это достаточно нетривиально, на самом деле. и это я не о себе, я-то хоть как-то давно программирование изучал и хоть примерно представляю какие грабли отчего бывают. а придёт человек после школьной информатики — да он с ума сойдёт. а действительно толковых наставников и уроков либо нет, либо я их не нашел.
+
avatar
0
Согласен. Все друг у друга копипастят одни и те же кривые реализации и ошибки, например как то господин с millis() из коментария выше.
+
avatar
  • Z2K
  • 10 апреля 2019, 22:23
0
Все друг у друга копипастят одни и те же кривые реализации и ошибки,
— главный метод современного обучения. Чтобы знать и уметь главное надо знать где лежит. :)
+
avatar
  • AndyBig
  • 10 апреля 2019, 22:30
0
Да в самом методе ничего плохого. Плохо то, что копипастят без понимания того что они скопипастили и как оно работает.
Я тоже копипастю часто. Правда в большинстве случаев от оригинальной копипасты у меня в конце концов остается процентов 10-20, остальное оказывается переделанным и оптимизированным мною :)
+
avatar
0
Очень правильный паодход. Сам так делаю.
+
avatar
0
оптимизация — тоже должна быть с умом

знаю чела, который вместо изучения криптографии
городит какие-то самопальные «шифры»,

единственная «криптостойкость» которых в том,
что никто не знает что я делаю

выглядит печально, в т.ч. его зарплата
+
avatar
  • AndyBig
  • 13 апреля 2019, 20:53
0
Всему свое место. Попробуйте в ту же ардуину на атмеге впихнуть какой-нить AES128. Или другой пример — бутлодер размером 16 к, принимающий по USB шифрованную прошивку и прошивающий ее в память микроконтроллера. Тоже не разгонишься с криптографией. Да и не везде она нужна, во многих случаях вполне достаточно простого XOR-а с достаточно длинным массивом определенных данных.
+
avatar
0
во многих случаях вполне достаточно простого XOR-а с достаточно длинным массивом определенных данных
Криптография называет это «одноразовый шифроблокнот» или
Vernam cipher
+
avatar
  • vasyna
  • 09 апреля 2019, 21:56
0
минус ардуины, в частности, в том, что нет толковых наставников
Зачем притягивать за уши ардуино как мк и как среду разработки к диванным программистам?
Ни когда, даже если будут десятки гуру программирования ты не осилишь вот так с нуля всю необъятную программирования даже МК Mega328. Ибо без знания языка, его понимания и умения пользоваться поиском… когда еще в институте на заключительной лабе было задание без конспектов и т.д. выполнить задание (за семестр итоговый балл, он составлял 1/3 итоговой оценки за предмет)… я просто нажал F1 в IDE. За что получил «срочно все закрой и иди сюда», я конечно испугался, ибо 1/3 оценки у меня не могло и быть (за помещение, у меня его не было, я раз в месяц приходил и просто сдавал работы за месяц), т.е. это уже неуд. Но меня ждала зачетка с отметкой «отлично».
По сему программирование вообще — это мануалы. А уж пересказывать их вам… это не благодарная тема.
Ну и по поводу отладки — как вы средствами отладки увидили бы что экран из 10 байт обработал только 8 верно, а 2 проглотил, но итога не выдал?
+
avatar
0
совершенно верно, ардуина не имеет никакого отношения к обучению программирования ;)
но гуру таки нужны. вот именно в институте толковые преподаватели и рассказывали о правильных принципах программирования, показывая не только как можно, но и как нужно. в этом суть

так что «программирование вообще» — это нифига не мануалы. мануалы это азы, помогающие понять что в принципе можно сделать. а дальше уже вступают в дело опытные наставники, рассказывающие как НУЖНО делать, ну а потом уже приходит опыт.

а насчет отладки — ну существуют например эмуляторы всяческие. чтобы не расходовать ресурс памяти контроллера, а погонять вначале просто так. для микроконтроллеров такое есть ведь. для банальных и стандартных элементов как минимум.
+
avatar
  • vasyna
  • 09 апреля 2019, 23:09
0
в институте толковые преподаватели и рассказывали о правильных принципах программирования, показывая не только как можно, но и как нужно. в этом суть
Ну вот видишь. Но ты не до конца понял суть. тебе дали основу. Если бы ты более или менее волок в C, то и потребности в «гуру» у тебя бы уже не возникало. Ибо учить конкретики плохой способ. Из такого метода обучения вырастают «прямые» специалисты. Плюс ты перестаешь именно что думать обширно. И это плохо. Я лично сейчас вижу это на работе. был 1с-ник, он приезжал, ему зам завала вопросы что и как и он шаблонно на примере одной организации показывал общее направление решения задачи и уезжал. Она думала, страдала, но в любой момент могла без проблем понять какая цифра от куда и зачем. Сейчас уже год как новый 1с-ник. Он с ними нянчится… им в понедельник последний день отчет сдавать, они в пятницу бухать идут, а тот по удаленке им сводит концы с концами… а потом как обычно что-то где-то да вылезло, а эти клуши сидят и руками разводят, да тупыми глазами блымают… они даже не знают какая актуальная версия выгрузки для форм, ибо даже не выгружали. А уж за цифры… за год так отупели… нет то что их до этого заставлял делать прошлый программист они все еще помнят, но новые формы… просто не в зуб ногой.
а насчет отладки — ну существуют например эмуляторы всяческие. чтобы не расходовать ресурс памяти контроллера
Так отладка или эмулятор? Во вторых ты уверен что эмулятор верно написан, уж коли у тебя железка в оригинале кривая?
Тут уже ни чем не помочь.
+
avatar
0
именно так, дали основу и обучили правильным методам. решить задачу можно несколькими способами, наиболее правильный способ выбрать — несомненно нужен опыт. но вот для того чтобы показать эти способы и их отличия — нужен гуру.

короче, учиться программированию нужно. и не по книжкам, а с учителем, который покажет что ты делаешь неправильно и как делать нужно. со временем придёт понимание возможных решений и «инстинкт» их правильного выбора.

можно научиться и самостоятельно. но это очень уж долго.
+
avatar
0
какой вариант будет самым дешевым:

а) точный уличный датчик температуры/влажности в любом корпусе
с батарейкой (или с проводом USB) и Wi-Fi (можно под народмон)

б) надёжный датчик температуры (влажности — тоже можно)
в серверной, с мониторингом/алертингом, т.е. чтобы стандартный интерфес (USB) к ПК был

что проще, дешевле, какие нужны компоненты?

аурдинкой не интересуюсь
если уж нужен контроллер —
что-то менее попсовое (т.е. более дешевое) устроит
+
avatar
  • Serko
  • 19 апреля 2019, 22:10
0
Самое дешёвое с Вифи — ESP-01 и к нему датчики влажности DHT-11 / DHT-22 или термометр DS18B20
Самое дешёвое с проводом — делали из адаптера USB-TTL некий термометр для серверной. mySKU.me/blog/ebay/71006.html

(Для по другим сообщениям «неплохо зарабатывающего человека» у вас довольно часто встречается упоминание дешёвого.Тут цены выражаются в половинах пачек сигарет.)
+
avatar
0
Я [наверное с]делаю систему, которая сбережёт нервы
моему преемнику.

У меня они и так крепкие, а вот начальник…

Денег на этом я не заработаю.
Планов развиваться в этом направлении у меня тоже нет.

Ну как вам объяснить…

Памяти в ретро-компьютеры в офисе я уже куплю,
а SSD — нет

Зарабатываю я столько, что мне на жизнь хватает.

За ссылку благодарю. Интересная
+
avatar
0
а следующий шаг — нарисованная сова.
примерно так и есть
все умеют как бы программировать и говорят, что как бы все просто, но… никто толком не может тебе объяснить, почему это именно так надо делать, а не этак

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

вот уже первый урок по сям вышел
www.youtube.com/watch?v=nFt3pJ7j8jE
+
avatar
0
а зачем нужны «обучальщики погромированию от сохи»,
если сейчас лекции ведущих университетов мира доступны?
+
avatar
0
а зачем нужны унылые лекции быдловузов, если есть уроки от реальных программистов
как платные, так и бесплатные
ит и быдловуз — понятия несовместимые
+
avatar
0
быдловуз
Это вы о Вашингтонском университете?

www.classcentral.com/search?q=c%2B%2B
+
avatar
0
о любом
я например был в ce-bachelor.htw-berlin.de/
+
avatar
  • AndyBig
  • 13 апреля 2019, 20:57
+2
Так шож Вы не научитесь по тем лекциям и не сделаете то, о чем уже раза четыре спросили в этой теме? :)
+
avatar
0
Потому что я неплохо зарабатываю, выучившись профессии у технически грамотных инженеров и учёных

а здесь я спрашиваю о хобби (которое может будет, а может и нет)

то, чему я учился в университете предполагает
что мне теперь платят деньги за мои ответы

а здесь я спрашиваю потому, что бумага всё стерпит
в публичном обсуждении (споре) родится истина
(если комментарии будут полезнее ответов)
и будет доступна другим пришедшим почитать,
в том числе из поиска.
+
avatar
  • AndyBig
  • 17 апреля 2019, 15:18
+1
мне теперь платят деньги за мои ответы
А, то есть и Вы тоже готовы оплатить другому ответ на свой вопрос? :)
+
avatar
0
Почему бы и нет?!

Например, прямо сейчас в другом форуме (на тему 1С, в котором я совсем не разбираюсь)
предлагаю 0,55 $ тамошней внутренней валюты за реальную помощь
+
avatar
  • AndyBig
  • 17 апреля 2019, 16:08
-1
Ну так предложите и тут в нормальной валюте :)
+
avatar
0
Не совсем подходящее место.

Если бы вы указали более удачное —
вам гарантирована преференция

нужно сделать 3 «погодных» датчика

и 3 (или 4) передатчика по типу AMPRNET
NPR (HSMM/Hamnet) на CC1101 и подобных чипах

в готовых смущает стоимость и сложность изготовления нубом.
+
avatar
  • AndyBig
  • 17 апреля 2019, 19:04
+1
нужно сделать 3 «погодных» датчика
Так сделать или проконсультировать по компонентам? :)
в готовых смущает стоимость и сложность изготовления нубом.
Готовые вроде не нужно изготавливать, готовые — это взял и включил :)
+
avatar
0
Так сделать или проконсультировать по компонентам? :)
спроектировать
сделать — это я слишком многого хочу
типа разработка и тестирование, а потом ещё и инструкцию по монтажу и сборке

в готовых смущает стоимость и сложность изготовления нубом.
во второй части имелись в виду дизайны/рецепты

по сути мне нужен консультант который бы не смеялся над тупыми вопросами,
а чётко и по делу отвечал
+
avatar
  • AndyBig
  • 17 апреля 2019, 21:35
0
спроектировать

типа разработка и тестирование, а потом ещё и инструкцию по монтажу и сборке
Это будет или быстро и дорого — заказать. Или дешево и очень долго — ждать энтузиаста, который сам захочет и сможет сделать такое :)
+
avatar
  • non7top
  • 09 апреля 2019, 23:46
0
А что не так с сабжем? В нем уже все расписано для чайников. Начинайте и делайте.
+
avatar
  • mooni73
  • 09 апреля 2019, 20:00
+3
Меня удивили возможности прошивки ESPEasy — конфигурирование через вебфейс и стабильность. www.letscontrolit.com/wiki/index.php?title=ESPEasy
+
avatar
  • m13ale
  • 09 апреля 2019, 20:35
-1
Ну, это еще изучать надо, а в данном случае просто вставил в скетч свои учетные данные и всё сразу работает…
+
avatar
  • st512
  • 09 апреля 2019, 22:31
+2
Вот тоже для себя открыл ее после долгих месяцев мытарств с ардуиной… Сейчас устройства собираются как детальки лего, надо часы — пожалуйста, метеостанцию с экраном, тоже можно… в прошивке есть список поддерживаемых модулей, покупаете подходящие и соединяете проводками, а дальше в человекопонятном интерфейсе в барузере настраиваете
+
avatar
  • vasyna
  • 09 апреля 2019, 20:32
+3
Вот прикольная вещь: it4it.club/topic/55-meteostanciya-na-esp8266-ot-it4itclub/
Датчик уровня освещенности BH1750
Датчик атмосферного давления BMP085/180
Датчик влажности SI7021-A20
Датчик влажности HDC1080
Датчик влажности HTU21D
Сборка 3 в 1 из датчиков BH1750, HTU21D и BMP180
Комплексный датчик BME280 для измерения температуры, влажности и атмосферного давления

3д модель будки для размещения датчика на улице.

протокол MQTT, «ThingSpeak» и «Народный мониторинг»

Вот такой красивушный интерфейс


Вполне гибкая прошивка, без особых проблем добавил датчик 220В.
Пользуюсь уже 2 недели. ВОт на днях перенастроил на 3 суток лог в вебе датчика.
+
avatar
  • m13ale
  • 09 апреля 2019, 20:42
0
Не, во всех таких проехтах меня раздражают закрытые искодники и навязчивое крохоборство…
+
avatar
  • vasyna
  • 09 апреля 2019, 21:30
+2
Открой ссылку и посмотри. Код открыт, автор отвечает на вопросы, денег не требует, но не откажется если кинешь.
А еще и «проехтах». Это у тебя поделие на коленке которых тысячи в интернете, а тут серьезный поход и вполне себе завершенный проект.
+
avatar
  • m13ale
  • 09 апреля 2019, 21:54
-2
Смотрел уже, только по диагонали. Сырцы действительно есть и проект хорош. Но слишком сложен для массового повторения. То ли дело мой «проехт на коленке» — купил деталек на 5$, припаял 4 проводка, запихнул всё в спичечный коробок, повесил за окно — профит! Метеостанция за 5$!!!
+
avatar
  • vasyna
  • 09 апреля 2019, 22:11
+3
А чем сложнее этот? Объясни?
Вот тебе прям распишу для одаренного:
1. Взял nodemcu, data кабель, bme280, usb кабелек как донор, просто проводкой, паяльник и прочее. Разложил на столе.
2. Открыл arduino, открыл скетч (опустим настройку IDE для прошивки ESP'ешек), подключил дата кабелем нодемцу, нажал как написано в инструкции загрузить скетч, потом данные
3. Подключился к esp по wifi, настроил подключение к моей точке. отключил все
4. согласно схеме припаял 5 проводков (питание, земля, данные) + по мануалу надо с питания на d3 кажется кинуть перемычку. я добавил питание от USB кабеля.
5. Подключил свой кабель в USB порт, открыл в браузере по указанному в настройках доменному имени web интерфейс и увидел подклчюенный датчик и показания с него.
Все.
1. Ценник не дороже твоего
2. Возни не больше чем с твоим
3. очень большая гибкость
4. возможность на будущее без великих потерь добавить свои плюшки.
А главное что сделал для нас автора — обновление интерфейса через WEB (это очень круто) и обновление прошивки через web. К примеру датчик 220В я прикручивал так:
1. Взял другую nodemcu, аппаратный детектор 220В, соединил все это
2. Открыл IDE с проектом автора, по его же документации в том же проекте добавил то что мне требовалось в указанные им места, отладил все это дело на столе.
3. отпаял датчик от тестовой ESP, припаял на постоянное место жительство, через web интефрейс обновил программную составляющую. Все. И вот сейчас меня уже кое что не устраивает и все что я сделаю так это просто перепишу код, скомпилирую его и опять же загружу через веб, не отключая и не неся на рабочее место устройство.
+
avatar
  • non7top
  • 09 апреля 2019, 23:48
+2
Просто многим свой велосипед ближе к телу.
+
avatar
  • vasyna
  • 10 апреля 2019, 00:10
+1
А я не отрицаю)
Просто с ходу кидаться такими тапками… Я и сам подобное на коленке делал, но хотелось именно красивостей, у меня с ними туго. Вот нашел (долго искал), делюсь.
+
avatar
  • non7top
  • 10 апреля 2019, 00:22
0
А что искать-то? У алексагайвера уже давно все выложено и разжевано. Но альтернативы — всегда хорошо.
+
avatar
  • vasyna
  • 10 апреля 2019, 00:37
0
У него есть проект равный по функционалу, гибкости, визуальной составляющей? Уморил. Во вторых он копипастер тот еще. Ну в и втретьих это все еще не его уровень программирования.
+
avatar
+2
Спасибо! Собственно такое и искал.
+
avatar
0
очень неплохо. побольше бы таких проектов. но зачем зоопарк датчиков? хватило бы BH1750 и BME280.
+
avatar
  • vasyna
  • 09 апреля 2019, 22:13
0
но зачем зоопарк датчиков?
Гибкость. Вот есть у тебя такой датчик, ты подключил его. А есть дургой, то другой. А если есть третий, и ты немного волокешь где взять код как с него получить датчик, то пару минут копипаста кода и на тебе третий датчик )
+
avatar
+1
Начал ковыряиь исходники. Как уже говорил неплохо начисанно, но медианный фильтр — это адь и израль
+
avatar
  • vasyna
  • 12 апреля 2019, 17:47
0
Напиши лучше и опубликуй. Мы будем рады.
+
avatar
+1
Уже пишу и скоро предложу автору в его теме.

Я немного переделываю проект под себя и делаю его чуточку понятнее. А то у него в *.h файлах все смешалось — кони люди.

Например разгреб все что у него навалено в tools.h — все фильтры переделка и оставил в filters.h, a все что связанно с расчетом абсолютной влажности, точки росы и тд. положил в meteorology.h.

Как то так. Автор проекта все равно молодец.
+
avatar
  • IH8
  • 09 апреля 2019, 20:35
0
Подскажите, пожалуйста, а датчик BME брать на 3 или 5 вольт? На схеме 3, но на всякий случай уточняю. Спасибо за обзор.
+
avatar
  • m13ale
  • 09 апреля 2019, 20:40
+4
Только 3.3В! Максимальное рабочее напряжение у датчика — 3.6В, а значит на 5В плате будет стабилизатор 5В->3.3В, который будеть понапрасну греться и портить показания.
+
avatar
0
есть такое, на градус точно нагревает.
+
avatar
  • IH8
  • 09 апреля 2019, 21:54
0
Спасибо!
+
avatar
  • diaskzn
  • 09 апреля 2019, 20:46
0
@m13ale, а есть возможность прикрутить анемометр?
датчик скорости ветра сигнал 4-20MA/В 0-5 в Выход Ветер скорость передатчик Анемометр, металл matarial
aliexpress.com/item/1PCS-X-Wind-speed-sensor-signal-4-20MA-0-5V-output-wind-speed-transmitter-anemometer/32668695668.html
+
avatar
  • SERG27
  • 09 апреля 2019, 21:14
+3
Простейшая DIY интернет-метеостанция
далее идет список на 8 листов… :)
+
avatar
  • skyvkad
  • 09 апреля 2019, 21:31
0
На счет этих датчиков BME280 хочется сказать, накопилось 3 разновидности, некоторые не по одной штуке, и вот все влажность не показывают в проекте wifi-iot.com. Прям все прикидываются BMP280, вот так вот — или продавцы врут, или косяк проекта.
+
avatar
  • m13ale
  • 09 апреля 2019, 21:56
0
Да в общем-то, полно скетчей для проверки ВМЕ280. Залить да проверить…

Кстати, там на сайте же написано насчет поддержки сенсоров:
Sensors: BMP 085/180, 1-wire DS18B20, DHT 11/21/22, AM2321
+
avatar
  • skyvkad
  • 09 апреля 2019, 22:09
0
Ну-да, проверять только и остается.
+
avatar
  • EngelS
  • 10 апреля 2019, 20:30
+3
Можно визуально определиться
BMP — прямоугольные коробочки 2,5х2,0 мм
BME — квадратные коробочки 2,5х2,5 мм
Ну и разная маркировка на корпусах — вторая строка с «K» у bmp и с «U» у bme. В даташитах это указано.
+
avatar
  • skyvkad
  • 10 апреля 2019, 22:12
0
Спасибо за информацию, у меня все прямоугольники, китайцы мошенники.
+
avatar
  • char
  • 09 апреля 2019, 22:09
+1
Как раз для такой платы (Wemos D1 Mini) никакой скетч не нужен. Есть готовая прошивка Sonoff-Tasmota.
Существует и русскоязычная версия. Заливается через ESPEasy.
Сам на днях попробовал вместо скетчей — жалею, что раньше на такой вариант не перешел. Помимо всего, это еще и совместимость с экосистемой модулей «умного дома» от Sonoff.
+
avatar
  • Q2W
  • 09 апреля 2019, 22:24
+1
Но у меня такой возможности нет и примерно 4ч в день метеостанция будет на солнце, поэтому я пока еще в раздумьях — как-бы снизить погрешность без громоздкой жалюзийной защиты датчика? Если знаете хорошие варианты — предлагайте в каментах.
Я сделал так:

Т.е. просто засунул датчик в вертикальный кусок трубы так, чтобы дождём он омывался, а солнце его не доставало (у меня северная сторона, поэтому сверху солнце на него никогда не светит).

На народмоне видел фотки метеостанций, где датчик живёт в какой-то груде перевёрнутых тарелок.
Наверное, тоже норм, если над датчиком достаточно расстояния, чтобы тепло от него туда успевало уходить.
+
avatar
  • ACE
  • 10 апреля 2019, 00:37
+4
датчик живёт в какой-то груде перевёрнутых тарелок
На всякий случай, вдруг кому пригодится, это называется «будками Селянинова» у нас и «Stevenson screen» у них. По вторым словам можно найти готовые конструкции для печати на thingiverse.com
+
avatar
0
т.е. к «датчикам на 5 долларов» прибавляем 3D-принтер за 150 $ и расходники?!
;-)
+
avatar
  • AndyBig
  • 13 апреля 2019, 21:03
0
Если Вы их купите специально для этих датчиков, то прибавляйте :)
+
avatar
  • ACE
  • 13 апреля 2019, 22:20
+1
Не, ну если у вас из расходников и инструментов только ножницы и бумага, то тогда ищите по тем же словам, но на сайтах оригами :)
+
avatar
  • EngelS
  • 09 апреля 2019, 23:22
+5
Единственное, что я бы не стал делать это
ищем на компе файл Adafruit_BME280.h, в нем ищем строчку #define BME280_ADDRESS (0x76) и в ней меняем 0x76 на 0x77, ну или наоборот.
Как-то неправильно это, в общей библиотеке менять адреса датчиков под каждый проект.
Во первых, адрес датчика можно сменить переключив перемычку на плате.
Либо, адрес можно задать в самом коде своей программы в момент инициализации
(bme.begin(0x76))
+
avatar
  • m13ale
  • 10 апреля 2019, 09:13
+1
Ну, на большинстве плат с ВМЕ280 — перемычек нет, а перепаивать smd-компоненты размера 0603 — это не самый простой путь. А вот (bme.begin(0x76)) — это прям то, что надо!
+
avatar
  • godsha
  • 10 апреля 2019, 09:37
+1
А может кто подсказать похожий датчик для температуры ниже -40 °C?
+
avatar
  • m13ale
  • 10 апреля 2019, 10:48
+1
Я, когда искал такой термодатчик с расширенным диапазоном — в итоге остановился на связке max6675 и термропары К-типа.
+
avatar
+1
Тогда уж лучше MAX31855 — elchupanibrei.livejournal.com/37378.html
+
avatar
-1
Все это бред сивой кобылы. Погода может меняться не предсказуемо. МЧС шлет смски, только толку то от них. Также и эти датчики. Ну показывают они температуру, а дальше то что? Прогноз на неделю они делают? С таким же успехом можно и в окно посмотреть.
+
avatar
  • m13ale
  • 10 апреля 2019, 10:50
+1
Для кого-то — бред, а те, кто поумнее — активно используют данные частных метеостанций в своих математических моделях, для уточнения локальных прогнозов погоды.
+
avatar
0
Ну давайте те кто поумнее предскажите мне погоду на майские праздники.
Координаты село Парский Угол Моршанский р-он Тамбовская обл.
+
avatar
  • Lvenok
  • 10 апреля 2019, 11:14
0
Я просто смотрю на народном мониторинге )))
У меня постоянно вкладка открыта…
Я тоже люблю wemos mini, но с доставкой получается уже 3 доллара… (((
+
avatar
  • m13ale
  • 10 апреля 2019, 13:34
0
Да тут можно и голый модуль ESP-12F использовать, но к нему подпаяться сложнее и программировать заморочно. Проще всё же добавить 1.5$ и взять Вемос мини.
+
avatar
  • Lvenok
  • 10 апреля 2019, 14:42
0
Я видел плату-кроватку с обвязкой для таких модулей. Вставляешь, прошиваешь, а потом используешь где нужно…
+
avatar
  • Lvenok
  • 10 апреля 2019, 14:53
+1
+
avatar
0
Скетч не работает, пишет ошибку
Serial.write;

^

exit status 1
stray '\302' in program
+
avatar
0
так и должно быть, автор зачем-то копирнул и вставил текст скетча и теперь он на странице в кодировке UTF-8 а arduino IDE принимает ASCII
Если бы он сохранил файлик ino было бы здорово.
А так мудохаться править сей шедевр :(
+
avatar
  • akaivp
  • 11 июня 2019, 09:14
0
А так мудохаться править сей шедевр :(
AkelPad — Файл — Сохранить как… — Кодировка
+
avatar
0
AkelPad — Файл — Сохранить как… — Кодировка
а мне нравится ваш оптимизм ;) Одно плохо AkelPad пока без нейронных сетей и рабочий скетч не получится, а тот шлак в нужной кодировке ещё руками разгребать и разгребать.
В тексте скетча произошла оптимизация html кода в итоге мы имеем Serial.write©
+
avatar
0
Спасибо всем
+
avatar
  • artist
  • 29 июля 2019, 06:08
0
Исправленный рабочий скетч. Оставлена загрузка только на narodmon.ru.
ссылка
+
avatar
0
Кто подскажет ссылку на обратное устройство, которое берет инфу с народного мониторинга и выводит на дисплей.
Метеостанция за окном висит, работает на батарейках и передает инфу на народный мониторинг.
Хочу дисплейчик на столе у себя, чтоб брал данные с сайта.