Крутые интернет часы ESP8266, E-Paper дисплей и DHT22

Крутые интернет часы ESP8266, E-Paper дисплей и DHT22


Hello! It is Igor with you on the Home Made channel. And today we will be making a cool Internet watch based on the ESP8266 very cool e-Paper display. Go! The basis of everything will be the Node MCU board. I removed some contacts, left only those that I need. You also need a battery, and I took this battery from some old mobile phone. Temperature and humidity sensor. I will use the DHT22 sensor, aka AM2302. To charge the battery, I will use the TP4056 board. I removed the USB connector from the board to reduce the size. And also replaced the current-setting resistor. We also need a 3.3 volt voltage regulator. This is due to the fact that the ams1117 stabilizer built into the board has very poor performance. This is a linear stabilizer, consumes a lot of energy, and requires too much input voltage for itself. Therefore, this board cannot be powered from the battery. To do this, use an external Voltage regulator. I used just such a board, a link to it will be in the description. The minimum input voltage for it needs 3.4 volts, while for ams1117 you need a voltage of more than 4 volts. Therefore, you can’t do without an external stabilizer. Also some more resistors will be needed. The basis of all will be an e-Paper display with dimensions of 4.3 inches with a resolution of 800 x 600 pixels, which was provided by DFrobot. All necessary pictures will be stored on MicroSD. I am using an old 256 megabyte microSD flash drive, and I have enough. Wires to the display. Switch. And we will collect all this in a case printed on a 3d printer. And also small things. Various bolts suddenly come in handy. We now turn to the consideration of the device diagram. First you need to slightly modify the NodeMCU board so that you can switch the power from either usb or the battery. This is necessary so that the power does not go simultaneously from the battery and from USB. Either from one, or from another. To do this, remove this diode. It’s not necessary to completely remove it, you can simply unsolder one side and deploy it. Next, a switch is installed that will switch the power from either USB or battery. When usb is connected, a 5 volt power is generated on the VU pin, which is fed to the step-down converter and is powered by the NodeMCU board from it. If the switch is in different position, then the power is supplied from the battery through the converter and feeds the NodeMCU board. When you connect the usb cable, the battery immediately charges via TP4056. A resistor divider is also installed, which is designed to measure the input voltage. If the power comes from the battery, the voltage on the battery will be measured. Thus, we find out the battery level. If the power comes from USB, it will be determined that the battery is charging. The DHT22 temperature and humidity sensor is powered directly from the power that is supplied to the transmitter, like a battery, or powered by usb. The display is exactly the same. It is powered directly from the main power. This is necessary so as not to load the voltage regulator 3.3 volts, and so that during the display update there will not be a voltage drop, due to which the board may reset and reboot. The display itself is not connected with all pins. I decided not to connect some pins due to their uselessness. For example, I did not connect the rx pin, because it interferes with the flashing of the board. And this is not very convenient – open the box, disconnect the display, reflash, collect everything back… At the same time, I will not read any data from the display, I don’t need it. I will only send data and commands. Therefore, only the tx pin is connected. Pin rx (it has a blue wire) will not be connected. Also, I did not connect the pin that is responsible for the Reset, that is, rebooting the display. This is due to the fact that when the ESP8266 enters deep sleep mode, the pins are reset, which causes the display to reset, and it turns on, although it should go into deep sleep and consume a minimum of energy. Therefore, I did not connect the reset pin either. All other pins can be connected to any pin. There is only one that is responsible for waking up the display, pin tx, that’s all. And two pins of power. That is, the display is connected with only four pins. Two power pins, a tx pin and a wakeup pin to wake up the display. That’s the whole scheme. It is quite simple, and it remains only to collect. We have all the details, now you can start assembling. [music] [music] [music] [music] [music] [music] [music] [music] [music] [music] [music] [music] So, a crucial moment. Everything is assembled here, everything is soldered, not twisted a little, but now we need to check the operability, whether everything will work or not. So, turn it on turn on, the LED lights up! The screen is updated. WiFi connection. Connected! So, we are waiting for the update. Fine! Shows the time 20:22, Tuesday, the 22nd day, temperature 25.5 degrees and humidity 71%. Humidity is very high. The battery is slightly discharged. WiFi connection is. Fine! It remains to collect all this. You can turn it off. Most interesting: I turned it off now, but the image remains. This is the whole bun of e-Paper displays. They show excellent voltage. Very cool display. Now we put it all together and twist. In general, the device is ready, it remains only to check how it will charge via USB. [music] [music] [music] [music] So, everything is assembled, and everything works fine. The housing is assembled. Bolts, of course, are not super, but they are. It is possible without them. Here is a 256 megabyte flash drive. Temperature and humidity sensor. Switch and USB connector. If you turn off and connect USB, the power will automatically be supplied from USB, and the watch will still work, only the battery will not be discharged. Let’s try to connect the charging now, but before that I will say something. Yesterday I collected this watch and charged it. Quite a lot of time has passed, but the battery still shows a full charge, that is, it practically does not discharge. The battery should last a very, very long time. I measured the consumption, this watch in standby mode consumes (that is, between time updates) about 10-20 milliamps. This is very small. So, we connect the power, and we see the light of the LED from TP4056, which charges the battery. By the way, there was a reconnection of power. If I turn it off now, it will update, reconnect to the Internet. And we see the charging icon, that is, now the device is powered by USB, and the battery is charging. These are such cool, cool watches! Now let’s go over the code and see what we have there and how. In the beginning we connect various libraries. Basically, these are libraries for working with WiFi and NTP server, in order to get the current date and time from the Internet. For more information on NTP server and Internet clock, see another video. The link will be in the description. It also connects a library for working with the display, a library for the DHT22 sensor, and also connects a library for timer interruptions. This interrupt is necessary in order to count down one second. We determine the settings of the NTP server, the settings of the DHT22 sensor it is connected to pin 13. We initialize the sensor, initialize the timer. Also settings on the NTP server. Again: a link to the video will be in the description. Define various variables. Here you need to specify the name of your WiFi and its password. Variables for seconds, minutes, and hours. The variable in which the current date value is stored in numerical format. Variables in which temperature and humidity are stored. And also some temporary variables. These variables store the names of the days of the week and months. Unfortunately, fonts that automatically connect to this display do not support Cyrillic. Therefore, all names are in English. In order to display text in Cyrillic, you need to select special fonts, but I did not succeed. Or enter the text in the form of pictures. That is, draw pictures with text in Russian. The variable voltage on the battery, as well as two variables that give permission to display every minute update or updates over WiFi date and time. Pin that is connected to the pin “wakeup” on the display. A temporary buffer. You can leave it empty, but I wrote “hello string” here, but you can leave it completely empty. Here’s a function that is called by a timer interrupt once per second. Increasing the second value, and if reached 60 seconds, the increment minutes and the same and the hours. Once a minute we give permission to refresh the display. Also, a timer ticks every hour, and if the timer value exceeds a certain value, then we give permission to update via WiFi. That is, update the date and time. I bet 1 time in 6 hours, that is, more than five. You can put any other value, at least 48. To be more precise:47, then the clock will be updated every two days. As soon as the value exceeds 23 hours, it has passed the day, then we increase the value of days. Go to the Setup section. I did not initialize Serial, because it is automatically initialized in the library for the display, because the display works through serial, and there serial is automatically initialized at a speed of 115200. Determine the pin to the output pin is connected to the LED, in order to turn it off to save power. Initialize the display. We initialize the pin with which we will wake up the display. We awaken the display and determines which memory it will work. You can work with the internal memory, and can be operated from an external MicroSD. In this case, I work with an external microsd card, onto which I record all the necessary pictures. After that, we clear the display and set the font format. Next is the internet connection. If the connection has occurred, we display a message that there is a connection, and in Serial we display the ip address at which the connection occurred. We initialize the timer, initialize the temperature and humidity sensor, and update the display. Then turn off the LED on the ESP8266 to save energy. something so difficult is not in the main program loop. If there is permission to update the display, then we will make a ban, and we will do all the other functions. Awaken the display. Draw the background. If there is permission to update via WiFi, we update the date and time, draw an hours, and get data from the temperature and humidity sensor. We draw the value of the battery, and update the image on the display, after which we put the display into sleep mode, and make a delay of 10 seconds. So, let’s go over the functions. The “wakeup” function forces the display to wake from sleep mode. It just changes the pin from Low to High. Function of working with the sensor: we get the temperature and humidity. And if the data is not received for some reason, for example, the sensor does not work, or there may be poor contact. Well, if data is not received, then an error message is displayed. If the data is received, then the display shows the value of temperature and humidity. Drawtime function: this function is needed in order to draw the current time on the display. There is no such large print. The largest one is this one – it spelled out “Thursday” and the numbers “24.5”. To get such a large font, I had to draw it, draw individual numbers. If you look into the folder, here you can see what is on the microSD, which is inserted into the display. Here are individual pictures of numbers, the image of the battery, the image of WiFi, as well as some other pictures that are used. So, this function breaks the number into high and low digits. And depending on which digit is in the Hight or Low category, the corresponding picture is drawn. That is, if it’s 10 now, then the unit is drawn in the highest order, in the low-order zero, and so on. The same goes for minutes. Battery function: in this function, the value from the analog input is read 50 times. After that, the resulting value is divided by 50, and thus we find out the average value. Next, through the formula, we find out the current value on the battery. And, depending on the value, we display the corresponding picture – the picture of the charge or discharge of the battery, or the picture that it is connecting via USB and the battery is charging. If the battery is completely discharged and further operation is not possible, the watch will automatically turn off and display the image of the discharged battery on the display. To do this, the display is cleared, a picture is displayed and the time is entered – here at the top in small print it indicates the time at which the clock went off. In order to roughly know how much battery is enough. You can remove these few lines and not use them at all. The display goes into sleep mode for minimal power consumption, and esp also goes into deepsleep mode for minimal power consumption. The WiFiupd function is needed so that you can connect to the Internet and get the date and time, so that the clock itself does not lag, do not rush, and you can get the current date and time. Here are the main two sections: if connected to the Internet, then we perform a certain part; and if there is no connection, then on the display we draw that there is no Internet, and connect to WiFI. Also on the display we display the current date, that is, Thursday, October 24. In the main function, if WiFi is connected, we display images of connected WiFi. Now WiFi is connected. If permission is given to connect to WiFi, and this permission, as we considered earlier, costs me once every 6 hours, then once every 6 hours I connect to the NTP server and get the current date and time. For more information about the NTP server and getting the date and time, see another video. And we update the value of the variables responsible for the date and time. That’s basically it, that’s all the code. There is nothing particularly complicated in it. These are such interesting watches. Of course, in them, in the watch itself, there is nothing special, but this is the first step to creating a weather station. Still, I will do it. The clock will communicate via WiFi with the ESP8266, which will be installed in the weather station, and here the received data from the weather station will be displayed on the display. Therefore, click on the bell, subscribe to the channel, and do not miss new videos. I wish you success, let your projects be cool and interesting! Subscribe to the channel. Bye everyone!

