PDA

Просмотр полной версии : [Arduino] [SAMP] RLWG


BASS_DEVSOFTWARE
31.03.2020, 23:37
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">
https://forum.antichat.xyz/attachments/27474515/

Играя в GTA Online, спасибо карантину, я обратил внимание на погоду, которая шла в игре: дождь, я бы сказал ливень.

Я люблю такую погоду, и когда она начинается в игре, я скорее рад. Но суть не в этом.

Тут меня осенило - как было бы круто, будь погода в игре такой же, как у меня за окном!

Солнце? В игре солнечно. Дождь? И так далее, по аналогии.

Если для реализации этого в GTA Online мне нужно было бы нанимать хакера, который, как минимум, хакнул нубо-рп 3000 раз, то для САМПа я и сам сварганю за пару чашек кофе.

Хоть я сам и не играю уже в САМП, считайте это подгоном специально для вас😀

Хочу представить вам творение, аналогов которого просто нет.




https://forum.antichat.xyz/attachments/27474515/


RealLife Weather in the Game

По старинке, все исходники и мануал по установке на английском языке на моём гитхабе (https://github.com/BassTechnologies/RLWG-DHT11).

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">
https://forum.antichat.xyz/attachments/27474515/

Введение
​Если вы знакомы с моим предыдущим проектом Circle Storage (https://www.blast.hk/threads/50678/), то вы уже знакомы отчасти с темой 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">
https://forum.antichat.xyz/attachments/27474515/



Настройка
​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, что вы указывали в прошивке. Если у вас вайфай - это можно сделать и с телефона. Вы должны увидеть страницу, которая будет иметь примерно такой вид:


https://forum.antichat.xyz/attachments/27474515/

​Если всё получилось - отлично! В противном случае ищите причину ошибки в интернете.

Итак, у нас 2 параметра: Температура (20 *C) и Влажность (29%). В текущий момент это мои показатели в комнате. В вашем случае, выставьте наш бутерброд на балкон, предварительно запитав батарейкой-другой и свесьте датчик на улицу (для более точного отображения). Вы можете сделать это через переходники ПАПА-МАМА, но в своём случае я взял 2 провода, которые свистнул на практике в колледже, и разрезав на 3 максимально одинаковых отрезка подключил их к ардуинке и датчику с помощью изоленты (карантин, радиомагазины закрыты).

Теперь запускаем RLWG.ahk, не забываем про UDF. Меню никакого нет, в трее есть иконка для управления. Заходим в игру, вероятно погода уже изменилась.

Теперь, при изменении погоды на улице, скрипт изменит её и для вас в игре. Если пойдёт дождь - поднимется влага - пойдёт дождь в игре.



(см. со звуком 😉)

Завершение

Надеюсь, моя реализация воодушевит хотя бы одного читающего эту статью.

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

Напомню, что на гитхабе (https://github.com/BassTechnologies/RLWG-DHT11)где и лежат все исходники - есть функция поставить https://forum.antichat.xyz/attachments/27474515/ (https://github.com/BassTechnologies/RLWG-DHT11) проекту.

Это я так, к слову...

Спасибо что прочитали до конца. Хорошего настроения, здоровья и сил пережить этот карантин!

Oniel
31.03.2020, 23:48
Ну или для бомжоверсии проекта https://www.gismeteo.ru/api/#По координатам (https://www.blast.hk/redirect/aHR0cHM6Ly93d3cuZ2lzbWV0ZW8ucnUvYXBpLyPQn9C-JTIw0LrQvtC-0YDQtNC40L3QsNGC0LDQvA)

imring
31.03.2020, 23:54
подобное уже делал хенеси https://www.blast.hk/threads/21020/

MrCreepTon
01.04.2020, 01:19
Жаль я криворукий 🤡

clrn1w
01.04.2020, 11:15
Не легче было бы взять esp8266, чем брать шилд под уно? Вышло бы дешевле, и модуль уже встроен туда

BASS_DEVSOFTWARE
01.04.2020, 13:09
подобное уже делал хенеси https://www.blast.hk/threads/21020/


Но увы, у хенеси только до локалки дело и дошло 😰



Не легче было бы взять esp8266, чем брать шилд под уно? Вышло бы дешевле, и модуль уже встроен туда


Под рукой не было esp8266, а шилд я давно хотел опробовать.