LauraWasher – Controlando a máquina de lavar roupas

Tags

, , , , , ,

Certo dia cheguei em casa e minha namorada estava reclamando (*normal*) da máquina de lavar, que tinha parado de funcionar o modo de centrifugação. Acrescida da seguinte observação: “Se você não consertar a máquina, vai ficar sem cuecas limpas.”. Belo incentivo! ^^

Desmontei a máquina e vi que o defeito era o próprio MCU da placa, então liguei na assistência técnica e me informaram que o custo de reposição da placa ficaria em absurdos R$520,00.

Lembrei que tinha um monte de Atmega8 16PU sobrando em casa, gastaria apenas alguns trocados e seria tranquilo escrever um novo firmware para a máquina usando a IDE do Arduino para o Atmega. Fui a caça por componentes e comecei montando o atmega e circuitos auxiliares, sempre debugando o firmware através da uart e alguns leds.

lw2

O código fonte está disponível em https://github.com/mslucas/LauraWasher

Requisitos técnicos:

  • Motor principal com reversão
  • Solenóide de inundação
  • Bomba de água para exaustão
  • Pressostato variável para níveis de água
  • Sensor da tampa

Features implementadas:

  • 7 modos de operação (implementados o modo 2 – Lavagem Pesada e 3 – Lavagem Normal e 6 – Centrifugação, até o momento).
  • Porta serial para monitoração/controle da máquina.

Próximas features:

  • Implementação de todos modos de operação.
  • Porta LAN para acesso a internet (API Rest para monitoração e controle)
  • Sensor de temperatura do motor (lm35)
  • Sensor de rotação do motor (hall)
  • Controle dos motores via PWM para reduzir o aquecimento, atrito de engrenagens, melhorar o torque na carambola e reduzir o consumo de energia elétrica.

Segue alguns videos da máquina em operação:

Advertisements

Arquitetura Híbrida – Mesclando serviços na Nuvem com seu próprio Datacenter

Tags

, , , , , ,

Com a explosão das Startups de tecnologia no Brasil brigando por um lugar ao sol, muitos optaram por adotar uma infra-estrutura 100% baseada em Cloud Computing para hospedar seus serviços. Para muitos dos projetos baseados no famoso e consolidado LAMP (Linux + Apache + Mysql + PHP) e suas variantes, um único e modesto servidor pode ser suficiente.

Mas quando seu projeto necessita de um banco de dados dedicado, balanceadores de carga, servidores web, serviços de mensageria, websockets, APIs, workers, servidores de busca, armazenamento de arquivos, etc, o que fazer? Rodar tudo na nuvem? O custo para deixar o serviço rodando pode ficar astronômico!

Vamos analisar o seguinte cenário de uma rede social fictícia:

1.0

Na proposta acima, o serviço é utilizado via aplicativo móvel e também via página web. As requisições chegam no load-balancer que encaminha para o servidor correspondente, de acordo com o serviço. No aplicativo móvel, o usuário tem acesso ao chat (websockets), postagens de texto (API) e conteúdo multimídia (www). Na aplicação web, o usuário tem acesso aos mesmos recursos do aplicativo móvel, porém o front-end é provido pelo servidor web (www).

Digamos que estes servidores tenham as seguintes especificações:

  • Load Balancer, www, api, websockets, message broker (2 vcpu, 4gb ram, 20gb disco) *cada servidor
  • File Server/Storage (4 vcpu, 16gb ram, 1tb disco)
  • Database (4 vcpu, 8gb ram, 300gb disco)
  • Worker X, Worker Y, Worker Z (1 vcpu, 1gb ram, 10gb disco) *cada servidor
  • Key-Value In-Memory Storage (8 vcpu, 16gb ram, 30gb disco)

Para simplificar o artigo, vou utilizar a Amazon AWS neste exemplo por escolha pessoal, sem entrar em méritos de melhor ou pior. Levando como base ao pé da letra, se fossemos rodar essa aplicação na forma como descrita na arquitetura, chegariamos no seguinte cálculo básico:

1.1 1.2 1.3

Somente de serviços, sem contabilizar IOF e demais taxas do cartão, sem levar em consideração o tráfego excedente e possíveis contra-tempos resultamos no valor de R$6.624,76 por mês. Uma verdadeira fortuna para quem está começando um negócio e não dispõe de muito cash para o começo. A brincadeira vai longe…

Obviamente em se tratando de AWS, esta não seria a melhor configuração, pois temos a possibilidade de rodar alguns destes serviços em produtos como S3, RDS,DynamoDB caso você utilize tecnologias suportadas.

Reduzir o número de servidores dedicados por menos máquinas mais potentes, executar automações para instanciar serviços em horários de pico, e “enxugar” a arquitetura pode contribuir para a redução de custos, mas quando toda sua infra-estrutura roda na nuvem e você paga em dólar…como faz?

Segue a cotação do dólar americano no último ano (30/10/2014 – 30/10/2015)

1.4

No dia 30/10/2014 a cotação do dólar estava a exatos R$2,40. 

Hoje, dia 30/10/2015 estamos na casa dos R$3,85.

Se você rodava sua infra na nuvem desde o ano passado e precisou escalar o hardware devido ao crescimento do seu negócio, deve ter sentido no bolso a “mascada”.

Como podemos contornar a crise e deixar de depender tanto do dólar?

