 |

31.03.2020, 23:37
|
|
Участник форума
Регистрация: 29.04.2017
Сообщений: 263
С нами:
4757761
Репутация:
213
|
|
RLWG_Readme (3).pngBASS_DEVSOFTWARE · 31 Мар 2020 в 22:37' data-fancybox="lb-post-474515" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/52241/" style="cursor: pointer;" title="RLWG_Readme (3).png">
Играя в GTA Online, спасибо карантину, я обратил внимание на погоду, которая шла в игре: дождь, я бы сказал ливень.
Я люблю такую погоду, и когда она начинается в игре, я скорее рад. Но суть не в этом.
Тут меня осенило - как было бы круто, будь погода в игре такой же, как у меня за окном!
Солнце? В игре солнечно. Дождь? И так далее, по аналогии.
Если для реализации этого в GTA Online мне нужно было бы нанимать хакера, который, как минимум, хакнул нубо-рп 3000 раз, то для САМПа я и сам сварганю за пару чашек кофе.
Хоть я сам и не играю уже в САМП, считайте это подгоном специально для вас😀
Хочу представить вам творение, аналогов которого просто нет.
RealLife Weather in the Game
По старинке, все исходники и мануал по установке на английском языке на моём гитхабе.
Screenshot_30.pngBASS_DEVSOFTWARE · 31 Мар 2020 в 22:37' data-fancybox="lb-post-474515" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/52251/" style="cursor: pointer;" title="Screenshot_30.png">
Введение
Если вы знакомы с моим предыдущим проектом Circle Storage, то вы уже знакомы отчасти с темой Arduino. Если же нет, ознакомьтесь с ним и возвращайтесь сюда.
RLWG- смесь Ардуино и АХК. Я считаю, что если использовать AHK для игр, то только в таких проектах. Техническая часть - Arduino Uno, Ethernet Shield и DHT11.
Последнее - это датчик температуры и влаги, который и поможет нам определять текущую обстановку за окном.
Алгоритм
Программная часть предусматривает 3 параметра: текущее время, влага и температура. Определяемая влага и температура имеют 3 состояния: низкая, нормальная и высокая.
Низкая влага, высокая температура и т.д. Если на часах 9 вечера, нормальная влага и низкая температура - будет пасмурная погода, а то и вовсе дождь. Если в то же время показатели влаги и температуры будут другими - будет и другая погода.
У нас есть 4 отрезка времени
К каждому отрезку времени 3 условия на температуру
К каждому условию температуры 3 условия влаги
Довольно гибкие настройки, не находите?
09_00 - 17_59 (1).pngBASS_DEVSOFTWARE · 31 Мар 2020 в 22:37' data-fancybox="lb-post-474515" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/52243/" style="cursor: pointer;" title="09_00 - 17_59 (1).png">
Настройка
Ethernet Shield устанавливаем поверх Arduino Uno. Датчик влаги подключаем к питанию Шилда и логический выход тыкаем в 7 пин.
Нам понадобится Ethernet кабель. Если у вас роутер, один конец втыкаем в него, а другой в Шилд. Если ноут, в принципе то же самое. Это нам необходимо, чтобы создать локальную сеть на нашем вайфае. Заходим на мой гитхаб, качаем прошивку и открываем IDE. В ней необходимо изменить 1 параметр: это локальный IP Шилда. Как его найти:
- Open Arduino IDE
- File - Example codes - Ethernet - DhcpAdressPrinter
C++:
Код:
IPAddress
ip
(
192
,
168
,
0
,
70
)
;
// Your ethernet local ip.
Заливаем прошивку в ардуинку. Теперь скачиваем исходник AHK и открываем его в блокноте. В нём также меняем локальный ip на свой.
AutoHotKey:
Код:
local_ip
(
192
,
168
,
0
,
70
)
; // Your ethernet local ip.
Помимо этого, можно изменить параметры:
AutoHotKey:
Код:
rechecktime
:=
"5000"
//
Время опроса ahk скриптом нашего локального сервера
.
5
секунд
.
wetlist
:=
{
low_wet
:
{
low
:
20
,
high
:
49
}
,
okey_wet
:
{
low
:
50
,
high
:
79
}
,
high_wet
:
{
low
:
80
,
high
:
100
}
}
//
Параметр низкой влаги идёт от
20
до
49
,
средней влаги от
50
до
79
,
повышенной влаги от
80
до
100.
temperaturelist
:=
{
low_temp
:
{
low
:
-
40
,
high
:
-
1
}
,
okey_temp
:
{
low
:
0
,
high
:
25
}
,
high_temp
:
{
low
:
26
,
high
:
40
}
}
//
Параметр низкой температуры идёт от
-
40
до
-
1
,
средней температуры от
0
до
25
и повышенной температуры от
26
до
40
Сообщение от Спойлер
AutoHotKey:
[CODE]
; Внутри у нас есть 4 условия на время: от 9 до 17:59, 18 до 20:59, 21 до 23:59, 00:00 до 8:59
if
(
clocks
>=
9
&&
clocksmin
>=
0
)
&&
(
clocks
Применение
Подключаем питание к ардуинке, Ethernet кабель уже подключен. Открываем в браузере локальный ip, что вы указывали в прошивке. Если у вас вайфай - это можно сделать и с телефона. Вы должны увидеть страницу, которая будет иметь примерно такой вид:
Если всё получилось - отлично! В противном случае ищите причину ошибки в интернете.
Итак, у нас 2 параметра: Температура (20 *C) и Влажность (29%). В текущий момент это мои показатели в комнате. В вашем случае, выставьте наш бутерброд на балкон, предварительно запитав батарейкой-другой и свесьте датчик на улицу (для более точного отображения). Вы можете сделать это через переходники ПАПА-МАМА, но в своём случае я взял 2 провода, которые свистнул на практике в колледже, и разрезав на 3 максимально одинаковых отрезка подключил их к ардуинке и датчику с помощью изоленты (карантин, радиомагазины закрыты).
Теперь запускаем RLWG.ahk, не забываем про UDF. Меню никакого нет, в трее есть иконка для управления. Заходим в игру, вероятно погода уже изменилась.
Теперь, при изменении погоды на улице, скрипт изменит её и для вас в игре. Если пойдёт дождь - поднимется влага - пойдёт дождь в игре.
(см. со звуком 😉)
Завершение
Надеюсь, моя реализация воодушевит хотя бы одного читающего эту статью.
Даст понять, что даже во что-то старое можно вдохнуть жизнь (только пожалуйста, хватит клепать копии скриптов на смену погоды, однострочные биндеры и др. шлак)
Напомню, что на гитхабегде и лежат все исходники - есть функция поставить  проекту.
Это я так, к слову...
Спасибо что прочитали до конца. Хорошего настроения, здоровья и сил пережить этот карантин!
|
|
|

31.03.2020, 23:48
|
|
Участник форума
Регистрация: 24.05.2019
Сообщений: 123
С нами:
3670432
Репутация:
183
|
|
|
|
|

31.03.2020, 23:54
|
|
Флудер
Регистрация: 03.08.2016
Сообщений: 2,363
С нами:
5145387
Репутация:
183
|
|
|
|
|

01.04.2020, 01:19
|
|
Флудер
Регистрация: 09.08.2015
Сообщений: 2,375
С нами:
5663810
Репутация:
233
|
|
Жаль я криворукий 🤡
|
|
|

01.04.2020, 11:15
|
|
Постоянный
Регистрация: 14.01.2019
Сообщений: 315
С нами:
3857626
Репутация:
98
|
|
Не легче было бы взять esp8266, чем брать шилд под уно? Вышло бы дешевле, и модуль уже встроен туда
|
|
|

01.04.2020, 13:09
|
|
Участник форума
Регистрация: 29.04.2017
Сообщений: 263
С нами:
4757761
Репутация:
213
|
|
Но увы, у хенеси только до локалки дело и дошло 😰
Сообщение от clrn1w
Не легче было бы взять esp8266, чем брать шилд под уно? Вышло бы дешевле, и модуль уже встроен туда
Под рукой не было esp8266, а шилд я давно хотел опробовать.
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|