Custom WiFi module and client for ALUTECH RTO-1000

Overview

Самодельный WiFI модуль для автоматики раздвижных ворот ALUTECH RTO-1000

Цель проекта

Основная задача - автоматическое открывание ворот при приближении к участку на автомобиле. Способ реализации: WiFi модуль в автомобиле пытается зарегистироваться на домашней точке доступа. Если ему это удается - проверяется уровень сигнала. Если уровень сигнала слабый - значит приближаемся к участку и надо подать команду WiFI модулю на автоматике ворот на открытие. Если сигнал сильный - мы уже на участке и ничего делать не надо.

Дополнительная функциональность - управление воротами по WiFi через веб-интерфейс, в том числе и с мобильного телефона. Обоснование: если при выезде с участка руки свободны и можно заранее открыть ворота со штатного пульта, то при подъезде к участку нащупывать кнопку на пульте отвлекаясь от дороги - не есть хорошо. При этом ворота открываются относительно медленно и если нажимать кнопку пульта уже подъехав к воротам, то приходится ждать 10-15 секунд, пока ворота откроются. Сервер на ESP32-C3 подключается к автоматике ворот. Клиенты тоже на ESP32-C3 располагаются в автомобилях моем и жены.

Пояснения к аппаратной части

Управление RTO-1000 производится замыканием нормально разомкнутых контактов. Напряжение на входах 30-32 В. Поэтому для коммутации используются MOSFET 2N7000, расчитанные на 60 В. Датчики положения "Открыто" и "Закрыто" имеют активным высокий уровень 5В. В промежуточном положении оба датчика выдают низкий уровень. Поэтому входы МК подтягиваем к питанию 3.3 В, и подключаемся к выходам датчиков положения через диоды Шоттки 1N5817. Логическую землю МК и RTO-1000 объединяем. Питание МК обеспечиваем импульсным источником питания 220AC-5DC, так как на плате МК уже имеется стаблизатор на 3.3 В, на вход которого и подаются 5В. Остальное хорошо видно на принципиальной схеме.

Пояснения к программной части

Для сборки проекта необходимо скопировать файл cfg.toml.example в cfg.toml и указать в нем: wifi_ssid - SSID точки доступа (дважды, для GateServer и GateControl) wifi_psk - пароль к точке доступа (дважды, для GateServer и GateControl) max_rssi - максимальный уровень сигнала RSSI точки доступа, при котором не нужно открывать ворота. Если указать -80, то команда на открытие ворот будет посылаться только если если уровень сигнала -81 и менее. gate_open_url - URL для GET к серверу для открытия ворот gate_sbs_url - URL для GET к серверу для управления воротами Step-By-Step (SBS). Если ворота закрыты, то по этому сигналу они открываются. Если закрыты, то открываются. Во время движения по этому сигналу они оставливаются. После остановки по этому сигналу они будут двигаться в обратном направлении относительно движения до остановки.

Код прошивки сервера, устанавливаемого в корпусе автоматики RTO-1000, находится в директории GateServer. Код прошвки клиента, располагающегося в автомобиле, находится в директории GateControl.

You might also like...
Resolve JavaScript/TypeScript module with Rust

ES Resolve JavaScript/TypeScript module resolution in Rust Installation cargo add es_resolve Get Started use std::path::{Path, PathBuf}; use es_resolv

COCONUT Secure VM Service Module

This is the source code repository for the COCONUT Secure VM Service Module (SVSM), a software which aims to provide secure services and device emulations to guest operating systems in confidential virtual machines (CVMs). It requires AMD Secure Encrypted Virtualization with Secure Nested Paging (AMD SEV-SNP), especially the VM Privilege Level (VMPL) feature.

Threadless Module Stomping In Rust with some features
Threadless Module Stomping In Rust with some features

NovaLdr is a Threadless Module Stomping written in Rust, designed as a learning project while exploring the world of malware development. It uses advanced techniques like indirect syscalls and string encryption to achieve its functionalities. This project is not intended to be a complete or polished product but rather a journey into the technical aspects of malware, showcasing various techniques and features.

A Rust implementation of Haxe Module Manager (hmm)

hmm-rs A Rust implementation of Haxe Module Manager (hmm) Installation hmm-rs can be installed as a binary from crates.io: https://crates.io/crates/hm

A PAM module that runs multiple other PAM modules in parallel, succeeding as long as one of them succeeds.

PAM Any A PAM module that runs multiple other PAM modules in parallel, succeeding as long as one of them succeeds. Development I created a VM to test

A very simple third-party cargo subcommand to execute a custom command

cargo-x A very simple third-party cargo subcommand to execute a custom command Usage install cargo-x cargo install cargo-x or upgrade cargo install -

git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers.⛰️
git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers.⛰️

git-cliff can generate changelog files from the Git history by utilizing conventional commits as well as regex-powered custom parsers. The changelog template can be customized with a configuration file to match the desired format.

Rust implementation of custom numeric base conversion.

base_custom Use any characters as your own numeric base and convert to and from decimal. This can be taken advantage of in various ways: Mathematics:

Gives custom drugs to your terminal 💊
Gives custom drugs to your terminal 💊

Linux on drugs 🧪 Gives custom drugs to your terminal 💊 Output random colors really fast Installation 📦 Arch Linux Linux on drugs is in the AUR yay

Owner
null
Catch Tailwindcss Errors at Compile-Time Before They Catch You, without making any change to your code! Supports overriding, extending, custom classes, custom modifiers, Plugins and many more 🚀🔥🦀

twust Twust is a powerful static checker in rust for TailwindCSS class names at compile-time. Table of Contents Overview Installation Usage Statement

null 15 Nov 8, 2023
Custom module for showing the weather in Waybar, using the great wttr.io

wttrbar a simple but detailed weather indicator for Waybar using wttr.in. Installation Compile yourself using cargo build --release, or download the p

Yo'av Moshe 10 Apr 23, 2023
Reference implementation of a decentralized exchange for custom instruments, risk, and fees

Dexterity What is Dexterity At a high level, Dexterity is a smart contract (or collection of smart contracts) that allow for the creation of a decentr

Solana Foundation 43 Dec 15, 2022
An efficient pictures manager based on custom tags and file system organization.

PicturesManager An efficient pictures manager based on custom tags and file system organization. Developed with Tauri (web app) with a Rust backend an

Clément Grennerat 2 Dec 21, 2022
The module graph logic for Deno CLI

deno_graph The module graph/dependency logic for the Deno CLI. This repository is a Rust crate which provides the foundational code to be able to buil

Deno Land 67 Dec 14, 2022
An experimental, work-in-progress PAM module for Tailscale

Experimental Tailscale PAM Module This is a very very experimental Tailscale PAM module that allows you to SSH using your Tailscale credentials. This

Tailscale 129 Nov 20, 2022
Basic template for an out-of-tree Linux kernel module written in Rust.

Rust out-of-tree module This is a basic template for an out-of-tree Linux kernel module written in Rust. Please note that: The Rust support is experim

Rust for Linux 118 Dec 26, 2022
A Rust-based Garry's Mod module for fetching environment variables.

gm_environ Using Environment Variables in Garry's Mod. Installation Download a copy of the module from the releases (or compile from source) Move the

Joshua Piper 2 Jan 4, 2022
This PAM module provides ssh-agent based authentication

PAM-RSSH This PAM module provides ssh-agent based authentication. The primary design goal is to avoid typing password when you sudo on remote servers.

Yuxiang Zhang 21 Dec 14, 2022