A resposta é: Rodando seus próprios serviços em suas próprias máquinas!

A idéia foi semeada, na continuação deste artigo vou mostrar na prática como executar uma implementação distribuída. Espero que tenham curtido o assunto!

Instalando a lib PHP-AMQP nativa no Mac OSx ElCapitan

Tags

, , , , , , , , , , , , , , , , ,

Para seguir este pequeno tutorial, você deve ter pelo menos um nível intermediário de PHP, instalação de pacotes e compilação no Mac. Caso não entenda algum procedimento, deixe a pergunta nos comentários ou pesquise por conta própria na documentação dos projetos:

https://github.com/alanxz/rabbitmq-c

https://github.com/pdezwart/php-amqp

https://pecl.php.net/package/amqp

Let’s start!

Você deve ter o “brew” instalado. Caso não tenha…(Pesquisa no Google Porra!)

Após o brew instalado, digite os seguintes comandos no Terminal:

$ brew install pkg-config

Caso o “pkg-config” já esteja instalado, digite brew upgrade pkg-config

Após o pkg-config instalado e atualizado para a última versão, vamos baixar a libamqp-c e compilar.

$ sudo git clone https://github.com/alanxz/rabbitmq-c.git

$ cd rabbitmq-c

$ sudo mkdir build && cd build

$ sudo cmake -ENABLE_SSL_SUPPORT=OFF ..

$ sudo cmake –build . –target install

Se tudo correu bem, a lib rabbitmq-c foi instalada com sucesso e agora podemos instalar a lib php-amqp nativa através do pecl.

$ sudo pecl install amqp-1.6.0beta4

Após a instalação ser concluída com sucesso, basta acrescentar a tag extension=amqp.so no arquivo de configuração do seu php (php.ini).

Após acrescentar a extension e reiniciar o seu servidor web, a lib ja deve aparecer no seu PHPINFO.

AMQP LIB Php Info

Image

Apache Cassandra couching!

Tags

, , , , , , ,

Apache Cassandra training with the guys from Chaordic, in partnership with DataStax.

03/06/2014 – Florianópolis – Brazilchaordic-apache-cassandra

Image

My workspace!

Tags

, , , , , , , , ,

It’s not always so clean… lolworkspace

Peugeot 206 1.4 turbo

Tags

, , , , , ,

Hey guys!
As I had promised to create a topic about my car engine preparing, I decided to take time out and do it.

Engine: PSA TU3JP
Clutch: Cêramica Displatec
Fuel: Gasoline
Fuel Pump: Stock (without internal pressure valve)
External Pressure Valve: Stock from Fiat Tempra turbo (the little blue) @3,5bar
Turbocharger: Master Power T2 (cold box .48 / hot box .35 – turbo axis: 33,5 – 47,0 – rotor: 34,9 – 52,2) runing with 0.8bar boost
Intercooler: FMIC (custom-made)
Pressure Pipes: 3 inch stainless
BlowOff: HKS SSQV
Intake Manifold: Stock (plastic)
Exhaust Manifold: Turbo Anhanguera (Brazilian company)
Exhaust System: 2 inches downpipe + stock pipes + Noise damper
Lube oil: Lubrax 5w30 sintetic
Oil cooler: 1,5 liters + external oil filter
Spark plugs: Denso iridium power IK22
Fuel nozzles: Bosch 0280156086 (modified to 40lb/hr)
Air filter: Simota Extreme (behind the honneycomb grill)
ECU: MegasquirtII V3.0
Wideband Probe: Innovate LC-1 (Bosh LSU4.2 sensor)
Brakes: Stock calipers + pads Ecopads + discs Fremax + fluid Varga dot5
Suspension: Sparco springs + dampers NASA (I don’t recommend the brand NASA Dampers)
Pressure Gauges: AutoGauge Smoke line (turbo, fuel, oil pressure) + Innovate LC-1 Hallmeter kit

MECHANIC: Myself!

The Beatle PHP5 Framework

Tags

, , , , ,

The Beatle Framework is a personal project focused on high availability, multi-application, high performance and scalability. Arose from the need for a stable, robust and simple at the same time, which could be easily implemented in large projects framework. I particularly studied some commercial frameworks and concluded that on a large platform, none of them would be feasible for two reasons:

  • Dependence of updates. (you’re tied to a subject who developed the commercial framework XYZ)
  • Excess fat. (Most commercial frameworks are designed to expedite small projects, bringing millions of things you will never use …)

So I decided to study PHP advanced and stay tuned ace new features of PHP 5.x and thus was born The Beatle Framework.

Am one of those guys who love performance! For me, everything can be optimized, improved, exploited to the limit =)

The framework is in the initial stage, it’s “usable” but still requires componentization and hopefully catch some developers to contribute to this open source project.

I hope you enjoy!

Project page: github.com/mslucas/The-Beatle-Framework

Car Gps Tracking System

Tags

, , , , , , , , ,

This is a personal project I’ve been developing already more or less one year in partnership with a partner and also making an oem version to another company. It is a GPS / GPRS tracker and uses modem gsm quadband gps with high sensitivity. Worked in the hardware development, from design, circuit board to firmware programming using FreeRTOS (Real Time Operating System), and also developed the web system.

Sistema de Atendimento Online

Este sistema foi/está sendo desenvolvido por mim,  para prover comunicação interna na empresa e também atendimento online através de website. Algumas telas do sistema…