Translate

jueves, marzo 14, 2019

Para poder sacar partido a un smartphone android y trabajar con linux con qtcreator podemos instalar la app linux deploy, desde esta app podemos instalar varias distribuciones (debian, ubuntu, arch linux), funcionan con chroot, comparten el kernel linux de android por lo que la ejecución es integra e inmediata.

Las opciones de instalación son, o bien en imagen .img, ram o carpeta, yo lo he usado con imagen .img





Debemos iniciar sesion desde un PC hacia el smartphone con debian linux:
Este es el escritorio LXCE, podemos ejecutar las aplicaciones X11 y shell. Tambien podemos iniciar una sesion de ssh si solo queremos trabajar con la shell

Procedimiento para Instalar Qt Creator (ubuntu - debian)


apt-get install build-essential

apt-get install qtcreator

apt-get install qt5-default

apt-get install qt4-demos qt4-doc qt4-doc-html qt5-doc qt5-doc-html

Esta es la ventana principal, en esta captura de pantalla se ve en negro la pantalla Wellcome (es donde están los acrivhos recientes, ejemplos, etc..) para poder ver el panel completo es necesario iniciar en la shell una nueva sesion con el comando vncserver, nos dara un puerto mas al que debemos conectar y asi veremos esta pantalla correctamente.


Pasamos a configurar el entorno: compilar gcc, debugger gdb y make (qmake)




Creando nuestro primer proyecto ejemplo de manejo de puertos GPIO








Vamos al formulario para agregar los botones :





Qt permite la llamada a comandos del sistema a través de la función system().Por tanto solo hay que incluir esa función con los comandos del sistema que queramos dentro de las funciones de la señales clic de los botones que incluyamos en la interfaz gráfica que diseñemos y que en este ejemplo es la siguiente:
system("echo 1 >/sys/class/gpio/gpio23/value");





Dejo el trabajo completo para activar y desactivar los puertos GPIO y como manejar un switch on/of:
Dejo el codigo en github: 







Este es el código principal:

#include "ui_mainwindow.h"
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
system("echo 0 >/sys/class/gpio/gpio23/value");
}
void MainWindow::on_pushButton_2_clicked()
{
system("echo 1 >/sys/class/gpio/gpio23/value");
}
void MainWindow::on_pushButton_3_clicked()
{
system("echo 23 >/sys/class/gpio/export");
system("chmod 777 -R /sys/class/gpio/gpio23 ");
system("echo out >/sys/class/gpio/gpio23/direction");
}
void MainWindow::on_pushButton_4_clicked()
{
system("echo 23 >/sys/class/gpio/unexport");
exit(0);
}


sábado, marzo 02, 2019

Oled , sensores temp-humedad dht 22, Orange Pi Iot 2G



gpio








ORIGINAL RUSO

fuente: https://4pda.ru/forum/index.php?showtopic=813602&st=360#entry72321134

может кому пригодится...

 Уменьшено на 61%
Прикрепленное изображение
1280 x 720 (109,68 КБ)


устройства для подключения:

- Экран ssd1306
SDA 3
SCK 5

- DHT22
DATA 12

- РЕЛЕ
R1 37
R2 35
R3 33
R4 31
R5 29

- USB камера.

Настройка:

1. записать образ на SD
2. подключить модули (экран обязательно остальное по желанию)
3. подключиться через UART (921600) пользователь root пароль 1
4. настроить сеть MODEM или WIFI как в посте (настрока сети)
для wifi файлы:
- /etc/init.d/S35wifi
- /etc/wpa_supplicant.conf
- /etc/network/interfaces
- /etc/resolv.conf

5. настроить программу через файл (/etc/iot.conf)

[telegram]
enable=true
token=токен бота

[mqtt]
enable=true
host= сервер например m10.cloudmqtt.com
port= порт например 11420
cid=iot-2g
user= пользователь
pass= пароль

6. запустить программу /sbin/iot2, проверить работу
7. сделать чтобы программа запускалась автоматически (по UART будет невозможно выйти для изменения конфигураци, только через WIFI через ssh подключение или подмонтировать Sd и ручками в редакторе)
- /etc/inittab (заменить строку console::respawn:/sbin/getty .... на console::respawn:/sbin/iot2 )


TELEGRAM команды:

cam - фото с камеры
temp - температура с датчика
reboot - перезагрузка железки
relayX=Y - установить для реле X состояние (0-выкл. 1-вкл. 2-инверт. от 30-минуты интервала переключения вкл-выкл-вкл...)
relayZ - вернуть состояние для реле X
relay=Y - установить состояние для всех реле (0-выкл. 1-вкл. 2-инверт. от 30-минуты интервала переключения вкл-выкл-вкл...)


MQTT

cam - запрос фото в ответ image1 - поле содержить png с камеры
relayX=Y - запрос на изменение состояния реле X на Y (0-выкл. 1-вкл. и т.д ...) ответ relayXState=Y состояние реле
tempState - температура
humiState - влажность





