2018年6月20日 星期三

[記錄-樹莓派]開機自動執行

部分教學引用至:http://hefetech.blogspot.com/2016/04/raspberry-pi-3.html?m=1

一、4G撥號指令用在/etc/rc.local裡面
------>sudo wvdial simcom

二、python3.5程式使用autostart
------>sudo nano ~/.config/lxsession/LXDE-pi/autostart
加入 ----- >@/usr/bin/python3.5 /home/pi/Desktop/GUI_run/demoUI.py

終於可以了呢!

[記錄-樹梅派]安裝4G模組撥號"wvdial"

記錄一下安裝4G撥號模組的過程

一、安裝撥號程式wvdial
sudo apt-get install -y wvdial
二、設定wvdial設定檔
sudo nano /etc/wvdial.conf
三、輸入設定檔
[Dialer simcom]
Phone = *99#
APN = internet
Username = username
Password = password
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1, "IP","Internet"
Modem = /dev/ttyUSB3
Baud = 115200
Stupid Mode = 1
Dialer XXX:XXX為自訂的名稱,之後打指令要用這個名稱去執行
Modem = OOO:OOO為模組行動網路通訊的Port

四、退出編輯後,輸入指令sudo wvdial simcom(你的自訂名稱)

基本上最下面出現IP位置就可以連線了。



筆記:
我的模組Sim7600CE、Sim7500SA
port表為
1) /dev/ttyUSB0-輸出開發訊息 dial-port
2) /dev/ttyUSB1- GPS NMEA資料輸出port 
3) /dev/ttyUSB2-AT指令port  
4) /dev/ttyUSB3-ppp-dial撥號用port
5) /dev/ttyUSB4-聲音port
6) /dev/ttyUSB5-虛擬網路卡





參考來源https://www.raspberrypi.com.tw/tag/wvdial/






2018年6月7日 星期四

[記錄]ESP8266抓取網頁Json資料並做硬體開關

原本在搞HTTP的標頭搞了好幾個小時,後來終於找到好用的程式庫了
#include <ESP8266HTTPClient.h> //用來擷取網頁
#include "ArduinoJson.h" //用來處理Json資料
HTTPClient http; 
如果要把一個網頁的內容提出Json來當變數可以像這樣:

void loop{
  http.begin("http://網頁位置");
  if(http.GET() == 200){//如果網頁回應200代表正常
    DynamicJsonBuffer jsonBuffer(BufferSize);//設定json的緩衝區及大小
    JsonObject& root = jsonBuffer.parseObject(http.getString());//設定緩衝區資料來源
    Serial.print("GET:");
    relay1=root["relay1"]; //變數relay1=讀取json的relay1值
}

註:
1.線上版Json資料轉換:https://jsoneditoronline.org/

2018年6月5日 星期二

[記錄]樹莓派-外接專用螢幕基本設定

買了一塊7吋的觸控式螢幕來給樹莓派用
插上去卻發現畫面變成這樣



原本以為是瑕疵或是排線沒有接好,反覆插拔排線都一樣。後來查了一下發現要先設定螢幕解析度等等的。

一、下指令:sudo nano /boot/config.txt
二、在最底下輸入
        hdmi_group=2
        hdmi_mode=87
        hdmi_cvt 1024 600 120 6 0 0\
三、輸入完畢後按Ctrl+O然後Enter存檔
四、重開機即可

詳細的參數設定請參考:VIDEO OPTIONS IN CONFIG.TXT

註:如果遇到參數設定錯誤導致完全無法顯示的話,可以把記憶卡拔下來插上電腦,直接在電腦上調整參數。


※config詳細設定:[翻译完成] 树莓派配置文档config.txt说明

2018年6月2日 星期六

Ticker.h on ESP8266

#include <Ticker.h>

void ICACHE_RAM_ATTR onTimerISR(){ digitalWrite(LED,!(digitalRead(LED))); //範例於閃爍LED }

void setup(){
timer1_attachInterrupt(onTimerISR);//宣告初始化 timer1_enable(TIM_DIV16, TIM_EDGE, TIM_LOOP); timer1_write(1000000);
}

////////////////////
語法:time1_enable(divider,int_types,reload)
1.divider:
(1)TIM_DIV1 //80MHz (80 ticks/us - 104857.588 us max) (2)TIM_DIV16 //5MHz (5 ticks/us - 1677721.4 us max) (3)TIM_DIV256 //312.5Khz (1 tick = 3.2us - 26843542.4 us max)
2.int_types
(1)TIM_EDGE
(2)TIM_LEVEL
3.reload
(1)TIM_SINGLE //你需要寫一個新的值再次啟動計數器在中斷程序上
(2)TIM_LOOP //中斷計數器將再次以相同的值開始