1.首先申請一個GoogleMAP GeoAPI
2.建立csv檔案,將所有要解析的地址放在'address'欄位
3.csv 檔案要用utf8格式
4.如果遇到SSL無法驗證,請安裝Win32OpenSSL
Github: https://github.com/youjunjer/Address2Geo
'''
1.Apply a Google Map Geo API Key
2.Create a csv file and put all addresses in one column with name 'address'
3.csv file must utf8 encoding
4.Install Win64OpenSSL for https protocal. (https://slproweb.com/products/Win32OpenSSL.html)
'''
import requests
import json
import numpy
import pandas as pd
StoreData = pd.read_csv('address.csv')
geo=[]
storeaddress = StoreData['address'] #address data in the 'address' column
for i in range(storeaddress.size-1):
print(i)
try:
r = requests.get('https://maps.googleapis.com/maps/api/geocode/json?address=' + storeaddress[i] + '&key=AIzaSyDSDe5BXTPUec8dAfa44MkqsqslA4Sp484',verify=False)
if r.status_code ==200:
data=json.loads(r.text)
geo.append(str(data['results'][0]['geometry']['location']['lat']) + ';' + str(data['results'][0]['geometry']['location']['lng']))
except:
#give 0;0 if address can't be parsed
geo.append('0;0')
df = pd.DataFrame(geo, columns= ['geo']) #export geodata to geo.csv
df.to_csv(r'geo.csv', index = False, header=True)
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
辦公室茶水間的小魚缸內養著一大一小兩隻烏龜,每次我走進茶水間,就會看到兩隻烏龜興奮的探頭互踢,希望有人能丟點飼料餵食他們。
每次我走近魚缸餵食,看著這兩隻烏龜就在這小小的空間內,爭先恐後的搶著餌料,大的那隻通常會把小的那隻壓在底下,想在第一時間搶到食物,而小的那隻並不會屈服,奮力探頭掙扎也想搶個好位置。
有時我會想,這兩隻烏龜的心裡想著什麼?
是如何輾壓對手,獲得最多的食物?
是如何吸引主人注意,獲得餵食的機會?
是如何欺壓對方,讓她知道誰是老大?
我心想,烏龜也是有頭腦,他們怎麼不會思考著更深層的問題,
先從如何跳出這小小的魚缸,掌握自己的龜生開始
自由自在,想去哪就去哪?
與同伴一起補獵、一起遊戲、一起組成家庭
能自由的探索新海洋、發現新世界,完成自己的夢想
好笑的是
當人類笑著烏龜只知道每天搶食物,您是否也注意到你自己的人生?
你是否每天打卡上下班,只為領薪水?
你是否想著如何打敗同僚,只為升官加薪?
你是否每天唱和長官,只為獲得長官青睞
如果你只是想著這些事,那你不就跟那兩隻烏龜一樣了嗎?
烏龜被空間侷限著,所以限制了想像
而你雖然沒有空間限制,但其實
你跟水缸裡的烏龜沒有兩樣
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
當江太太按下收音機的瞬間,復古的音樂悠然響起
「許我向你看...向你看看,多看一眼」
雲之凡調皮的從背景走出,望向江先生一眼,開了門走出房間
而病床上的毫無生氣的江濱柳恍然睜開雙眼,拋開一身的病痛,隨著雲之凡離開
此時兩個場景、台詞開始交錯著
一邊是江濱柳與雲之凡,在上海的美麗回憶
一邊則是江太太與護士,在醫院談論著病情
雲之凡是一身高雅,盪著鞦韆,手拿著書,舉止談吐都是瓊瑤式的散文
「好安靜喔,從來沒有見過這麼安靜的上海」、「夜晚停止了,月亮停止了,街燈、鞦韆一切都停止了」
另一邊的江太太,糟糠之妻,鄙俗的紅毛衣配上大嬸般的捲髮,電話中痛苦的訴說著江先生的病情
「台北的車變得很多」「景美的家外面有一棵樹」「我很好我很好」
江濱柳想與雲之凡的時間能停止,卻偶爾羞愧的望向著江太太
最後這場景就在江濱柳把多年來寫的信交給雲之凡時,卻遭到雲之凡的拒絕而結束。
編按:也許你以為描寫的只是男女之間的愛情故事,不過,這暗示的是一整個時代的痛苦與掙扎
VIDEO
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
以往在 ESP32CAM 教學時,偶爾會遇到學生問說,為什麼只有一個人能看,我都會說這是單晶片的限制,心裡想說,一顆兩三百的單晶片能做 Stream Webserver 已經很厲害了,還要多人連線,會不會太強人所難。
不過有一次一位很好學的學生問:「老師,您說 ESP32 有雙核心,還能跑多執行緒,現在不能多人連線看影像是不是有點說不過去」。
心想似乎也是,我每次上課都會強調這顆晶片可以跑多執行緒,竟然如此應該來研究一下如何將單人連線程式改寫成多人連線。
不過在研究之前,先 Google看看,哲學家都說:「不用重複造輪子」,就發現了這篇: https://www.hackster.io/anatoli-arkhipenko/multi-client-mjpeg-streaming-from-esp32-47768f ,沒想到真的有大神已經寫好了, 馬上把網址傳給那位好問的學生去測試看看,誰叫你愛問,沒想到一測試就成功了,太棒了。
後來又經過我們多次改寫及精簡,現在把輪子 程式附上給大家。
三個客戶端同時連線:PCx2,手機x1,連線狀況非常好,多人連線也幾乎沒有延遲。
#include <WiFi.h>
#include <WebServer.h>
#include <WiFiClient.h>
#include <Arduino.h>
#include <pgmspace.h>
#include <stdio.h>
#include "esp_log.h"
#include "esp_attr.h"
#include "esp_camera.h"
#include <esp_bt.h>
#include <esp_wifi.h>
夜市 小霸王 發表在 痞客邦 留言 (1) 人氣( )
每次到新的環境上python課程,就會擔心環境建構問題,尤其要開始談python+Tensorflow-GPU時,就要去對Tensorflow+Keras+cuda+cudnn的版本序號,每次安裝過程都是一種折磨,裝錯版本重來。查版本、安裝、設路徑、測試GPU、反安裝、重開機...無窮loop。
參考: https://www.tensorflow.org/install/source_windows?hl=zh-tw
後來發現原來在anaconda可以直接幫你對齊Tensorflow+cuda+cudnn版本,而且只要一行指令,三個一起裝好,你說服不服。
首先,先將您的nvidia顯示卡安裝好驅動程式。
步驟:
1.開啟anaconda,建立新的環境(或者開啟舊環境),命名為Tensorflow-GPU
2.在該環境下執行啟動terminal視窗
3.輸入conda install tensorflow-gpu==1.14 ,後面的1.14是版本序號,目前最新是2.0,可是我不會用。
4.canda會一起安裝合適版本cuda+cudnn(如上圖)
5.在terminal視窗中啟動python,輸入以下指令,檢查GPU是否啟動
from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())
如果正常的話,會出現以下畫面,檢查是否出現CPU+GPU,以及最後會列出你的顯示卡型號。
安裝Keras2.2.4(此乃對齊tensorflow 1.14版本):
conda install keras==2.2.4
打完收工
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
ESP32是Arduino相容,能完全適用Arduino生態系,套用Arduino的感測器及程式開發,不過ESP32有一個小小的缺點,就是他的腳位寫在背面,如果插入麵包版時,就看不到腳位編號,必須對照圖才能插到正確的腳位,這對初學的學生來說較為麻煩。
在教學上遇到的一些問題,因此我們設計了ESP32教學版ESPro Matrix版,除了將腳位編號寫在正面之外,附帶兩個USB Power Port可以快速開啟USB裝置,用來模擬智慧家電非常方便。
電路圖下載:https://t.ly/Zn4V
總體來說,本教學版有以下優點
正面
背面
其中USB UART可以對一些裝置下ATCommand,例如上面圖片中的NBIoT裝置
另外對於USB PowerPort則非常有用,插上USB風扇或者USB燈條,可以用藍芽語音控制,非常有趣。
VIDEO
說明一 燈號:https://youyouyou.pixnet.net/blog/post/120417760
說明二 USB Power:https://youyouyou.pixnet.net/blog/post/120418861
說明三 I2C LCD:https://youyouyou.pixnet.net/blog/post/121069748
說明四 SPI TF卡:https://youyouyou.pixnet.net/blog/post/119643441
關於藍芽語音遙控部份,可以參考本篇
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
注意~由於本產品USB接口並未固定,經常無故脫落,因此後續不再推薦及販售~
很多人都用過ESP32CAM,有WIFI藍芽還附帶ov2640鏡頭,不過麻煩的是esp32cam沒有USB接口,都要透過USBTTL線,例如CP2102有四條線黑紅白綠接起來複雜,上傳程式還要對接GND+IO0轉下載模式,對於初學者來說真是有點麻煩。
不過我們已經找到廠商做出整合USBTTL+ESP32CAM的模組了,只要插上Micro USB 就可以上傳程式了,上傳時也不用再對接GND+IO0,我們拉出Flash按鈕,上傳時需要透過RST+Flash就可以切換燒錄及工作模式。
燒錄時,切換下載模式步驟:按住Flash,再按RST,放開RST,放開Flash
完成後,直接按下RST,切換成工作模式
詳細說明,可參考安信可ESP32CAM切換方式: https://youyouyou.pixnet.net/blog/post/119383183
附帶的鏡頭品質也相當優良,效果非常好,另外網路的品質也非常高
使用UXGA1600x1200,可以維持5-6fps(PS.測試環境是WiFi AP就在旁邊5m左右)
不過可能要特別注意:USB的頭很脆弱,拔插USB時要非常小心
建議依據以下手勢插入USB,避免USB口脫落
夜市 小霸王 發表在 痞客邦 留言 (1) 人氣( )
在SQL Server Agent中新建一個作業,並在步驟處加入一個步驟,輸入以下的內容,並進入排程設定要啟動的時間
EXEC sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GOEXEC sp_configure 'xp_cmdshell',1
GO
RECONFIGURE
GO
USE master
GO
EXEC XP_CMDSHELL 'net use z: \\192.65.xx.xx\aws password /user:"username"'
DECLARE @MyFileName varchar(50)
SET @MyFileName='z:\filename_' + (convert(nvarchar(20),dateadd(DAY,-1,GetDate()),112)) + '.bak'
alter DATABASE [databasename] set SINGLE_USER with rollback immediate
restore DATABASE [databasename] from DISK=@MyFileName
alter DATABASE [databasename] SET MULTI_USER;
解說1:
USE master
GO
本句能讓Server Agent不至於斷線,原因不清楚
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
最近安裝新的VirtualBox,以往Host, Guest都只用Server2008,執行效能、速度都沒什麼問題,一直運作非常正常。
這次使用Server 2016為Host,Guest有2016及2019,結果速度超慢,有時還會開不起來,檢查設定都沒什麼問題
後來偶爾有一次取消了「顯示」內的「啟動3D加速」,竟然就正常了,不知道這是什麼原因,但是分享給有類似問題的人。
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )
我的ESP32實做書籍:https://youyouyou.pixnet.net/blog/post/121105860
博客來網址:https://www.books.com.tw/products/0010901195
現在有兩個版本 2020舊版與2022新版,寫在擴充版的左下角,例如下面這張就是2020版本。
2020版的USB PowerPort使用的腳位是GPIO 1與GPIO 3,而GPIO1與3也是TXRX的Serial序列監控視窗。所以要使用USB PowerPort(IO 1)時,就不能用Serial序列監控視窗,IO 3 則是輸入,一般是可以不必關閉Serial直接可用。
2022版的USB PowerPort使用的腳位是GPIO 2與GPIO 18,已經有修正,所以Serial不會影響這兩個Port。
下面的程式用來測試USB PowerPort,功能是每兩秒切換一次
//Ver.2022版本使用2,18
int UsbPP1 = 2; // P1: GPIO 2
int UsbPP2 = 18; // P1: GPIO 18
//Ver.2020版本使用1,3
//int UsbPP1 = 1; // P1: GPIO 1
//int UsbPP2 = 3; // P1: GPIO 3
void setup() {
pinMode(UsbPP1, OUTPUT);
pinMode(UsbPP2, OUTPUT);
}
void loop() {
//兩秒一次更換開關
digitalWrite(UsbPP1, HIGH);
夜市 小霸王 發表在 痞客邦 留言 (0) 人氣( )