Радионяня с термометром и гигрометром на Esp8266 и Android

Привет, Пикабу!

У меня пару недель назад родились сразу две удивительные дочки, Василиса и Варвара:) Я от них просто без ума, они потрясающие! :) Но! Даже самому безумному папке нужно иногда отойти от кроваток своих дочурок,  сделать домашние дела, подключиться по vpn на работу или просто пойти и выкинуть мусор, пока любимая жена в душе.

Решение, как же узнать, что детки проснулись, давно известно, опробовано и используется кучей людей в мире.

Радионяня!

Ок!

(Можно смириться с ебучей ценой за трехсотенный девайс и не читать дальше)

Но это не наши методы, правда?

Пикабушник, ты видел цены на два куса пластика с тремя транзисторами внутри? Я чутка потерялся, буду честен. Всё, что имеет приставку "детское", почему то и цену имеет неоправданно завышенную. Не буду далее томить.

Я сделал радионяню на датчике звука от ардуино, присовокупил датчик температуры/влажности, и всё это мониторю по домашнему WiFi на любом Android-устройстве.

В настройках можно изменить адрес, где слушает esp, и время опроса.

Радионяня с термометром и гигрометром на Esp8266 и Android Моё, Arduino, Nodemcu, Ky-038, Android, Dht22, Esp8266, Автоматизация, Длиннопост

Итак, что мы имеем. Два устройства, смартфон и nodemcu с датчиками.

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

Код для esp простейший:

#include <ESP8266WiFi.h>
#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
const char *ssid = "wlan;
const char *pass = "pass";
WiFiServer server(80);
IPAddress ip(192,168,1,128);
IPAddress gateway(192,168,1,1);
IPAddress subnet(255,255,255,0);
void setup() {
pinMode(A0,INPUT);
Serial.begin(115200);
delay(10);
WiFi.begin(ssid, pass);
WiFi.config(ip, gateway, subnet);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("WiFi connected, using IP address: ");
Serial.println(WiFi.localIP());
server.begin();
dht.begin();
}
void loop() {
WiFiClient client = server.available();
if (!client) {
return;
}
while(!client.available()){
delay(1);
}
delay(3000);
float h = dht.readHumidity();
float t = dht.readTemperature();
int s = analogRead(A0);
String req = client.readStringUntil('\r');
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head></head><body>");
client.print(t);
client.print(":");
client.print(h);
client.print(":");
client.print(s);
client.println("</body></html>");
delay(1);
client.stop();
}

Исходники для андроида можно взять на гитхабе

https://github.com/antsharapov/ArduinoBabyMonitor

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

Радионяня с термометром и гигрометром на Esp8266 и Android Моё, Arduino, Nodemcu, Ky-038, Android, Dht22, Esp8266, Автоматизация, Длиннопост

Датчик звука у меня KY-038.

Не знаю, что еще описать подробнее, чем есть. Отвечу в комментариях и приму критику и пожелания в комментариях.

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


Спасибо за внимание, надеюсь быть полезным.

Arduino & Pi

1.4K постов20.6K подписчик

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

4
DELETED
Автор поста оценил этот комментарий
Да проще было на гирбесте заказать вай-фай камеру с трансляцией в приложение на андроиде. Цена вопроса 1300 рублей.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Но не 300 и ее надо ждать :) Камера есть, но она опять же в фоне не просигналит на смартфоне о высоком уровне шума и не покажет температуру окружающей среды и влажность, что важно для мелких. А как просто удаленное средство наблюдения решение вполне себе ок, можно и так.

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий

Сделал как у вас через nodemcu, скетч заливаю, в инет по ip данные какие то выводит. Также скачал прогу на андроид по ссылке, но приложение минуту поработает и падает, причем подключиться к ip на котором получаю данные с датчика не получается, в планшет ничего не выводит. Не могли бы скинуть ту версию проги и скетч что у вас?

раскрыть ветку (1)
Автор поста оценил этот комментарий

обновил сегодня на гитхабе проект, там всё актуальное. приложение не должно больше падать, был косяк с выводом звука на андроиде 6+. В новом скетче датчик заменен на bme280, но в истории версий там должен быть и с dht22

показать ответы
Автор поста оценил этот комментарий

Погоди, он подключается к моей точке доступа?

я думал что наоборот я вписываю ssid и пасс и он создает точку я к ней подключаюсь.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Вообще можно разный режим работы задать, но в данном случае еспшка цепляется к домашнему вайфаю с заданным ip-адресом и прописанным шлюзом, и уже с андроид-приложения в той же сети я беру данные

показать ответы
Автор поста оценил этот комментарий