Traducido a castellano:


alguien puede ser útil ...
 Уменьшено на 61%
Прикрепленное изображение
1280 x 720 (109,68 КБ)


dispositivos para la conexión:

- pantalla ssd1306
SDA 3
SCK 5

- DHT22
DATOS 12

- RELAY
R1 37
R2 35
R3 33
R4 31
R5 29

- Cámara USB.

Configuración:

1. Grabar imagen en SD
2. Conectar los módulos (la pantalla debe ser el resto opcional).
3. conectarse a través de UART (921600) contraseña de usuario root 1
4. Configure el MODEM de red o WIFI como en la publicación (configuración de red)
para archivos wifi:
- /etc/init.d/S35wifi
- /etc/wpa_supplicant.conf
- / etc / network / interfaces
- /etc/resolv.conf

5. configura el programa a través de un archivo (/etc/iot.conf)

[telegram]
enable = true
token = bot token

[mqtt]
enable = true
host = servidor por ejemplo m10.cloudmqtt.com
puerto = puerto, por ejemplo, 11420
cid = iot-2g
usuario = usuario
pass = contraseña

6. ejecute el programa / sbin / iot2, verifique el trabajo
7. haga que el programa se ejecute automáticamente (no será posible salir de UART para cambiar la configuración, solo a través de WIFI a través de la conexión ssh o el montaje de SD y bolígrafos en el editor)
- /etc/inittab (reemplace la línea de console::respawn:/sbin / getty .... a console::respawn:/sbin/iot2)


Comandos de TELEGRAM:

cam - foto de camara
temperatura - temperatura del sensor
reiniciar - reiniciar el hardware
reléX = Y - establezca el estado X para el relé X (0-apagado. 1-encendido. 2-invertido. desde el intervalo de conmutación de 30 minutos encendido-apagado-encendido ...)
relayZ - estado de retorno para el relé X
relé = Y: establezca el estado de todos los relés (0-apagado. 1-encendido. 2-invertido. desde el intervalo de conmutación de 30 minutos encendido-apagado-encendido ...)


MQTT

cam: solicite la foto en la respuesta image1: el campo contiene png de la cámara
relayX = Y: solicitud para cambiar el estado del relé X a Y (0-off. 1-on, etc ...) responde relayXState = Y estado del relé
tempState - temperatura

HumiState - Humedad

Iot-oled imagen SD


He preparado una imagen con ubuntu 16.04.

para configurar la zona horaria:


dpkg-reconfigure tzdata

Para habilitar la utilidad iot2 mqtt en el arranque de linux y tener así
acceso a los puertos gpio: oled sensores, etc..:

 /etc/rc.local


OCnfiguracion de WIfi y GSM en la IoT con linuxroot:

я собрал свой образ через buildroot. в принципе вроде оно работает, но пока есть вопросы.

1. как включить spi или как узнать по какому они адресу чтобы прописать их в dts linux
2. тоже самое про gpio

fm приемник работает через модуль ядра rdafmRadio и по идее его можно задействоват через функции ioctl...

ну и на всякий случай как сеть настроить чтобы самому не искать потом)

wifi:

файл /etc/wpa_supplicant.conf

ctrl_interface=/var/run/wpa_supplicant
ap_scan=1

network={
ssid="название сети"
scan_ssid=1
key_mgmt=WPA-PSK
psk="пароль"
}


добавить в файл /etc/network/interfaces

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf


a) нужно еще загружать модуль если он не знагружается автоматом: modprobe rdawfmac
b) запустит: wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf

a) и b) я добавил в загрузку в init скрипт чтобы сеть автоматом подключалась.

 Уменьшено на 67%
Прикрепленное изображение
1471 x 929 (160,82 КБ)


GSM для mts:
так как wvdial устарел и выпелен в buildroot то руками)

установить pppd

создать файл: /etc/ppp/peers/mts

connect "/usr/sbin/chat -v -f /etc/ppp/peers/gprs"
/dev/modem0
115200
noipdefault
usepeerdns
defaultroute
persist
noauth
nocrtscts
local
user mts


создать файл: /etc/peers/gprs

ABORT BUSY
ABORT VOICE
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "NO DIAL TONE"
ABORT "NO ANSWER"
ABORT "DELAYED"
ABORT "ERROR"

ABORT "+CGATT: 0"

"" AT
TIMEOUT 12
OK ATH
OK ATE1
#OK AT+COPS=0
OK AT+CFUN=1
OK AT+CGATT=1
OK AT+CGDCONT=1,"IP","internet.mts.ru","",0,0
OK AT+CGACT=1,1
OK ATD*99***1#
CONNECT ""



добавить в файл /etc/network/interfaces

auto ppp0
iface ppp0 inet ppp
provider mts


может еще понадобится загрузить модуль ядра если не загружен: modprobe ppp_generic

 Уменьшено на 66%
Прикрепленное изображение
1447 x 917 (162,19 КБ)