Skip to content

Latest commit

 

History

History
85 lines (64 loc) · 2.93 KB

README.md

File metadata and controls

85 lines (64 loc) · 2.93 KB

Hello Phoenix

This example demonstrates a basic poncho project for deploying a Phoenix Framework-based application to a Nerves device. A "poncho project" is similar to an umbrella project except that it's actually multiple separate-but-related Elixir apps that use path dependencies instead of in_umbrella dependencies. You can read more about the motivations behind this concept on the embedded-elixir blog post about Poncho Projects. The steps for creating this example source are in User Interfaces.

See the hello_live_view for an all-in-one Phoenix/Nerves example that is much simpler to use for most people.

Hardware

This example serves a Phoenix-based web page over the network. The steps below assume you are using a Raspberry Pi Zero, which allows you to connect a single USB cable to the port marked "USB" to get both network and serial console access to the device. By default, this example will use the virtual Ethernet interface provided by the USB cable, assign an IP address automatically, and make it discoverable using mDNS (Bonjour). For more information about how to configure the network settings for your environment, including WiFi settings, see the vintage_net documentation.

How to Use this Repository

  1. Connect your target hardware to your host computer or network as described above

  2. Prepare your Phoenix project to build JavaScript and CSS assets:

    cd ui
    
    # This needs to be repeated when you change dependencies for the UI.
    mix deps.get
  3. Build your assets and prepare them for deployment to the firmware:

    # Still in ui directory from the prior step.
    # This needs to be repeated when you change JS or CSS files.
    mix assets.deploy
  4. Change to the firmware app directory

    cd ../firmware
  5. Specify your target and other environment variables as needed:

    export MIX_TARGET=rpi0
    
    # If you're using WiFi:
    #
    #   export NERVES_NETWORK_SSID=your_wifi_name
    #   export NERVES_NETWORK_PSK=your_wifi_password
  6. Get dependencies, build firmware, and burn it to an SD card:

    mix deps.get
    mix firmware
    mix firmware.burn
  7. Insert the SD card into your target board and connect the USB cable or otherwise power it on

  8. Wait for it to finish booting (5-10 seconds)

  9. Open a browser window on your host computer to http://nerves.local/

  10. You should see a "Welcome to Phoenix!" page

Learn More