@electrobesom, отличный пост, хочу сделать похожее. Есть arduino due, esp8266(esp-01), датчики dht22.

Если не трудно можете подсказать схему подключения? и подскажите откуда в коде вы берете ip адреса? А то сколько не курю интернет, похожего с выводом на андроид нарыть не могу

раскрыть ветку (1)
Автор поста оценил этот комментарий
Адреса просто не занятые внутри моей сети, адрес gateway это адрес роутера. Схему в вашем случае надо искать, ардуину и отдельный модуль есп не связывал сам пока, жду детали
показать ответы
Автор поста оценил этот комментарий

Может подскажешь, у меня проблема в чем, пытаюсь сделать тестовый заезд, простое включение/выключение светодиода через вайфай, библиотеки загрузил, ком порт выбрал , вроде все даже компилируется и заливается, но ssid у NodeMCU не меняется, как был стандартный farylink так и вист, естественно скетч не работает. Пробывал на двух разных компах, думал мало ли конфлик драйверов. Делал по инструкции отсюда

http://arduino-project.net/nodemcu-v3-arduino-ide/

раскрыть ветку (1)
Автор поста оценил этот комментарий
Инициализацию вайфая как делаешь? Прописываешь свою точку и пасс к ней?
показать ответы
DELETED
Автор поста оценил этот комментарий
Цена 1300 рублей ошеломительна? Тогда ладно.
раскрыть ветку (1)
Автор поста оценил этот комментарий

За компоненты ценой в 130? да) Радионяни у меня в городе начинаются от 2800, например :) И это в онлайн-магазинах с учетом доставки, всякие бэби-гипермаркеты я даже боюсь упоминать, там цены вообще заоблачные. Да, если бы я не вдавался во внутренности и не знал, сколько стоит рассыпуха и человекочасы, из которого это китайское поделие изготовлено, я может быть и проще отнесся к ценам :) Но тут я просто захотел сделать сам, цена не решающий фактор ) Все компоненты у меня были в наличии. Честно, меня просто как новоиспеченного отца повергают в шок цены на любые товары, где есть приписка "детское". Там все упрощено донельзя, нет никаких добавок, прибавок и компонентов, и это позиционируется как очень экологичное. Оно должно быть дешевле, ау! Но хуй там плавал там же есть приписка детское, надо задрать цену на порядок...

показать ответы
Автор поста оценил этот комментарий

Мил человек (и коллективный разум), подумай такую задачу:


Требуется управление розеткой через WiFi. Погодите кидаться тапками, дайте договорить. Надо малость попродвинутее, чем просто вкл-выкл вручную. А именно:

- С телефона подаем команду на включение розетки. В течении N секунд/минут розетка включена.

- По прошествии N минут, если электроприбор в розетке работает, то питание НЕ выключаем. В таком случае розетку обесточиваем через M секунд/минут после того, как выключили электроприбор.

- Ну и само собой, режим ручного включения и выключения чтоб тоже был.


Насколько реально такое наколхозить без ардуин?

раскрыть ветку (1)
Автор поста оценил этот комментарий

https://www.aliexpress.com/item/ESP8266-5V-WiFi-relay-module...

Здесь уже включено в прошивку управление из приложения, приложение есть в маркете, ссылка есть у продавца. А так из простейших деталек и на основе есп такое можно сделать за несколько минут, серьезно.

показать ответы
DELETED
Автор поста оценил этот комментарий
Что касается повышенного уровня шума, в квартире он и без датчиков прекрасно определяется - у женщин становится такой чуткий слух, что каждый писк слышно. Да и дети часто шумят без особого повода) Бесполезная вещь, имхо. Особенно учитывая, что свдс часто бывает без каких-либо шумов.
Камера в этом плане полезнее. Тут и датчик движения есть, и не вставая с дивана можно убедиться, что с ребенком все в порядке. Или в душе поставил планшет рядом с ванной и поглядываешь.
А термометр и гигрометр у меня профессиональные, все-таки в этих делах важна точность.
Камера до меня шла 10 дней и была заказана еще во время беременности. Дети это все-таки большая ответственность, я все просчитала заранее, что значительно облегчило мне жизнь.
А в целом вы представили неплохой самодел на коленке, это да.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Повторю - при нахождении в кухне, при включенной вытяжке, стиралке и посудомойке, прислушиваться к звукам с камеры - не самое удивительное развлечение. Тут звук алерта из телефона гораздо эффективнее, имхо. А датчик движения можно и в мою самоделку прикрутить, особенно зная, как не работает детектор движения в китай-камерах. Свдс вы и на камере не увидите, толку от такого решения, вы уйдете в другое помещение и будете неотрывно глядеть в монитор? Сомневаюсь.

