Close
0%
0%

Smarthome Buildout

Building components for a smarthome installation

Similar projects worth following

Building a framework for smarthome systems using already existing libraries. Attempting to make it modular and standalone, not relying on any existing networks.

Also plan to build certain components for my own house, including:

-Automatic garage door opener

-Solar/fireplace heating system controller

  • 1 × Raspberry Pi 3
  • 1 × ESP8266 12-E
  • 1 × 3.3V Regulator (LD33V)
  • 1 × 1uF Capacitor
  • 1 × 0.1uF Capacitor

View all 6 components

  • MQTT Setup

    username11505/20/2016 at 03:38 1 comment

    -setup raspberry pi with Jessie

    -installed mosquitto on raspberry pi

    wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
    
    sudo apt-key add mosquitto-repo.gpg.key
    
    rm mosquitto-repo.gpg.key
    
    cd /etc/apt/sources.list.d/
    
    sudo wget http://repo.mosquitto.org/debian/mosquitto-jessie.list
    
    sudo apt-get update
    
    sudo apt-get install mosquitto mosquitto-clients

    -setup esp8266 using an FTDI serial USB adapter set to 3.3V:

    -Use a 3.3V regulator or a 3.3V supply for the ESP itself, not from USB (it can sink a lot of current)

    -Vcc => 3.3V

    -EN => Vcc

    -GPIO15 => GND

    -GPIO2 => Vcc via resistor (I used 10k)

    -GPIO0 => GND for flashing, then moved to Vcc for runtime

    -Rx => FTDI Tx

    -Tx => FTDI Rx

    -FTDI GND => GND

    -use esptool to flash NodeMCU float (dht,file,gpio,mqtt,net,node,tmr,uart,wifi)

    esptool.py --port /dev/ttyUSB0 --baud 57600 write_flash 0x00000 firmware.bin

    -move GPIO0 to Vcc

    screen /dev/ttyUSB0 9600
    wifi.setmode(wifi.STATION)
    wifi.sta.config("ESSID","password")
    
    print(wifi.sta.getip())

    -setup raspberry pi 3 as wifi access point (no NAT):

    -adafruit article below

    -changed hostname

    -isc-dhcp-server

    -hostapd (device is nl80211)

    sudo apt-get update
    sudo apt-get install hostapd isc-dhcp-server

    /etc/dhcp/dhcpd.conf:

    #
    # Sample configuration file for ISC dhcpd for Debian
    #
    #
    
    # The ddns-updates-style parameter controls whether or not the server will
    # attempt to do a DNS update when a lease is confirmed. We default to the
    # behavior of the version 2 packages ('none', since DHCP v2 didn't
    # have support for DDNS.)
    ddns-update-style none;
    
    # option definitions common to all supported networks...
    #option domain-name "example.org";
    #option domain-name-servers ns1.example.org, ns2.example.org;
    
    default-lease-time 600;
    max-lease-time 7200;
    
    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
    authoritative;
    
    # Use this to send dhcp log messages to a different log file (you also
    # have to hack syslog.conf to complete the redirection).
    log-facility local7;
    
    # No service will be given on this subnet, but declaring it helps the 
    # DHCP server to understand the network topology.
    
    #subnet 10.152.187.0 netmask 255.255.255.0 {
    #}
    
    # This is a very basic subnet declaration.
    
    #subnet 10.254.239.0 netmask 255.255.255.224 {
    #  range 10.254.239.10 10.254.239.20;
    #  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
    #}
    
    # This declaration allows BOOTP clients to get dynamic addresses,
    # which we don't really recommend.
    
    #subnet 10.254.239.32 netmask 255.255.255.224 {
    #  range dynamic-bootp 10.254.239.40 10.254.239.60;
    #  option broadcast-address 10.254.239.31;
    #  option routers rtr-239-32-1.example.org;
    #}
    
    # A slightly different configuration for an internal subnet.
    #subnet 10.5.5.0 netmask 255.255.255.224 {
    #  range 10.5.5.26 10.5.5.30;
    #  option domain-name-servers ns1.internal.example.org;
    #  option domain-name "internal.example.org";
    #  option routers 10.5.5.1;
    #  option broadcast-address 10.5.5.31;
    #  default-lease-time 600;
    #  max-lease-time 7200;
    #}
    
    # Hosts which require special configuration options can be listed in
    # host statements.   If no address is specified, the address will be
    # allocated dynamically (if possible), but the host-specific information
    # will still come from the host declaration.
    
    #host passacaglia {
    #  hardware ethernet 0:0:c0:5d:bd:95;
    #  filename "vmunix.passacaglia";
    #  server-name "toccata.fugue.com";
    #}
    
    # Fixed IP addresses can also be specified for hosts.   These addresses
    # should not also be listed as being available for dynamic assignment.
    # Hosts for which fixed IP addresses have been specified can boot using
    # BOOTP or DHCP.   Hosts for which no fixed address is specified can only
    # be booted with DHCP, unless there is an address range on the subnet
    # to which a BOOTP client is connected which has the dynamic-bootp flag
    # set.
    #host fantasia {
    #  hardware ethernet 08:00:07:26:c0:a5;
    #  fixed-address fantasia.fugue.com;
    #}
    
    # You can declare a class of clients and then do address...
    Read more »

View project log

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates