{"id":15832131,"url":"https://github.com/victor-lis/sensor_de_movimento_e_python_os","last_synced_at":"2025-04-01T12:10:08.046Z","repository":{"id":206620043,"uuid":"717295720","full_name":"Victor-Lis/Sensor_de_Movimento_e_Python_OS","owner":"Victor-Lis","description":null,"archived":false,"fork":false,"pushed_at":"2024-02-27T00:17:02.000Z","size":12,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-06T12:41:46.922Z","etag":null,"topics":["esp32","leds","python-os","robotics","serial-port","wifi"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Victor-Lis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-11T03:15:24.000Z","updated_at":"2024-01-16T01:07:34.000Z","dependencies_parsed_at":"2023-11-11T06:22:06.268Z","dependency_job_id":"767a9596-c974-41e9-920d-d8b1b935717d","html_url":"https://github.com/Victor-Lis/Sensor_de_Movimento_e_Python_OS","commit_stats":null,"previous_names":["victor-lis/sensor_de_movimento_e_python_os"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FSensor_de_Movimento_e_Python_OS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FSensor_de_Movimento_e_Python_OS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FSensor_de_Movimento_e_Python_OS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Victor-Lis%2FSensor_de_Movimento_e_Python_OS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Victor-Lis","download_url":"https://codeload.github.com/Victor-Lis/Sensor_de_Movimento_e_Python_OS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246635983,"owners_count":20809333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp32","leds","python-os","robotics","serial-port","wifi"],"created_at":"2024-10-05T12:40:53.218Z","updated_at":"2025-04-01T12:10:08.026Z","avatar_url":"https://github.com/Victor-Lis.png","language":"C++","readme":"\n# Sensor de Movimento + Python OS\n\nEsse é um projeto que pra mim foi muito divertido de construir, pois interliguei: C++, Python e obviamente minha \"paixão recente\" o Arduino (no meu caso o Uno).\n\n## Techs\n\u003cdiv align=\"center\"\u003e\n  \u003cimg width=\"40\" height=\"40\" src=\"https://github.com/devicons/devicon/blob/master/icons/arduino/arduino-original-wordmark.svg\" alt=\"Arduino\"\u003e\n  \u003cimg width=\"40\" height=\"40\" src=\"https://github.com/devicons/devicon/blob/master/icons/python/python-original-wordmark.svg\" alt=\"Python\"\u003e\n\u003c/div\u003e\n\n## Desafios\n\nAcredito que meus principais desafios nesse projeto foram:\n- Receber dados vindos do Arduino e lê-los de forma que fosse possível usá-los no meu computador.\n- Ao receber dados utiliza-los usando a lib [os](https://docs.python.org/3/library/os.html) do Python.\n## Aprendizados\n\nPor final aprendi algumas coisas interessantes como: \n\n(Não vou entrar em tantos detalhes pois o meu outro [projeto](https://github.com/Victor-Lis/Sensor-de-Movimento-e-Leds) em que trabalho com Arduino, Sensor PIR e Leds já tem bem explicadinho esses processos)\n## Ligando Arduino ao Python\nPor incrível que pareça o processo para fazer os dados que o Arduino Uno envia chegarem no Python ao invés do [Arduino IDE](https://www.arduino.cc/en/software) foi bem fácil, apenas usei a lib do Python [Serial](https://pyserial.readthedocs.io/en/latest/pyserial.html).\nE com isso eu executo a COM em que o Arduino vai mandar informações no Python.\n\n```python\nimport serial\n\narduino = serial.Serial(\"COM5\", 9600)\n```\n\n### Lendo os dados\nPrimeiramente lá no C++ no Arduino IDE fiz o código escrever \"Movimento\" no monitor serial sempre que detectasse movimento.\n```c++\nvoid loop(){  \n\n    permitido = (digitalRead(pinPIR)==HIGH); // Verificando se a Voltagem é == HIGH, ou seja, se detectou movimento\n\n    if(permitido){\n        Serial.println(\"Movimento\"); // Como havia dito, printando no monitor serial \"Movimento\", justamente ao detectar movimento.\n        digitalWrite(led1, HIGH); // Ligando as leds vermelhas, apenas para ser mais fácil de perceber essa dectecção.\n        digitalWrite(led2, LOW); // Desligando as leds azuis, pelo mesmo motivo.\n        delay(2000);\n    }else{\n        digitalWrite(led1, LOW); // Desligando as leds vermelhas, apenas para ser mais fácil de perceber essa não dectecção.\n        digitalWrite(led2, HIGH); // Ligando as leds azuis, pelo mesmo motivo.\n    }\n    \n}\n```\n\nAgora lá no Python, preciso ler basicamente toda vez que eu printar \"Movimento\" no meu monitor serial.\n\n```python\nimport os # Lib que vou usar para abrir o chrome\nimport serial # Lib que vou usar para o Arduino passar dados aqui, na COM definida ao invés de lá no Arduino IDE\n\narduino = serial.Serial(\"COM5\", 9600) # Definindo a porta COM que vou conectar e receber dados do meu Arduino, iniciando o monitor serial e a velocidade.\n\nwhile True: # while True para ficar sempre verificando\n  \n  data = arduino.readline().decode (\"utf-8\") # Nessa linha eu leio o monitor serial, igual aquele da IDE Arduino\n\n  if (data): # Se eu tiver recebido dados do monitor serial, ou seja, se escreveu algo, a condição é True\n    print(data) # Printando só pra confirmar que eu recebi de fato a informação de maneira correta\n    os.system(\"start chrome https://github.com/Victor-Lis/\") # Iniciando o chrome no meu GitHub \n```\n# Resultado\n\n[Clique aqui para ver o resultado em um vídeo!](https://youtube.com/shorts/lvzliqZ_z28)\n## Autores\n\n- [@Victor-Lis](https://github.com/Victor-Lis)\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-lis%2Fsensor_de_movimento_e_python_os","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvictor-lis%2Fsensor_de_movimento_e_python_os","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvictor-lis%2Fsensor_de_movimento_e_python_os/lists"}