показать ответы
DELETED
Автор поста оценил этот комментарий
У меня камера от розетки питается, никакого компа не нужно.
Короче, надо было вам не изобретать колесо, а изучить заранее рынок.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

показать ответы
Автор поста оценил этот комментарий
А у вас приложение не убивается системой? Без поверменеджера и вэйклока?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Всё чуть проще. можно сделать и вэйклок и пауэрмэнеджер, но повторюсь, всё писалось в обеденный перерыв, поэтому в основную активити просто было прописано

android:keepScreenOn="true"

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

Автор поста оценил этот комментарий

то есть когда тихо то на аналоговом выходе около нуля?

раскрыть ветку (1)
Автор поста оценил этот комментарий

У меня датчик инвертирован, но обычно да. У меня чем тише, тем выше уровень, и соответственно наоборот.

Автор поста оценил этот комментарий
Вопрос. Купил датчик DHT22 со всеми резисторами взборе. Вроде и все правильно подключил к NodeMcu. А на выходе показаний нет. Вернее онм есть но не правильные. Такое ощущение что датчик не подключен. Второй день бьюсь. Ничего не получается. Может датчик умер? Я уже незнаю что и сделать.
Подключил к TX (GPIO1).
Такая же ерунда и с DS18B20.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

Автор поста оценил этот комментарий
Спасибо тебе! Я конечно уже купил самую дешевую радио няню, но с датчиками заморочусь. Подскажи для работы подойдет какойнибудь стандартный кит с али?
раскрыть ветку (1)
Автор поста оценил этот комментарий

Тут модуль esp, который умеет в вайфай, но если купить кит, там есть обычно и датчик звука, и датчик темп/влажности. Есп можно заказать у того же продавца, или купить модуль bluetooth навроде hc-05/06 и переделать код под bluetooth. Но радиус действия сократится.

3
Автор поста оценил этот комментарий
Потрясающе когда человек делает что-то такое сам) поздравляю с рождением девчонок) спокойных ночей вам и чтобы не болели животики) у самой сынок, год ему) первое время по 4-5 часов спала)
У меня подруга, ее зовут Варвара, а дочь у нее Василиса))
раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо Вам! Мы пока спим поменьше))) Даже у собак уже, кажется, круги под глазами ))))

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

Со мной в школе учились и Василиса, и Василина, и в жизни и в работе встречал девушек с таким именем. И все вполне адекватные люди, никто не думал, что они названы мужским именем :) Евгении и прочие не комплексуют, почему должны напрячься девушки с таким красивым именем, как Василиса? :)

Автор поста оценил этот комментарий
Звук передавать - это уже АЦП нужен. В ESP8266 он есть, но не очень подходящий для звука. Можно конечно цифровой MEMS микрофончик взять, которые сразу оцифрованные данные выдает. Вроде MP34DT02. Но тогда в прошивку ESP8266 понадобится добавить некий аудиокодек. Ну или опять же чип кодека добавлять. Усложняется конструкция короче.
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

2
Автор поста оценил этот комментарий
Он просто показывает уровень громкости? Не передает звук? Можно настроить какие нибудь алерты для повышения уровня громкости? Регулировать чувствительность?
раскрыть ветку (1)
Автор поста оценил этот комментарий

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

1
DELETED
Автор поста оценил этот комментарий
Ага, и это при двух новорожденных-то.
раскрыть ветку (1)
Автор поста оценил этот комментарий

В комнате с мелкими нет компа, а все портабл-девайсы нужно держать на зарядке, тут я жду модуль зарядки литиевой батареи и прикручу аккум к этому всему добру. Насчет времени - я то не в декрете, в свой обед на работе написал приложение и скетч, дома только обкатал :)

показать ответы
DELETED
Автор поста оценил этот комментарий
Заводить детей и жаловаться на цены по мне, так глупо. Я не из тех, кто беременеет, а потом думает) Не имей я средств, и детей бы у меня не было.
раскрыть ветку (1)
Автор поста оценил этот комментарий

Вы как-то очень переворачиваете всё, что вам пишут. Где я писал, что не имею средств? Я немного подгораю от цен, но прокормить свою семью я в состоянии, и детей делал осознанно. Если вас не бесит, когда вас наебывают посреди торгового зала, вперед, я вам своё мнение не навязываю, в отличие от вас же. Покупайте всё что вам нравится по цене в десятки раз выше, чем если бы просто подумать головой и сделать два движения руками в своё же удовольствие.

показать ответы