Радионяня с термометром и гигрометром на 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 запрещен)

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

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

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

Надо датчик влажности в пелёнки вкорячить. Или браслет запилить с хартрейтом и температурой ребёнка.

4
DELETED
Автор поста оценил этот комментарий
Да проще было на гирбесте заказать вай-фай камеру с трансляцией в приложение на андроиде. Цена вопроса 1300 рублей.
раскрыть ветку
3
Автор поста оценил этот комментарий
Когда у меня мелкий еще мелким был я просто звонил в свой скайп с телефона на комп с вебкой. Видимо у вас очень много свободного времени для подобных заморочек
раскрыть ветку
3
DELETED
Автор поста оценил этот комментарий
24C

Чет малой подостыл немного

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