76 thoughts on “Крутые интернет часы ESP8266, E-Paper дисплей и DHT22”

  1. Класс! Тоже кстати делал когда-то похожий проект, но с цветным дисплеем. Правда там основной упор был сделан на прогноз погоды.
    http://b-i-m.online

  2. Дисплей дорогой наверно.Я вчера выложил ламповые часы на esp8266 если интересно можете глянуть.

  3. Очень круто. Одно но… Винты крепления на лицевой панели несколько портят внешний вид.

  4. Часы бомба. Только датчик температуры влажности в очень неудачном месте. На задней стенке поместить магнит чтоб вешать к металлическим поверхностям.

  5. Норм. Хоть и дорого в целом. Но вот размыкать цепь между аккумом и платой зарядки очень настоятельно рекомендую – иначе она выжрет заряд с аккума. Себе уже пару раз так высадил аккумы до вздутия(забыл). А можно так же, но на esp8266 и на жк дисплее от нокии для нищих?))) И ты просто обязан теберь вихнуть туда дачтик углекислого газа для анализа воздуха)) И еще – может ли экран обновлять лишь часть дисплея или обязательно весь рефрешить с мерцнием?

  6. Мне думается, тож самое делается на одном восмибитном МК + ВайФай модуль.
    6 лет тому назад я делал интернет радиоприемник с интернет часами на одном МК PIC18 с физической поддержкой Изернет. Модули ВайФай тогда не использовал.

  7. А сколько держит акумм на таких часах?
    Так как 10-20мА это очень дох… для часов. Я так понимаю без ухода в сон?

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

  9. Экран класный, но раздражает что он становится весь черным при обновлении.

  10. труда много, по деньгам вообще жесть!
    дисплей 4000 руб, плюс мелочевки еще на 1000. Итого – сами посчитайте! Самоделка обошлась дороже готовой магазинной! не надо так делать

  11. Что-то мне кажется, если вай фая нет в доступности, то код зависнет на 113 строчке.

  12. Классная тема, спасибо. Просьба говорить четка и внятно, громко. Не бубните поднос)

  13. УуооОочень красивые часы получились.
    Цифры просто супер!☝️
    Молодец!
    С меня лайк!
    Спасибо за такое интересное видео.

  14. Супер, спасибо за подробности, дисплей очень классный!!! Сколько К будет стоить в коммерческих целях в качестве подарка? А вы вообще подписчикам делаете подарки иногда? (Шутка, но я не прочь принять подарок)
    Искренье…. Спасибо за увлекательное видео, проделанной работе и за то что не перевелись ещё такие РУКАСТЫЕ ЛЮДИ как ВЫ!!!!

  15. E-ink дисплей при всех своих достоинствах совершенно не годится для часов. Нет никаких очевидных признаков, что они исправны (потухший LCD экран, остановленная секундная стрелка и т.д.). Ваши обесточенные часы так убедительно показывают время, температуру, влажность, полный заряд батареи и наличие WiFi.

  16. За такие деньги за монитор дешевле сделать на смартфоне с приложением hmi kascada и wemos mini (для датчика температуры и влажности .

  17. Давно присматриваюсь к данному типу дисплея. Как только цена будет умеренной, то проектов будет больше. А совсем хорошо будет, если на нем можно будет писать. Полная замена бумаги.

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

  19. Схемку стоит доработать. usb/акб переключатель не нужен.
    VU это не вход, а выход +5 вольт. (VoltUSB) при питании от usb порта nodemcu. т.е. задействуется AMS на плате для питания espшки.

    Vin (VoltInput) Это как раз таки вход +5 вольт. Но кто то выдрал диод.
    Вместо dht22 лучше bme280 у него барометр внутри, он меньше и может быть размещен внутри за небольшим отверстием.
    DIR-615 в помойку!!!
    timersIsr() шта? это зачем? есть же уже все данные с ntp

    дергать обновление времени лучше через ticker и вообще из ticker сделать некий планировщик избавившись от delay раз и навсегда.

    delay в loop() недопустим. Вот за что вы так поступаете с процессором?

    ArduinoIDE в помойку!!!

    тот редактор в котором нарисована схема в помойку вместе со схемой.
    И почему esp? если wifi там нужен 1 раз в 6 часов?
    З.Ы. Идея хорошая, экран отличный, корпус прикольный, беленький и тонкий. DHT и гайки весь вид портит.

    Лайк только за то, что заставили этот код как то работать.

  20. Сделано зачетно ! однозначно лайк
    НО. по моему часы должны быть или ручные или настенные. На худой конец нашкафные. https://youtu.be/7eOAVlV6NaM (ну как без саморекламы?)
    ХОТЯ.. Если дисплей на халяву то почему-бы не побаловаться.
    Тумбочные часы тоже оч даже имеют право на существование.
    Сам давно засматриваюсь на чернила.

  21. Батарейка села, но часы показывают, причем два раза в сутки – ТОЧНОЕ время! До чего техника дошла… Сделав круг.
    10 мА в режиме ожидания – нну это… Просто нет слов! Вы не ошиблись, может десять миКРОампер?
    Датчик влажности вы выбрали – просто шедевр лоутека! Про si7021 не слышали?
    А нерабочую часть дисплея, черные полосы сверху и снизу, почему корпусом не закрыли? Это дизайн такой? ))

    +1, особенно за 10мА в режиме ожидания, да с книжным дисплеем… Удивить = победить! (С)

  22. Дружок этот твой дисплей продают по 58 баксов, плюс еще другая комплектация! Не думаю, что за часы стоит отдавать такие деньжища! …за часы! обыкновенные часы! Да за эти деньги можно целый ЦВЕТНОЙ планшет купить и включить программные часы! Кто согласен ставим лайки!

  23. 57$ это дорого!
    Простое изменение любой точки на экране требует полного сброса всего полотна экрана и выглядит обновление не айс!

  24. Интересно , а в читалку этот дивайс превратить не думал? Практически все есть. Добавить кнопки и прошивочку написать. Кто за?

  25. код не плох, но вот с прерыванием использовать delay(); лучше создайте свою функцию на программную задержку. Хотя каждый делает по своему.

  26. дисплей больше чем у Xiaomi Mijia Bluetooth E-link, а цифры мельче. Теперь я понял как выглядит не рациональное использование пространства.

  27. За труды лайк, но в таком проекте такой дисплей как то не мажется…

  28. Лучше использовать готовый вайфай термометр (гидрометр) с вотч догом (что бы не зависал) и вывести зачения на смартфон ,планшет или любой телевизор через ТВ бокс (с установленной Каскадой) https://youtu.be/aUabVzR7vDI

  29. Проект крутой – но и дисплей не дешёвый! Почти 70 баксов с доставкой!

  30. Если я не ошибаюсь ESP-шка спокойно питается напрямую от батарейки. Никакого преобразователя не надо.

  31. Непонятно зачем тут NodeMCU V3 достаточно одного модуля ESP-12F, все равно используется внешняя обвязка.

  32. Как то дороговато для часиков с таким дисплеем.
    А сам дисплей достаточно интересен пока на цену не смотришь

  33. У меня есть несколько часов дома,простых в хорошем корпусе. Как сделать чтобы 00.00 на каком нибудь выводе есп появлялся импульс для сброса остальных часов в 00.00 через радиомодуль 433мгц. Не точно показывают часы на кварце.

  34. Приветствую. Что за программулина в видео в 2:05, в которой нарисованы платы и элементы схемы?

  35. Нагородили кучу и на полшики всего. Если вайфай, то тянуть от туда все: время, дату, погоду, пробки, котировки цены пиваса и акций с местных маркетов. Если локально, то модуль реального времени и датчик DHT22, для комнаты более чем. Можно было вместо nodemcu использовать wemos d1 mini для более компактности.
    А так да отлично, можно потом версию 2 выпустить, где уже будет обработано напильником (как делают сранные маркетологи для расерания модельного ряда 😀 )

  36. Часы прикольные, но не универсальные, нельзя ли модернизировать код для ввода данных wi-fi при нахождении сети? Можно в следующем видео?

  37. Цена дисплея просто супер, за такие деньги можно купить несколько погодных станций

  38. зачем dht22 если esp8266 может с интернета взять данные о температуре в вашем городе
    https://www.instructables.com/id/Morphing-Digital-Clock/
    тем не менее получилось круто

  39. 10 миллиампер или микро все-таки? Если милли то это много

  40. Спасибо! Хороший проект…

  41. Все круто , но за стоимость одного экрана можно купить готовую хорошую погодную станцию с внешним беспроводным датчиком … Да инк экран крут , но цена по моему не оправдана ( …

  42. Неплохо бы ссылки на железки. Судя по цене одного дисплея, а надо-ли заморачиваться!!! Я сам люблю поковыряться но, если стоимость железок превышает уже готовый вариант от китайцев не считая время, то…

  43. Светодиод выковыряй. Пиши цифры минут белым чтоб их стереть и пиши потом новые цыфры или кубиками белыми зарисовывай. Wifi отключай. Dc-dc я бы выкинул. Дисплей можно отключать полностью. Не может он 5 мА кушать. Это ненормально.

  44. для данного функционала достаточно дисплея поменьше, кстати есть двухцветные https://ru.aliexpress.com/item/32832023903.html?spm=a2g0o.productlist.0.0.4bc35343OJq1Bl&algo_pvid=2cf30619-100e-43eb-8b0e-573466ba0c4d&algo_expid=2cf30619-100e-43eb-8b0e-573466ba0c4d-18&btsid=949dcfb0-8cd0-43d5-8ec8-e3b7595fa949&ws_ab_test=searchweb0_0,searchweb201602_3,searchweb201603_55
    Была бы не лишней погода, можно еще вкорячить будильник-таймер.

  45. 11:30…. 10-20 миллиампер для часов, в режиме ожидания это очень много!!!

  46. А как узнать живые часы или нет когда питалово пропало. Типа проснулся, акум сдох и время прошлогоднее. Как то информировать о живости часов надо.

  47. Вроде аккум к Тпэ к внутренним контактом подпаивают, с наружних снимают питание, или ошибаюсь

  48. Дисплей стоит как чугунный мост… нафиг такие часы не надо за такие деньги…

  49. Классное видео, пожалуйста скажите, сколько потребляет в активном режиме ?

  50. Не заметил, а предусмотрена ли подсветка экрана, чтобы можно было ими пользоваться ночью без фонарика?

  51. Как быстро изменяется изображение на таком дисплее? Если сделать часы с секундами, то дисплей будет отключаться перед сменой каждой секунды?

  52. Переключение питания можно сделать на паре транзисторов автоматическим.

  53. На самом деле – очень не плохо ! Лайкую ! И за проект и за размах. Серьёзный подход.

  54. Можно было по питанию электролит поставить, чтобы во время переключения переключателя часы не сбрасывались и не коннектились к Wi-Fi

  55. Добрый день. Как с вами связаться по совместной работе?

  56. 57 баксов за дисплей размером с экран старого смартфона? Да знаю знаю что это за тип дисплея, но всё же…

  57. обновление экрана ужасно! 15 долларов за Xiaomi со всеми вышесказанными плюшками (кроме wifi)

Leave a Reply

Your email address will not be published. Required fields are marked *