I am looking for some solution to turn up my RPi3 to home NAS. I am running out of space in Google Photos so I would like to store my photos on my own drive. I was looking for some solution but I didn't found something good.
My idea:
On RPi is running some system with my own HDD drive
That system have some settings where I can sleep that drive - e.g. during night so it doesn't make sound
I can access that storage through webapp which is on localhost
(optional) Store there not only photos and videos but also some files
That system has some android app which could sync my photos&videos to that NAS
(question) Could I access NAS from outside my home? I have read that is some solution to just edit something in Wifi router to access it from outside but idk if it is safe and even possible.
Thank you for answers, this topic is not very familiar with me so I am asking.
You're probably looking for something like OpenMediaVault:
https://www.openmediavault.org
I've used this on pi boards previously, though I've subsequently focused more on NFS and GlusterFS-based solutions I've built myself. Here's a three-node GlusterFS cluster that shows a few of the options for storage - those same options can be used for OMV.
For the storage devices you can use a USB to SATA cable with an HD (spinning disk will require external power, SSD generally won't), or use various USB solutions, like those shown here - regular USB keys or USB-NVMe. Make sure you use pi4 boards, which have USB-3 (the early models only had USB-2)
Good walkthrough here
Related
I'm currently working on a embedded application on a raspberry pi 3 with Raspbian Jessie. The purpose of this applicatin is to write data in an excel on any usb key (which is always plug on the same port on the raspberry pi)
Current State
Currently, the path where i want the data is directly written in my code
USBadress='/media/pi/DATA3'
Problem
If the usb key is mounted elsewhere or if i'm using a different USB key my application doesn't work
What I tried
Modify the fstab to automaticlly mount /dev/sda1 on a specified folder (ex : media/pi/genericFolder but sometimes the usb key path is different (/dev/sdb1) and this solution only seems to work if you turn on your pi with your usb key already plug (which will be not be true everytime in my case)
I also tried with the UUID but this solution can't work cause my goal is to have a generic solution working with any usb key i plug in this specific usb port
I also saw some solutions with a rule specified on udev but I didn't understand very well...
Thank you in advance !!
Finally found a solution with the following line :
myPath=str(os.popen("mount | grep /media/pi").readlines())
MyPath=MyPath.split(" ")[2]
I have a Raspberry Pi 3 running Windows 10 IoT Core. How can I copy files from a USB stick connected to the device to the local SD card storage? Is this possible using PowerShell?
Ideally I want to do this without the need for a UWP app running on the device and any interaction via a local GUI.
Currently when the device is running its default app and I insert a USB stick nothing happens like it does on a desktop edition of Windows 10.
To further clarify I also don't want to navigate to the devices storage via a UNC path copying files between network locations. The files have to be sourced from the USB stick.
Thanks
You can definitely use PowerShell for this.
Firstly I would use the IoT Dashboard to open a new PowerShell remote management session to my Windows IoT device.
Insert the USB stick if it isn't already.
Then use the following PowerShell command to review the devices local drivers.
gdr -PSProvider 'FileSystem'
This will return a list of all drives attached. Like below.
Note; drives C, D and U are used by the device and system.
Then use a XCOPY in the PowerShell session once you know the drive letter your USB stick has been assigned. Eg. E above.
XCOPY E:\ C:\Data\FromUSB\
This will copy everything from the root of the USB stick to a folder on the devices SD card called 'FromUSB' in the Data parent directory.
Note; creating custom folder on the root of the C drive may not appear to some UI's.
Hope this helps.
I want to use my Amazon Echo to control my Raspberry Pi.
Are there any Open Source Utilities available that will provide similar functionality as wemo or wink, but on the rPi?
There are many projects for the rPi that allow functionality like Wemo or Wink would provide, but the Amazon Echo API is fairly new to the world, and as far as I am away, has not be used yet to take advantage of any rPi projects. That is not to say it is impossible.
If this functionality is something you need, I would recommend finding a rPi project that has most everything you are looking for and consult with the active community around that project about adding in such functionality.
I was looking for the same question, but specifically, we need an open source software module that has the abilities to connect to Echo in the same wifi environment (as a home device), and execute scripts in Linux environment (RPi).
So far I have found this link and I was able to connect
Assuming the OP wants to pass Echo intents directly to a Pi, and trigger actions based on intents:
There are two considerations here:
Network Connectivity:
At the moment, Amazon Echo supports pointing a skill to AWS Lambda or any other publicly reachable https endpoint. If your Pi is behind a home router then it cannot accept intents from Echo.
Note: You can setup port forwarding on your home router to forward all https requests to your Pi. This is easy to setup and demo but difficult to maintain and operate due to lack of static public IP for most home internet connections and security concerns of allowing traffic in.
Complexity of handling intents on the Pi:
Receiving and processing requests from an Echo is not entirely straight forward. I have found that using Lambda functions is the easiest and most reliable way. It is also easier to troubleshoot Lambda functions using CloudFront logs.
Note: There are Alexa Skills SDKs that does help to a large extent, but I still find them to be more tedious that using Lambda. YMMV
I have a stable, working setup of my Pi controlled by Amazon Echo. And this is how it is configured:
Setup AWS Lambda to handle incoming intents from Echo
On Lambda, map a "ACTION KEYWORD" for each intent/slot
On a matching intent/slot, post the ACTION KEYWORD to PubNub channel
Setup my Pi to SUBSCRIBE to PubNub channel for new messages
If Pi receives a matching ACTION KEYWORD on the channel, it triggers a function/script
This function/script in turn has the complete execution logic (example: Open garage door)
Colleagues and users testing various features in a program use MFDeploy to install for example "MyApp.exe" onto their Netduino +2. This method works great. Is there a way to also MFDeploy a "MyApp.config" text file so they can set their specific network criteria (like Port#) or other program preferences? Obviously, more robust preferences can be set from desktop software or web app AFTER the connection is established.
After several days researching, I could not find a viable means of transferring a config file via MFDeploy. Decided to add a "/install" command line option to the desktop app:
cncBuddyUI.exe [/help|/?] [/reset] [/discover] [/install:[axisA=X|Y] ,port=9999]]
/help|/? Show this help/usage information
/reset Create new default software configuration
/discover Listen for cncBuddyCAM broadcasting IPAddress & Port (timeout 30 secs)
/install Install hardware specific settings on Netduino+2 SDCard.
port Network port number (default=80)
axisA Slave axisA motor signals to X or Y axis
During "/install" mode, once cncBuddyCAM (Netduino app) network connects to cncBuddyUI (desktop app), the configuration parameters are transmitted and written onto the SDCard (\SD\config.txt).
Every warm boot now reads \SD\config.txt at startup and loads the configuration parameters into the appropriate application variables.
After several weeks of usage, I find this method preferable and easier to customize. Check out cncBuddy on Github.
Is there a way that I can copy updated files only from one network to another? The networks aren't connected in anyway, so the transfer will need to go via CD (or USB, etc.)
I've had a look at things like rsync, but that seems to require the two networks to be connected.
I am copying from a Windows machine, but it's going onto a network with both Windows and Linux machines (although Windows is preferable due to the way the network is set up).
you can rsync from source to the use-drive, use the usb-drive as a buffer, and then rsync from the usb-drive to the target. to benefit from the rsync algorithm and reduce the amount of copied data you need to keep the data on the usb-drive between runs.