Yun & Compatible
- Details
- Written by Sonny Yu
1. Make sure you install the dropbox module first of course,
opkg update opkg install python-openssl #adds ssl support to python opkg install distribute #it contains the easy_install easy_install dropbox
2. Create an app under your own dropbox account in the "App Console". (https://www.dropbox.com/developers/apps)
3. Just for the record I created my App with the following:
- App Type as "Dropbox API APP".
- Type of data access as "Files & Datastores"
- Folder access as "My app needs access to files already on Dropbox". (ie: Permission Type as "Full Dropbox".)
4. Then click the "generate access token" button and cut/paste into the python example below in place of :
http://stackoverflow.com/questions/23894221/upload-file-to-my-dropbox-from-python-script
nano /mnt/sda1/uploaddropbox.py
#!/usr/bin/python import dropbox #client = dropbox.client.DropboxClient(<auth_token>) client = dropbox.client.DropboxClient("P9wJXJRuXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX9hmHMlLUQbWI") print 'linked account: ', client.account_info() f = open('/mnt/sda1/test.wav', 'rb') response = client.put_file('/test.wav', f) print 'uploaded: ', response
chmod 755 /mnt/sda1/uploaddropbox.py
/mnt/sda1/uploaddropbox.py
Write comment (0 Comments)
- Details
- Written by Sonny Yu
Install MQTT:
opkg update opkg install mosquitto opkg install mosquitto-client /etc/init.d/mosquitto restart
Subscribing to a Topic:
mosquitto_sub -d -t hello/world Received CONNACK Received SUBACK Subscribed (mid: 1): 0
Publishing to a Topic, open second terminal windows:
mosquitto_pub -d -t hello/world -m "Hello World" Received CONNACK Sending PUBLISH (d0, q0, r0, m1, 'hello/world', ... (11 bytes))
at first windows you should see:
Received PUBLISH (d0, q0, r0, m0, 'hello/world', ... (11 bytes)) Hello World
Python code:
opkg update opkg install libmosquitto
opkg update opkg install python-openssl #adds ssl support to python opkg install distribute #it contains the easy_install command line tool (this can take some time) easy_install pip #installs pip (this can take some time) pip install mosquitto
nano /mnt/sda1/temperature.py
#!/usr/bin/python import mosquitto import sys mqttc = mosquitto.Mosquitto("python_pub") mqttc.connect("127.0.0.1", 1883, 60, True) mqttc.publish("hello/temperature", sys.argv[1] )
chmod 755 /mnt/sda1/temperature.py
/mnt/sda1/temperature.py 34
open second terminal windows:
mosquitto_sub -d -t hello/temperature
to confirm temperature sent.
ATmega32u4 code:
#include <Process.h> void setup() { Bridge.begin(); // Initialize Bridge } void loop() { int temperature = random(0, 100); Process p; // Create a process and call it "p" p.begin("/mnt/sda1/temperature.py"); // Process that launch the command p.addParameter(temperature); // pass parameter p.run(); // Run the process and wait for its termination delay(5000); }
Write comment (1 Comment)
- Details
- Written by Sonny Yu
Install Sqlite3:
opkg update opkg install sqlite3-cli
sqlite3 /mnt/sda1/sensor.db
sqlite> CREATE TABLE sensor_data( id INTEGER PRIMARY KEY, temperature VARCHAR(64), sqlitetimestamp DATETIME DEFAULT CURRENT_TIMESTAMP ); sqlite> INSERT INTO sensor_data (temperature) VALUES (30); sqlite> INSERT INTO sensor_data (temperature) VALUES (40); sqlite> select * from sensor_data; sqlite>.quit
sqlitetimestamp DATETIME DEFAULT CURRENT_TIMESTAMP, will auto CURRENT_TIMESTAMP.
Php command line:
opkg update opkg install php5-cli php5-mod-sqlite3 nano /mnt/sda1/sensor.php
#!/usr/bin/php-cli <?php $db = new SQLite3('/mnt/sda1/sensor.db'); $query = "INSERT INTO sensor_data (temperature) VALUES( ".$argv[1]." )"; $db->exec($query); $db->close(); ?>
chmod 755 /mnt/sda1/sensor.php /mnt/sda1/sensor.php 50 sqlite3 /mnt/sda1/sensor.db sqlite> select * from sensor_data;
confirm insert is OK.
ATmega32u4 code:
#include <Process.h> void setup() { Bridge.begin(); // Initialize Bridge } void loop() { int temperature = 50 + random(0, 5); Process p; p.begin("/mnt/sda1/sensor.php"); p.addParameter(String(temperature)); p.run(); delay(5000); }
Write comment (2 Comments)
- Details
- Written by Sonny Yu
Use str(datetime.now()):
touch /mnt/sda1/datalog.csv nano /mnt/sda1/datalog.py
#!/usr/bin/python # -*- coding: utf-8 -*- import sys from datetime import datetime data_rcv=sys.argv[1] +"," + sys.argv[2] +"," + str(datetime.now()) f = open('/mnt/sda1/datalog.csv','a') f.write(data_rcv) f.write('\n') f.close()
chmod 755 /mnt/sda1/datalog.py
Testing:
/mnt/sda1/datalog.py '1' '2'
ATmega32u4 code:
#include <Process.h> void setup() { Bridge.begin(); // Initialize Bridge } void loop() { Process p; p.begin("/mnt/sda1/datalog.py"); p.addParameter("1"); p.addParameter("2"); p.run(); delay(10000); }
Write comment (0 Comments)
Subcategories
Expand the Storage at Yun
Expand the Storage at Yun
Languages Supported by Yun
Languages Supported by Yun
Backup and Recover
Backup and Recover
Network and Yun
Network and Yun
Hardware & Yun
Hardware & Yun
OpenWrt-SDK & Yun
OpenWrt-SDK & Yun
Page 32 of 34